《C 语言程序设计实用教程 教学课件 ppt 作者 李庆亮第2章 数据类型、运算符和表达式》由会员分享,可在线阅读,更多相关《C 语言程序设计实用教程 教学课件 ppt 作者 李庆亮第2章 数据类型、运算符和表达式(22页珍藏版)》请在金锄头文库上搜索。
1、C语言程序设计实用教程,第2章 数据类型、运算符和表达式,第2章 数据类型、运算符和表达式,2.1 常量与变量 2.2 基本数据类型 2.3 运算符与表达式 305.000000,100,1 2.4 习题,第2章 数据类型、运算符和表达式,图2-1 C语言的数据类型,2.1 常量与变量,2.1.1 常量和符号常量 1) 符号常量名要用大写,变量要用小写,以示区别。 2) 符号常量与变量不同,它的值在其作用域内不能改变,也不能再被重新赋值。 3) 使用符号常量后,使得程序在需要改变常量的值时能做到“一改全改”。 2.1.2 变量 (1) 关键字(32个) (2) 预定义的标识符 (3) 用户自定
2、义标识符,2.2 基本数据类型,2.2.1 整型数据 1. 整型常量 1) 十进制整常量:十进制整常数没有前缀,是以非0开头的数。 2) 八进制整常量:八进制整常数必须以0开头,即以0作为八进制数的前缀。 3) 十六进制整常量:十六进制整常数的前缀为0X或0x。 4) 整型常数的后缀在16位字长的机器上,基本整型的长度也为16位,因此表示的数的范围也是有限定的。 2. 整型变量 (1) 整型变量的分类 1) 基本整型:类型说明符为int,在内存中占2个字节,其取值为基本整常数。,2.2 基本数据类型,2) 短整量:类型说明符为short int或short。 3) 长整型:类型说明符为long
3、 int或long,在内存中占4个字节,其取值为长整常数。 4) 无符号型:类型说明符为unsigned。 (2) 整型变量的说明,表2-1 ANSI标准定义的整数类型,1) 允许在一个类型说明符后,说明多个相同类型的变量。 2) 最后一个变量名之后必须以“;”号结尾。,2.2 基本数据类型,3) 变量说明必须放在变量使用之前。 2.2.2 实型数据 1. 实型常量 (1) 十进制小数形式 (2) 指数形式 2. 实型变量 2.2.3 字符型数据 1. 字符常量,2.2 基本数据类型,表2-2 转义字符及其含义,6 7 5 67 1 Liming 62621234,2.2 基本数据类型,2 L
4、ili 62621235 3 Wangli 62621236 2. 字符变量,图2-2 字符变量在内存中的存储,3. 字符串常量,2.3 运算符与表达式,1) 算术运算符 ( * / % + -) 2) 关系运算符 ( = ) 5) 赋值运算符 (= += -= *= /= %= &= |= = = =) 6) 条件运算符 (? :) 7) 逗号运算符 (,) 8) 指针运算符 (* &) 9) 求字节数运算符 (sizeof) 10) 特殊运算符 () .) 2.3.1 算术运算符与算术表达式 1. 基本的算术运算符,2.3 运算符与表达式,4 5 2. 自增,自减运算符 1) +i /*
5、i值自增1后再参与其他运算 */ 2) -i /* i值自减1后再参与其他运算 */ 3) i+ /* i参与运算后再将值自增1 */ 4) i- /* i参与运算后再将值自减1 */ 8 10 10 8 3. 算术表达式 2.3.2 关系运算符与关系表达式 1. 关系运算符 2. 关系表达式 2.3.3 逻辑运算符与逻辑表达式,2.3 运算符与表达式,1. 逻辑运算符 (1) 逻辑运算符和其他运算符优先级的关系 1) 逻辑运算符优先级从高到低的排列是: 2) 算术、关系、逻辑、赋值运算的优先级从高到低的排列是: (2) 逻辑运算的值,表2-3 逻辑运算的真值表,2. 逻辑表达式 2.3.4
6、条件运算符与条件表达式 5 16 12,2.3 运算符与表达式,2.3.5 赋值运算符与赋值表达式 1. 赋值运算符 2. 简单赋值运算符与赋值表达式 3. 变量赋初值 4. 类型转换 (1) 自动类型转换,2.3 运算符与表达式,表2-4 自动类型转换表,2.3 运算符与表达式,1) 若参与运算的运算量类型不同,则先转换成同一类型,然后进行运算。 2) 转换按数据长度增加的方向进行,以保证精度不降低。 3) 所有的实型运算都以双精度进行,即使仅含float单精度量运算的表达式,也要先转换成double型,再进行运算。 4) char型和short型参与运算时,必须先转换为int型量。 5)
7、在赋值运算中,赋值号两边的数据类型不同时,把赋值号右边的类型自动换成左边变量的类型。,305.000000,100,1,(2) 强制类型转换 1) 类型说明符和表达式都必须加括号(单个变量可以不加括号),如把(int)(x+y)写成(int)x+y则只将x转换成int型,然后再与y相加了。 2) 无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,原来变量的类型并未改变。 5. 复合赋值运算符及表达式 2.3.6 逗号运算符与逗号表达式 2.3.7 位运算符与位运算 1. “按位与”运算符(&) 2. “按位或”运算符(|) 3. “按位异或”运算符(),3
8、05.000000,100,1,4. “求反”运算符() 5. “左移”运算符() 7. “复合赋值”运算符 8. 位运算的优先级 9 位运算举例,2.4 习题,一、 写出下列各算式的C语言表达式 1. (sin2x)a+b/a-b 3. /4.1/2(ax+a+x/4a) 5. 6. 7. 3ae/cd8. 9. | x3+log10x| 10.对整型变量取反后右移4位。 二、 单选题 1. C语言中的标识符只能由字母,数字和下划线且第一个字符( 2. 自定义标识符中,符合C语言规定的是( 3. 设int 4. 下列关于文件包含命令的叙述正确的是( 5. 关于运算符优先顺序的描述中正确的是(
9、,2.4 习题,6. 判断char型变量ch是否为大写字母的正确表达式是( 7. 要求当A的值为奇数时,表达式的值为真;A的值为偶数时,表达式的值为假,以下不满足要求的表达式是( 8.下列程序段运行后变量z的二进制值是( 9. 假设所有变量均为整型,则表达式(a=2,b=5,b+,a+b)的值是( 10. 若有定义int 三、 填空题 1. 若int 2. 设有宏定义: 3. 若char 4. 设二进制数x的值是11001101,若想通过x&y运算使x中低四位不变,高四位清零,则y,2.4 习题,5. 设x=10100011,若要通过xy使x高四位取反,低四位不变,则y的二进制数是 6. 若有定义 四、 写出下列各程序段的运行结果 1. main() 2. main() 3. main() 4. main() 5. main() 五、 编程题 1. 编程求解鸡兔同笼问题:已知鸡兔共有头a只,脚b只,计算鸡兔各有多少只?,