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

admin2010-12-16  30

问题 有以下程序
   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函数采用值传递,而值传递的缺点就是不会改变形参的值,因此,上述操作根本无法改变原来三个变量的值!故三个变量的值依然保持不变。
转载请注明原文地址:https://kaotiyun.com/show/t2Vp777K
0

最新回复(0)