1、国家二级( C+)机试模拟试卷 29及答案与解析 一、程序改错题( 30分) 0 使用 VC6打开考生文件夹下的工程 RevProj10。此工程包含一个源程序文件RevMain10.cpp。在该文件中,函数 fun的功能是:计算出数组 x中的最小值与次最小值,并分别将其与 x0、 x1交换。 请改正程序中的错误,使它能得到正确结果。 注意,不要改动主函数,不得删行或增行,也不得更改程序的结构。 源程序文件 RevMain10.cpp中的程序清单如下: /RevMain10.cpp #include iostream using namespace std; #define N 30 int f
2、un(int *x, int n); int main () int hN=4,7, 6, 5, 1, 7,3, 8,0,2,3; int i; for (i=0; i 11; i+) cout h i “ “ ; cout “/n“; fun(h, 11); for (i=0; i n; i+) cout h i “ “; cout n; return 0; int fun(int *x, int n) int i,t; int a1=0, a2=0,min1=32767,min2=32676; /* * * * *FOUND * * * * */ for(i=1;i n;i+) if (x
3、 i min1) min2=min1; a2=a1; min1=x i; a1=i; else if (x i min2) min2=x i; a2=i; /* * * * *FOUND * * * * */ t=x0;xa1=x0;xa1=t; /* * * * *FOUND * * * * */ t=x1 ;xa2=x1;xa2=t; 二、简单应用题( 40分) 0 请编写一个函数 int fun(int n),其中 n为自然数。函数 fun()的功能是求出自然数n(包括 n)以内所有素数的和,并返回其值。 注意;部分源程序已存在文件 PROC11.cpp中。 请勿修改主函数和其他函数中的
4、任何内容,仅在函数 fun()的花括号中填写若干语句。 文件 PROC11.cpp的内容如下: /PROC11.cpp #include iostream using namespace std; int fun(int n); int main() int number; cout “Enter the number which you want to caculate: n“; cin number; cout “The result is:“ fun(number) end1; return 0; int fun(int n) /* * * * * * * * * 三、综合应用题( 30
5、分) 0 使用 VC6打开考生文件夹下的工程 MyProj9。此工程包含一个源程序文件MyMain9.cpp。程序中定义了两个类 Point和 Circle,但类的定义并不完整。 请按要求完成下列操作 ,将类 Sample的定义补充完成: 类 Circle是基类 Point公有派生宋的。请在注释 “/* *1* *”之后添加适当的语句。 完成构造函数 Circle(int a,int b,int c)的定义,采用初始化列表的方式使基类Point私有成员 x、 y分别初始化为 a、 b,类 Circle的私有成员 r初始化为 c。请在注释 “/* *2* *”之后添加适当的语句。 完成类 Cir
6、cle的成员函数 area()的类体外的定义。函数 area的功能是计算出此圆对象的面积,即 PI*r*r。请在注释 “/* *3* *”之后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 源程序文件 MyMain9.cpp清单如下: /MyMain9.cpp #include iostream using namespace std; #define PI 3.14 class Point private: int x, y; public: Point (int a, int b) x=a; y=b; int getx () return x; int gety() return y; ; /* *1* * private: int r; public: /* *2* * int getr() return r; double area(); ; double Circle: area() /* *3* * int main() Circle c1(5, 7, 10); cout c1.area() end1; return 0; 国家二级( C+)机试模拟试卷 29答案与解析 一、程序改错题( 30分) 二、简单应用题( 40分) 三、综合应用题( 30分)