欢迎来到天天文库
浏览记录
ID:50352373
大小:305.00 KB
页数:76页
时间:2020-03-08
《C语言程序设计实例教程(第2版)丁爱萍第4章 选择结构程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章选择结构程序设计4.1关系运算符及其表达式4.2逻辑运算符及其表达式4.3条件运算符4.4单条件选择if语句4.5开关分支switch语句习题44.1关系运算符及其表达式关系表达式是由关系运算符连接表达式构成的。1.关系运算符1)关系运算符关系运算符都是双目运算符,共有如下6种:>,<,>=,<=,==,!=分别是大于、小于、大于或等于、小于或等于、等于和不等于。2)运算符的优先级和结合性前4种关系运算符的优先级别相同,后2种也相同,前4种高于后2种。关系运算符具有自左至右的结合性。关系运算符、算术运算符和赋值运算符之间的优先级次序为
2、:算术运算符优先级最高,关系运算符次之,赋值运算符最低。2.关系表达式1)关系表达式由关系运算符组成的表达式称为关系表达式。关系运算符两边的运算对象可以是C语言中任意合法的表达式。例如,x>y,(x=5)<=y,x==y等。2)关系表达式的值关系表达式的值是整数0(代表结果为逻辑假)或1(代表结果为逻辑真),在C语言中不存在专门的“逻辑值”,此处请读者务必清楚。例如,关系表达式(x=3)>(y=4)的值为0。关系表达式常用在条件语句和循环语句中。3)举例一般情况下,关系表达式用在选择结构或循环结构的关系判断中,并不需要输出关系表达式的值,这
3、里我们为了了解关系表达式的内部运行机制,在例4-1中可以看到关系表达式的值只能是0或1。【例4-1】关系表达式示例。#include"stdio.h"main(){charx='m',y='n';intn;n=x4、符连接表达式构成的。1.逻辑运算符1)逻辑运算符C语言中提供了3种逻辑运算符。(1)单目逻辑运算符:!(逻辑非)。(2)双目逻辑运算符:&&(逻辑与)。(3)双目逻辑运算符:5、6、(逻辑或)。2)优先级和结合性逻辑与“&&”的优先级大于逻辑或“7、8、”,它们的优先级都小于逻辑非“!”。逻辑运算符具有自左至右的结合性。逻辑运算符、赋值运算符、算术运算符、关系运算符之间优先级的次序由高到低为!(逻辑非)、算术运算符、关系运算符、&&(逻辑与)、9、10、(逻辑或)、赋值运算符。2.逻辑表达式1)逻辑表达式由逻辑运算符组成的表达式称为逻辑表达式。逻辑运算符11、两边的运算对象可以是C语言中任意合法的表达式。2)逻辑表达式的值逻辑表达式的值为1(结果为“真”时)和0(结果为“假”时)。3)逻辑运算规则表达式a和表达式b进行逻辑运算时,其运算规则见表4-1。表4-1逻辑运算的真值表例如:ch>='A'&&ch<='Z'/*ch是大写字母时,表达式值为1,否则为0*/(year%4==0&&year%100!=0)12、13、year%400==0/*year为闰年时,表达式值为1,否则为0*/3.短路表达式在由&&和14、15、运算符组成的逻辑表达式中,C语言规定:只对能够确定整个表达式值所需要的最少数目的子表达式进16、行计算。也就是说,当计算出一个子表达式的值之后便可确定整个逻辑表达式的值时,后面的子表达式就不需要再计算了,整个表达式的值就是该子表达式的值。这种表达式也称为短路表达式。【例4-2】执行语句:inta=3,b=0;问下面表达式运算后,a和b的值是多少?(1)!a&&a+b&&a++(2)!a17、18、a++19、20、b++分析:(1)第一个表达式是一个由&&组成的逻辑表达式,从左至右计算3个子表达式,只要有一个为0,就不再计算其他子表达式。当计算!a的值为0时,便可确定整个表达式的值为0,因此后面的子表达式就不再计算了。所以,结果a的值为3,b的值为021、。(2)第二个表达式是一个由22、23、组成的逻辑表达式,从左至右计算3个子表达式,只要有一个结果为真,则不再计算后面的子表达式。第一个子表达式为!a,结果为0,再计算a++结果为4,因此就不再计算后面的子表达式了。所以,结果a的值为4,b的值为0。一般情况下,逻辑表达式用在选择结构或循环结构的关系判断中,并不需要输出逻辑表达式的值,这里我们为了了解逻辑表达式的内部运行机制,在下例中将要输出逻辑表达式的值,可以看到逻辑表达式的值只能是0或1。【例4-3】逻辑表达式示例。#include"stdio.h"main(){inta=3,b=4,c=5,x24、,y;printf("%d",a+b>c&&b==c);/*a+b>c的值为1,b==c的值为0*/printf("%d",a25、26、b+c&&b-c);/*a27、28、b+c的值
4、符连接表达式构成的。1.逻辑运算符1)逻辑运算符C语言中提供了3种逻辑运算符。(1)单目逻辑运算符:!(逻辑非)。(2)双目逻辑运算符:&&(逻辑与)。(3)双目逻辑运算符:
5、
6、(逻辑或)。2)优先级和结合性逻辑与“&&”的优先级大于逻辑或“
7、
8、”,它们的优先级都小于逻辑非“!”。逻辑运算符具有自左至右的结合性。逻辑运算符、赋值运算符、算术运算符、关系运算符之间优先级的次序由高到低为!(逻辑非)、算术运算符、关系运算符、&&(逻辑与)、
9、
10、(逻辑或)、赋值运算符。2.逻辑表达式1)逻辑表达式由逻辑运算符组成的表达式称为逻辑表达式。逻辑运算符
11、两边的运算对象可以是C语言中任意合法的表达式。2)逻辑表达式的值逻辑表达式的值为1(结果为“真”时)和0(结果为“假”时)。3)逻辑运算规则表达式a和表达式b进行逻辑运算时,其运算规则见表4-1。表4-1逻辑运算的真值表例如:ch>='A'&&ch<='Z'/*ch是大写字母时,表达式值为1,否则为0*/(year%4==0&&year%100!=0)
12、
13、year%400==0/*year为闰年时,表达式值为1,否则为0*/3.短路表达式在由&&和
14、
15、运算符组成的逻辑表达式中,C语言规定:只对能够确定整个表达式值所需要的最少数目的子表达式进
16、行计算。也就是说,当计算出一个子表达式的值之后便可确定整个逻辑表达式的值时,后面的子表达式就不需要再计算了,整个表达式的值就是该子表达式的值。这种表达式也称为短路表达式。【例4-2】执行语句:inta=3,b=0;问下面表达式运算后,a和b的值是多少?(1)!a&&a+b&&a++(2)!a
17、
18、a++
19、
20、b++分析:(1)第一个表达式是一个由&&组成的逻辑表达式,从左至右计算3个子表达式,只要有一个为0,就不再计算其他子表达式。当计算!a的值为0时,便可确定整个表达式的值为0,因此后面的子表达式就不再计算了。所以,结果a的值为3,b的值为0
21、。(2)第二个表达式是一个由
22、
23、组成的逻辑表达式,从左至右计算3个子表达式,只要有一个结果为真,则不再计算后面的子表达式。第一个子表达式为!a,结果为0,再计算a++结果为4,因此就不再计算后面的子表达式了。所以,结果a的值为4,b的值为0。一般情况下,逻辑表达式用在选择结构或循环结构的关系判断中,并不需要输出逻辑表达式的值,这里我们为了了解逻辑表达式的内部运行机制,在下例中将要输出逻辑表达式的值,可以看到逻辑表达式的值只能是0或1。【例4-3】逻辑表达式示例。#include"stdio.h"main(){inta=3,b=4,c=5,x
24、,y;printf("%d",a+b>c&&b==c);/*a+b>c的值为1,b==c的值为0*/printf("%d",a
25、
26、b+c&&b-c);/*a
27、
28、b+c的值
此文档下载收益归作者所有