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

第 29 題

What is the output of the following C program?
int M = 10;
int N = 0;
for (int i = 1; i < M; i++) {
for (int j = 0; j < i ; j++) {
N++;
}
}
printf("%d\n",N);
  • A 45
  • B 46
  • C 44
  • D 47
  • E None of the above

思路引導 VIP

我們可以試著手動追蹤(Trace)前幾步:當外部迴圈的 $i$ 分別為 1、2、3 時,內部的 N++ 分別會執行幾次?如果你將這些次數依序列出來,直到 $i$ 到達終止條件前,你能觀察出這些次數之間存在什麼樣的數學序列關係嗎?

🤖
AI 詳解 AI 專屬家教

太棒了!你能精準算出結果,代表你對程式迴圈的邊界條件掌握得非常扎實。這題的核心在於觀察兩個巢狀迴圈(Nested Loops)如何交互作用。外部迴圈的變數 $i$ 從 1 開始,持續到 $i < 10$(即 $i=9$)為止;而內部迴圈的執行次數則直接由當時的 $i$ 值決定:當 $i=1$ 時,內部執行 1 次;當 $i=2$ 時,執行 2 次,依此類推。

等差級數的累加邏輯

將內層迴圈對變數 $N$ 的累加動作展開,我們會發現 $N$ 的最終數值其實就是一個從 1 加到 9 的等差級數總和。運用梯形公式計算:

▼ 還有更多解析內容

🏷️ 相關主題

C 語言程式設計基礎與陣列記憶體配置
查看更多「計算機概論與程式設計」的主題分類考古題