LONGEPASS
Q85.

下列哪一個演算法可以將A,B 兩個值的內容互換?

電腦硬體裝修 · 乙級 · 儀表、軟體及一般工具 · Q85

難易度分析

2 / 5

此題考驗對賦值運算順序與變數狀態變化的理解。考生必須透過模擬每一行指令執行後變數內容的變化,來判斷是否存在因直接覆蓋而導致原始資料遺失的情況,屬於基礎邏輯判斷題型。

正確答案:④C=A:A=B:B=C

④ C=A:A=B:B=C:此為標準的三變數互換法:先以暫存變數 C 保存 A 的原始值(C=A),再將 B 賦值給 A(A=B),最後將 C 中保存的 A 原始值賦給 B(B=C),即可正確完成 A 與 B 內容互換。

錯誤選項解析

  • ① A=B:B=C:C=A:此寫法先將 B 的值覆蓋到 A,導致 A 的原始值遺失,後續即使引入 C 也無法完成互換,邏輯順序錯誤。
  • ② C=B:A=B:B=C:此寫法先用 C 儲存 B 的值,但接著執行 A=B 會使 A 也變成 B 的值,A 的原始值已遺失,最終 A 與 B 均為 B 的原始值,未達成互換。
  • ③ A=B:B=A:此寫法缺少暫存變數,執行 A=B 後 A 的原始值已被覆蓋,再執行 B=A 時兩者皆為 B 的原始值,無法完成互換。
Learning Tip

"此題考點為變數值互換的標準演算法。常見陷阱是忽略暫存變數的必要性——若未先用暫存變數保存其中一值,直接賦值會導致原始資料被覆蓋而遺失。實務上除三變數法外,也可使用 XOR 交換演算法(不需暫存變數),但三變數法可讀性最佳,為程式設計與微處理器邏輯中最常用的標準做法。"

學員答題分佈

①A=B:B=C:C=A0%
②C=B:A=B:B=C0%
③A=B:B=A0%
④C=A:A=B:B=C0%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目