关系运算符是一个高频考点,往往题目难度不大,但是正确并不是特别高,最主要的原因在于不理解关系运算的优先级和结合性。

关系运算符只有这么几种:

>、< 、 >=、<=、==、!=

他的比较结果更简单,只有两种结果:


(资料图)

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;}

推荐内容