关系运算符是一个高频考点,往往题目难度不大,但是正确并不是特别高,最主要的原因在于不理解关系运算的优先级和结合性。
关系运算符只有这么几种:
>、< 、 >=、<=、==、!=
他的比较结果更简单,只有两种结果:
(资料图)
01
参考答案
C
0
1
A
考点解析
运算符的优先级,这个必须记忆关系运算符的优先级关系运算的结果第一题
关系运算符的优先级,没有算术运算符高,但是比赋值运算符高。
第二题
虽然没有给变量a初始化赋值,但是不影响结果
printf("%d", a + 10 < 20 != 0 == 0 <= a - 10);
在这个表达式中,首先计算a+20,虽然不知道是多少,但是并不影响变量a的值,一直没变。
当a>10,则a + 10 < 20为0,0 <= a - 10为1,a + 10 < 20 != 0为0,a + 10 < 20 != 0 == 0 <= a - 10为0,这就是优先级的作用,先算0 <= a - 10当a<10,则a + 10 < 20为1,0 <= a - 10 为0,a + 10 < 20 != 0 为1,a + 10 < 20 != 0 == 0 <= a - 10为0第三题
printf("%d", fabs(1.0/3*3 - 1) <= 1.0E-6);
1.0/3*3 - 1=1.0
fabs(1.0/3*3 - 1)=0
fabs(1.0/3*3 - 1) <= 1.0E-6为1
第四题
a+=b 2>c+5?b+=2:c=2;
等价于
a+=((b 2)>(c+5)?(b+=2):(c=2));
b*2为4c+5 为 8a+=b*2>c+5 为 0c*=2 为 c=6a+=b 2>c+5?b+=2:c=2 为a=7赋值运算符的优先级最低,最后计算
关系运算符的测试程序
#include < stdio.h >#include < math.h >int main(){ int a=1,b=2,c=3; a+=b*2 >c+5?b+=2:c*=2; printf("%dn", a); printf("%dn", b); printf("%dn", c); return 0;}