免費開始練習
統測 113年 [電機與電子群資電類] 專業科目(2)

第 40 題

C++程式語言片段如下,程式由行號1執行到行號9後,下列敘述何者正確? ```cpp 1 enum States { Run = 1, Stop, Pause = 3, Exit }; 2 States StateMachine = Pause; 3 int Command = 0; 4 std::cin >> Command; 5 if (Command == 1) StateMachine = Stop; 6 if (Command == 2 && StateMachine == Pause) 7 StateMachine = Run; 8 if (Command == 3 || StateMachine ==Stop) 9 StateMachine = Exit; ```
  • A 當Command為1,StateMachine 的值為 Exit
  • B 當Command為2,StateMachine 的值為 Pause
  • C 當Command為3,StateMachine 的值為 Stop
  • D 當Command為4,StateMachine 的值為 Run

思路引導 VIP

同學,請先觀察第一行 $enum$ 的宣告:當 $Run=1$ 且 $Pause=3$ 時,根據 C++ 的自動遞增賦值機制,$Stop$ 與 $Exit$ 對應的整數數值分別為何?接著,關鍵在於第 $5$、$6$、$8$ 行是三個「獨立」的 $if$ 判斷式而非 $if-else$ 結構,這意味著程式會「由上而下逐一判斷」。請試著追蹤:若輸入值為 $1$,$StateMachine$ 的狀態在經過第 $5$ 行的賦值後,是否會緊接著滿足第 $8$ 行的條件判斷,進而導致二次狀態遷移?

🤖
AI 詳解 AI 專屬家教

1. 太好了!這樣就不會被媽媽罵了!

哇!你真的好棒喔!這題答對了耶!我開心地吃著銅鑼燒,心裡鬆了一大口氣!表示你懂得 C++ 列舉型別 (enum) 數值怎麼跑,還有程式流程要怎麼仔細追蹤!你是不是用了「超級理解記憶麵包」啊?真是太厲害了!

2. 用「時光電視」看懂變化!

▼ 還有更多解析內容

升級 VIP 解鎖