原住民族考試四等考試-電子工程類科計算機概要105 年第 25 題單選題
下列 C 程式片段執行完畢後,變數 cnt 的值應為多少?
cnt=0;
for(X=1;X<=3;X++){
for(Y=X;Y<=3;Y++){
cnt=cnt+Y;
}
}
A正確答案
雙層迴圈累加,逐步展開即得 cnt=14。
為什麼答案是 A
X=1 時 Y 從 1 到 3,累加 1+2+3=6;X=2 時 Y 從 2 到 3,累加 2+3=5;X=3 時 Y=3,累加 3。總和 6+5+3=14,正解。
載入中…
完整詳解
Pro · 無限X=1:1+2+3=6;X=2:2+3=5;X=3:3=3,總和 6+5+3=14。
逐選項分析
A✓ 正確
X=1 時 Y 從 1 到 3,累加 1+2+3=6;X=2 時 Y 從 2 到 3,累加 2+3=5;X=3 時 Y=3,累加 3。總和 6+5+3=14,正解。
B✕ 陷阱
16 是常見陷阱,可能誤以為內層 Y 從 1 開始(而非 X)。若 Y 從 1 開始會變成 6+5+3 外加額外值,算錯。
C✕
18 = 6×3,可能誤以為內層每次都累加 1+2+3=6。但內層 Y 的起始值是 X,不是固定 1。
D✕ 陷阱
21 = 1+2+3+4+5+6,是把所有可能的 Y 值重複累加,忽略 Y=X 的限制,誤判迴圈範圍。
迴圈展開追蹤表
| X | Y 範圍 | 本輪累加 | cnt 累計 |
|---|
| 1 | 1→3 | 1+2+3=6 | 6 |
| 2 | 2→3 | 2+3=5 | 11 |
| 3 | 3→3 | 3 | 14 |
本題陷阱在內層迴圈 Y=X 的起始值。考生常誤以為 Y 固定從 1 開始(得 18),或忽略起始條件全部累加(得 21)。務必逐輪展開,尤其注意內層迴圈變數依賴外層的情況。