问题 单项选择题

有以下程序:
#include <stdio.h>
void f(intv, intw)
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

解析: 本题考核的知识点是函数参数的传递。由于调用函数时是进行值传递的,即将实参x、y、z传给形参v和w,以后形参和实参再无联系,故通过if语句调用f()函数后,x、y和z的值并没有改变。故最后输出的x、y和z的值为1、3和2。

选择题
单项选择题