下列 C 程式執行後的輸出為何?
#include <stdio.h>
int a=3, b=4;
void fun(int a, int c)
{
a++;
b+=c;
}
int main(void)
{
int a;
a = 1;
b = 2;
fun(a, b);
printf("%d, %d", a, b);
return 0;
}
A1, 2
B1, 4正確答案
C2, 6
D4, 4
答案與詳解
B
正確答案
main 的 a 是區域變數值傳遞不變;b 是全域變數在 fun 中被修改為 2+2=4。
為什麼答案是 B
main 的 a 是區域變數=1,值傳遞給 fun 不受影響。b 為全域變數,呼叫 fun(1,2) 時 c=2,執行 b+=c 即 b=2+2=4。輸出 1, 4。