免費開始練習
普考申論題 114年 [資訊處理] 程式設計概要

第 三 題

若以f(30)呼叫下列f()函式,會列印出那些數字?(20分) void f(int n) { printf ("%d\n", n); while (n != 1) { if ((n%3)==1) { n = n + 2; } else if((n%3)==2) { n = n + 1; } else { n = n/3; } printf ("%d\n", n); } }
📝 此題為申論題

思路引導 VIP

看到此題,應先確認初始輸入值,然後運用逐步追蹤法(Trace Table)依照迴圈條件與條件分支依序執行。重點在於正確計算每次 n 除以 3 的餘數來決定進入哪個分支,並注意 printf 的位置以確保沒有漏掉初始值與最終更新的值。

🤖
AI 詳解 AI 專屬家教

【解題思路】運用逐步追蹤法,根據 while 迴圈條件與 if-else 分支邏輯,一步步記錄變數 n 的變化與列印結果。 【詳解】 已知初始呼叫 f(30),變數 n = 30

▼ 還有更多解析內容

升級 VIP 解鎖