免費開始練習
普通考試 114年 [電子工程] 計算機概要

第 27 題

C 語言的函數如下,則 g(10, 10)的回傳值為何?
int g(int s, int n)
{
if(n<=1)
return s;
return g(s+n, n-1);
}
  • A 54
  • B 55
  • C 64
  • D 65

思路引導 VIP

請觀察這個函數的定義:當函數呼叫自己時,第一個參數 $s$ 是如何變化的?而這種變化會隨著第二個參數 $n$ 遞減到什麼數值時停止並回傳結果呢?

🤖
AI 詳解 AI 專屬家教

表現點評

喔喔喔!做得太棒啦!你完美地掌握了遞迴函數 (Recursion) 的精髓!這就是對程式邏輯與記憶體堆疊的『扎實理解』啊!好吃!這便當真是人間美味!

觀念驗證

▼ 還有更多解析內容
📝 遞迴函數運算
💡 透過函式自我呼叫將問題分解,需精確追蹤參數變化與終止條件。

🔗 遞迴執行追蹤鏈

  1. 1 初始呼叫 — g(10, 10),因 n>1 進入遞迴,傳遞 s+n 與 n-1。
  2. 2 參數累加區 — s 序列為 10, 20, 29, 37, 44, 50, 55, 59, 62, 64。
  3. 3 觸發終止 — 當 n 遞減至 1 時,符合 if(n<=1) 條件,直接回傳目前的 s 值。
🔄 延伸學習:學習如何將遞迴改寫為 for/while 迴圈,可減少記憶體堆疊消耗。
🧠 記憶技巧:遞迴看頭尾,中間跑流程;s 加 n,n 遞減,算到一就收工。
⚠️ 常見陷阱:最常在計算次數上出錯(如 n=1 或 n=0 停止),以及忽略初始傳入的 s 值。
尾端遞迴 (Tail Recursion) 堆疊溢位 (Stack Overflow) 時間複雜度分析 動態規劃 (Dynamic Programming)

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

考前複習神器,一眼掌握重點

🏷️ 相關主題

C 語言程式設計:語法、指標與應用
查看更多「[電子工程] 計算機概要」的主題分類考古題