程式設計基礎(虛擬碼追蹤)
下列程式原本打算用兩個指派敘述交換 x 與 y 的值。執行後 x 與 y 的值為下列何者?
整數型: x ← 3, y ← 7
x ← y
y ← x
- Ax = 3, y = 3
- Bx = 7, y = 3
- Cx = 7, y = 7
查看答案與解析
正確答案:C. x = 7, y = 7
虛擬碼的指派敘述由上而下逐一執行。x ← y 使 x 變為7,原本的值3在此時就遺失了。接著的 y ← x 會把新的 x 值7放入 y,因此 x = 7、y = 7。要交換值,應像 t ← x、x ← y、y ← t 這樣,先把原本的值暫存到工作用變數再指派。
- A. 這是先執行 y ← x 時的結果。此程式是先執行 x ← y。
- B. 這是以為交換成功時的值。在 x ← y 的時點,x 原本的值3已經遺失。
- C. 正確。x ← y 使 x 變為7,接著的 y ← x 也指派7。
繼續練習程式設計基礎(虛擬碼追蹤)的另外9題