




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2 2 程序程序是由一行行符号序列表达的,空格将符号序列分为六类:是由一行行符号序列表达的,空格将符号序列分为六类: 关键字:关键字:include, int, const等说明语句、数据的性质;等说明语句、数据的性质; 标识符标识符(数据命名数据命名):tree,language,a,b等代表运算对等代表运算对象;象; 运算符:运算符:=b) x=a; else x=b; int while; / 错,错,while不能用关键字作变量不能用关键字作变量6 6标识符标识符: :由程序设计者确定的名字。包括:常量名、变量由程序设计者确定的名字。包括:常量名、变量名、函数名、类名等等。名、函数名、
2、类名等等。 标识符的构成元素标识符的构成元素:字母:字母:AZ,az数字:数字:09下划线下划线标识符的定义规则标识符的定义规则:只能以字母或下划线开头,不能以数字开头只能以字母或下划线开头,不能以数字开头不能是关键字;不能是关键字;字母大小写有区别;如字母大小写有区别;如abc和和Abc是不同的标识符是不同的标识符7 7关于标识符定义的建议:关于标识符定义的建议:1. 使用有一定含义的英文单词或拼音序列作标识符,使用有一定含义的英文单词或拼音序列作标识符,以提高可读性;以提高可读性;2. 另外尽量不用下划线或双下划线打头,以免与系统另外尽量不用下划线或双下划线打头,以免与系统定义的关键字冲突
3、。定义的关键字冲突。8 8例例: 判断下面哪些是合法的标识符:判断下面哪些是合法的标识符: MyFileSalary 94amountvoid94SalarySalary94%amountf3.5Num_of_Student9C+的数的数据类型据类型基本数据基本数据类型类型非基本数非基本数据类型据类型数组数组 type 结构结构 struct共同体共同体 union枚举枚举 enum类类 class整整 型型 int字符型字符型 char布尔型布尔型 bool指针指针 type *引用引用 type &空类型空类型 void实实 型型 float双精度型双精度型 double实实 型型
4、1010C+基本数据类型基本数据类型字符字符 char整数整数 int实数实数 float短整数短整数 short int长整数长整数 long int双精度双精度 double无符号整数无符号整数unsigned int 类类 型型大小大小取值范围取值范围1字节字节4字节字节4字节字节2字节字节4字节字节8字节字节4字节字节256个个(-128127)字符字符-231(231-1)-1e+38 1e+38-32768 32767-231(231-1) -1e+3081e+3080 (232-1)1111在程序中,在程序中,常量常量和和变量变量是用来表示数据的是用来表示数据的 变量:变量:用于
5、存放数据区域的名称;用于存放数据区域的名称; 常量:常量:又分为字面常量、常变量;又分为字面常量、常变量;12121. 1. 变变 量量 程序中可以改变值的量;程序中可以改变值的量; 必须用标识符标识,为变量名;必须用标识符标识,为变量名; 有类型之分,如整型变量、字符变量等;有类型之分,如整型变量、字符变量等; 必须先说明后使用;一是便于编译程序为变量必须先说明后使用;一是便于编译程序为变量分配空间,二是便于编译时进行语法检查;分配空间,二是便于编译时进行语法检查; 变量使用的第一步,是给变量赋初始值;变量使用的第一步,是给变量赋初始值;1313格式为:格式为: 存储类型存储类型 , , ,
6、 2, , , n; 例:例:int i, j, k;int i, j, k; / / 说明三个整型变量说明三个整型变量i, j, ki, j, kfloat x, y, z;float x, y, z; / / 说明三个实型变量说明三个实型变量x, y, zx, y, zchar c1, c2; char c1, c2; / / 说明两个字符型变量说明两个字符型变量c1, c2c1, c2double dx;double dx; / / 说明一个双精度型变量说明一个双精度型变量dxdx 14142) 2) 变量赋初值变量赋初值给变量赋初值为初始化,有两种方法:给变量赋初值为初始化,有两种方法
7、:(1 1)变量说明时直接赋初值。)变量说明时直接赋初值。例:例: int a=3, b=4, c=5;int a=3, b=4, c=5;float x=3.0float x=3.0;(2 2)用赋值语句赋初值。)用赋值语句赋初值。例:例: float x, e;float x, e;x=3.5;x=3.5;e=2.71828;e=2.71828;1515 程序中直接给出的量;程序中直接给出的量; 值在程序执行过程中保持不变;且存储在程值在程序执行过程中保持不变;且存储在程序区,而非数据区;序区,而非数据区; 根据取值和表示方法的不同,分为以下几种:根据取值和表示方法的不同,分为以下几种:
8、整型常量、实型常量、字符型常量和字符串常整型常量、实型常量、字符型常量和字符串常 量等。量等。1616十进制表示法十进制表示法八进制表示法八进制表示法十六进制表示法十六进制表示法其他表示法其他表示法即整数,有多种表示方法即整数,有多种表示方法:1717十进制表示与我们熟悉的书写方式相同。十进制表示与我们熟悉的书写方式相同。如如15 -2415 -241818 八进制表示八进制表示以以0 0打头,由数字打头,由数字0 0 7 7组成组成,用来表,用来表示一个八进制数。示一个八进制数。如:如: / /八进制数八进制数1212,即十进制数,即十进制数1010 / /八进制数八进制数-655-655,
9、即十进制数,即十进制数-429 -429 ok1919 十六进制数十六进制数以以0X0X(大小写均可)打头,由数字(大小写均可)打头,由数字0 0 9 9和字母和字母A A F F(大小写均可)组成(大小写均可)组成例:例:0 x32A 0 x32A /十六进制数十六进制数32A32A,即十进制数,即十进制数810810-0 x2fe0-0 x2fe0/十六进制数十六进制数-2fe0-2fe0,即十进制数,即十进制数 -12256-12256ok2020 还可以表示长整数和无符号整数。长整型常数还可以表示长整数和无符号整数。长整型常数以以 L L 或或 l l 结尾,无符号常整数以结尾,无符号
10、常整数以 U U 或或 u u 结尾,以结尾,以 U L U L 或或 L UL U(大小写均可)结尾则可表示无符号长(大小写均可)结尾则可表示无符号长整型常数。整型常数。例如:例如:-84L-84L/十进制长整数十进制长整数-84-84026U026U/八进制表示的无符号整数八进制表示的无符号整数26260X32LU 0X32LU /十六进制表示的无符号长整型数十六进制表示的无符号长整型数3232。整数整数 结束结束 21212 2)实型常量)实型常量 (1) (1)一般形式与平时书写形式相同,一般形式与平时书写形式相同,由数字由数字0 0 9 9和小数和小数点组成点组成。 例如:例如:0.
11、23 -125.76 0.0 .46 -35.0.23 -125.76 0.0 .46 -35. (2) (2) 指数形式(科学表示法)表示为指数形式(科学表示法)表示为尾数乘以尾数乘以1010的次方的次方形式,由尾数、形式,由尾数、E E或或e e和阶数组成和阶数组成。指数形式要求在。指数形式要求在E E或或e e前面的尾数部分必须有数字,后面的指数部分必须为整数。前面的尾数部分必须有数字,后面的指数部分必须为整数。 包含小数点和包含小数点和1010的幂的数为实型常量,两种表示方法:的幂的数为实型常量,两种表示方法:实数实数 结束结束 2222123E12 123E12 -.34e-2 -.
12、34e-2 E4 E4 1.43E3.5 1.43E3.5 实数实数 结束结束 例例 : : 判断下列表示是否合法判断下列表示是否合法2323 用单引号引起来的单个字符。在内存中保存的是用单引号引起来的单个字符。在内存中保存的是字符的字符的ASCIIASCII码值。在所有字符中,有些是可显示字码值。在所有字符中,有些是可显示字符,通常就用单引号引起来表示:符,通常就用单引号引起来表示: a a / / 字符字符a a / / 字符字符 4 / / 字符字符4 4 / / 空格字符空格字符 2424 有些是特殊情况字符,如不可显示等,有些是特殊情况字符,如不可显示等,c+c+使使用转义序列表示方
13、法用转义序列表示方法(详见课本详见课本P15 P15 表表2-22-2),如),如: n/ / 换行换行,endl,endl为换行常量名为换行常量名 / / 字符字符 t / / 制表符制表符 2525 所有的字符均可用转义序列表示,其方法是所有的字符均可用转义序列表示,其方法是反斜杠后加上该字符的反斜杠后加上该字符的ASCIIASCII值,但其值,但其ASCIIASCII码码值只能以八进制或十六进制表示,缺省的值只能以八进制或十六进制表示,缺省的ASCIIASCII码值是八进制。码值是八进制。 032/ / 等同于等同于 32 0 x56 / / 等同于等同于0X56、 X56X56 / /
14、 以及以及x56x56 2626字符型常量字符型常量 a占一个字节,存放占一个字节,存放 a,值为值为0 x610 x61用双引号引起来的若干个字符称为字符串常量。用双引号引起来的若干个字符称为字符串常量。例如例如:I am a Chinese. , 123, a .字符型串常量字符型串常量 a占两个字节,存放占两个字节,存放a和和0,值为,值为0 x61000 x6100字符串常量与字符型常量的区别字符串常量与字符型常量的区别2727用常量说明符用常量说明符constconst给字面常量起个名字(标给字面常量起个名字(标 识符),这个标识符就称为标识符常量;识符),这个标识符就称为标识符常量
15、;因为标识符常量的说明和引用形式很像变量,因为标识符常量的说明和引用形式很像变量, 所以也称常变量;所以也称常变量; 例如:例如: const float PI=3.14159;const float PI=3.14159; const int Number_of_Student=100; const int Number_of_Student=100;常变量必须先说明后使用;常变量必须先说明后使用;常变量必须也只能在说明时进行初始化;常变量必须也只能在说明时进行初始化;常变量初始化之后,不允许再被赋值;常变量初始化之后,不允许再被赋值;2828运算符:运算符: 算术运算符:算术运算符:+、-
16、、* 等等 关系运算符:关系运算符: 、= = 等等 逻辑运算符:!、逻辑运算符:!、&、| 等等 赋值运算符:赋值运算符:= 流运算符:流运算符: 例:例:x+y、x*y x= =y x & y x=y cout c+;29291. 1. 算术运算符算术运算符+、*、/、%,其中,其中%为为模运算模运算。说明:说明:1.当两个整数作当两个整数作/运算时,取整数部分。运算时,取整数部分。 2.运算运算%只对整数。只对整数。 3.作作/运算时,若除数是运算时,若除数是0或结果溢出,作出错处理。或结果溢出,作出错处理。 整数运算溢出不作出错处理,但结果错误。整数运算溢出不作出错处理
17、,但结果错误。2.3 2.3 运算符、表达式和语句运算符、表达式和语句 2.3.1 2.3.1 运运 算算 符符 3030 、= 、=、=、!、!= =运算结果:运算结果:1=1=真真; 0=; 0=假假注:用注:用=作两个实数的比较时,常作两个实数的比较时,常用绝对值函数用绝对值函数fabsfabs。2. 2. 关系运算符关系运算符31313. 3. 逻辑运算符逻辑运算符 ! & |! & |例:例:int i=4, j=1, k=0;cout !i: !i ; i&k: (i&k) ;cout ; j|k: (i|k) 、 、:、*、-*、& (引用
18、)(引用) 右结合右结合2 *、&、new、delete、!、+、- -、-、size 左结合左结合3 *(乘)、(乘)、/、% 右结合右结合4 +、- 右结合右结合5 右结合右结合6 、= 右结合右结合7 = =、!、!= 右结合右结合8 & (位运算符)(位运算符) 右结合右结合9 (位运算符)(位运算符) 右结合右结合10 | 右结合右结合11 & 右结合右结合12 | 右结合右结合13 ?:(三目运算)三目运算) 左结合左结合14 =、+=、-=、*=、/=、%=、=、&=、=、|= 左结合左结合15 ,(逗号运算符),(逗号运算符) 右结合右结合353
19、5 表达式包括表达式包括算术表达式算术表达式、关系表达式关系表达式、逻辑表达式逻辑表达式和和逗逗号表达式号表达式。1. 1. 算术表达式算术表达式由算术运算符、括号、操作数构成的式子。由算术运算符、括号、操作数构成的式子。如:如:int a=25, b=4, c=3, s, t, k; a+b*c; /结果为结果为37 a*-b; /因因“-”的优先级高于的优先级高于“*”,故结果为,故结果为-100 s=a*-b; /等同于等同于a*(-b),计算结果为,计算结果为s=75, b=3 t=c+b/k; /警告警告,因为,因为k没有定义初值没有定义初值 couts=sc+c c=b=e3. 逻
20、辑表达式逻辑表达式由逻辑运算符连接起来的式子。由逻辑运算符连接起来的式子。如:如:ab&c=b|!c=b37374. 赋值表达式赋值表达式 将一个数值或一个表达式的值用将一个数值或一个表达式的值用“=”赋给一个变量。赋给一个变量。 二元算术运算符和位运算符与赋值运算符组合成的运算二元算术运算符和位运算符与赋值运算符组合成的运算符称为复合赋值运算符。共有十个:符称为复合赋值运算符。共有十个:+=(加等加等)、-=、*=、/=、%=(求余等求余等)、如:如:a+=b+5 即即a=a+(b+5) a*=b 即即a=a*(b) a*=b-c 即即a=a*(b-c) 38385. 自增自减运算符
21、自增自减运算符+ 自增运算符,使变量的值加自增运算符,使变量的值加1 - 自减运算符,使变量的值减自减运算符,使变量的值减1只能对变量运算,不能对常量或表达式进行运算。只能对变量运算,不能对常量或表达式进行运算。前置和后置对前置和后置对影响不同。影响不同。例:例:int a=5, b=6, c;a+; / 等同于等同于+a;c=+a;c=b-;3939例:例:设设b=2,c=3,d=4,则下列逗号表达式,则下列逗号表达式 a=5+5,b=b*b+c,d=d*a+b的值为的值为47。y=x=(a=3,6*3) 结果:结果:x=y=18,a=3y=x=a=3,6*3 结果:结果:x=y=a=3y=
22、(x=a=3,6*3) 结果:结果:x=a=3,y=18 注:逗号有时只是一个分隔符。如:注:逗号有时只是一个分隔符。如: max(a+b,c+d)6. 逗号表达式逗号表达式用逗号运算符连接起来的表达式。用逗号运算符连接起来的表达式。 一般形式:一般形式:, 即按从左到右的顺序依次求出各表达式的值,并把最即按从左到右的顺序依次求出各表达式的值,并把最后一个表达式的值作为整个逗号表达式的值。后一个表达式的值作为整个逗号表达式的值。40402.3.3 不同类型数据的混合运算和赋值时的类型转换不同类型数据的混合运算和赋值时的类型转换 当二元运算中的两个操作数类型不同或赋值运算时表达当二元运算中的两个
23、操作数类型不同或赋值运算时表达式与变量的类型不同时,式与变量的类型不同时,C+先进行类型转换再进行运算。先进行类型转换再进行运算。转换的方法有两种:自动转换转换的方法有两种:自动转换 强制转换。强制转换。 1. 1. 自动转换:自动转换:41412) 2) 当操作数不同时,系统自动从低精度的数转换为高精度当操作数不同时,系统自动从低精度的数转换为高精度的数参加运算的数参加运算4242 自动转换发生在不同数据类型的量混合运算时,由编自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。自动转换遵循以下译系统自动完成。自动转换遵循以下规则规则:1.1.若参与运算量的类型不同,则先转换成同一
24、类型,然后进若参与运算量的类型不同,则先转换成同一类型,然后进行运算。行运算。2.2.转换按数据长度增加的方向进行,以保证精度不降低。转换按数据长度增加的方向进行,以保证精度不降低。如如intint型和型和longlong型运算时,先把型运算时,先把intint型转成型转成longlong型后再进行运型后再进行运算。算。3.3.所有的浮点运算都是以双精度进行的,即使仅含所有的浮点运算都是以双精度进行的,即使仅含floatfloat单单精度量运算的表达式,也要先转换成精度量运算的表达式,也要先转换成doubledouble型,再作运算。型,再作运算。4.4.在赋值运算中,赋值号两边量的数据类型不
25、同时,在赋值运算中,赋值号两边量的数据类型不同时, 赋值号赋值号右边量的类型将转换为左边量的类型。右边量的类型将转换为左边量的类型。 如果右边量的数据类如果右边量的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度,型长度比左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入。丢失的部分按四舍五入向前舍入。43434444A + 32 + 7.23 * 6 - 5 / 34545 例:例:signed char c1=250;/转换为二进制数是转换为二进制数是11111010 int a; a=c1; coutan; 运算结果:运算结果:a=-6 /负数用补码,即各位
26、取反后加负数用补码,即各位取反后加1 无符号整型及长整型数赋给整型变量时,当超出取值无符号整型及长整型数赋给整型变量时,当超出取值范围作出错处理。范围作出错处理。4646 ()或或()例:例: int a=16,b=5,i; float x=10; x=(float)a+a/b; 运算结果:运算结果:19474748482.3.4 赋值类型转换和逻辑表达式优化时的副作用赋值类型转换和逻辑表达式优化时的副作用1. 1.类型转换后可能影响求值精度类型转换后可能影响求值精度 如:如:int i,j; float x,y; x=(i=4.8)+(j=5.9) 其值为其值为9.0,而不是,而不是10.7
27、2. 2.逻辑表达式的优化是指计算过程中,一旦能确定其值,逻辑表达式的优化是指计算过程中,一旦能确定其值,就不再继续。有可能得到错误结果就不再继续。有可能得到错误结果 如:如:a&b+&-c 当当a为为0时,表达式的值为时,表达式的值为0 d|e+|f+ 当当d不为不为0时,表达式的值为时,表达式的值为1 int a=16,b=10,i; float x=10; i=ab; cout i= it x= xn; 输出结果:输出结果:i=0 x=104949下面四个选项中,均不能作为用户标识符使用的是:下面四个选项中,均不能作为用户标识符使用的是:A m, P_0, doB. float, ka0, -A C. -123, temp, INT D. b-a, goto, int (历届等级考试题选)(历届等级考试题选)设有说明设有说明: int a=15, b=17, c;执行表达式;执行表达式 c=a|(b+=b)后,则后,则a、b、c的值分别为:的值分别为:A. 15, 17, 1B. 1,34,35C. 15, 34,1 D. 15,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- emc买断合同范本
- 代款合作合同范本
- 2025年抗风湿类药品合作协议书
- 合同范本网翻译
- 合同范本全是正式合同
- 双方交付款合同范例
- 2025年分离纯化控制系统项目合作计划书
- 中英日文合同范本
- 合同范本模板去石墙
- 叉车置换销售合同范本
- 《大学美育》高职全套教学课件
- 医院CT机房装饰改造工程施工组织设计
- 软件工程自考02333重点难点汇集
- 护理技能操作案例分析
- DZ∕T 0213-2020 矿产地质勘查规范 石灰岩、水泥配料类(正式版)
- 《行政伦理学教程(第四版)》课件 张康之 第8-13章 行政组织伦理-技术时代的行政伦理
- 《水电厂应急预案编制导则》
- GB/T 2471-2024电阻器和电容器优先数系
- 国际安保行业分析
- 2024年中国铁道科学研究院集团有限公司招聘笔试参考题库附带答案详解
- 成人住院患者静脉血栓栓塞症预防护理
评论
0/150
提交评论