下列给定程序中,函数fun()的功能是:实现两个整数的交换。例如给a和b分别输入60和65,输出为:a=65 b=60 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程

admin2010-05-05  12

问题 下列给定程序中,函数fun()的功能是:实现两个整数的交换。例如给a和b分别输入60和65,输出为:a=65 b=60
   请改正程序中的错误,使它能得出正确的结果。
   注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
   试题程序;
       #include<stdio.h>
       #include <conio.h>
       /*************found**************/
       void fun(int a,b)
       { int t;
       /*************found**************/
        t=b;b=a;a=t;
       }
       main()
       {  int a,b;
          clrscr();
          printf("Enter a, b: "); scanf("%d%d",
                 &a,&b);
          fun(&a,  &b);
          printf("a=%d b=%d\n ", a,b);
       }

选项

答案(1)错误:void fun(int a,b) 正确:void fun(int *a,int *b) (2) 错误:t=b;b=a;a=t; 正确;t=*b;*b=*a;*a=t;

解析 本题考查指针变量做函数参数。采用一般变量做参数,不能改变实参的值,采用指针变量作为参数则能够改变实参的值。主函数中fun()的调用方式说明fun()函数的参数应当为指针类型。另外,值得一提的是“交换法则”,这题的错误比较明显,如果程序段中有隐蔽的交换错误,一般不容易发现,希望学习者引起注意。
转载请注明原文地址:https://kaotiyun.com/show/VXID777K
0

相关试题推荐
最新回复(0)