阅读下面程序: #include<iostream.h> void fun1(char a,char b) { char c; c=a;a=b;b=c; } void fun2(char &a,char &b)

admin2012-01-20  30

问题 阅读下面程序:
   #include<iostream.h>
   void fun1(char a,char b)
   {
   char c;
   c=a;a=b;b=c;
   }
   void fun2(char &a,char &b)
   {
   char c;
   c=a;a=b;b=c;
   }
   void main()
   {
   char a,b;
   a=’x’;b=’y’;
   fun1(a,b);cout<<a<<b;
   a=’x’;b=’y’;
   fun2(a,b);cout<<a<<b;
   }
   则该程序的输出为______。

选项

答案xyyx

解析 由程序main主函数入手,首先调用fun1函数,输出结果。然后调用fun2函数,输出结果。在函数fun1声明中出现的参数为形参,调用结束后,形参单元被释放,实参单元仍维持原值。也就是fun1函数中的“c=a;a=b;b=c;”交换结果并不能改变主函数中a,b实参的值,“a=’x’;b=’y’;”输出为xy。函数void fun2(char&a,char&b)声明中的为实参的地址.所以在函数中调用交换语句后,实参值改变,即输出为yx。
转载请注明原文地址:https://kaotiyun.com/show/7JVp777K
0

最新回复(0)