3、
4、逻辑非!XX&&YYXYX
5、
6、YX!X4.2、逻辑运算符和逻辑表达式§4选择结构程序设计5逻辑与&&逻辑或
7、
8、逻辑非!(x>1)&&(y>1)(x>1)
9、
10、(y>1)(x>1)!(x>1)即x<=1逻辑运算符的含义§4选择结构程序设计6逻辑表达式逻辑表达式:用逻辑运算符将逻辑运算对象连接
11、起来的式子。(ch>='a')&&(ch<='z')判断ch是否为小写英文字母或:ch>='a'&&ch<='z'(ch>='a'&&ch<='z')
12、
13、(ch>='A'&&ch<='Z')判断ch是否为英文字母§4选择结构程序设计7优先级:逻辑非!(2)&&(11)
14、
15、(12)结合性:!—右结合&&、
16、
17、—左结合举例:①!(5%3)结果为0②‘c’&&‘d’结果为1③判断闰年:(year%4==0&&year%100!=0)
18、
19、(year%400==0)④假设num=12,则:!num的值=0,num>=1&&num<=31的值=1,num
20、
21、num>31的值=1。。⑤5>3&&2
22、
23、
24、8<4-!0按规则计算步骤如下:(1)!01(2)4-13(3)5>31(4)8<30(5)1&&21(6)1
25、
26、01但&&、
27、
28、运算符是短路运算符,⑤实际计算不是这样。§4选择结构程序设计8&&、
29、
30、运算符的短路特点:&&—从左到右扫描,只要有一个表达式为F,则全式为0。
31、
32、—从左到右扫描,只要有一个表达式为T,则全式为1。例如:若x=y=z=-1;求下列表达式的结果。①++x&&++y&&++z结果为:0x=0,y=-1,z=-1②++x&&++y
33、
34、++z结果为:0x=0,y=-1,z=0③++x
35、
36、++y&&++z结果为:0x=0,y=0,z=-1④++x
37、
38、++y
39、
40、
41、++z结果为:0x=0,y=0,z=0⑤假设n1、n2、n3、n4、x、y的值分别为1、2、3、4、1、1,则求解表达式“(x=n1>n2)&&(y=n3>n4)”后,x的值变为0,而y的值不变,仍等于1§4选择结构程序设计94.3、if语句一、if语句的三种形式格式:(1)if(表达式)语句;(2)if(表达式)语句1;else语句2;(3)if(表达式1)语句1;elseif(表达式2)语句2;elseif(表达式3)语句3;else语句n;功能:表达式的值非零,执行语句。§4选择结构程序设计101.If语句的三种基本形式(1)if(表达式)语句例:if(x>y)printf(“%
42、d”,x);表达式语句真(非0)假(0)§4选择结构程序设计11(2)if(表达式)语句1else语句2例:if(x>y)printf(“%d”,x);elseprintf(“%d”,y);条件语句1语句2YN§4选择结构程序设计12(3)if(表达式1)语句1elseif(表达式2)语句2elseif(表达式3)语句3……elseif(表达式m)语句melse语句n§4选择结构程序设计if((ch>='a'&&ch<='z')
43、
44、(ch>='A'&&ch<='Z'))letter++;elseif(ch>='0'&&ch<='9')digit++;elseother++;13if(y<0
45、)y=-y;(求y的绝对值)main(){inta;scanf(〞%d〞,&a);if(a>=0)printf(〞%dispositive〞,a);elseprintf(〞%disnegative〞,a);}main(){inta,b,c;scanf(〞%d%d〞,&a,&b);if(a>=b){c=a*b;printf(〞%d*%d=%d〞,a,b,c);}else{c=a/b;printf(〞%d/%d=