问题 填空题

下列给定程序中,函数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); }

答案

参考答案:错误: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()函数的参数应当为指针类型。另外,值得一提的是“交换法则”,这题的错误比较明显,如果程序段中有隐蔽的交换错误,一般不容易发现,希望学习者引起注意。

单项选择题
填空题