《《C语言程序设计》课件——第三章.ppt》由会员分享,可在线阅读,更多相关《《C语言程序设计》课件——第三章.ppt(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第三章 数据类型、运算符和表达式2第三章 数据类型、运算符和表达式n第一节 C的数据类型n第二节 常量n第三节 变量n第四节 算术运算符和算术表达式n第五节 赋值运算符和赋值表达式n第六节 逗号运算符和逗号表达式n第七节 各类数据间的混合运算第三章 数据类型、运算符和表达式3第一节 C的数据类型n基本类型 整型 字符型 实型(浮点型) 单精度、双精度n构造类型 数组类型 结构体类型 共用体类型n指针类型n空类型第三章 数据类型、运算符和表达式4第二节 常量 Constantsn2.1 符号常量n2.2 整型常量n2.3 实型常量n2.4 字符型常量n2.5 字符串常量第三章 数据类型、运算符和
2、表达式52.1 符号常量 用一个标识符代表一个常量 #define PI 3.14159 main( ) float r,s,area; scanf(%f,&r); s=2*PI*r; area=PI*r*r; printf(s=%7.2f,area=%7.2f,s,area); 第三章 数据类型、运算符和表达式6三种形式表示: 十进制:如 123 -60 0 八进制:以0开始,如 0123 十六进制:以0 x开始,如0 x1232.2 整型常量 Integer constant第三章 数据类型、运算符和表达式72.3 实型常量 Floating-point constantsn小数形式:如
3、123.0 .123 0.0 12.5n指数形式:如123e2 123E2第三章 数据类型、运算符和表达式8单引号括起来的一个一个字符。如: a 字符常量的值是一个数字值。如字符常量 0 ,其ASCII为48,所以存储的实际值为48。字符常量可以象整数一样参与运算。 2.4 字符型常量 Character constant第三章 数据类型、运算符和表达式9转义字符 功能 转义字符 功 能 a 响铃 反斜杠字符 b 退一格 单引号字符 f 走纸换页 双引号字符 n 换行 ? 问号 r 回车 ooo 13位8进制数代表的字符 t 横向跳格 xhh 12位16进制数代表的字符 第三章 数据类型、运算
4、符和表达式10 main() char c1=101,c2= x42; printf(atbctbABCn); printf(xyzt%c %c,c1,c2); 结果?结果?a bc ABC xyz A B 第三章 数据类型、运算符和表达式11main()printf(abctderftgn);printf(htibbjk);结果?结果?打印机上的结果:fabcgdehjik 显示屏上的结果:fgdehjk 第三章 数据类型、运算符和表达式12双引号括起来的字符序列。 如How are you,0等字符串在存储时末尾被自动加上字符0字符常量与只包含一个字符的字符串常量的区别2.5 字符串常量第
5、三章 数据类型、运算符和表达式13第三节 变量 Variablen3.1 变量的概念n3.2 变量名n3.3 整型变量n3.4 实型变量n3.5 字符型变量第三章 数据类型、运算符和表达式143.1 变量的概念n程序运行过程中其值可以改变的量,系统为程序中的每一个变量开辟一个存储单元,如: main( ) int a; a=2; printf(a=%dn,a); a=4; printf(a=%dn,a); 程序运行结果?第三章 数据类型、运算符和表达式153.2 变量名 标识符:用来标识变量名、符号常量名、数组名、函数名、文件名的有效字符序列。关键字预定义标识符用户定义标识符 字母或下划线开头
6、,后跟字母、数字和下划线组成。 变量要先定义后使用第三章 数据类型、运算符和表达式16n下列字符串中可以做C语言程序中的标识符的有哪些? print _3id oodb Iam 3pi Line# str_1 His.age while aBc第三章 数据类型、运算符和表达式173.3 整型变量1、分类Fint 整型Fshort int(或short) 短整型Flong int(或long) 长整型Funsigned int 无符号整型Funsigned short 无符号短整型Funsigned long 无符号长整型第三章 数据类型、运算符和表达式182、各类型数据长度、取值范围各类型数据
7、长度、取值范围n n 所占位数所占位数 取值范围取值范围 nint 16 -3276832767 nshort 16 -3276832767nlong 32 -21亿亿21亿亿nunsigned int 16 065535 nunsigned short 16 065535 nunsigned long 32 042亿亿 第三章 数据类型、运算符和表达式193、整型变量的定义n所有的变量需先定义类型int a,b,c; /*指定a,b,c为整型变量*/unsigned lower; /*指定lower为无符号整型变量*/long s;n有些变量可以预先设置初值:int a=0,b,c; /*指
8、定a,b,c为整型变量,a的初值为0*/int a=0,b=0,c=0; /*指定a,b,c为整型变量,a、b、c的初值为0*/第三章 数据类型、运算符和表达式203.4 实型变量1、分类 所占位数所占位数 取值范围取值范围Ffloat 单精度 32 -3.4*10-38 3.4*1038 Fdouble 双精度 64 -1.7*10-308 1.7*10308 Flong double长双精度 128 -1.2*10-4932 1.2*1049322、变量的定义float x,y; /*指定x,y为单精度实型变量*/double z; /*指定z为双精度实型变量*/第三章 数据类型、运算符和
9、表达式213.5 字符变量1、变量的定义char c1,c2; /*指定c1,c2为字符型变量*/2、字符型数据的存储以ASCII码存储,存储形式与整型一样,可以和整数进行运算main()char c1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(“%c,%cn”,c1,c2);printf(“%d,%dn”,c1,c2);结果:A,B 65,66第三章 数据类型、运算符和表达式22第四节 算术运算符和算术表达式Arithmetic Operations and Expressions4.1 基本算术运算符4.2 运算符的优先级和结合性4.3 自增、自减运算符第
10、三章 数据类型、运算符和表达式234.1 基本算术运算符(加法运算或正号运算符)(减法运算或负号运算符)* (乘法运算符)(除法运算符)% (求余运算符,或称模运算符)第三章 数据类型、运算符和表达式24从左到右从左到右4.2 运算符的优先级和结合性n算术表达式 用算术运算符和括号将运算量连接起来的式子称为算术表达式。n运算符有优先级和结合性 在求表达式的值时,要按照优先级的高低依次计算 如果运算符两侧优先级相同,则按规定的结合方向进行。n结合性第三章 数据类型、运算符和表达式25- (负号运算符)* / % + - (加减运算符) 我最高! 我最低!第三章 数据类型、运算符和表达式264.3
11、 自增、自减运算符n+运算符的作用是使变量的值增1。n-运算符的作用是使变量的值减1。n常见的用法有:+i , -i 在使用i前,使i的值加(减)1i+ , i- 在使用i后,使i的值加(减)1第三章 数据类型、运算符和表达式27n已知 i=5(1)j=i+; j=? i=? (2)j=+i; j=? i=? 5666第三章 数据类型、运算符和表达式28注意: 1、自增和自减运算符只能用于变量,表达式 (x+y)+是不合法的。2、自增和自减运算符的结合方向是“自右向左”。如表达式 -i+ 等价于 -(i+)还是等价于 (-i)+?。3、(i+)+(i+)+(i+)结果?4、(+i)+(+i)+
12、(+i)结果?5、i+j是(i+)+j还是i+(+j)?6、printf(“%d”,i,i+)结果第三章 数据类型、运算符和表达式29第五节 赋值运算符和赋值表达式n5.1 赋值运算符n5.2 复合的赋值运算符n5.2 赋值表达式第三章 数据类型、运算符和表达式305.1 赋值运算符n简单的赋值就是把一个表达式的值赋给一个变量。 例如: i = 5 i = j + 1第三章 数据类型、运算符和表达式315.2 复合的赋值运算符n在赋值符“=”之前加上其它运算符,可以构成复合的运算符。n例如:i + = 2 等价于 i = i + 2 a * = b + 5 等价于 a = a * (b + 5
13、)x% = 3 等价于 x = x%3第三章 数据类型、运算符和表达式325.3 赋值表达式n由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。n形式: 变量赋值运算符表达式 例如:x=3 y=x+3 n对赋值表达式求解的过程是:将赋值运算符右侧的表达式的值赋给左侧的变量。赋值表达式的值就是被赋值的变量的值。n结合性从右向左从右向左第三章 数据类型、运算符和表达式33n注意:n一般形式的赋值表达式中的“表达式”又可以是一个赋值表达式。如: a=b=8按照从右到左的结合性等价于a=(b=8)n赋值表达式也可以包含复合的赋值运算符。n设a的值为6,计算a+=a-=a*a 先进行a*a
14、的计算,结果为36 再进行a-=36的计算,相当于a=a-36=-30 最后进行a+=-30的计算,相当于a=a-30=-60 第三章 数据类型、运算符和表达式34第六节 逗号运算符和逗号表达式n在逗号表达式中,逗号是一种运算符。n形式如下 表达式表达式1 1,表达式,表达式2 2n由逗号隔开的一对表达式从左向右进行计算,其求解过程为:先求解表达式1,再求表达式2,整个逗号表达式的值是表达式2的值。n逗号运算符是所有运算符中级别最低的。第三章 数据类型、运算符和表达式35n例如 a=4*6,a+5 整个逗号表达式的值为29。n注意一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式,例如:
15、 (a=4*6,a+5),a+6 整个表达式的值为30还是35。第三章 数据类型、运算符和表达式36第七节 各类数据间的混合运算nC语言允许数据值从一种类型转换成另一种类型。在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则按图所示。 n高 double float long unsigned 低 int char, short f为float,d为double,e为long,i为int10aifd/e第三章 数据类型、运算符和表达式37n说明: 横向向左的箭头表示当运算对象为不同类横向向左的箭头表示必定的转换,如字符型(char)数据和短整型(short)数据必定先转换
16、成整型(int),以提高运算精度。 纵向的箭头表示当运算对象为不同类型时转换的方向型时转换的方向。数据总是由低级别向高级别转换。第三章 数据类型、运算符和表达式38nC语言提供一种“强制类型转换”运算符,将一个类型的变量强制转换为另一种类型。n一般形式为: (类型标识符)(表达式)n例如: k=(int)(int)x+(float)i) /*得到整型数*/ (float)(x=85) /*得实型单精度数*/第三章 数据类型、运算符和表达式39n例如 若x原为实型变量且值为2.6,在执行 i=(int)x 后得到一个整数2,并把它赋给整型变量i,但x仍为实型,值为2.6。第三章 数据类型、运算符
17、和表达式40n作业三n1)下列正确的转义字符()na)d b)0 xf c)o37 d)fn2)下列不正确的浮点描述()na)223. b).719e22 c)1e23 d)12e2.0n3)已知char a;int b; float c; double d;n则表达式2a9*b*5*c-5*d的结果是()na)double b)int c)float d)char第三章 数据类型、运算符和表达式41n4)字符型常量在内存中存放的是该字符对应的()na)ASCII代码值 b)BCD代码 n c)内码值 d)十进制代码值n5)一个C语言程序总是从()开始执行na)主函数 b)子函数 c)主程序 d)子程序n6)若已经定义x,y为double类型,n 则表达式x1,yx3/2的数值()nA)1 b)2 c)2.0 d)2.5第三章 数据类型、运算符和表达式42n7)在c语言中可以用()进制、()进制、()进制表示整型常量。n8)下列合法的用户定义标识符号(或变量名称)是()na)int b)a¥ c)5man d) 382n9)运行结果 main() int i=3,j=3; printf(“i=%d,j=%dn”,i+,j+); 结果 i(),j()