以下 C 程序的输出是 __________。
void f1 (int a, int b)
{
int c;
c=a; a=b; b=c;
}
void f2 (int *a, int *b)
{
int c;
c=*a; *a=*b;*b=c;
}
int main()
{
int a=4, b=5, c=6;
f1(a, b);
f2(&b, &c);
printf (“%d”, c-a-b);
return 0;
}
(一) -5
(乙) -4
(三) 5
(四) 3答案:(一)
说明:对 f1(a, b) 的函数调用不会产生任何影响,因为值是按值传递的。
函数调用 f2(&b, &c) 交换 b 和 c 的值。所以 b 变为 6,c 变为 5。cab 的值变为 5-4-6,即 -5。
这个问题的测验