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$)。這就像是手中拿著兩杯不同的飲料,若想互換杯子,你絕對需要第三個空杯來當作中轉空間。
▼ 還有更多解析內容