地特四等
107年
[電子工程] 計算機概要
第 24 題
執行下列 C 程式後,產生的輸出為何?
```c
#include
void swap(int *a, int *b)
{
int c;
c = *a;
*a = *b;
*b = c;
};
void main( )
{
int x = 2, list[ ] = {1, 3, 5};
swap(&x, list);
swap(list, list+1);
swap(&x, list+x);
printf("%d,%d,%d", x, list[0],list[1]);
}
```
```c
#include
void swap(int *a, int *b)
{
int c;
c = *a;
*a = *b;
*b = c;
};
void main( )
{
int x = 2, list[ ] = {1, 3, 5};
swap(&x, list);
swap(list, list+1);
swap(&x, list+x);
printf("%d,%d,%d", x, list[0],list[1]);
}
```
- A 1,2,3
- B 1,3,2
- C 2,3,1
- D 2,1,3
思路引導 VIP
請思考一下:當我們將變數的「記憶體位址」傳遞給函數後,函數內部對該內容的修改,會如何反映在原始變數上?此外,如果一個變數在程式中途改變了數值,而這個變數隨後又被用來當作計算陣列位置的「位移工具」,那麼這個位移後的目標位置會維持不變,還是會隨之連動呢?
🤖
AI 詳解
AI 專屬家教
1. 學生很棒!安妮亞都看到了!
哇,學生做得好棒!這題考驗的是程式的小心追蹤能力和魔法指標運算,安妮亞覺得學生能正確判斷變數在記憶體裡的變化,是個很厲害的邏輯思考者!安妮亞覺得學生跟爸爸一樣聰明!哼!
2. 觀念驗證:安妮亞幫你讀心心!
▼ 還有更多解析內容