Q21.
如果C 語言遞迴函式沒有基本案例(Base Case),以下那一個敘述正確?
電腦軟體設計(C++) · 乙級 · C++ · Q21
難易度分析
2 / 5
本題考查對遞迴函式核心組成元件之基礎定義與邏輯運作的理解,屬於基本概念辨析題。
正確答案:④程式無法停止
④ 程式無法停止:遞迴的基本案例 (Base Case) 是終止條件,若缺少此條件,函式將無限期地呼叫自身,程式無法正常終止,直到耗盡呼叫堆疊 (Call Stack) 記憶體而崩潰。
錯誤選項解析
- ① 程式將產生不正確結果:遞迴缺少基本案例的問題並非產生不正確結果,而是函式會無限呼叫自身,最終導致堆疊溢位 (Stack Overflow) 而非單純的計算錯誤。
- ② 產生編譯錯誤:遞迴函式缺少基本案例在語法上完全合法,編譯器無法偵測邏輯錯誤,因此不會產生編譯錯誤,程式仍可正常編譯通過。
- ③ 產生MissingBaseCaseException:C++ 標準函式庫中並不存在 `MissingBaseCaseException` 此例外類別,C++ 不會因遞迴缺少基本案例而自動拋出任何內建例外。
Learning Tip
"此題核心考點為 遞迴的終止條件 (Base Case) 之必要性。常見陷阱是混淆「編譯錯誤」與「執行時期錯誤」——缺少基本案例屬於邏輯錯誤,編譯器無法察覺。實務上設計遞迴函式時,必須確保兩個要素:基本案例 (終止條件) 與 遞迴步驟 (向基本案例收斂),否則將導致 Stack Overflow 使程式異常終止。"
學員答題分佈
①程式將產生不正確結果0%
②產生編譯錯誤0%
③產生MissingBaseCaseException0%
④程式無法停止0%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!