農會 資訊管理類程式設計110 年第 42 題單選題
以下為Python程式,請問n的結果為何?
n=2
while n<10:
n=(n-1)*(n+1)
D正確答案
本題測驗 while 迴圈的執行流程與變數更新,掌握每次迭代後 n 的值即可秒解。
為什麼答案是 D
第三次迴圈計算 n=(8-1)*(8+1)=63,此時 n<10 不成立,迴圈終止,為最終結果。
考點:幹擾選項考點:迭代中途值考點:最終結果
載入中…
完整詳解
Pro · 無限重點 本題測驗 while 迴圈的執行流程與變數更新,掌握每次迭代後 n 的值即可秒解。
手動追蹤變數:n=2→3→8→63,當 n=63 時不滿足 n<10,迴圈結束。
逐選項分析
A幹擾選項✕
此為幹擾選項,並非迴圈中任何一次的計算結果,可直接刪除。
B迭代中途值✕ 陷阱
此為第一次迴圈結束後的 n 值 (1*3=3),但迴圈條件仍滿足,會繼續執行。
C迭代中途值✕ 陷阱
此為第二次迴圈結束後的 n 值 (2*4=8),條件仍滿足,會再執行一次。
D最終結果✓ 正確
第三次迴圈計算 n=(8-1)*(8+1)=63,此時 n<10 不成立,迴圈終止,為最終結果。
While 迴圈變數追蹤表
| 迭代次數 | 進入條件 (n<10) | 計算過程 (n-1)*(n+1) | 更新後 n 值 |
|---|
| 初始 | - | - | 2 |
| 第 1 次 | 2 < 10 (True) | (2-1)*(2+1) | 3 |
| 第 2 次 | 3 < 10 (True) | (3-1)*(3+1) | 8 |
| 第 3 次 | 8 < 10 (True) | (8-1)*(8+1) | 63 |
| 第 4 次 | 63 < 10 (False) | 不執行 | 63 (結束) |
考生常在第 1 次 (n=3) 或第 2 次 (n=8) 迭代後就誤以為結束,未確實檢查 while 條件 (n<10) 是否仍為 True,導致錯選中途值。