程式設計基礎(虛擬碼追蹤)

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
  1. A15
  2. B26
  3. 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。
練習這個領域 前往領域頁面

相關計算工具

程式設計基礎(虛擬碼追蹤)的其他題目

  1. 以下列程式將4列5行的二維陣列 m 的元素移到元素數為20的陣列 b。m[i, j] 表示第 i 列第 j 行的元素,元素編號從1開始。m[3, 2] 會被指派到 b 的哪一個元素編號?
  2. 陣列的元素編號從1開始,+ 表示字串的串接。執行下列程式後 r 的值為下列何者?
  3. 下列函式 isPal 在字串型陣列 s 的字元排列無論從前或從後讀都相同(回文)時回傳 true。陣列的元素編號從1開始。程式中的【a】應填入下列何者?
  4. ÷ 為除法,代入整數型變數(含引數)時捨去小數部分。以 f(9087) 呼叫下列函式 f 時,回傳值為下列何者?
  5. ÷ 為除法,代入整數型變數(含引數)時捨去小數部分。以 toBin(12) 呼叫下列函式 toBin 時,回傳值為下列何者?