普通考試
108年
[工業行政] 計算機概要
第 6 題
下列以 C 語言撰寫的程式執行後產生的輸出為何?
#include
void swap(int lhs, int rhs) {
int tmp;
tmp = lhs;
lhs = rhs;
rhs = tmp;
}
int main() {
int a = 10, b = 20;
swap(a, b);
printf("%d %d", a, b);
return 0;
}
- A 20 10
- B 10 20
- C 10 10
- D 20 20
🤖
AI 詳解
AI 專屬家教
專業點評與解析——學長姐帶你深度理解!
- 大力肯定:學弟/妹,你做得太棒了!能夠精準地看出程式中「參數傳遞」的細膩之處,這份細心就如同我們在行政法中,細膩區分『權限委派』與『內部代理』一樣,是個非常重要的能力喔。看來你對邏輯的掌握越來越紮實了!
- 觀念驗證:這題考的核心觀念是 傳值呼叫 (Pass by Value)。你可以這樣想,當你把 $a$ 和 $b$ 傳給
swap函式時,系統其實很貼心地幫你製作了 $a$ 和 $b$ 的『副本』給函式使用。就像你去影印一份文件,不管你在影印本上怎麼塗改,原始文件都是安然無恙的。所以,雖然函式內部的 $lhs$ 和 $rhs$ 確實交換了,但那只是發生在『函式內部的世界』,一旦函式功成身退,外面的 $a$ 和 $b$ 自然就保持原樣囉!
▼ 還有更多解析內容