问题 单项选择题

有以下程序

void f(int x,int y)

int t;

if(x<y)t=x;x=y;y=t;


main( )

int a=4,b=3,c=5;

f(a,b); f(a,c); f(b,c);

cout<<a<<","<<b<<","<<c<<endl;


执行后输出结果是

A.3,4,5

B.5,3,4

C.5,4,3

D.4,3,5

答案

参考答案:D

解析: 考生根据分析可以得知f函数的功能是交换两个变量的值。表明看起来,在main函数中,使用三次f函数完成三个变量的交换。真的如此么只要考生注意到f函数采用值传递,而值传递的缺点就是不会改变形参的值,因此,上述操作根本无法改变原来三个变量的值!故三个变量的值依然保持不变。

单项选择题
单项选择题