第0章 C++重点知识点总结.docx
- 文档编号:8591269
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:128
- 大小:142.45KB
第0章 C++重点知识点总结.docx
《第0章 C++重点知识点总结.docx》由会员分享,可在线阅读,更多相关《第0章 C++重点知识点总结.docx(128页珍藏版)》请在冰豆网上搜索。
第0章C++重点知识点总结
C++的特点:
1.支持抽象数据类型
2.多态性,一个接口,多重算法,支持早期联编和滞后联编
3.继承性,保证了代码复用,支持分类的概念
一个c++程序由一个或多个函数构成,并且在这些函数中只有一个主函数main,它是程序执行的入口。
C++程序严格区别字母的大小写。
第2章基本数据类型、运算符与表达式
【内容提要】
数据类型
变量与常量
运算符与表达式
简单输入与输出
【重点与难点】
2.1数据类型
在C++程序里,每个名字都有一个与之相关联的类型,这个类型决定了可以对这个名字所指代的实体应用什么操作,并决定这些操作将如何做出解释。
图中Type表示非控数据类型。
2.1.1基本数据类型
逻辑型:
又称布尔型,用关键字bool表示。
有两个值true或false。
true可以转换成整数1,false可以转换成整数0。
与此对应,整数也可以隐式的转换成bool值:
非0的整数转换成true,0转换成false。
字符型:
用关键字char表示。
取值包含具体实现所用的字符集里的一个字符。
字符型数据通常占用1个字节的存储空间。
整型:
用关键字int表示。
取值是计算机所能表示的所有整数。
浮点型:
包括单精度型(float)和双精度型(double)。
单精度型通常占用4个字节的存储空间,双精度型通常占用8个字节的空间。
空类型:
用关键字void表示。
用于说明某个函数没有返回值。
没有void类型的对象。
在基本的数据类型前可以添加修饰符,以改变基本类型的意义。
signed:
有符号。
unsigned:
无符号。
unsigned和signed只用于修饰char和int,且signed修饰词可以省略。
当用unsigned修饰词时,后面的类型说明符可以省略。
对于有符号和无符号的整型数据,它们所占的存储空间的大小相同,但它们的表数范围却不相同(对字符型意义相同)。
short:
短型。
只用于修饰int,且用short修饰时,int可以省略。
long:
长型。
只用于修饰int和double。
当用long修饰int时,int可以省略。
数据类型的描述确定了其内存所占空间的大小,也确定了其表示范围。
用sizeof(数据类型)可以确定某数据类型的字节长度。
请读者查看在你所用的机器上,下面类型的最大值和最小值是什么:
char、short、int、long、float、double、longdouble、unsigned。
2.1.2复合数据类型
数组:
由具有相同数据类型的元素组成的集合。
结构体:
由不同的数据类型构成的一种混合的数据结构,构成结构体的成员的数据类型一般不同,并且在内存中分别占据不同的存储单元。
共用体:
是类似于结构体的一种构造类型,与结构体不同的是构成共同体的数据成员共用同一段内存单元。
枚举:
将变量的值一一列举出来,每个枚举成员(枚举符)都与一个整数相对应。
按默认方式,枚举符所赋的值从0开始递增。
枚举的值也可以用整型的表达式赋值进行初始化。
如果某个枚举中所有枚举符的值均非负,该枚举的表示范围是[0:
2K-1],其中2K是能使所有枚举符位于此范围内的最小的2的幂;如果存在负的枚举符值,该枚举的取值范围就是[-2K:
2K-1]。
指针类型:
指针类型变量用于存储另一变量的地址,而不能用来存放基本类型的数据。
它在内存中占据一个存储单元。
类类型:
类是体现面向对象程序设计的最基本特征,也是体现C++与C最大的不同之处。
类是一个数据类型,它定义的是一种对象类型,由数据和方法组成,描述了属于该类型的所有对象的性质。
2.2变量与常量
2.1.1变量:
指在运行期间其值可以改变的量。
变量有三个特征:
变量类型、变量名、变量值。
命名:
遵循标识符命名规则。
标识符是对实体定义的一种定义符,用来标识用户定义的常量名、变量名、函数名、文件名、数组名、和数据类型名和程序名等。
只能由字母、数字和下划线组成,且以字母或下划线开头。
命名时注意以下几点:
1.C++的关键字不能用作用户自定义的实体名;
2.以下划线开头的名字是保留给实现或者运行环境,用于特殊目的,在应用程序里不要采用这样的名字;
3.大写与小写字母是区分的;
4.见名知义。
5.维持统一的命名风格。
定义:
格式:
<类型名><变量名>[[=<表达式>],…]
typedef:
为某种类型声明一个新名字,而不是定义一种新类型。
格式:
typedef<已有类型名><新类型名>
2.1.2常量:
程序执行期间其值不变的量。
主要有下列几类常量。
布尔常量
字符常量
用单引号括起的一个字符。
在内存中,字符数据以ASCII码存储,如字符‘a’的ASCII码为97。
以转义字符‘\’开始的字符常量后跟不同的字符表示不同的特殊字符。
字符串常量
由一对双引号括起来的零个或多个字符序列。
字符串可以写在多行上,不过在这种情况下必须用反斜线‘\’表示下一行字符是这一行字符的延续。
字符串常量实际上是一个字符数组,组成数组的字符除显示给出的外,还包括字符结尾处标识字符串结束的符号‘\0’,所以字符串“abc”实际上包含4个字符:
‘a’、‘b’、‘c’和‘\0’。
注意字符常量与字符串常量在表示、存储、运算方面的区别。
整型常量
可以用十进制、八进制或十六进制表示。
十进制常量:
一般占一个机器字长,是一个带正负号的常数(默认情况下为正数)。
八进制常量:
由数字0开头,其后由若干0-7的数字组成,如0378,0123等。
十六进制常量:
以0x或0X开头,其后由若干0-9的数字及A-F(或小写a-f)的字母组成,如0x123,0x3ab。
浮点型常量
只能以十进制形式表示。
共有两种表示形式:
小数表示法和指数表示法。
如:
11.3、.2、2.3e10、-2.3E-1等。
枚举常量
枚举声明形式:
enum<枚举名>{<枚举符表>};
枚举符可以有两种形式:
<枚举符名>/<枚举符名>=<整形常量>
符号常量
定义形式:
const<类型名><符号常量名>=<表达式>[,…];
[]表示可选项,以下都采用这种标记。
定义的符号常量必须初始化。
一个符号常量可看作是一个只读变量,由const定义的常量的值不可以改变。
const的最常见的用途是作为数组的界和作为分情况标号。
2.3运算符与表达式
在程序中,表达式是计算求值的基本单位,它是由运算符和运算数组成的式子。
运算符是表示进行某种运算的符号。
运算数包含常量、变量和函数等。
C++语言的运算符按其在表达式中与运算对象的关系(连接运算对象的个数)可分为:
单目运算、双目运算、三目运算。
C++运算符一览表
名称
运算符
举例
优先级
结合性
作用域区分符
:
:
:
:
x
1
左结合性
分量运算符
.->
p.next,p->next
2
函数调用运算符
()
fac()
下标运算符
[]
p[10]
后增量、后减量
前增量、前减量
++--
++--
p++
--p
2
3
右结合性
求字节运算符
sizeof
sizeof(int)
3
正号、负号
+-
-1,+3
指针运算符
*和&
*p,&x
分配、回收空间运算符
Newdelete
p=newint;
deletep;
强制类型转换运算符
(type)
(int)x
算术运算符
*/%
+-
3%5(取模)
4
5
左结合性
左移、右移
<<>>
8>>3,8<<3
6
关系运算符
<<=>>=
==!
=
3<5
3!
=5
7
8
位运算符
&(按位“与”)
^(按位“异或”)
|(按位“或”)
1&2
1^2
1|2
9
10
11
逻辑运算符
&&
||
!
x&&y
x||y
!
x
12
13
3
条件运算符
?
:
a>b?
x:
y
14
右结合性
赋值运算符
=及其扩展(+=-=*=/=%=等)
a=2
a+=2
15
逗号运算符
a=1,b=2,c=3
16
左结合性
表2.1C++运算符一览表
2.4简单输入与输出
在C++中,I/O使用了流的概念-字符(或字节)流。
每一个I/O设备传送和接收一系列的字节,称之为流。
输入操作可以看成是字节从一个设备流入内存,而输出操作可以看成是字节从内存流出到一个设备。
要使用C++标准的I/O流库的功能,需要包括两个头文件:
iostream.h用于提供基本的输入输出功能,iomanip.h用于提供格式化的功能。
2.4.1I/O的书写格式(基本数据类型的输入输出)
头文件iostream.h包含有cin和cout对象,对应于标准输入流和标准输出流。
流读取运算符“>>”表示流的输入,可以从cin输入流中读取字符;流插入运算符“<<”表示流的输出,可以向cout输出流插入字符。
如:
cout<<”helloworld.”< inti,j; cin>>i>>j;//输入i,j的值 2.4.2使用控制符(基本数据类型输入输出的格式控制) C++中提供了大量的用于执行格式化输入输出的格式控制符,具体名称及作用请参看表2.2。 控制符 描述 所在头文件 dec 置基数为10 iostream.h hex 置基数为16 oct 置基数为8 setfill(c) 设填充字符为c setprecision(n) 设显示小数精度为n位 setw(n) 设域宽为n个字符 setiosflags(ios: : fixed) 固定的浮点显示 iomanip.h setiosflags(ios: : scientific) 指数表示 setiosflags(ios: : left) 左对齐 setiosflags(ios: : right) 右对齐 setiosflags(ios: : skipws) 忽略前导空白 setiosflags(ios: : uppercase) 16进制数大写输出 setiosflags(ios: : lowercase) 16进制数小写输出 setiosflags(ios: : showpoin) 显示小数点 setiosflags(ios: : showpos) 显示符号(正负号) setiosflags(ios: : showbase) 指定在数值前输出进制(0表示八进制,0x或0X表示十六进制) 表2.2I/O流的常用控制符 【典型例题】 例题1: 对以下各种数据类型比较所占用存储空间的大小: (1)char、int、shortint、longint、double、longdouble. (2)signedint、unsignedint. 解答: (1)本题主要考查的知识点是各种类型所占用的存储空间的大小以及相应的表数范围。 在32位计算机中,char占1个字节,shortint占2个字节,int占4个字节,longint占4个字节,double占8个字节。 sizeof运算符用于求解某种数据类型的大小。 short和long在修饰整型时可以省略int。 答案为: (2)对于一种确定的数据类型有符号数与无符号数所占的存储空间相同,表数范围不同。 修饰符signed和unsigned只能用于修饰字符型和整型。 答案为: 例题2: 下列哪一项能用作用户自定义的标识符: (a)const(b)2var(c)myname(d)var2 解答: 本题主要考查标识符命名规则。 C++关键字不能用于用户自定义标识符,(a)中const是关键字;第一个字符必须是字母或下划线,(b)中2var是以数字开头;不能含有空格,(c)中myname含有空格。 答案为: d。 例题3: 指出下列程序中的错误: __________。 intmain() { constintx; x=100; return0; } 解答: 本题主要考查对符号常量的理解。 const定义的符号常量必须初始化,由const定义的常量的值不可以改变。 所以本题有两处错误: 第一、没有对符号常量x进行初始化;第二、给符号常量赋值是错误的。 例题4: 给下列表达式加上全部的括号(假设所用变量均已定义): (1)a+b-c--%b (2)a>b? b: c>d? a: c c: d (3)a+=a+b||e (4)a&b+c++ (5)-a&&b-c (6)k=b=c=a 解答: 本题主要考查表达式中运算符的优先级与结合性。 请参阅表2.1。 为了避免出错,建议读者在书写表达式时完整书写括号。 (1)答案为: (a+b)-((c--)%b) (2)答案为: a>b? b: (c>d? a: (c c: d)) (3)答案为: a+=((a+b)||e) (4)答案为: a&(b+(c++)) (5)答案为: (-a)&&(b-c) (6)答案为: k=(b=(c=a)) 例题5: 请根据下列题意写出相应的表达式。 (1)有a、b、c、max四个变量a、b、c中的最大值,并将结果放入max中。 (2)年龄在1到100之间(包含1和100,年龄用变量age表示)。 (3)公式 。 (4)判断一年是否为闰年,年用year表示。 满足下列两个条件之一即为闰年: 能被4整除但不能被100整除 能被400整除。 解答: (1)主要考查对条件表达式的理解和书写。 答案为: max=a>b? (a>c? a: c): (b>c? b: c)。 (2)主要考查对逻辑表达式的理解和书写。 答案为: 1<=age&&age<=100。 (3)主要考查如何在计算机中表示一个数学公式。 答案为: (a+b)*h/2。 (4)主要考查对逻辑表达式的理解和书写。 答案为: (year%4==0&&year%100! =0)||(year%400==0)。 例题6: 下列选项中两个表达式的运算结果相同的是()。 (a)3/2和3.0/2.0(b)3/2和3.0/2(c)3/2.0和3.0/2.0(d)3/2.0和3/2 解答: 本题考查数据类型及表达式中数据类型的隐式转换。 3/2中两个操作数都为整型,运算结果仍为整型即1;3.0/2和3/2.0中一个操作数为整型另一个为浮点型,运算时整型隐式转换为浮点型,运算结果也为浮点型即1.5;3.0/2.0两个操作数均为浮点型,结果也为浮点型即1.5。 答案为: (c)。 例题7: 下列程序的运行结果为: ______________。 #include voidmain() { inta=2,b=4,i=0,x; x=a>b&&++i; cout<<"x: "< cout<<"i: "< } 解答: 本题主要考查“短路”表达式的运算。 对于表达式中的“与”运算而言,只要有一个操作数为假,结果为假。 所以当第一个操作数为假时,不在求解其它操作数。 对于表达式中的“或”运算而言,只要有一个操作数为真,则结果为真。 所以当第一个操作数为真时,不在求解其它操作数。 本题中a>b为假,所以表达式a>b&&++i为假,而++i没有执行。 故i为0。 答案为: x: 0 i: 0 例题8: 求解下列各表达式的值(其中x的值为100)。 (1)(a=1,b=2,c=3) (2)1|3<<5 (3)'a'+3&&! 0%1 (4)x%2? “odd”: ”even” 解答: (1)逗号表达式的值是其最后一个表达式的值。 答案为: 3。 (2)<<运算符的优先级高于|运算符,所以先算3<<5结果为96(二进制1100000),然后与1做按位与运算则结果为97(二进制1100001)。 答案为: 97。 (3)参与本题的运算符,按优先级由高到低依次是: ! 运算符、算术运算符、逻辑运算符。 'a'+3时字符型首先隐式转换成整型然后相加结果为100,! 0%1即1%1结果为0,100&&0结果为0。 答案为: 0。 (4)算术表达式的优先级高于条件表达式,所以先算x%2结果为0,0? ”odd”: ”even”结果为”even”。 本题完成判断一个数是奇数还是偶数,若该数为奇数,则表达式的值为”odd”,为偶数,则表达式的值为”even”。 答案为: ”odd”。 例题9: 下列程序运行结果为: _______________。 #include #include voidmain() { inta=23; doubleb=23.123456789;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第0章 C+重点知识点总结 C+ 重点 知识点 总结