公務人員特種考試計算機大意112 年第 12 題單選題
下列 C 語言程式片段執行後,變數 S 的值為何?
int S=0;
for(int i=0;i<5;i++)
S=S+i*i;
B正確答案
本題考查 C 語言 for 迴圈與變數追蹤。迴圈變數 i 從 0 執行到 4,計算各項平方和(0²+1²+2²+3²+4²),最終 S 的值為 30。
為什麼答案是 B
迴圈執行 5 次 (i=0~4),S 依序累加 0, 1, 4, 9, 16。計算過程:0+0=0,0+1=1,1+4=5,5+9=14,14+16=30。最終總和為 30。
載入中…
完整詳解
Pro · 無限重點 本題考查 C 語言 for 迴圈與變數追蹤。迴圈變數 i 從 0 執行到 4,計算各項平方和(0²+1²+2²+3²+4²),最終 S 的值為 30。
看到 i<5 代表 i 只會跑到 4。直接心算平方和:0 + 1 + 4 + 9 + 16 = 30,秒殺選 B!
逐選項分析
A✕
純粹的計算錯誤選項。若在累加 0, 1, 4, 9, 16 的過程中發生算術失誤,可能會誤選此項。
B✓ 正確
迴圈執行 5 次 (i=0~4),S 依序累加 0, 1, 4, 9, 16。計算過程:0+0=0,0+1=1,1+4=5,5+9=14,14+16=30。最終總和為 30。
C✕
純粹的計算錯誤選項。正確的平方和累加結果應為 30,而非 32。
D✕
純粹的計算錯誤選項。正確的平方和累加結果應為 30,而非 34。
程式變數追蹤表
| 迴圈次數 | i 的值 | i * i | S 的新值 (S + i*i) |
|---|
| 第 1 次 | 0 | 0 | 0 + 0 = 0 |
| 第 2 次 | 1 | 1 | 0 + 1 = 1 |
| 第 3 次 | 2 | 4 | 1 + 4 = 5 |
| 第 4 次 | 3 | 9 | 5 + 9 = 14 |
| 第 5 次 | 4 | 16 | 14 + 16 = 30 |
新手常犯錯誤是忽略了條件「i < 5」,誤以為 i 會執行到 5。若將 i=5 的平方 25 也加進去,S 會變成 55。務必看清楚是不包含 5 的嚴格小於(<)。