LONGEPASS
Q12.

若有一堆疊(Stack)的資料結構,PUSH(X)代表將暫存器X 的內容放入堆疊當中,POP(X)代表從堆疊取出一個數字放入暫存器X 中。假設暫存器A、B、C、D 的內容分別為20、30、40、50,則依序執行PUSH(A)、PUSH(B)、PUSH(C)、POP(A)、PUSH(D)、PUSH(B)、POP(A)、POP(B)後,暫存器B 中的內容為何?

電腦軟體設計共同科目 · 乙級 · Q12

難易度分析

3 / 5

本題要求考生在多步驟的操作序列中,精確模擬堆疊狀態的動態變化。由於涉及多次數值的壓入與取出,且需區分暫存器名稱與其存放內容的變更,增加了認知負荷與計算過程中的失誤風險。

正確答案:④50

④ 50:50 為正確答案。執行 PUSH(D) 將 50 壓入堆疊,之後再 PUSH(B) 將 30 壓入,此時堆疊由底至頂為 [20, 30, 50, 30]。POP(A) 取出 30 後,堆疊頂端為 50,故 POP(B) 將 50 放入暫存器 B。

錯誤選項解析

  • ① 20:20 是暫存器 A 的初始值,也是堆疊最底部的元素。在整個操作過程中,該值始終留在堆疊底部,並未被 POP 到暫存器 B 中。
  • ② 30:30 是暫存器 B 的初始值。但經過 PUSH(B) 將 30 壓入堆疊後,最後執行 POP(B) 時取出的是堆疊頂端的 50,而非原始的 30。
  • ③ 40:40 是暫存器 C 的初始值,在第三次 PUSH(C) 後被壓入堆疊,但隨後在第一次 POP(A) 時已被取出並覆蓋到暫存器 A 中,與暫存器 B 無關。
Learning Tip

"本題核心考點為 堆疊的 LIFO(後進先出) 特性。解題關鍵在於逐步追蹤每次 PUSH 與 POP 後堆疊的狀態變化,並注意 POP 操作會覆蓋目標暫存器的原始值。常見陷阱是忽略 POP 會改變暫存器內容,誤以為暫存器維持初始值。"

學員答題分佈

①200%
②300%
③400%
④500%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目