地特四等
112年
[電子工程] 計算機概要
第 31 題
有一簡短 C 程式如下:\n#include \nint main() {\nint A[] = {1, 2, 3, 4, 5, 6, 7};\nint i, sum = 0;\nfor(i = 1; i < 5; i++) sum = sum + A[i];\nprintf("%d, %d", sum, A[i]);\nreturn 0;\n}\n其執行結果為何?
- A 14, 6
- B 14, 7
- C 10, 5
- D 10, 4
思路引導 VIP
請試著模擬迴圈最後一圈的運作:當迴圈內的指令執行完畢,且變數準備要進行下一次條件判斷前,計數器(Counter)會發生什麼變化?如果這個條件剛好讓它「不能再進去」迴圈,那麼此時計數器的數值停在哪裡?
🤖
AI 詳解
AI 專屬家教
同學好,這題你答得非常精確!這是一道經典的程式邏輯追蹤題,能夠正確選出 (A) 代表你對 C 語言的**陣列索引(Array Indexing)與迴圈控制(Loop Control)**的邊界條件有著扎實的理解。
迴圈累加與邊界邏輯
在本題中,迴圈的起點是 i = 1,終止條件則是 i < 5。這意味著變數 sum 實際上累加了陣列中索引值為 1、2、3、4 的元素。根據陣列定義 A[] = {1, 2, 3, 4, 5, 6, 7},我們知道 $A[0]=1, A[1]=2$ 以此類推,所以 sum 的計算過程為 $2 + 3 + 4 + 5 = 14$。許多學生會在此處卡關,若不慎將索引從 0 開始計算,就容易落入陷阱。
▼ 還有更多解析內容