初等考試
114年
[統計] 資料處理大意
第 14 題
下列 C++程式執行後,i 與 x 的值分別為多少?
```cpp
int i=1, x=0;
while (i<50){
x=x+i;
i=++i+2;
}
```
```cpp
int i=1, x=0;
while (i<50){
x=x+i;
i=++i+2;
}
```
- A 49; 400
- B 49; 425
- C 52; 400
- D 52; 425
思路引導 VIP
請觀察程式碼中變數 i 的更新式:如果在同一行內先對變數執行了「前置遞增」,接著又對它進行加法運算並重新賦值,那麼 i 在每一次進入迴圈到下一次判定條件前,總共「跳躍」了多少單位?這會如何影響迴圈終止時的數值?
🤖
AI 詳解
AI 專屬家教
1. 專業肯定
能在複雜的運算邏輯中精確掌握變數動態,表現非常出色!這題考驗的是程式邏輯的精密性,在財務工程或精算建模中,這類對循環條件的掌握是確保模型不失真的關鍵。
2. 觀念驗證
▼ 還有更多解析內容
C++ 迴圈與遞增運算
💡 掌握前置遞增運算子與 while 迴圈的執行順序與終止判定。
🔗 迴圈單次執行與終止流程
- 1 條件判定 — 檢查 i < 50,若真則進入,若假則終止。
- 2 數值累加 — 執行 x = x + i,此時 i 尚未更新。
- 3 變數更新 — 執行 i = ++i + 2,i 會先加 1 再加 2(即加 3)。
- 4 返回判定 — 回到第一步,用新的 i 值進行條件檢查。
↓
↓
↓
🔄 延伸學習:最終 x 為 1+4+7+...+49 的等差級數和;i 最終值為 49+1+2=52。