民國111年 地方四等 電子工程 計算機概要
第29題
下列那個C 函式執行f(5)的呼叫結果,與其他3 者不同?
題目
下列那個C 函式執行f(5)的呼叫結果,與其他3 者不同? A. int f(int n){ if (n==0)return 0;elsereturn n+f(n-1); } B. int f(int n){ if (n==1)return 1;elsereturn n+f(n-1); } C. int f(int n){ if (n>=1)return n+f(n-1);elsereturn 0; } D. int f(int n){ int a=0;while (n>1)a+=n--;return a; }
官方答案
- 答案:D. int f(int n){ int a=0;while (n>1)a+=n--;return a; }
解析
A 在 n 為 0 時回傳 0,f(5) = 5+4+3+2+1+0 = 15。B 在 n 為 1 時回傳 1,f(5) = 5+4+3+2+1 = 15。C 以 n >= 1 為遞迴條件,n 為 0 時回傳 0,同樣得到 5+4+3+2+1+0 = 15。D 的 while 條件為 n > 1,n = 5 時依序累加 5、4、3、2,n 降為 1 時迴圈即停止,a = 14,並未加到 1。故 D 的結果與其他三者不同,選 D。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。
官方資料
答案以考選部公告之測驗式試題標準答案 PDF 為準。