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

下列程式將3個變數的值依序傳遞。執行後 a、b、c 的值為下列何者?

整數型: a ← 1, b ← 2, c ← 3, t
t ← a
a ← b
b ← c
c ← t
  1. Aa = 2, b = 3, c = 1
  2. Ba = 2, b = 3, c = 2
  3. Ca = 3, b = 1, c = 2
查看答案與解析

正確答案:A. a = 2, b = 3, c = 1

t ← a 把 a 原本的值1暫存到 t。a ← b 使 a = 2,b ← c 使 b = 3,最後的 c ← t 把暫存的1放入 c。3個值各往前移一個位置,因此 a = 2、b = 3、c = 1。若不使用 t 而寫成 c ← a,此時 a 已經是2,c 會變成2。

  • A. 正確。暫存的 a 原本的值1,最後放入 c。
  • B. 這是寫成 c ← a 而非 c ← t 時的結果。此時 a 已經變成2。
  • C. 這是把值往反方向轉的結果。順序是 a ← b、b ← c,所以值是往前移。
練習這個領域 前往領域頁面

相關計算工具

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

  1. 下列程式反覆將 x 乘以3。執行後 n 的值為下列何者?
  2. 下列 for 迴圈每次讓 i 增加2。執行後 s 的值為下列何者?
  3. 下列雙重迴圈中,內層迴圈的初值由外層變數 i 決定。執行後 c 的值為下列何者?
  4. 下列程式在雙重迴圈中有條件分支。執行後 c 的值為下列何者?
  5. 為了求陣列 a 所有元素的總和而寫了下列程式。陣列的元素編號從1開始。執行後 s 的值為下列何者?