4、5<3)+(y-x==1);printf(“%d”,n);}程序执行结果为:1124.1.3逻辑运算符和逻辑表达式1.逻辑运算符(1)逻辑运算符C语言提供了3种逻辑运算符:单目逻辑运算符:!(逻辑非)双目逻辑运算符:&&(逻辑与)、
5、
6、(逻辑或)(2)优先级和结合性优先级:逻辑非“!”>逻辑与“&&”>逻辑或“
7、
8、”结合性:自左至右2.逻辑表达式(1)逻辑表达式由逻辑运算符组成的表达式称为逻辑表达式,逻辑运算符两边的运算对象可以是C语言中任意合法的表达式。如:ch>=‘A’&&ch<=‘Z’(year%4==0&&year%100!=0)
9、
10、year%
11、400==0逻辑运算符与赋值运算符、算术运算符、关系运算符之间从高到低的运算优先级次序是:!>算术运算符>关系运算符>&&>
12、
13、>赋值运算符短路表达式:在由&&和
14、
15、运算符组成的逻辑表达式中,C语言规定:只对能够确定整个表达式值所需要的最少数目的子表达式进行计算。例如:inta=3,b=0;!a&&a+b&&a++!a
16、
17、a++
18、
19、b++(3)逻辑运算规则(2)逻辑表达式的值逻辑表达式的值为1(结果为“真”时)或0(结果为“假”时)。例4-2:输出逻辑表达式的值。#include”stdio.h”main(){inta=3,b=4,c=5,x,y;prin
20、tf(“%d”,a+b>c&&b==c);printf(“%d”,a
21、
22、b+c&&b-c);printf(“%d”,!(a>b)&&!c
23、
24、1);printf(“%d”,!(x=a)&&(y=b)&&0);printf(“%d”,!(a+b)+c-1&&b+c/2);}程序运行结果:011011.已有定义:intx=3,y=4,z=5;则表达式!(x+y)+z-1&&y+z/2的值是()A)6B)0C)2D)1D2.有以下程序:main(){inti=1,j=1,k=2;if((j++
25、
26、k++)&&i++)printf(“%d,%d,
27、%d”,i,j,k);}执行后输出结果是()A)1,1,2B)2,2,1C)2,2,2D)2,2,3C练习:3.有以下程序:main(){inta=1,b=2,m=0,n=0,k;k=(n=b>a)
28、
29、(m=a
30、的值就是整个表达式的最终结果;否则条件为假时表达式3的值就是整个表