免費開始練習
調查局三等申論題 110年 [電子科學組] 計算機概論

第 一 題

📖 題組:
請回答下列問題:
📝 此題為申論題,共 2 小題

小題 (一)

假設 y 的值為 0 情況下,執行以下函數,請問輸出結果為何?(8 分) def F(y): print(y) if(y < 2): F(y + 1) else: print(y) print(y)

思路引導 VIP

看到遞迴(Recursion)考題,首先聯想「系統堆疊(System Stack)」的後進先出(LIFO)特性。解題時務必逐層展開函數呼叫,並精確標記「遞迴呼叫前」、「終止條件(Base Case)」與「遞迴返回後(回溯)」的每一行輸出,切忌心算跳步。

🤖
AI 詳解
AI 專屬家教

【解題思路】運用堆疊(Stack)概念與程式追蹤(Code Tracing)方法,逐步拆解遞迴呼叫(Recursive Call)進入與回溯的執行順序。 【詳解】 已知:初始呼叫條件為 F(0)

小題 (二)

請問以下程式,輸出結果為何?(8 分) #include using namespace std; unsigned long long int fun(unsigned int n) { unsigned long long int x = 0; unsigned long long int y = 1; for (unsigned int j = 2; j <= n; ++j){ if (j % 2 == 0) x += y; else y += x; } if(n % 2 == 0) return x; else return y; } int main(){ int x = 5, y = 7; cout << fun(x) << endl; cout << fun(y); }

思路引導 VIP

面對程式追蹤題,應優先建立「變數狀態追蹤表(Trace Table)」,逐圈記錄條件分支下的數值變化。觀察變數 x 與 y 交替相加的模式,可敏銳察覺此演算法實為計算費氏數列(Fibonacci Sequence)第 n 項之變形實作。

🤖
AI 詳解
AI 專屬家教

【解題思路】建立變數狀態追蹤表,逐次記錄迴圈內變數 xy 的位移與累加變化,並依據參數 n 的奇偶性判定最終回傳值。 【詳解】 已知函式 fun(n) 內之初始變數狀態為:x = 0, y = 1

升級 VIP 解鎖