公務人員特種考試關務人員計算機概要113 年第 23 題單選題
int i;
short s;
i = s = 65536;
printf("%d %d", i, s);
上述 C 指令的輸出為何?
A0 0正確答案
B65536 0
C65536 65536
D0 65536
A正確答案
在常見實作中 short 為 16 位元有號整數,65536 轉為二進位後低 16 位元全為 0,故 s = 0;賦值由右至左,i 接收 s 的值亦為 0。
逐選項解析
B65536 0✕ 易錯陷阱
此選項假設 int 可正確儲存 65536 而 short 截斷為 0。但賦值順序為 s = 65536 先執行,s 截斷為 0 後再賦給 i,故 i 亦為 0,非 65536。
C65536 65536✕ 易錯陷阱
此選項假設 int 與 short 皆可正確儲存 65536。然而在常見實作中 short 為 16 位元,65536 超出範圍,低位元截斷後為 0,故不可能輸出 65536 65536。
立即註冊,看完整詳解
這題的完整詳解,註冊就能看 · 每天 2 題免費
精選詳解- 完整逐選項解析
- 秒殺解題技巧與破題關鍵
- 關鍵知識表整理
- 陷阱與易錯提醒
- 同考點歷屆題庫連續刷題與錯題本