Q113.
以下C++語言程式片段,執行後那些值會包括在程式輸出的一部份?
電腦軟體設計(C++) · 乙級 · C++ · Q113
難易度分析
3 / 5
本題要求分析程式執行流程,需對特定運算子的求值順序有準確掌握,並能正確推演迴圈的迭代與終止邏輯,且複選的題型增加了判定難度。
正確答案 (複選):②, ④
- ② 15:第一次迴圈中,a += b++ 等價於 a = a + b(b 使用原值 5),故 a = 10 + 5 = 15,此值會被 printf 輸出。
- ④ 21:第二次迴圈中,b 已遞增為 6,a += b++ 計算為 a = 15 + 6 = 21,此值會被 printf 輸出,之後 a = 21 > 15 迴圈結束。
錯誤選項解析
- ① 16:後置遞增運算子 b++ 會先使用 b 的原始值參與運算後才遞增,因此第一次迴圈 a = 10 + 5 = 15,而非 16。
- ③ 23:23 並非任何一次迴圈的輸出值。第二次迴圈 a = 15 + 6 = 21 後,a = 21 已大於 15,迴圈終止,不會產生 23。
Learning Tip
"本題核心考點為 後置遞增運算子 (b++) 的求值順序:先取值參與運算,運算完成後才遞增。常見陷阱是誤以為 b++ 會先遞增再使用,導致計算錯誤。此外需注意 while 迴圈的終止條件,當 a 超過 15 時立即停止,不會再執行迴圈本體。"
學員答題分佈
①160%
②150%
③230%
④210%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!