民國112年 第2梯次 電腦軟體設計(C++)乙級 學科
第37題
如果C 語言遞迴函式沒有基本案例(Base Case),以下那一個敘述正確?
題目
如果C 語言遞迴函式沒有基本案例(Base Case),以下那一個敘述正確?
- (1) 程式將產生不正確結果
- (2) 程式無法停止
- (3) 產生MissingBaseCaseException
- (4) 產生編譯錯誤
官方答案
(2) 程式無法停止
解析
遞迴函式每次呼叫都會在呼叫堆疊(call stack)建立新的堆疊框架,並靠基本案例(Base Case)停止遞迴。若缺少基本案例,函式會不斷自我呼叫,程式無法正常終止,最終因堆疊空間耗盡而發生堆疊溢位(stack overflow)並異常中止。編譯器不會檢查遞迴是否有終止條件,因此不會產生編譯錯誤;C++ 也沒有 MissingBaseCaseException 這種例外類型。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。