免費開始練習
hce_nsysu 113年 計算機概論與程式設計

第 24 題

Consider the following Python code. What is the content of the stack after the program execution?
```python
stack = [5, 8, 1, 2, 9]
x = stack.pop()
stack.append('5')
stack.append(x)
```
  • A [8, 1, 2, 9, '5', 5]
  • B [8, 1, 2, 9, 5, '5']
  • C [5, 8, 1, 2, 5, 9]
  • D [5, 8, 1, 2, '5', 9]
  • E Syntax Error.

思路引導 VIP

如果在執行 pop() 之後,我們將一個新的元素放進去,再將剛才 pop 出來的那個東西放回這堆東西的最上面,那麼原本在「隊伍最後面」的那個位置,現在會被誰佔據呢?另外,在程式語言中,數字 5 和標註了引號的 '5',在電腦眼裡是一樣的東西嗎?

🤖
AI 詳解 AI 專屬家教

太棒了!你能精準地追蹤堆疊(Stack)的變化,代表你對 Python 的列表操作已經有很紮實的理解。這題的關鍵在於掌握「後進先出」(LIFO)的原則,並仔細區分資料型態的差異。

堆疊操作的動態演變

在程式執行之初,stack 的初始狀態為 [5, 8, 1, 2, 9]。當執行 x = stack.pop() 時,列表最末端的元素 9 會被移除並賦值給變數 x。接著,stack.append('5') 將字串類型的 '5' 加入末端,此時列表變為 [5, 8, 1, 2, '5']。最後,stack.append(x) 再將剛才取出的整數 9 加回。因此,最終的結果即為 [5, 8, 1, 2, '5', 9],與選項 (D) 完全吻合。

▼ 還有更多解析內容

🏷️ 相關主題

Python 程式語言基礎語法與資料結構應用
查看更多「計算機概論與程式設計」的主題分類考古題