问题
单项选择题
有以下程序:
#include <stdio.h>
void f(int v, int w)
int t;
t=v; v=w; w=t;
main()
int x=1,y=3,z=2;
if(x>y) f(x,y);
else if(y>z) f(y,z);
else f(x,z);
printf("%d,%d,%d\n",x,y,z);
执行后的输出结果( )。
A) 1,2,3
B) 3,1,2
C) 1,3,2
D) 2,3,1
答案
参考答案:C
解析: 程序中if语句的条件只有y>z为真,所以执行f(y,z)。函数f的功能是交换两形参的值,但由于实参和形参都是一般变量,因此形参变量值的交换不能影响实参的值,main函数中的y和z并来互换,因此输出结果为:1,3,2。