国家二级C++机试(操作题)模拟试卷476
基本操作题
1.使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为:
TestClass2
TestClass3
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//********error********的下面。
#include
Class TestClass1
{
public:
virtual void fun()=0;
};
class TestClass2:public TestClass1
{
//********error********
int fun()
{
using namespace std;
cout<<\\
(1)void fun()
(2)添加语句:public:
(3)std::cout<<\\
解析:(1)fun()函数是没有返回值的,而第1个标识下的“int fun()”语句中定义的funO函数是有int型返回值的,所以将其修改为“void fun()”。
(2)第2个标识下的fun()函数,没有被定义为public型,所以外部其他成员无法访问,只能是类本身访问,所以添加“public:”。
(3)在程序中用到C++标准库时,要使用std标准命名空间进行限定。第三个标识下cout为标准库函数,所以要声明cout是在命名空间std中定义的流对象,即为“std::cout<<”TestClass3”<<std::end1;”或者添加“using namespace std;”。
简单应用题
2.使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分程序,使函数fun()实现以下功能:找出一个整数,它加上100后是一个完全平方数,再加上268又是一个完全平方数,请问该数是多少?
程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后开方,如果开方后的结果满足条件,即是结果。
#include
#include
void fun()
{
}
int main()
{
fun();
return 0;
}
long int i,x,y,z;
for(i=i;i<100000;i++)
{
x=aqrt(i+100);
//x为加上100后开方后的结果
y=aqrt(i+268);
//y为再加上268后开方的结果
if(x*x==i+100&&y*y==i+268)
//如果一个数的平方根的平方等于该数,
说明此数是完全平方数
cout<<i<<end1;
}
解析:(1)利用循环找到满足条件的整数。
(2)首先计算x加上100和y加上268的开方。
(3)一个数的平方根的平方等于该数,说明此数是完全平方数。
综合应用题
3.使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:
(1)定义纯虚类TestClass0,包含纯虚函数fun(),请在注释//********1********后添加适当的语句。
(2)完成类TestClass1,以公有继承TestClass0,请在注释//********2********后添加适当的语句。
(3)定义TestClass0对象指针p,请在注释//********3********后添加适当的语句。
(4)把TestClass1的对象obj的指针赋给TestClass0指针P,请在注释//********4********后添加适当的语句。
注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
#include
Class TestClass0
{
public:
//********1********
};
//********2********
class TestClass1
{
public:
void fun()
{
cout<<\\
(1)添加语句:virtual void fun()=0;
(2)将“class TestClass1”补充完整为:
class TestClass1:public TestClass0
(3)添加语句:TestClass0* p;
(4)添加语句:p=&obj;
解析:(1)题目1要求“定义纯虚类TestClass0”。在C++中,虚函数在基类用virtual声明类为虚类。纯虚类是在声明虚类时被“初始化”为0的函数。所以第1个标识下应添加“virtual voidfun0=0;”。
(2)题目2要求“完成类TestClass1,以公有继承TestClass0”。公有继承是在定义一个派生类时将基类的继承方式指定为public的,称为公用继承。所以这里补全“class TestClass1:public TestClass0”。
(3)题目3要求“定义TestClass0对象指p”。定义类的对象指针变量,一般的格式为:类名指针变量,所以这里添加“TestClass0*p;”。
(4)题目4要求“把TestClass1的对象obj的指针赋给TestClass0指针p”。将指针指向的对象赋值给另一个指针,其实是将其地址指向另一个指针的地址,所以使用取地址运算符“&”,即在第四个符号下添加语句“p=&obj;”。
本文档预览:3600字符,共3082字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载