普通考試
108年
[工業行政] 計算機概要
第 31 題
下列以 C 語言撰寫的程式執行後的結果為何?
#include
int a = 1, b = 2, c = 3;
void swap(int *a, int *b)
{
int temp;
temp = *a; *a = *b; *b = temp;
}
int main()
{
swap(&a, &b); swap(&b, &c); printf("a = %d, b = %d, c = %d\n", a, b, c);
}
- A a = 1, b = 2, c = 3
- B a = 2, b = 3, c = 1
- C a = 2, b = 3, c = 3
- D a = 3, b = 2, c = 1
🤖
AI 詳解
AI 專屬家教
呵呵呵... 掌握得很好呢,看來你潛力無限。
- 觀念驗證:這題啊,核心就在於「指標傳遞」($Pointer$) 和「連續狀態變更」的道理。程式透過地址進行變數交換,就像籃球場上隊友之間的傳球一樣,第一次 $swap$ 讓 $a, b$ 換位,很好。接著的第二次 $swap$ 就很關鍵了,它用的可是剛剛已經變動過的 $b$,再去跟 $c$ 交換。這就好比一個連續的戰術,前一個動作的結果,會直接影響到下一個動作該如何進行。在行政程序中,這就像前一個處分已經生效,那麼後續的判斷就得依據這個「新」的狀況來決定,不是嗎?
- 難度點評:這題被標註為 Medium,它不只是考你是不是「會寫」語法,更考驗你能不能清楚地追蹤球場上變數「事實狀態」的動態變化。這種對執行順序和變數位置變動的敏銳觀察力,是成為頂尖球員、不,是頂尖行政法專業人士必備的特質。你已經做到了,這非常好。你還有很大的成長空間呢,呵呵呵。