2、b>ca=(b>c)例如:c>a+bc>(a+b)4.1.2.2关系表达式及关系表达式的值关系表达式的结果值规定为1或0.1––结果为真(成立)0––结果为假(不成立)定义:用关系运算符将两个表达式(算术、关系、逻辑、赋值、字符等表达式)连接起来的式子。如:a=6、b=12、c=2.a>b值为“0”;a+b>b 值为“1”(a=3)>(b=5)值为“0”;‘a’>‘b’ 值为“0(详见附录7)思考一下:(a>b)>(bb)==c成立1b+cb则a>b值为1,所以d=1.
3、f=a>b>ca>b为1,a>b>c为0,所以f=0.关系运算为左结合4.1.3逻辑运算符和逻辑运算表达式(p36)逻辑运算符:&&(与)、‖(或)、!(非)ab!a!ba&&ba‖b真真假假真真真假假真假真假真真假假真假假真真假假其意义见下表:a&&b当a,b均为1时,才为1a‖b当a,b中有一个为1时,即为1!a当a为1,!a为0,反之为1.由此看到:‖和&&为双目运算符.!为单目运算符。优先级定义:2.&&和‖低于关系运算符,!高于算术运算符。1.!(非)优先于&&(与),&&优先于‖(或)。即:!&&‖例:!a&&b‖x>y&&c(
4、!a)&&b‖(x>y)&&c((!a)&&b)‖((x>y)&&c)高 低1.逻辑表达式的值与关系表达式值一样,真为1,假为0。例:a=4则!a值为0.此处只要a0,为真.则!a值为0.a=4,b=5a&&b为1前面已定义了逻辑表达式,以下看一看逻辑表达式的值及具体的运算。4&&0
5、
6、2为1.总之,在逻辑运算中,非0值参加逻辑运算时被看成1处理.a=4,b=5a
7、
8、b为1a=4,b=5!a
9、
10、b为12.一个逻辑表达式中的逻辑运算符并不是一定全部执行.一个实际的例子:判断年号是否为闰年。如:a&&b&&c.则当a=0(假
11、)时,b,c不需判断。当a=1,b=0,则不需判c.又如:a
12、
13、b
14、
15、c.当a=1时,b,c均不必判别。闰年的定义:能被4整除且又能被400整除。年号能被4整除但不能被100整除。当(year%4!=0)¦¦(year%100==0&&year%400!=0)为1时,year为非闰年。设用变量year表示年号则当((year%4==0&&year%100!=0)
16、
17、year%400==0)为1时,year为闰年,否则为非闰年。如果要判别非闰年可在上述表达式前加非(!)运算符.即:当!((year%4==0&&year%100!=0)
18、
19、yea
20、r%400==0)为1时,year为非闰年。或者:§4.2if语句–––条件判断4.2.1if语句的三种形式功能:当表达式值非0时,执行语句A,否则不执行语句A.表达式语句A例如:if(x>y)printf("%d",x)形式1if(表达式)语句A其流程图:=0!=0#includemain(){floata,b,t;scanf("%f,%f",&a,&b);if(a>b){t=a;a=b;b=t;}printf("%5.2f,%5.2f",a,b);}例子:输入两个实数,按代数值由小到大次序输出这两个数。3.6,–3.2
21、–3.20,3.60运行情况如下:形式2:if(表达式)语句Aelse语句B功能:表达式为非0,执行语句A表达式为0,执行语句B例:if(x>y)printf("%d",x);elseprintf("%d",y);表达式语句A语句B!=0=0例子1:输入两个数,分别赋给x和y,输出其中一个最大的数。#includemain(){intx,y;scanf("%d%d",&x,&y);if(x>y)printf("max=x=%d",x);elseprintf("max=y=%d",y);}例子2:从键盘输入一个数,判断它是
22、否能被7整除。若能被7整除,打印YES,否则打印NO。#includemain(){inti;printf("inpu