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

admin2009-01-15  33

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

答案4

解析 程序中if语句的条件只有y>z为真,所以执行f(y,z)。函数f的功能是交换两形参的值,但由于实参和形参都是一般变量,因此形参变量值的交换不能影响实参的值,main函数中的y和z并来互换,因此输出结果为:1,3,2。
转载请注明原文地址:https://jikaoti.com/ti/x0S0FFFM
0

相关试题推荐
最新回复(0)