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

為了求陣列 a 所有元素的總和而寫了下列程式。陣列的元素編號從1開始。執行後 s 的值為下列何者?

整數型陣列: a ← {4, 7, 1, 9, 3}
整數型: s ← 0
for (i 從 1 到 a的元素數 − 1 每次加 1)
  s ← s + a[i]
endfor
  1. A20
  2. B21
  3. C24
查看答案與解析

正確答案:B. 21

a的元素數為5,因此 i 從1跑到4,s = 4 + 7 + 1 + 9 = 21。最後一個元素 a[5] = 3 沒有加上,所以比正確的總和24少3。若把元素編號從0開始的語言的寫法(從0到元素數 − 1)直接套用到從1開始的陣列,就會發生這種差了一個的錯誤(差一錯誤)。

  • A. 這是 a[2]〜a[5] 的和。i 從1開始,所以會加上 a[1] = 4,而不會加上 a[5]。
  • B. 正確。a[1]〜a[4] 為 4 + 7 + 1 + 9 = 21。
  • C. 這是所有元素的總和,也就是原本想要的值。終值為元素數 − 1,所以不會加上 a[5]。
練習這個領域 前往領域頁面

相關計算工具

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

  1. 陣列的元素編號從1開始。下列程式尋找最大的元素。執行後 m 的值為下列何者?
  2. 為了把陣列 a 的元素反轉順序而寫了下列程式。陣列的元素編號從1開始。執行後 a 的內容為下列何者?
  3. 陣列的元素編號從1開始。執行下列程式後,陣列 a 的內容為下列何者?
  4. 陣列的元素編號從1開始。下列程式比較相鄰的元素。執行後 c 的值為下列何者?
  5. m[i, j] 表示二維陣列 m 第 i 列第 j 行的元素,元素編號從1開始。執行下列程式後 s 的值為下列何者?