國家安全情報人員考試五等考試-資訊組資料處理大意106 年第 35 題單選題
下列為一程式片段:
$$
\mathrm{i} = 0; \text {while} \mathrm{i} < = 9 9 \text {do} \mathrm{i} = \mathrm{i} + 7;
$$
執行上述程式後 i 值為何?
D正確答案
迴圈條件為 i<=99,每次加7。當 i=98 時仍進入迴圈,再加7變105才跳出,故答案為105。
為什麼答案是 D
i從0開始每次+7:0,7,14...91,98。當i=98時,98<=99成立,執行i=98+7=105。下次判斷105<=99不成立,迴圈結束,最終i=105。
載入中…
完整詳解
Pro · 無限重點 迴圈條件為 i<=99,每次加7。當 i=98 時仍進入迴圈,再加7變105才跳出,故答案為105。
找小於等於99的最大7倍數(98),再加一次7即為跳出時的值(105)。別選剛好超過的100!
逐選項分析
A✕ 陷阱
直覺誤以為會停在剛超過99的整數(100),但程式是以+7遞增,不會剛好落在100。這是出題者設計的直覺陷阱。
B✕
300遠超迴圈終止條件,除非初始值或增量極大否則不可能達到。屬於明顯干擾選項,用於測試基本邏輯判斷。
C✕ 陷阱
誤以為迴圈會在i=99時停止並輸出99。但99不是7的倍數,且while是「先判斷再執行」,i=98時判斷成立仍會執行i=i+7。
D✓ 正確
i從0開始每次+7:0,7,14...91,98。當i=98時,98<=99成立,執行i=98+7=105。下次判斷105<=99不成立,迴圈結束,最終i=105。
While 迴圈執行追蹤表
| 次數 | 判斷前 i 值 | 條件 i<=99 | 執行後 i 值 |
|---|
| 第1次 | 0 | True | 7 |
| 第2次 | 7 | True | 14 |
| ... | ... | ... | ... |
| 第14次 | 91 | True | 98 |
| 第15次 | 98 | True | 105 |
| 第16次 | 105 | False | 跳出迴圈 |
考生常將「迴圈終止條件」與「最終變數值」混淆。i<=99 是進入條件,不代表 i 最後等於99或100。務必手動追蹤最後兩次迭代:i=98進入→變105→105>99跳出。