統測
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. 用「時光電視」看懂變化!
▼ 還有更多解析內容