资源描述:
《第5章c语言教程ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章选择结构程序设计选择结构是三种基本结构之一,特点是:根据指定条件:成立时执行一组操作,不成立时执行另一组操作。C中实现选择结构的语句:if语句和switch。5.1关系表达式和逻辑表达式5.1.1关系表达式1.关系运算符及其优先级关系运算是比较运算(判断两个表达式间的关系),结果:逻辑值“真”,即true,用非0表示;“假”,即false,用0表示关系运算符有6种:<、<=、>、>=:优先级为6级==、!=:优先级为7级算符优先级高,运算次序优先;结合性为从左到右1关系运算符和其它运算符优先级的比较:高算术运算符:*、/、%(3)+、-(4)关系运算符:
2、<、<=、>、>=(6)==、!=(7)逻辑运算符:!(2)&&(11)
3、
4、(12)低赋值运算符:=、+=、-=、*=、/=、%=(14)由于存在优先级,因此下面表达式是等价的:a>(a+b)a>a+b(a>b)!=ca>b!=ca==(bc)a=b>c关系表达式赋值表达式22.关系表达式关系表达式:用关系运算符将两个表达式(算术、关系、逻辑、赋值、字符)连接起来的式子。如:a>b、a+b>b+c、(a=3)>(b=5)'a'<'b'、(a>b)>(cb真a>b==c真b
5、+cbd的值为1f=a>b>cf值为0真:用1表示关系表达式的值是逻辑值假:用0表示35.1.2逻辑表达式逻辑表达式:用逻辑运算符将表达式连接起来的式子。1.逻辑运算符及其优先次序在c语言中,逻辑运算符有:1.逻辑与:&&优先级112.逻辑或:
6、
7、优先级123.逻辑非:!优先级2结合性,从左到右,双目结合性,从右向左,单目4布尔代数或:0+0=0与:0×0=0or0+1=1and0×1=01+0=11×0=01+1=11×1=1非:!1=0not!0=1a&&b:当a,b都为真时,结果为真,否则结果为假a
8、
9、b:当a,b都为假时,结果为假,否则结
10、果为真!a:当a为真时,结果为假,当a为假时,结果为真。52.逻辑表达式在逻辑表达式中参加运算的数据可以是常量、变量、表达式,非0值为真,0值为假,逻辑表达式的值是逻辑量,1为真,0为假。在一个逻辑表达式中,若包含多个逻辑运算符时,则运算顺序按运算符优先级的高低进行。如:下面表达式是逻辑还是关系表达式?①②③④⑤!a&&b
11、
12、x>y&&c6例:main(){inta=-5,i,j,k,l,m;floatb=0.01;i=!a;j=a&&b;k=a
13、
14、b;l=(5>3&&8<4-!0);m=‘a’<‘b’&&‘5’>‘9’;printf(“i=%d,j=%d,k
15、=%d,l=%d,m=%d”,i,j,k,l,m);}运行结果:i=0,j=1,k=1,l=0,m=07在计算逻辑表达式过程中,并不一定需要计算所有逻辑运算符。只要能确定表达式的逻辑值,即结束表达式计算。(1)逻辑与运算符:&&如有逻辑表达式:a&&b&&c执行过程是:当a为0时,b和c不用再判断了,逻辑与运算符将不再执行,结果为0,否则还要继续后边的运算。abc0(假)非0(真)0(假)非0(真)1(真)0(假)0(假)8(2)逻辑或运算符:
16、
17、如有逻辑表达式:a
18、
19、b
20、
21、c执行过程是:当a为非0时,b和c不用再判断了,逻辑或运算符将不再执行,其结果为
22、1,否则继续执行后面的运算。abc0非0(真)非0(真)非0(真)0(假)1(真)09例:voidmain(){inta,b=0,c=0,d;scanf(“%d”,&a);d=a&&(b=5)&&(c=3);printf(“a=%d,b=%d,c=%d,d=%d”,a,b,c,d);}输入:1输入:0输出:a=1,b=5,c=3,d=1输出:a=0,b=0,c=0,d=010例:voidmain(){inta,b=0,c=0,d=0;scanf(“%d”,&a);d=a
23、
24、(b=5)
25、
26、(c=3);printf(“a=%d,b=%d,c=%d,d=%d
27、,”,a,b,c,d);}输入:1输入:0输出:a=1,b=0,c=0,d=1输出:a=0,b=5,c=0,d=111在C中,巧妙地使用逻辑表达式,可以表示一个复杂的问题如:关于闰年问题:符合下列条件之一,均为闰年。(1)能被4整除并且不能被100整除(2)能被4整除并且能被400整除其逻辑表达式为:(year%4==0&&year%100!=0)
28、
29、(year%400==0&&year%4==0)由于能被400整除的年份一定能被4整除,所以可省去后一部分,即:(year%4==0&&year%100!=0)
30、
31、(year%400==0)若判断非闰年,
32、只在闰年表达式前加!,即:!(year