國家安全情報人員考試五等考試-資訊組資料處理大意104 年第 33 題單選題
請判斷下列 C 或 C++程式語言 do…while 程式片段會執行幾次?
s=0;
i=1;
do{s=s+i;
i=i+1;
}while(i<=50);
C正確答案
do-while 先執行後判斷,i 從 1 加到 50,共執行 50 次迴圈。
為什麼答案是 C
i 從 1 開始,每跑一次 +1,當 i=50 執行完變 51 時退出。i 曾經為 1,2,...,50,共執行 50 次迴圈本體。
載入中…
完整詳解
Pro · 無限重點 do-while 先執行後判斷,i 從 1 加到 50,共執行 50 次迴圈。
看條件 i<=50 且 i 從 1 開始每次+1,直接算 50-1+1 = 50 次。
逐選項分析
A✕
do-while 至少會執行 1 次(先做再判斷),不可能 0 次。這是 do-while 與 while 最大差異。
B✕
第 1 次執行後 i=2,仍滿足 i<=50,會繼續執行,不會只跑 1 次。
C✓ 正確
i 從 1 開始,每跑一次 +1,當 i=50 執行完變 51 時退出。i 曾經為 1,2,...,50,共執行 50 次迴圈本體。
D✕ 陷阱
陷阱選項。易誤以為 i 從 1 到 51 共 51 次,但 i=51 時條件 i<=50 已不成立,不會再執行,只跑 50 次。
三大迴圈差異比較
| 迴圈類型 | 判斷時機 | 最少執行 | 典型語法 |
|---|
| while | 先判斷後執行 | 0 次 | while(條件){} |
| do-while | 先執行後判斷 | 1 次 | do{}while(條件); |
| for | 先判斷後執行 | 0 次 | for(初;條件;更新){} |
本題陷阱在邊界:i<=50 代表 i 等於 50 時仍會進入迴圈執行,但 i 變 51 就不再執行。計算迴圈次數時要注意「結束時 i 的值」與「實際執行次數」不同,易誤算為 51 次。