问题
单项选择题
有如下程序:
void f(int x, int y)
int t;
if (x<y)
t=x; x=y; y=t;
main()
int a=4,b=3,C=5,
f (a,b); f (a,c); f (b,c);
printf("%d,%d,%d\n",a,b,C);
执行后输出结果是( )。
A.3,4,5
B.5,3,4
C.5,4,3
D.4,3,5
答案
参考答案:D
解析: C语言规定,在函数调用时变量作为参数传递是传值的,在函数体中对形参变量的修改不能影响到对应的实参变量。本题定义了一个函数f(),用变量作为形参,在main()函数中调用了3次f()函数,由于变量作为参数进行传递,所以对应的实参的值并没有被交换。故输出的a、b、c依旧是原来的值4、3、5。D选项为所选。