普考申論題
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。
▼ 還有更多解析內容