国家二级C++机试(操作题)模拟试卷351
基本操作题
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<<\\
(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++中逻辑假的值应该是false而不是FALSE,所以这里修改为“BOOLa=false;”。
(3)题目要求输出Hello,它要在“if(a)”为真的时候输出“Hello”。i的值为0X80000000,第3个标识下a=!i;语句中a的值为假。i!=0为真,所以修改为“a=(i!=0);”。
简单应用题
2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,补充空出的代码。函数sum(int n)计算在n范围内,能被7和11整除的所有整数的和(包括n在内)。
注意:不能修改程序的其他部分,只能补充sum()函数。
#include
double sum(int n)
{
}
void main()
{
cout<<sum(80)<<endl;
cout<<sum(200)<<endl;
tout<<sum(300)<<endl;
return;
}
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整除的数,循环变量i从最小值11开始,到n结束,即11<=i<=n。
(2)在函数中定义累加变量result用来保存求和结果,在循环体内,逐个判断每个i是否能被7和11整除,即(i%7=0)和(i%11==0)都满足的话,说明i能同时被7和11整除,将该值加到result上,循环结束返回result。
综合应用题
3.使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
其中:定义了类circle和column,column类由circle类protected派生,但是两个类的定义并不完整,请按照以下的要求,将程序补充完整。
(1)定义类circle的保护数据成员函数r和area,它们都是double型的数据,请在注释//********1********后完成。
(2)添加类circle的无参数的构造函数,使得类circle对象的r默认值为0,请在注释//********2********后完成。
(3)添加派生类column的构造函数的定义,使得参数为double型的height和radius并将其分别赋给数据成员h和基类的r请在注释//********3********之后完成。
(4)完成派生类column的成员函数print()的定义,请在注释//********4********之后完成,使得输出为:
radius=5 area=78.54
height=10 vol=785.4
注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
#include
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<<\\
(1)添加语句:double r,area;
(2)添加语句:circle()
(3)添加语句:column(double radius,double height)
(4)添加语句:cout<<”height=\\
解析:(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<<\\
本文档预览:3600字符,共3462字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载