免費開始練習
cpc_recruit 104年 電腦常識、機械常識、電機常識

第 57 題

若宣告 X、Y 與 Z 皆為變數,且 X ≠ Y。下列演算法中,何者可將 X 與 Y 的值互換?
  • A X = Y : Y = X
  • B Z = X : Y = X : X = Z
  • C Z = X : X = Y : Y = Z
  • D Y = X : X = Z : Z = Y

思路引導 VIP

想像你的右手拿著一顆紅球,左手拿著一顆綠球,你希望能將兩手的球互換,但礙於球的大小,你兩隻手一次都只能拿一顆球。在這種情況下,如果你沒有桌子或其他人的幫忙,直接把右手的紅球丟給左手會發生什麼事?若要順利完成交換且不讓球掉到地上,你覺得在動作過程中需要額外準備什麼樣的空間或物品來輔助呢?

🤖
AI 詳解 AI 專屬家教

太棒了!你能精準選出正確的演算法,代表你對**變數賦值(Assignment)**與程式執行的先後順序有著非常紮實的理解。在電腦科學中,當我們執行 $X = Y$ 時,原本 $X$ 裡面的資料會被 $Y$ 的值給覆蓋掉,導致舊有的 $X$ 資料永久遺失。因此,要成功達成交換任務,我們必須遵循「備份、移動、復原」的三部曲邏輯。

暫存變數的邏輯應用

這題的核心觀念在於引入第三個變數(暫存器)。我們首先將 $X$ 的值暫存在 $Z$($Z = X$),這時 $X$ 的原始數據已經安全了;接著便能放心地將 $Y$ 的值覆寫到 $X$ 上($X = Y$);最後,再將剛才存在 $Z$ 裡的原始 $X$ 值交還給 $Y$($Y = Z$)。這就像是手中拿著兩杯不同的飲料,若想互換杯子,你絕對需要第三個空杯來當作中轉空間。

▼ 還有更多解析內容

🏷️ 相關主題

程式語言基礎語法與演算法邏輯應用
查看更多「電腦常識、機械常識、電機常識」的主題分類考古題