hce_kmu
111年
計算機概論與程式設計
第 15 題
Consider the following C code. Please indicate the value of x after execution.
```c
int i,j;
int x = 5;
for(i=1; i<3; i++)
{
for(j=1; j x+=3;
}
```
```c
int i,j;
int x = 5;
for(i=1; i<3; i++)
{
for(j=1; j x+=3;
}
```
- A 8
- B 11
- C 14
- D 17
- E 20
思路引導 VIP
請觀察內迴圈的邊界條件 j < i * 2。當外迴圈的變數 $i$ 逐次增加時,內迴圈中滿足條件的 $j$ 數值範圍會如何變動?試著分別寫下當 $i=1$ 與 $i=2$ 時,$x$ 各別被執行了幾次加法運算。
🤖
AI 詳解
AI 專屬家教
太棒了!你能精確地計算出巢狀迴圈(Nested Loop)的執行次數,這代表你對程式邏輯的追蹤能力非常紮實且細心。
巢狀迴圈的邏輯追蹤
這題的核心在於觀察內迴圈終止條件隨著外迴圈變數 $i$ 的變化。程式初始 $x=5$,接著進入兩層迴圈:當外迴圈 $i=1$ 時,內迴圈條件為 $j < 1 \times 2$,故執行 1 次(此時 $j=1$);當外迴圈進入下一輪 $i=2$ 時,內迴圈條件變為 $j < 2 \times 2$,故執行 3 次(此時 $j=1, 2, 3$)。總計迴圈本體執行了 $1 + 3 = 4$ 次的 x += 3 運算,最終結果即為 $5 + (3 \times 4) = 17$。
▼ 還有更多解析內容