民國110年 普通考試 電子工程 計算機概要

第28題

執行下列C 指令會輸出什麼?unsigned short i = 2, j = 1, k = 0;printf("%hd", ~i&j^k);

題目

執行下列C 指令會輸出什麼?unsigned short i = 2, j = 1, k = 0;printf("%hd", ~i&j^k); A. 0 B. 1 C. 2 D. 4

官方答案

  • 答案:B. 1

解析

運算子優先順序為 ~ 高於 &,& 高於 ^,所以運算式等同 ((~i) & j) ^ k。i 宣告為 unsigned short(一般 16 位元),i=2 的二進位為 0000 0000 0000 0010,取補數 ~i 得 1111 1111 1111 1101(即 0xFFFD)。與 j=1 做 AND,只保留最低位,結果為 1。再與 k=0 做 XOR,1^0 仍為 1,printf 以 %hd 輸出即為 1。若誤以為 ~ 只作用於低位元組或先算 & 再算 ~,才會得到 0、2、4 等結果。答案為 B。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料

答案以考選部公告之測驗式試題標準答案 PDF 為準。