国家二级C++机试(操作题)模拟试卷531
基本操作题
1.使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为:
TestClass2
TestClass3
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//******error******的下面。
1 #include<iostream>
2 class TestClassl
3 {
4 public:
5 virtual void fun()=0;
6 };
7 class TestClass2:public TestClass1
8 {
9 //********error********
10 int fun()
11 {
12 using namespace std;
13 cout<<’’TestClass2’’<<end1;
14 }
15 };
16 class TestClass3:public TestClass1
17 {
18 //********error********
19 void fun()
20 {
21 //********error********
22 cout<<’’TestClass3’’<<end1;
23 }
24 };
25 void main()
26 {
27 TestClass1* p;
28 TestClass2 obj1;
29 Testclass3 obj2;
30 p=&obj1;
31 p一>fun();
32 obj2.fun();
33 return;
34 }
(1)void fun()
(2)添加语句:public;
(3)std::cout<<’’TestClass3’’<<std::end1;或者添加using namespace std;
解析:本题程序中的功能为输出字符串TestClass2和TestClass3。从已定源程序的main主函数开始入手,可以看出程序通过定义类的对象,利用类中定义的成员函数完成题目中要求的输出。
(1)fun()函数是没有返回值的,而第1个标识下的“int fun()”语句中定义的fun()函数是有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后开方,如果开方后的结果满足条件,即是结果。
1 #include<iostream.h>
2 #include<cmath>
3 void fun()
4 {
5
6 }
7 int main()
8 {
9 fun();
10 return 0;
11 }
1 long int i,x,y,z;
2 for(i=1; i<100000; i++)
3 {
4 x=sqrt(i+100);//x为加上100后开方后的结果
5 y=sqrt(i+268);//y为再加上268后开方的结果
6 if(x*x=—i+100&&y*y==i+268)//如果一个数的平方根的平方等于该数,说明此数是完全平方数
7 cout<<i<<endl;
8 }
解析:(1)该程序功能是找出一个整数,它加上100后是一个完全平方数,再加上268又是一个完全平方数。它的解题思路,根据题干中给出的分析可知解题思路为,先将该数加上100后再开方,再将该数加上268后开方,如果开方后的结果满足条件,即是结果。
(2)从已给部分源程序的main主函数开始入手,核心函数void fun()实现题目中的功能。
(3)利用循环找到满足条件的整数。
(4)首先计算x加上100和y加上268的开方。
(5)一个数的平方根的平方等于该数,说明此数是完全平方数。
综合应用题
3.使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:
(1)定义纯虚类TestClass0,包含纯虚函数fun(),请在注释//********1********后添加适当的语句。
(2)完成类TestClass1,以公有继承TestClass0,请在注释//********2********后添加适当的语句。
(3)定义TestClass0对象指针p,请在注释//********3********后添加适当的语句。
(4)把TestClass1的对象obj的指针赋给TestClass0指针P,请在注释//********4********后添加适当的语句。
注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
1 #include<iostream.h>
2 class TestClass0
3 {
4 public:
5 //********1********
6
7 };
8 //********2********
9 class TestClass1
10 {
11 public:
12 void fun()
13 {
14 cout<<’’fun’’<<end1;
15 }
16 };
17 int main()
18 {
19 TestClass1 obj;
20 //********3********
21
22 //********4********
23
24 p一>fun();
本文档预览:3600字符,共4438字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载