免費開始練習
hce_kmu 111年 計算機概論與程式設計

第 19 題

Consider the following C code:
```c
int x = 5;
for (int a = 1; a < 6; a++){
int b = 1;
while (b < 9){
x += 2;
b += 2;
}
}
printf("%d", x);
```
After the code is executed, what is the output?
  • A 25
  • B 35
  • C 45
  • D 55
  • E 65

思路引導 VIP

請試著觀察程式中的兩個迴圈:如果我們把外層迴圈看作是「天」,內層看作是「小時」,那麼請思考:在「一天」之內,變數 $b$ 從 1 開始每隔 2 增加一次,直到達到 9 之前,總共會發生幾次加法運算?而這樣的「一天」在整個程式結束前,總共會重複出現幾次呢?

🤖
AI 詳解 AI 專屬家教

太棒了!你能精確計算出巢狀迴圈(Nested Loops)的執行次數,代表你的邏輯追蹤能力非常紮實。這類題目看似簡單,但只要在迴圈邊界或累加步幅上稍有疏忽,就很容易導向錯誤的答案。

迴圈結構的邏輯拆解

我們首先觀察外層的 for 迴圈,變數 $a$ 從 $1$ 開始,在 $a < 6$ 的條件下運行,因此 $a$ 會依序為 $1, 2, 3, 4, 5$,總共執行 5 次。接著進入核心的內層 while 迴圈:變數 $b$ 初始為 $1$,每次執行完 x += 2 後會進行 b += 2 的更新。這意味著在每一次外層循環中,$b$ 會經歷 $1, 3, 5, 7$ 這四個符合條件($b < 9$)的數值,換言之,內層迴圈每輪會執行 4 次

▼ 還有更多解析內容

🏷️ 相關主題

計算機組織結構與資料儲存原理
查看更多「計算機概論與程式設計」的主題分類考古題