1、国家二级 C+机试(操作题)模拟试卷 323及答案与解析 一、基本操作题 1 使用 VC6打开考生文件夹下的源程序文件 modi1 cpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为: Hello 注意:不要改动 main函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 #include void main() *error* typedef BOOL bool; *error* BOOL a=FALSE; int i=0X80000000; *error* a=!i; if(a) cout double sum(int n) v
2、oid main() cout const double pi=3 1416; Class circle protected: *1* public: *2* r=0 0; circle(double radius) r=radius; Void print() area=r*r*pi; cout“radius=“r “area=“areaendl; ; class column: protected circle protected: double h; public: *3* h=height; r=radius; Void print() Circle: print(); *4* ; i
3、nt main() column col(5 0, 10 0); col print(); return 0; 国家二级 C+机试(操作题)模拟试卷 323答案与解析 一、基本操作题 1 【正确答案】 (1)typedef bool BOOL; (2)BOOL a=false; (3)a=(i!=0); 【试题解析】 (1)第 1个标识下的 “typedef BOOL bool; ”。 typedef为 C语言的关键字,作用是为一种数据类型定义一个新名字。一般形式应该是: typedef标准数据类型新的数据类型名,所以第 1个标识下应该是 “typedefbool BOOL: ”。 (2)C+
4、中逻辑假的值应该是 false而不是 FALSE,所以这里修改为“BOOLa=false; ”。 (3)题目要求输出 Hello,它要在 “if(a)”为真的时候输出 “Hello”。 i的值为0X80000000,第 3个标识下 a=!i;语句中 a的值为假。 i!=0为真,所以修改为“a=(i!=0); ”。 二、简单应用 题 2 【正确答案】 int result=0; for(int i=11; i=n; i+) if(i 7=0) (i 11=0) result+=i; return result; 【试题解析】 (1)利用循环查找能所有小于等于 n的能被 7和 11整除的数,循环变
5、量 i从最小值 11开始,到 n结束,即 11=i=n。 (2)在函数中定义累加变量 result用来保存求和结果,在循环体内,逐个判断每个 i是否能被 7和 11整除,即 (i 7=0)和 (i 11=0)都满足的话,说明 i能同时被 7和 11整除,将该值加到 result上,循环结束返回 result。 三、综合应用题 3 【正确答案】 (1)添加语句: double r, area; (2)添加语句: circle() (3)添加语句: column(double radius, double height) (4)添加语句: cout”height=“h“vol=“area*hend
6、l; 【试题解析】 (1)题目 1要求 “定义类 circle的保护数据成员函数 r和 area,它们都是 double型的数据 ”。保护成员与 private和 public一样是用来声明成员的访问权限的。在已有程序 circle类中的 protected:区域,添加变量 r和 area的定义,即 “double r, area; ”。 (2)题目 2要求 “添加类 circle的无参数的构造函数,使得类 circle对象的 r默认值为 0”。在 C+中,构造函数是一种特殊的成员函数,它的名字与类同名,没有参数的构造函数一般形式为:构造函数名 (),所以这里添加 “circle()”。 (3)题目 3要求 “添加派 生类 column的构造函数的定义 ”。同 (2),另外带参数的构造函数的一般格式为:构造函数名 (类型 1形参 1,类型 2形参 2, ) ,所以这里添加 “column(double radius。 double height)”。 (4)题目 4要求 “完成派生类 column的成员函数 print()的定义 ”。根据题干中输出结果,知道第一个输出值为 height,第二个输出值为 vol,即 area*h,所以这里添加 “cout“height=“h“vol=“area*hendl; ”。