Q36.
依據以下之C++程式片段,其輸出結果何者正確?

電腦軟體設計(C++) · 乙級 · C++ · Q36
難易度分析
3 / 5
此題考查對於 C++ 列舉型別之儲存機制與輸出行為的理解,要求考生能區分程式碼中的識別字名稱與其對應的底層數值之差異。
正確答案:②0
② 0:列舉常數 預設從 0 開始遞增編號,`ALGEBRA` 為第一個列舉成員,其值為 0,故 `cout << registered` 輸出整數 0。
錯誤選項解析
- ① ALGEBRA:列舉型別 (enum) 在 C++ 中預設以整數儲存,`cout` 輸出時會列印其底層整數值而非識別字名稱,因此不會輸出字串 "ALGEBRA"。
- ③ 1:列舉值從 0 起算而非 1,`ALGEBRA` 對應的值為 0 而非 1,此選項混淆了起始編號。
- ④ "ALGEBRA":`enum` 型別並非字串型別,輸出時不會加上雙引號,且列印的是整數值而非字面名稱。
Learning Tip
"列舉型別 (enum) 的常考陷阱在於其預設整數值從 0 開始而非 1,且使用 `cout` 輸出時會顯示底層整數而非識別字名稱。若需自訂起始值,可明確指定如 `enum courses {ALGEBRA=1, ...}`。實務上建議使用 enum class (強型別列舉) 以避免隱含型別轉換造成的錯誤。"
學員答題分佈
①ALGEBRA0%
②00%
③10%
④"ALGEBRA"0%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!