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)
```
```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) 完全吻合。
▼ 還有更多解析內容