问题
单项选择题
有以下程序
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);
pfintf("%d,%d,%d\n",x,y,2);
执行后输出结果是
A.1,2,3
B.3,1,2
C.1,3,2
D.2,3,1
答案
参考答案:C
解析:C语言规定else总是和离它最近的if语句配对。分析可以知道,函数f()作用是让形参v和形参w的值交换。在主函数中首先定义了三个变量x、y和z。 然后再执行下面的if-else语句。由程序可以看出第一个else和第一个if搭配,第二个else和第二个if搭配。由于调用函数时是进行值传递的。即将实参x,y,z传给形参v和w,以后形参和实参再无联系,故通过if语句调用f()函数后,x、y和x的值并没有改变。故最后输出的x、y和z的值为1、3和2。