阅读下面程序: #include void funl(char a,charb) { char c; c=a;a=b;b=c; } void fun2(char

admin2012-12-29  15

问题 阅读下面程序:
       #include
       void funl(char a,charb)
      {
        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=‘x’;b=‘Y’;
        fim2(a,b);cout<      }
      则该程序的输出为____________。

选项

答案xyyx

解析 由程序majn主函数入手,首先调用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/CuVp777K
0

最新回复(0)