LONGEPASS
電腦軟體設計(C++)/C++/Q159
困難
正確率 -
Q159.

有關下列C++程式輸出,哪些錯誤?電腦軟體設計(C++) 乙級 C++ 第 159 題 題目 圖片

電腦軟體設計(C++) · 乙級 · C++ · Q159

難易度分析

4 / 5

本題採取複選制且要求挑選錯誤選項,考生需對多個不同型別的溢位結果進行精確判斷與邏輯比對,增加了分析複雜度。

正確答案 (複選):①, ②, ③

  • ① c1=-1:c1 為 有號字元 (signed char),其最大值為 127,遞增後會發生 溢位 (Overflow) 變為 -128 而非 -1。
  • ② uc1=-1:uc1 為 無號字元 (unsigned char),其範圍為 0~255,127 遞增後應為 128,不會出現負數。
  • ③ c1=0:c1 在執行遞增運算後,根據 二進位補數 (Two's Complement) 原理會從 127 翻轉至 -128,而非歸零。

錯誤選項解析

  • ④ c1=-128:此為程式的 正確輸出結果,因為 8 位元有號整數的 127 (01111111) 加 1 後變為 10000000,即代表 -128。
Learning Tip

"本題考點在於 有號與無號型別 (signed vs unsigned) 的差異及 整數溢位 (Integer Overflow) 機制。需注意 `char` 在大多數 C++ 編譯器中預設為有號,且 8 位元有號數的範圍是 -128 到 127。"

學員答題分佈

①c1=-10%
②uc1=-10%
③c1=00%
④c1=-1280%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目