Examly題庫立即開始練習
普考-資訊處理計算機概要104 年第 22 題單選題考點:指標交換考點:call by value 誤判

下列是 C 語言之函數 fun2,當此函數被呼叫時,傳入參數 num1 和 num2 分別為 5 和 55,請問此函數執行完畢後,num1 和 num2 分別為多少? void fun2 (int *num1, int *num2) { int num3 = *num1; *num1 = *num2; *num2 = num3; }

A55 和 5正確答案
B5 和 55
C5 和 5
D55 和 55
答案與詳解
A
正確答案
這是經典的 pointer swap(指標交換)函數,透過指標交換兩變數的值,5 和 55 交換後變成 55 和 5。

逐選項解析

A55 和 5指標交換✓ 正確
正解。num3 先暫存 num1 的值 5,接著把 num2 的值 55 寫入 num1,最後把 num3 的 5 寫入 num2,完成交換。因為傳的是指標,變動會反映到原變數。
B5 和 55call by value 誤判✕ 易錯陷阱
陷阱選項。若誤以為 C 是 call by value(傳值),函數內變動不會影響外部,就會選此答案。但此題傳的是 int* 指標,屬 call by address,會真的改到原變數。
C5 和 5✕ 錯誤
D55 和 55✕ 錯誤

立即註冊,看完整詳解

這題的完整詳解,註冊就能看 · 每天 2 題免費

精選詳解
  • 完整逐選項解析
  • 秒殺解題技巧與破題關鍵
  • 關鍵知識表整理
  • 陷阱與易錯提醒
  • 同考點歷屆題庫連續刷題與錯題本

計算機概要 相關題目

想練更多計算機概要考古題?

Examly 收錄 50 萬+ 道歷屆題目,每題都有像這樣的精選詳解。免費下載,立即開練。

Examly