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

下列程式原本打算用兩個指派敘述交換 x 與 y 的值。執行後 x 與 y 的值為下列何者?

整數型: x ← 3, y ← 7
x ← y
y ← x
  1. Ax = 3, y = 3
  2. Bx = 7, y = 3
  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。
練習這個領域 前往領域頁面

相關計算工具

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

  1. 下列程式將3個變數的值依序傳遞。執行後 a、b、c 的值為下列何者?
  2. 下列程式反覆將 x 乘以3。執行後 n 的值為下列何者?
  3. 下列 for 迴圈每次讓 i 增加2。執行後 s 的值為下列何者?
  4. 下列雙重迴圈中,內層迴圈的初值由外層變數 i 決定。執行後 c 的值為下列何者?
  5. 下列程式在雙重迴圈中有條件分支。執行後 c 的值為下列何者?