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

下列程式從元素編號1的元素開始,依序走訪以陣列 next 連接元素的鏈結串列並輸出。陣列的元素編號從1開始。next 的值0表示串列的結尾。輸出的值的順序為下列何者?

字串型陣列: val ← {"A", "B", "C", "D", "E"}
整數型陣列: next ← {3, 0, 5, 2, 4}
整數型: p ← 1
while (p ≠ 0)
  輸出 val[p]
  p ← next[p]
endwhile
  1. AA, B, C, D, E
  2. BC, E, D, B
  3. CA, C, E, D, B
查看答案與解析

正確答案:C. A, C, E, D, B

p = 1 時輸出 val[1] 的 A,並以 p ← next[1] 前進到 p = 3。接著輸出 C 前進到 next[3] = 5,輸出 E 前進到 next[5] = 4,輸出 D 前進到 next[4] = 2,輸出 B 後 next[2] = 0,離開迴圈。輸出為 A, C, E, D, B。串列的順序不是由陣列的排列順序決定,而是由 next 的值決定。

  • A. 這是依陣列的排列順序輸出的情況。走訪的順序由 next 的值決定。
  • B. 這是在輸出之前先讓 p 前進時的順序,少了開頭的 A。
  • C. 正確。依元素編號 1 → 3 → 5 → 4 → 2 的順序走訪。
練習這個領域 前往領域頁面

相關計算工具

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

  1. 下列程式在以陣列 next 連接的鏈結串列 A → C → E → D → B 中,把 val[6] 的「F」插入到「C」(元素編號3)的正後方,再從元素編號1的元素開始依序走訪並輸出。陣列的元素編號從1開始。next 的值0表示串列的結尾。為使輸出為 A, C, F, E, D, B,【a】應填入下列何者?
  2. 下列 for 迴圈每次讓控制變數增加5。執行後 c 的值為下列何者?
  3. 下列程式的 and 在左側的式子為 false 時不評估右側的式子(短路求值)。cnt 是全域變數。執行後 cnt 的值為下列何者?
  4. 下列程式在元素數為 n 的陣列 a 中尋找值 x,並把找到的元素編號求到 i。陣列的元素編號從1開始。and 與 or 在只看左側的式子就能決定結果時,不評估右側的式子。【a】中填入的條件式中,在 x 不在 a 中時會參照到範圍外 a[n + 1] 的是下列何者?
  5. 實數型的值以 IEEE 754 雙精度(binary64)表示,加法的結果捨入為最接近的可表示值。執行下列程式後 c 的值為下列何者?