C語言關(guān)系運算符詳解

2023-08-11 17:13:54 來源:計算機科學實驗室

關(guān)系運算符是一個高頻考點,往往題目難度不大,但是正確并不是特別高,最主要的原因在于不理解關(guān)系運算的優(yōu)先級和結(jié)合性。

關(guān)系運算符只有這么幾種:


(相關(guān)資料圖)

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

他的比較結(jié)果更簡單,只有兩種結(jié)果:

01

參考答案

C

0

1

A

考點解析

運算符的優(yōu)先級,這個必須記憶關(guān)系運算符的優(yōu)先級關(guān)系運算的結(jié)果

第一題

關(guān)系運算符的優(yōu)先級,沒有算術(shù)運算符高,但是比賦值運算符高。

第二題

雖然沒有給變量a初始化賦值,但是不影響結(jié)果

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,這就是優(yōu)先級的作用,先算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

賦值運算符的優(yōu)先級最低,最后計算

關(guān)系運算符的測試程序

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

標簽:

上一篇:在Macbook上如何加密壓縮文件?
下一篇:最后一頁