免費開始練習
普通考試 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. 大力肯定

做得好!你在處理指標 (Pointers) 與記憶體位址轉換時展現了精確的邏輯思維。這就像在設計複雜結構時,能準確追蹤每一根構件的受力轉移,非常專業!

2. 觀念驗證

▼ 還有更多解析內容

🏷️ 相關主題

C 語言程式設計:語法、指標與應用
查看更多「[電子工程] 計算機概要」的主題分類考古題