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

陣列的元素編號從1開始。下列程式尋找最大的元素。執行後 m 的值為下列何者?

整數型陣列: a ← {3, 8, 2, 8, 5}
整數型: m ← 1
for (i 從 2 到 5 每次加 1)
  if (a[i] > a[m])
    m ← i
  endif
endfor
  1. A2
  2. B4
  3. C8
查看答案與解析

正確答案:A. 2

m 是到目前為止看過的最大元素的元素編號。i = 2 時 a[2] = 8 > a[1] = 3,因此 m = 2。i = 4 時 a[4] = 8 與 a[2] = 8 相等,> 不成立,m 不變。因此最大值有多個時,會留下最先出現的元素編號2。若把條件改成 ≧,則會變成最後出現的元素編號4。

  • A. 正確。相等時不更新 m,因此留下第一個最大值的元素編號2。
  • B. 這是條件為 a[i] ≧ a[m] 時的結果。
  • C. 這是最大值本身。指派給 m 的是元素編號。
練習這個領域 前往領域頁面

相關計算工具

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

  1. 為了把陣列 a 的元素反轉順序而寫了下列程式。陣列的元素編號從1開始。執行後 a 的內容為下列何者?
  2. 陣列的元素編號從1開始。執行下列程式後,陣列 a 的內容為下列何者?
  3. 陣列的元素編號從1開始。下列程式比較相鄰的元素。執行後 c 的值為下列何者?
  4. m[i, j] 表示二維陣列 m 第 i 列第 j 行的元素,元素編號從1開始。執行下列程式後 s 的值為下列何者?
  5. 以下列程式將4列5行的二維陣列 m 的元素移到元素數為20的陣列 b。m[i, j] 表示第 i 列第 j 行的元素,元素編號從1開始。m[3, 2] 會被指派到 b 的哪一個元素編號?