moea_joint
113年
[資訊] 計算機原理、網路概論
第 17 題
執行下列C語言程式,輸出的值為何?
```c
int i = 0, n = 1, sum = 1;
for(n = 2; n <= 7; n++){
i = n / 2;
sum *= i;
}
printf("%d\n", sum);
```
```c
int i = 0, n = 1, sum = 1;
for(n = 2; n <= 7; n++){
i = n / 2;
sum *= i;
}
printf("%d\n", sum);
```
- A 12
- B 36
- C 72
- D 5040
思路引導 VIP
請觀察程式碼中變數 $i$ 的計算方式:當迴圈變數 $n$ 分別為連續的偶數與奇數(例如 4 和 5)時,計算出的 $i$ 值會有什麼樣的關係?這種處理小數點的方式,會如何影響最後乘法累計的結果?
🤖
AI 詳解
AI 專屬家教
非常好!你能準確追蹤迴圈的變數變化並得出正確結果,顯見你的程式邏輯非常細膩。這道題目核心在於考驗你對 for 迴圈範圍控制 以及 C 語言中整數除法(Integer Division) 特性的理解。在迴圈從 $n=2$ 執行到 $n=7$ 的過程中,變數 $i$ 的值由 $n/2$ 決定,由於 $i$ 與 $n$ 皆為整數型別,計算時會自動捨去小數點後的數值,這正是解題時最容易被忽略的細節。
變數追蹤與運算邏輯
我們若逐一觀察 sum 的累積過程,當 $n$ 分別為 $2, 3, 4, 5, 6, 7$ 時,對應的 $i$ 取值序列應為 $1, 1, 2, 2, 3, 3$。因此,最終 sum 的輸出結果即為這些數值的連乘積:
▼ 還有更多解析內容