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

⊕ 表示逐位元的互斥或。執行下列程式後 x 與 y 的值為下列何者?

整數型: x ← 12, y ← 10
x ← x ⊕ y
y ← x ⊕ y
x ← x ⊕ y
  1. Ax = 10, y = 12
  2. Bx = 6, y = 12
  3. Cx = 12, y = 10
查看答案與解析

正確答案:A. x = 10, y = 12

以二進位表示,12 = 1100、10 = 1010。第1行使 x = 1100 ⊕ 1010 = 0110 = 6,第2行使 y = 0110 ⊕ 1010 = 1100 = 12,第3行使 x = 0110 ⊕ 1100 = 1010 = 10。這是利用與同一個值做兩次互斥或就會還原(a ⊕ b ⊕ b = a)的性質,不使用工作用變數就交換值的方法。

  • A. 正確。使用3次互斥或,x 與 y 就會交換。
  • B. 這是執行到第2個指派時的值。
  • C. 這是以為值維持不變的情況。實際上會交換。
練習這個領域 前往領域頁面

相關計算工具

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

  1. x 與 y 為8位元的無號整數。<< 與 >> 為邏輯移位,空出的位元補0,超出8位元的位元捨棄。∨ 表示逐位元的邏輯或。執行下列程式後 y 的值為下列何者?
  2. ∧ 表示逐位元的邏輯與。執行下列程式後 c 的值為下列何者?
  3. x 與 y 為8位元的無號整數。<< 與 >> 為邏輯移位,空出的位元補0,超出8位元的位元捨棄。∨ 表示逐位元的邏輯或。x 為 75 時,執行下列指派後 y 的值為下列何者?
  4. 下列程序 bubble 是將整數型陣列 data 以遞增順序排列的泡沫排序。swap(data, j, k) 是交換 data[j] 與 data[k] 的值的程序,陣列的元素編號從1開始。程式中的【a】應填入下列何者?
  5. ÷ 為除法,代入整數型變數(含引數)時捨去小數部分。下列程式在以遞增順序排好的整數型陣列 data(元素編號從1開始)中,把第一個大於或等於 x 的值的元素編號求到 lo。x 不大於 data 的最後一個元素。程式中的【a】應填入下列何者?