下列 C 程式執行完後,變數 k1 和 k2 印出的值分別是多少?
int mul(int a, int b){
int c;
a = a - 1;
b = b - 1;
c = a * b;
return(c);
}
int main(){
int i, j;
int k1, k2;
i = 3;
j = 4;
k1 = mul(i, j);
k2 = mul(i, j);
printf("k1 = %d\n", k1);
printf("k2 = %d\n", k2);
}
Ak1 = 6 且 k2 = 6正確答案
Bk1 = 12 且 k2 = 12
Ck1 = 6 且 k2 = 2
Dk1 = 12 且 k2 = 6
答案與詳解
A
正確答案
C 語言採 call by value,mul 函式內修改 a、b 不影響主程式 i、j,故兩次呼叫結果相同。