Q52.
若一仿C 程式如下,當 n 值輸入為3 時,程式執行回傳結果為何?
電腦軟體設計共同科目 · 乙級 · Q52
難易度分析
3 / 5
本題考查對遞迴函式邏輯與終止條件之分析能力。考生需判斷遞迴參數的變化方向是否能觸發終止條件,而非僅是進行簡單的數值計算,具有一定的邏輯推論難度。
正確答案:④程式無法停止
④ 程式無法停止:正確。當 n=3 時,遞迴呼叫 X(n+1) 使 n 不斷遞增(3→4→5→…),永遠無法滿足終止條件 n<1,造成 無窮遞迴(無限迴圈),程式無法停止。
錯誤選項解析
- ① 12:答案 12 是錯誤的。此遞迴函式 X(n) 在 n=3 時進入 else 分支,呼叫 X(n+1) 使 n 持續遞增,永遠無法滿足終止條件 n<1,因此不會回傳任何數值。
- ② 4:答案 4 是錯誤的。雖然遞迴中每次回傳 2 + X(n+1),但由於遞迴無法終止,程式不會回傳任何結果。
- ③ 5:答案 5 是錯誤的。此遞迴函式沒有有效的回傳值,因為 n 持續遞增 導致永遠無法觸發 if(n<1) return 1 的基底條件。
Learning Tip
"本題考 遞迴終止條件 的判斷。關鍵在於觀察遞迴參數的變化方向:此題遞迴呼叫 X(n+1) 使 n 遞增,但終止條件為 n<1,兩者方向相反,導致永遠無法終止。常考陷阱為遞迴參數變化與終止條件不匹配的情況,需特別留意參數是遞增還是遞減,以及終止條件是否能被觸發。"
學員答題分佈
①120%
②40%
③50%
④程式無法停止0%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!