程式設計基礎(虛擬碼追蹤)
m[i, j] 表示二維陣列 m 第 i 列第 j 行的元素,元素編號從1開始。執行下列程式後 s 的值為下列何者?
整數型二維陣列: m ← {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
整數型: s ← 0
for (i 從 1 到 3 每次加 1)
for (j 從 1 到 i 每次加 1)
s ← s + m[i, j]
endfor
endfor
- A15
- B26
- C34
查看答案與解析
正確答案:C. 34
內側的每個 {…} 表示一列。j 從1跑到 i,因此第1列加上 m[1, 1] = 1,第2列加上 4 + 5,第3列加上 7 + 8 + 9,得到 s = 1 + 9 + 24 = 34。這是對角線及其左下方(下三角)元素的總和。若把列與行弄反寫成 m[j, i],就會變成右上方(上三角)的 1 + 2 + 5 + 3 + 6 + 9 = 26。
- A. 這是只加上對角線元素 1 + 5 + 9 的值。j 從1跑到 i。
- B. 這是把列與行弄反、加上上三角元素的值。
- C. 正確。下三角為 1 + 4 + 5 + 7 + 8 + 9 = 34。