民國113年 地方四等 電子工程 計算機概要

第23題

以C 語言撰寫的程式片段如下,執行的結果為何?int a=8;a=a>>2;printf("a=%d\n", a);

題目

以C 語言撰寫的程式片段如下,執行的結果為何?int a=8;a=a>>2;printf("a=%d\n", a); A. a=8 B. a=6 C. a=4 D. a=2

官方答案

  • 答案:D. a=2

解析

運算子 >> 是右移(right shift)。a 初值為 8,其二進位為 0000 1000;右移 2 位等同將數值除以 2 的 2 次方(整數除法),即 8 / 4 = 2,二進位變成 0000 0010,所以輸出 a=2。對非負整數而言,右移 n 位就是除以 2ⁿ 並捨去餘數;若為有號負數,部分實作採算術右移會補入符號位。本題 a 為正數,結果明確為 2。選項 A 是未移位、B 是把 >> 誤當成某種減法、C 只移了一位,皆與右移兩位的結果不符。

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

官方資料

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