以下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;
}
(A) -5
(B) -4
(C) 5
(D) 3答案: (A)
说明:对值f1(a,b)的函数调用不会产生任何效果,因为值是按值传递的。
函数调用f2(&b,&c)交换b和c的值。因此b变为6,c变为5。cab的值变为5-4-6,即-5。
这个问题的测验