问题 单项选择题

有以下程序: #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。

选择题
单项选择题 A1/A2型题