【计算机类职业资格】国家二级C++机试(操作题)-试卷63及答案解析.doc

上传人:diecharacter305 文档编号:1331763 上传时间:2019-10-17 格式:DOC 页数:3 大小:32KB
下载 相关 举报
【计算机类职业资格】国家二级C++机试(操作题)-试卷63及答案解析.doc_第1页
第1页 / 共3页
【计算机类职业资格】国家二级C++机试(操作题)-试卷63及答案解析.doc_第2页
第2页 / 共3页
【计算机类职业资格】国家二级C++机试(操作题)-试卷63及答案解析.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、国家二级 C+机试(操作题)-试卷 63 及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6 打开考生文件夹下的源程序文件 modilcpp,该程序运行时有错,请改正其中的错误,使得程序正常运行,并使程序输出的结果为: TestClass 1 TestClass2 注意:不要改动 main 函数,不能增行或删行,也不能更改程序的结构,错误的语句在 *error*的下面。 #include #include struct TestClas0 *error* virtual void fun(); ; class TestClassl:p

2、ublic TestClass0 void fun() coutfun(); return; (分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.使用 VC6 打开考生文件夹下的源程序文件 modi2cpp。阅读下列函数说明和代码,补充空出的代码。sum(int n)计算所有 n 的因子之和(不包括 1 和自身)。 注意:不能修改程序的其他部分,只能补充 sum()函数。 #include int sum(int n) ) void main() coutfun(); return; (分数:2.00)_正确答案:(正确答案:(1)virtual void fun()=0; (

3、2)p=&obj 1; (3)p=&obj 2;)解析:解析:本题程序中的功能为输出字符串 TestClassl 和 TestClass2。从已定源程序的 main 主函数开始入手,通过定义的类,实现题目中要求的输出结果。 解题思路 (1)如果在基类中并不使用这个虚函数,其返回值也是没有意义的,它应该被定义为纯虚函数。所以虚函数 fun()应该是纯虚函数,也就是声明虚函数的时候初始化为 0 的函数。即第 1 个标识下的“virtual void fun()=0;”。 (2)第 2 个标识下的 p 为指针变量,将对象 objl 赋值给 p,实际上是 p 指向对象 objl 的地址,所以“p=*0

4、bjl;”修改为“p=&obiil;”。 (3)第 3 个标识下的“p=*obi2;”语句同(2),修改为“p=&obj2;”。二、简单应用题(总题数:1,分数:2.00)2.使用 VC6 打开考生文件夹下的源程序文件 modi2cpp。阅读下列函数说明和代码,补充空出的代码。sum(int n)计算所有 n 的因子之和(不包括 1 和自身)。 注意:不能修改程序的其他部分,只能补充 sum()函数。 #include int sum(int n) ) void main() coutsum(10)sum(200)sum(400)_正确答案:(正确答案:int a11=0; for(int i

5、=2;i解析:解析:(1)数 n 的因子是指为整除 n 等于 0 的所有自然数的集合。 (2)为了实现计算所有 n 的因子之和且不包含 1 和自身,函数中定义一个变量 all 用来保存求和结果,并为最终结果在函数结束时返回; (3)在循环中逐个寻找 n 的因子,为了在计算中排除掉 l 和 n 本身,因此循环变量 i 的变化范围为从 2 到n 一 1。 (4)如果 ni=0,说明 i 是 n 的因子,因此将 i 加到 all 上。三、综合应用题(总题数:1,分数:2.00)3.使用 VC6 打开考生文件夹下的源程序文件 modi3cpp。请完成以下部分,实现在屏幕上输出为: TestClass3

6、 TestClass2 这个程序需要修改的部分,请按照以下部分实现。 (1)类 TestClass0 不能被实例化,请定义一个纯虚函数 print,在注释*1*后添加适当的语句。 (2)类 TestClassl私有虚继承类 TestClass0,请在注释*2*后添加适当的语句。 (3)类 TestClass2 公有继承类 TestClass0,请在注释*3*后添加适当的语句。 (4)类 TestClass3 公有继承类TestClass2 与 TestClassl,请在注释*4*后添加适当的语句。 注意:仅在函数指定位置添加语句,请勿改动主函数 main 与其他函数中的任何内容。 1 #inc

7、lude 2 class TestClass0 3 4 *1* 5 6 ; 7 *2* 8 C1ass TestClassl: 9 10 public: 11 void print() 12 13 cout”TestClassl”“TestClass2”“TestClass3”_正确答案:(正确答案:(1)添加语句:virtual void print()=0; (2)将“class TestClasSl:”补充完整为:classTestClassl:virtual private TestClasS0 (3)将“class TestClass2:”补充完整为:classTestClass2:

8、public TestClass0 (4)将“class TestClass3:”补充完整为:classTestClass3:public TestClass2,public TestClassl)解析:解析:在 VC 环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。本题从题干要求入手,依次处理各个类,完成各个类的定义。 解题思路 (1)题目 1 要求“请定义一个纯虚函数 print”。在 C+中,虚函数在基类中用 virtual 声明成员函数为虚函数。纯虚函数是在声明虚函数时被“初始化”为 0 的函数,即“virtualvoid print0=0;”。 (

9、2)题目 2 要求“类TestClassl 私有虚继承类 TestClass0”。在 C+中声明一个派生类时将基类的继承方式指定为 private的,称为私有继承。同(1),声明 TestClassl 虚继承类“:virtualTestClass0”,题目要求为私有,即“class TestClassl:virtualprivate TestClass0”。 (3)题目 3 要求“类 TestClass2 公有继承类TestClass0。”同(2),公有继承是在定义一个派生类时将基类的继承方式指定为 public 的,称为公用继承。所以这里补全“classTestClass2:public TestClass0”。 (4)题目 4 要求“类 TestClass3 公有继承类 TestClass2 与 TestClassl。”同(3),所以这里补全“class TestClass3:public TestClass2,public TestClass l”。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1