民國112年 第2梯次 電腦軟體設計(C++)乙級 學科

第37題

如果C 語言遞迴函式沒有基本案例(Base Case),以下那一個敘述正確?

題目

如果C 語言遞迴函式沒有基本案例(Base Case),以下那一個敘述正確?

  1. (1) 程式將產生不正確結果
  2. (2) 程式無法停止
  3. (3) 產生MissingBaseCaseException
  4. (4) 產生編譯錯誤

官方答案

(2) 程式無法停止

解析

遞迴函式每次呼叫都會在呼叫堆疊(call stack)建立新的堆疊框架,並靠基本案例(Base Case)停止遞迴。若缺少基本案例,函式會不斷自我呼叫,程式無法正常終止,最終因堆疊空間耗盡而發生堆疊溢位(stack overflow)並異常中止。編譯器不會檢查遞迴是否有終止條件,因此不會產生編譯錯誤;C++ 也沒有 MissingBaseCaseException 這種例外類型。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料