Q149.
下列C++程式中底線部份,下列敘述那些是錯誤的?
電腦軟體設計(C++) · 乙級 · C++ · Q149
難易度分析
4 / 5
本題採複選形式且要求選出「錯誤」敘述,增加了邏輯判斷的複雜度。此外,需精確區分程式碼中不同位置的語法角色,對於語法細節的掌握度要求較高。
正確答案 (複選):①, ③, ④
- ① 甲應填入char *:此敘述錯誤。在 C++ 樣板參數宣告中,甲位置若為樣板參數列,應使用 `class T` 或 `typename T` 而非 `char *`,因為 `char *` 是具體型別而非樣板參數。
- ③ 甲應填入class T:此敘述錯誤。甲位置根據程式碼結構判斷,應為具體型別宣告而非樣板參數,因此不應填入 `class T`。
- ④ 乙應填入class T:此敘述錯誤。乙位置為函式參數的型別指定,應填入具體型別如 `char *`,而非樣板參數宣告 `class T`。
錯誤選項解析
- ② 乙應填入char *:此敘述正確。乙位置根據程式上下文應為函式參數型別宣告,填入 `char *` 符合 C++ 中宣告字元指標參數的語法規範。
Learning Tip
"本題考驗 C++ 樣板語法與函式參數宣告的區別。關鍵在於分辨 `template <class T>` 中的 `class T` 是樣板參數,而函式簽章中的參數需使用具體型別。常考陷阱為混淆樣板參數列與一般函式參數列的使用情境,實務上 `class` 與 `typename` 在樣板宣告中等價,但不可與具體型別混用。"
學員答題分佈
①甲應填入char *0%
②乙應填入char *0%
③甲應填入class T0%
④乙應填入class T0%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!