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

以下C++語言程式片段,執行後那些值會包括在下列程式輸出的一部份?電腦軟體設計(C++) 乙級 C++ 第 115 題 題目 第一張圖片 電腦軟體設計(C++) 乙級 C++ 第 115 題 題目 第二張圖片

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

難易度分析

4 / 5

本題為複選題,要求考生能精確追蹤變數在迴圈中的數值變化,且必須掌握 switch 結構中因缺少中斷指令而導致的連續執行特性,對邏輯推演的精準度要求較高。

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

  • ① 10:當 `i=0` 時,`A[0]='1'`,執行 `case '1': c+=5` 後 `c=5`,因無 `break` 會fall-through至 `case '2'`,執行 `c*=2` 後 `c=10`,故輸出包含 10。
  • ② 20:當 `i=1` 時,`A[1]='2'`,直接進入 `case '2': c*=2`,此時 `c=10*2=20` 後 `break`,故輸出包含 20。

錯誤選項解析

  • ③ 30:當 `i=2` 時,`A[2]='3'`,執行 `case '3': c-=5`,此時 `c=20-5=15`,因無 `break` 會 fall-through 至 `case '4'`,執行 `c+=10` 後 `c=25`,輸出為 25 而非 30。
  • ④ 40:當 `i=3` 時,`A[3]='4'`,執行 `case '4': c+=10`,此時 `c=25+10=35` 後 `break`,輸出為 35 而非 40。
Learning Tip

"本題核心考點為 switch-case 的 fall-through 機制:當 case 區塊結尾缺少 `break` 時,程式會繼續執行下一個 case 的程式碼,直到遇到 `break` 或 switch 結束。實務上應謹慎使用 fall-through,必要時需加上註解說明意圖,避免成為程式臭蟲。另外需注意字元 `'0'`~`'9'` 在 switch 中比對的是 ASCII 字元值,而非數字本身。"

學員答題分佈

①100%
②200%
③300%
④400%

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

相似類型題目