C语言程序设计第三章 课件

上传人:我*** 文档编号:142089000 上传时间:2020-08-16 格式:PPT 页数:46 大小:115.50KB
返回 下载 相关 举报
C语言程序设计第三章 课件_第1页
第1页 / 共46页
C语言程序设计第三章 课件_第2页
第2页 / 共46页
C语言程序设计第三章 课件_第3页
第3页 / 共46页
C语言程序设计第三章 课件_第4页
第4页 / 共46页
C语言程序设计第三章 课件_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《C语言程序设计第三章 课件》由会员分享,可在线阅读,更多相关《C语言程序设计第三章 课件(46页珍藏版)》请在金锄头文库上搜索。

1、第三章 数据类型、运算符与表达式,计算机科学系,第三章 数据类型、运算符和表达式,3.1 C语言的数据类型 3.2 C语言的运算符和表达式,3.1 C语言的数据类型,3.1.1 语言的数据类型简介 3.1.2常量与变量 3.1.3整型数据 3.1.4实型数据 3.1.5字符型数据 3.1.6变量赋初值 3.1.7各类数值型数据之间的混合运算,3.1.1 语言的数据类型简介,3.1.2 常量和变量,常量:程序运行中其值保持不变的量。 符号常量:用一个标识符表示的一个常量。 定义格式: #define 标识符常量 例如:#define PI 3.1415926 说明: 符号常量名习惯用大写字符表示

2、; 该命令通常放在文件头; 在程序中,符号常量不允许重新赋值。,符号常量的使用,例3.1计算半径为r的圆的周长 #define PI 3.1415926 main() float r, s; scanf(%f, ,变量,变量:在程序运行中其值会发生变化的量。 C语言规定:变量必须先定义,后使用。 变量定义的格式: 变量类型说明符 变量名1 ,变量名2,; 说明: 1)变量名:为一个标识符,通常用小写字母表示; 2)变量类型:由变量类型说明符说明; 3)变量值:通过初始化、赋值获得的。,3.1.3整型数据,整型常量 按进位计数制分 十进制整型数; 八进制整型数:以数字0开头的;如:015(十进制

3、为13) 十六进制整型数:以0 x开头的,如:0X2A(十进制为42) 按整型常量在内存中所占字节数分 基本整型:2字节 短整型:2字节 长整型:4字节,用后缀L/l表示,如:158L 无符号整型数: 2字节,用后缀U/u表示无符号整型数。 无符号长整型数: 4字节,用后缀LU/lu表示无符号长整型数。,整型变量,变量定义,允许在一个类型说明符后,定义多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。 最后一个变量名之后必须以“;”号结尾变量定义必须放在变量使用之前。 一般放在函数体的开头部分。,整型变量的定义和使用,main() int a,b,c; /*

4、 指定a,b,c为整形变量 */ unsigned u; /* 指定u为无符号整形变量 */ a=20;b=40;c=30; u=a+b+c; printf(The value of u is %d.n,u); 运行结果: The value of u s 90,实型数据,实型常量 以十进制数形式表示:由数字与小数点组成。 如 1.23,-123.,0.0123,.0,0. 。 以指数形式表示,其格式: m.nE|es 如合法的实型常量 1E-5,.1234e12,2.e0,6.5E-15。 非法的实型常量 E-5,.1234e1.2,2.e,6.5E 。,实型变量,数符 小数部分 指数,1、

5、实型数据在内存中的存放形式,2、实型变量的分类,3.1.5 字符型数据,字符常量:是用单引号括起来的一个字符。 如 a,9, 合法字符常量 ”a”,99 则不是合法字符常量。 转义字符:以“”开头的字符序列,在程序中有特定的含义。 如 转义字符n表示回车换行, 转义字符t表示在横向跳到下一个Tab位置, 转义字符“表示输出一个双引号等。 详细的可看书P34 表3.3。,字符变量,字符变量:用来存放字符常量的变量,其类型说明符为char。 例如:char c1,c2; c2=a; 存储特点: 将一个字符常量存放在一个字符变量中,实际上是将该字符常量的ASCII代码值放在存储单元中,其存储形式与整

6、数的存储形式相同。 字符数据与整型数据可相互赋值,直接运算。,字符串常量,字符串常量:用一对双引号括起来的字符序列。 如 ”a”,” 1 ”, ”123”。 字符串长度:字符串中所有字符的个数。 C语言规定: 在每个字符串的结尾加上一个0,以判断字符串是否结束。0 是一个ASCII码为0的字符。 注意比较: A与”A”的区别。,3.1.6 变量赋初值,变量的初始化是指在定义变量时给变量赋值,这个值称为变量的初值。 格式: 类型说明符 变量1=常数1,变量2=常数2,; 例: int a=5; char c1=a, c2=B; float f1=3.14, f2=5.78e-6;,3.1.7各类

7、数值型数据之间的混合运算,当表达式中的各类数值型数据参与混合运算时,要进行类型转换。 转换方式 自动转换:数据类型自动由低级向高级转换。 强制转换:将表达式的运算结果强制转换成指定的数据类型。,自动转换,自动转换规则:,自动转换举例,例3.15: main() float PI=3.14159; int s,r=5; s=r*r*PI; printf(s=%dn,s); 运行结果: s=78,强制类型转换,格式: (数据类型说明符)(表达式) 注意: 1)强制转换属单目运算,运算优先级为2。 2)强制转换得到的是中间变量类型,原变量类型不变。 例:int x, y; float z; (flo

8、at)(x+y); (int)z+x;,强制类型转换举例,例3.19: main() float f=5.75; printf(“f=%d,f=%fn,(int)f,f); 运行结果: f=5,f=5.750000,3.2 C语言的运算符和表达式,3.2.1 C语言的运算符简介 3.2.2 算术运算符表达式 3.2.3 赋值运算符和赋值表达式 3.2.4 逗号运算符和逗号表达式 3.2.5 关系运算符和关系表达式 3.2.6 逻辑运算符和逻辑表达式 3.2.7 位运算符和位运算表达式,3.2.1 C语言的运算符简介,运算符的分类 (1) 算术运算符 (2)关系运算符 (3)逻辑运算符 (4)位

9、操作运算符 (5) 赋值运算符 (6)条件运算符 (7)逗号运算符 (8) 指针运算符 (9)求字节数运算符 (10)特殊运算符,运算符的优先级与结合性 优先级 分为115级 ()优先级最高 结合性 从左至右 从右至左 详见附录B,3.2.2 算术运算符表达式,一、算术运算符: 算术运算符用于各类数值运算。包括基本算术运算符、自增运算符、自减运算符。下表为基本算术运算符。,例3.20 读程,main() printf(nn%d,%dn,20/7,-20/7); printf(%f,%fn,20.0/7,-20.0/7); ,程序运行输出: 2,-2 2.857143,-2.857143,二、算

10、术表达式,表达式:由常量、变量、函数和运算符组成的式子。 运算规则:由运算符的优先级和结合性确定。 算术表达式:用算术运算符连接起来的式子。 类别: 单目运算,运算优先级为2 运算符: + 使变量的值增 1 - 使变量的值减 1,三、自增、自减运算,结合性及执行过程: 后缀 左结合 i 例:a=5; printf(“a=%d”,a+); 前缀 右结合 i I 例:a=5; printf(“a=%d”,+a);,三、自增、自减运算,注意: 自增、自减运算只能用于变量,不能用于常量和表达式。 例 +6, +(a+b)均为非法的运算 表达式 x+y 等价于(x+)+y。 自增、自减运算符的运算顺序。

11、,例3.22 读程,main() int i=8; printf(%dn,+i); printf(%dn,-i); printf(%dn,i+); printf(%dn,i-); printf(%dn,-i+); printf(%dn,-i-); ,程序运行结果: 9 8 8 9 -8 -9,main() int i=5,j=5,p,q; p=(i+)+(i+)+(i+); q=(+j)+(+j)+(+j); printf(%d,%d,%d,%d,p,q,i,j); ,例 3.23,程序运行结果: 15,24,8,8,例3.25,main ( ) int a, b, c; a=b=c=0; a

12、=+b + +c; /* b, c 均先增1,后相加,b=c=1,a=2 */ a=b+ + c+; /* b,c 先相加,后均增1 ,a=2,b=c=2*/ a=+b + c+;/* b先增1和 c 相加,后 c再增1,b=3,a=5,c=3*/ a=b- + -c; /* c 先减1和 b 相加,后 b减1,a=5,b=2,c=2 */ printf(“ %d,%d,%dn ”,a, b, c); ,程序输出: 5, 2, 2,3.2.3 赋值运算符和赋值表达式,赋值运算符分两种: 简单赋值运算符:= 复合赋值运算符:如 +=、-=、*=、/=、%= 等。 若用”op=”代表复合赋值运算符

13、,”op”表示复合赋值运算符的第一个运算符。 运算优先级为14,右结合性。,赋值表达式,赋值表达式:由赋值运算符连接起来式子。 作用:将表达式的值赋给变量。 格式: 1) 变量 = 表达式 如:x=a+b; 2) 变量 OP= 表达式 等价于 变量 = 变量 OP 表达式 如:a+=5; 等价于 a=a+5; 如: a=b=c=5等价于 a=(b=(c=5) 如: X=(a=5)+(b=8); 注意:当赋值运算符两侧数据的类型不一致时,应对右侧的数据进行转换,使之与左侧的变量类型相同。,例3.26,main() int a,b=322; float x,y=8.88; char c1=k,c2

14、; a=y; /*a=8 */ x=b; /* x=322.000000*/ a=c1; /* a=107*/ c2=b; /* b=1 01000010 低8位为66*/ printf(%d,%f,%d,%c,a,x,a,c2); ,程序运行结果: 107,322.000000,107,B,例3.27,main ( ) int a,b,c,d,e; a=b=c=d=30; e=32; printf(“a+3=%dn ”,a += 3); printf(“b-3=%dn ”,b -= 3); printf(“c*3=%dn ”, c *= 3); printf( “d/3=%dn ”, d /

15、= 3); printf( “e%3=%dn ”,e %= 3); printf( “%d,%d,%d,%d,%dn ”, a, b, c, d, e); ,程序运行结果: a+3=33 b-3=27 c*3=90 d/3=10 e%3=2 33,27,90,10,2,3.2.4逗号运算符和逗号表达式,逗号运算符,或称顺序求值运算符 运算符:, 运算优先级:最低,15级 结合性:左结合 逗号表达式:由逗号运算符连接起来的两个或两个以上的表达式。 逗号表达式的格式: 表达式1,表达式2, ,表达式n 求解过程:先求表达式1的值,再求表达式2的值,直至求出表达式n的值。整个表达式的值为表达式n的值

16、。,例3.29,main() int a=2,b=4,c=6,x,y; y=(x=a+b),(b+c); printf(y=%d,x=%d,y,x); ,程序运行结果: y=6,x=6 (书上有误),例3.30,main ( ) int a, b, c; a=1, b=2, c=3; printf(“%d,%d,%dn ”, a, b, c); printf(“%d,%d,%dn”,(a,b,c),b,c); a=(c=0,c+5); b=(c=3,c+8); printf(“ %d,%d,%dn ”,a, b, c); ,程序运行结果: 1, 2, 3 3, 2, 3 5, 11, 3,3.2.5关系运算符和关系表达式,关系运算符:比较两个量的大小关系 运算符:,=, =,!= 前4种关系运算符的优先级相同,后两种也相同,但前4种高

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号