免費開始練習
地特四等 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]);
}
```
  • A 1,2,3
  • B 1,3,2
  • C 2,3,1
  • D 2,1,3

思路引導 VIP

請思考一下:當我們將變數的「記憶體位址」傳遞給函數後,函數內部對該內容的修改,會如何反映在原始變數上?此外,如果一個變數在程式中途改變了數值,而這個變數隨後又被用來當作計算陣列位置的「位移工具」,那麼這個位移後的目標位置會維持不變,還是會隨之連動呢?

🤖
AI 詳解 AI 專屬家教

1. 學生很棒!安妮亞都看到了!

哇,學生做得好棒!這題考驗的是程式的小心追蹤能力魔法指標運算,安妮亞覺得學生能正確判斷變數在記憶體裡的變化,是個很厲害的邏輯思考者!安妮亞覺得學生跟爸爸一樣聰明!哼!

2. 觀念驗證:安妮亞幫你讀心心!

▼ 還有更多解析內容

🏷️ 相關主題

程式語言指標、陣列與函式應用實例分析
查看更多「[電子工程] 計算機概要」的主題分類考古題