公務人員特種考試關務人員計算機概要104 年第 24 題單選題考點:指標傳遞考點:值傳遞
執行下列 C 語言程式後,產生的輸出為何? void cube( int *nPtr, int nPtr2 ){ *nPtr = *nPtr * *nPtr * *nPtr; nPtr2 = nPtr2 * nPtr2 * nPtr2; } int main( void ){ int num1 = 5; int num2 = 4; printf( "%d %d ", num1, num2 ); cube( &num1, num2 ); printf( "%d %d", num1, num2 ); }
A5 4 5 4
B5 4 125 64
C5 4 125 4正確答案
D5 4 5 64
C正確答案
C 語言中,指標傳遞(call by address)會改變原變數值,而值傳遞(call by value)不會改變原變數值。
逐選項解析
A5 4 5 4指標傳遞✕ 錯誤
此選項認為兩個變數皆未被修改,忽略了 num1 是以指標傳遞,其值會被 cube 函式更改為 125。
B5 4 125 64值傳遞✕ 易錯陷阱
此選項誤以為 num2 也會被修改為 64,但 num2 是值傳遞,函式內的運算不會影響 main 中的 num2。
立即註冊,看完整詳解
這題的完整詳解,註冊就能看 · 每天 2 題免費
精選詳解- 完整逐選項解析
- 秒殺解題技巧與破題關鍵
- 關鍵知識表整理
- 陷阱與易錯提醒
- 同考點歷屆題庫連續刷題與錯題本