民國111年 普通考試 電子工程 計算機概要

第31題

執行下列C 程式後,產生的輸出為何?#include<stdio.h>void swap (int x, int y) {int z;z = x;x = y;y…

題目

執行下列C 程式後,產生的輸出為何?#include<stdio.h>void swap (int x, int y) {int z;z = x;x = y;y = z;printf(“%d-%d;”, x, y);}void main() {int a = 3, b = 4;swap(a, b);printf(“%d-%d;”, a, b);} A. 3-4;4-3; B. 3-4;3-4; C. 4-3;4-3; D. 4-3;3-4;

官方答案

  • 答案:D. 4-3;3-4;

解析

C 語言函式參數為「傳值呼叫」(call by value),swap 收到的 x、y 只是 a、b 的副本。函式內交換 x、y 後印出「4-3;」,但主程式的 a、b 不受影響,仍為 3、4,回到 main 印出「3-4;」,整體輸出為「4-3;3-4;」。A、B、C 皆未正確反映傳值語意(若要交換成功須用指標傳址)。本題考參數傳遞機制,選 D。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料

答案以考選部公告之測驗式試題標準答案 PDF 為準。