免費開始練習
高考申論題 109年 [資訊處理] 程式語言

第 一 題

📖 題組:
一、(一)請將下面程式改寫為尾遞迴(tail recursion)的形式。(15分) int recsum(int x){ if (x == 1) return(x); return(x + recsum(x - 1)); } (二)請問尾遞迴形式的優點為何?(10分)
📝 此題為申論題,共 2 小題

小題 (一)

請將下面程式改寫為尾遞迴(tail recursion)的形式。(15分) int recsum(int x){ if (x == 1) return(x); return(x + recsum(x - 1)); }

思路引導 VIP

  1. 辨識尾遞迴的定義:尾遞迴是指函數的最後一個動作是呼叫函數本身,且呼叫後不進行任何額外的運算(如加法)。
  2. 觀察原程式:原程式 x + recsum(x - 1) 在遞迴返回後還需要執行「加法」,因此不是尾遞迴。
🤖
AI 詳解
AI 專屬家教

【考點分析】 本題考查程式優化技巧中的「尾遞迴轉換」。重點在於如何透過參數傳遞中間結果,消除遞迴呼叫後的待辦運算。 【理論/法規依據】

小題 (二)

請問尾遞迴形式的優點為何?(10分)

思路引導 VIP

  1. 從計算機組織與作業系統的角度思考:遞迴呼叫時,系統會發生什麼事?(分配 Stack Frame)。
  2. 對比一般遞迴與尾遞迴:一般遞迴需要保留每一層的區域變數與返回地址;尾遞迴的狀態則可以直接被覆蓋。
🤖
AI 詳解
AI 專屬家教

【考點分析】 本題考查對遞迴執行效率與記憶體管理的理解。 【理論/法規依據】

📝 同份考卷的其他題目

查看 109年[資訊處理] 程式語言 全題

升級 VIP 解鎖