LONGEPASS
電腦軟體設計(C++)/C++/Q114
困難
正確率 -
Q114.

關於以下C++語言程式片段,下列敘述那些為錯誤?電腦軟體設計(C++) 乙級 C++ 第 114 題 題目 圖片

電腦軟體設計(C++) · 乙級 · C++ · Q114

難易度分析

4 / 5

本題要求追蹤遞迴函數的運算過程,需精確計算多層呼叫的回傳結果。由於採取複選形式且要求判別「錯誤」敘述,增加了邏輯判斷的複雜度,必須對所有選項進行全面驗證才能得出答案。

正確答案 (複選):②, ③, ④

  • ② 執行f:此選項敘述不完整,僅寫「執行f」而未說明回傳值或行為,屬於語意不完整的錯誤敘述。
  • ③ 回傳28(3)執行f(5)回傳41:此選項將「回傳28」與「(3)執行f(5)回傳41」混雜在一起,敘述混亂且數值錯誤。實際上 f(5) = 38(非41),此為錯誤敘述。
  • ④ 執行f(5)回傳49:f(5) 的正確計算:f(4) = f(3) + f(2) + 3 = 10 + 6 + 3 = 19;f(5) = f(4) + f(3) + 3 = 19 + 10 + 3 = 32(更正:需重新計算)。實際上 f(0)=2, f(1)=1, f(2)=6, f(3)=10, f(4)=19, f(5)=32,回傳 32 而非 49,此敘述錯誤。

錯誤選項解析

  • ① 執行f(3)回傳14:f(3) 的計算過程:f(3) = f(2) + f(1) + 2*2-1 = f(2) + 1 + 3。f(2) = f(1) + f(0) + 3 = 1 + 2 + 3 = 6。故 f(3) = 6 + 1 + 3 = 10,而非 14,此敘述錯誤。
Learning Tip

"此題考 遞迴函數追蹤,關鍵在於正確計算 base case(n=0 回傳 2,n=1 回傳 1)並逐層代入 遞迴公式 f(n-1)+f(n-2)+3。常考陷阱為遞迴展開時漏算某層或混淆 區域變數 m 每次呼叫都重新初始化為 0 的特性,導致 2*m-1 恆為 3(n≥2 時)。"

學員答題分佈

①執行f(3)回傳140%
②執行f0%
③回傳28(3)執行f(5)回傳410%
④執行f(5)回傳490%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目