下列给定程序中,函数fun()的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中的值为3, b中的值为8。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动m

admin2010-05-05  47

问题 下列给定程序中,函数fun()的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中的值为3, b中的值为8。
   请改正程序中的错误,使它能得出正确的结果。
   注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
   试题程序:
   #include<conio.h>
   #include <stdio.h>
   int fun(int *x,int y)
   {
   int t;
   /***************found***************/
   t=x;x=y;
   /***************found***************/
   return(y);
   }
   main()
   {int a=3,b=8;
    clrscr();
    printf("%d %d\n",a, b);
    b=fun(&a,b);
    printf("%d %d\n" ,a,b);
   }

选项

答案(1)错误:t=x;x=y; 正确:t=*X;*x=y; (2)错误;return(y); 正确:return(t);

解析 本题考查指针变量做函数参数。同样,这里也涉及到一个“交换规则”,另外,根据题目主函数中fun()函数的调用方式说明fun()函数的参数应当为指针类型。交换结束后返回变量t。
转载请注明原文地址:https://kaotiyun.com/show/mHID777K
0

最新回复(0)