C語言 錯題筆記

2021-08-17 06:14:52 字數 795 閱讀 8763

1、非0就為真。

如已知a = 5,b = 3,c = 4,判斷是否a>b>c。

先判斷a>b?  可知是正確的,故不等式變為判斷是否1>c。

2、位運算子只能用於整型,「按位……」是針對十進位制而言的。

3、整數才有取餘的問題。

4、字串可通過字串的函式判斷相等。

5、符號常量就是實現字元的替換。

如#define m(x,y,z) x*y+z

void main()

int a=1,b=2,c=3;

printf("%d\n",m(a+b,b+c,c+a));

此題通常會理解為(a+b)*(b+c)+(a+c)=19

但這種理解是錯的,應該是a+b*b+c+a+c=12

因為定義中x*y+z != (x)*(y)+(z)

注意符號常量中括號的運用!

6、「^」是按位異或。

例定義有整型int i = 0xfe78da45;int k = 0xac3189b2,則i^k的值是()

將i用二進位制展開

1111 1110 0111 1000 1101 1010 0100 0101

將k用二進位制展開

1010 1100 0011 0001 1000 1001 1011 0010

再將兩個數按位異或可得

0101 0010 0100 1001 0101 0011 1111 0111

即  5   2       4       9       5       3       f       7

7、故可得出結果為a = 1.

C語言錯題集

c語言錯題集 1 continue 不是結束本次迴圈,而是終止整個迴圈的執行。錯誤 用continue語句提前結束本次迴圈 2 直接訪問就是直接利用變數的位址進行訪問直接訪問 正確3 共用體變數可以作結構體的成員,結構體變數也可以作共用體的成員。正確4 列舉型別中的元素都具有乙個整型值。正確5 函式...

c語言錯題集

在 c 語言程式中 凡是沒有出現儲存類說明符的變數都是自動類的。1分 t f正確答案是t 兩指標變數相減所得之差是兩個指標所指陣列元素之間相差的元素個數。1分 t f正確答案是t 根據宣告int a 10 p a 下列表示式錯誤的是 d 2分 a 9 p 5 a p 以下陣列定義中錯誤的是 2分 i...

c語言錯題集

1.能正確表示a和b同時為正或同時為負的邏輯表示式是 d a a 0 b 0 a 0 b 0 b a 0 b 0 a 0 b 0 c a b 0 a b 0 d a b 0解析 0是非正非負數 2.在c語言中,if語句後的一對圓括號中,用以決定分支流程的表示式 d a 只能用邏輯表示式 b 只能用邏...