國中教甄|資訊科技資訊科技114 年第 50 題單選題
以下C程式碼的輸出結果為何?
#include <stdio.h>
int main() {
int x=16,y=2;
int z=(x>>1)|(y<<1);
printf("%d\n", z);
return 0;
}
D正確答案
將數值轉換為二進位後,分別進行右移與左移位元運算,再透過位元 OR 運算得出結果 12。
逐選項解析
A13✕ 錯誤
計算過程發生錯誤,可能誤將位元 OR 運算當作一般加法並加上其他數值,或二進位轉換錯誤。
B10✕ 易錯陷阱
僅計算 x 右移 1 位得到 8,而 y 未進行左移運算直接相加(8+2=10),屬於忽略部分運算子的陷阱。
立即註冊,看完整詳解
這題的完整詳解,註冊就能看 · 每天 2 題免費
精選詳解- 完整逐選項解析
- 秒殺解題技巧與破題關鍵
- 關鍵知識表整理
- 陷阱與易錯提醒
- 同考點歷屆題庫連續刷題與錯題本