【计算机类职业资格】二级C++分类模拟95及答案解析.doc

上传人:eventdump275 文档编号:1324293 上传时间:2019-10-17 格式:DOC 页数:7 大小:60.50KB
下载 相关 举报
【计算机类职业资格】二级C++分类模拟95及答案解析.doc_第1页
第1页 / 共7页
【计算机类职业资格】二级C++分类模拟95及答案解析.doc_第2页
第2页 / 共7页
【计算机类职业资格】二级C++分类模拟95及答案解析.doc_第3页
第3页 / 共7页
【计算机类职业资格】二级C++分类模拟95及答案解析.doc_第4页
第4页 / 共7页
【计算机类职业资格】二级C++分类模拟95及答案解析.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、二级 C+分类模拟 95 及答案解析(总分:100.00,做题时间:90 分钟)一、程序改错题(总题数:1,分数:30.00)1.使用 VC6 打开 下的源程序文件 modi1.cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出: 10 TestClass1 注意:不要改动 main 函数,不能增行或删行,也不能更改程序的结构,错误的语句在/*error*的下面。 #include iostream class TestClass1 public: TestClass1 1 ; /*error* private: virtual TestClass1 2 using namespac

2、e std; ; ; class TestClass2: public TestClass1 public: /*error* explicit TestClass2(int i) m_i = i; ; TestClass2 void print 4 /*error* cout m_i (分数:30.00)二、程序填空题(总题数:1,分数:30.00)2.使用 VC6 打开 下的源程序文件 modi2.cpp。请完成函数 fun(int x),该函数功能是将 x 的值转换成二进制数输出到屏幕,并且在函数中调用写函数 WriteFile()将结果输出到 modi2.txt 文件中。 例如:x=1

3、3,13 的二进制数字为 1101,则输出到屏幕的为 1101。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 #includeiostream #includefstream #includecmath using namespace std; void WriteFile(char* str) ofstream out1; out1.open(“modi2.txt“,ios_ base:binary|ios_base:app); for(int i=0; stri != 0; i+) out1.put( stri); out1.close(); void fun

4、(int x) void ClearFile() ofstream out1; out1.open(“modi2.txt“); out1.close(); int main() ClearFile(); fun(13); return 0; (分数:30.00)_三、程序设计题(总题数:1,分数:40.00)3.用 VC6 打开 下的源程序文件 modi3.cpp,其中定义了多个类,但类不能达到输出要求,按照定义的输出修改函数,使得输出如下: TestClass3 TestClass2 TbstClass1 其中定义的类并不完整,按照要求完成下列操作,将类的定义补充完整。 (1)类 TestC

5、lass2 公共继承于 TestClass1,请在注释/*1*后添加适当的语句。 (2)print 函数为虚函数,请在注释/*2*后添加适当的语句。 (3)修改语句,使得 p 指定对象 obj3,请在注释/*3*后添加适当的语句。 (4)修改语句,利用 p 调用 print()函数,完成输出信息,注释/*4*后添加适当的语句。 注意:仅在函数指定位置添加语句,请勿改动主函数 main 与其他函数中的任何内容。 #include iostream using namespace std; class TestClass1 public: void print() cout “TestClass1

6、“ endl; ; /*1* class TestClass2 public: /*2* void print() ; class TestClass3:public TestClass2 public: void print() (分数:40.00)_二级 C+分类模拟 95 答案解析(总分:100.00,做题时间:90 分钟)一、程序改错题(总题数:1,分数:30.00)1.使用 VC6 打开 下的源程序文件 modi1.cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出: 10 TestClass1 注意:不要改动 main 函数,不能增行或删行,也不能更改程序的结构,错误的语

7、句在/*error*的下面。 #include iostream class TestClass1 public: TestClass1 1 ; /*error* private: virtual TestClass1 2 using namespace std; ; ; class TestClass2: public TestClass1 public: /*error* explicit TestClass2(int i) m_i = i; ; TestClass2 void print 4 /*error* cout m_i (分数:30.00)解析:(1)删除“private:”语句

8、 (2)TestClass2(int i) (3)std:cout m_i std:endl; 答案考生文件夹 解析 程序要求输出值为 10,TestClass1。从已给定源程序的 main 主函数开始入手,main 主函数首先调用 fun 函数,fun 调用 TestClass2 中的 print -|_|-函数,其中TestClass2 继承了 TestClass1。 (1)第 1 个标识下的“virtual TestClass1 -|_|-”语句是 TestClass1 -|_|-析构函数,不是私有函数,所以删除“private:”。 (2)“explicit TestClass2(in

9、t i)”构造函数语句中的“explicit”是禁止隐式转换。程序中无法实现对类 TestClass2 的直接使用,所以这里应该将其删除。即“TestClass2(int i)”。 (3)第 3 个标识下实现,fun 函数中 m_i 的标准输出,即在屏幕上输出 10。在程序中用到 C+标准库时,要使用 std 标准命名空间进行限定。cout 为标准库函数,所以要声明 cout 是在命名空间 std 中定义的流对象,即“std:cout m_i 二、程序填空题(总题数:1,分数:30.00)2.使用 VC6 打开 下的源程序文件 modi2.cpp。请完成函数 fun(int x),该函数功能是

10、将 x 的值转换成二进制数输出到屏幕,并且在函数中调用写函数 WriteFile()将结果输出到 modi2.txt 文件中。 例如:x=13,13 的二进制数字为 1101,则输出到屏幕的为 1101。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 #includeiostream #includefstream #includecmath using namespace std; void WriteFile(char* str) ofstream out1; out1.open(“modi2.txt“,ios_ base:binary|ios_base:app

11、); for(int i=0; stri != 0; i+) out1.put( stri); out1.close(); void fun(int x) void ClearFile() ofstream out1; out1.open(“modi2.txt“); out1.close(); int main() ClearFile(); fun(13); return 0; (分数:30.00)_正确答案:()解析:char str32; int i; for(i=30; i=0; i-)/计算二进制 if(x%2)stri=“1“; /求余, 如果余不为零字符串 str 第 i 位为 1

12、 else stri=“0“;/否则为 0 x =1; if(!x)break; str31=“/0“; /串加尾符 cout class TestClass1 public: void print() cout “TestClass1“ endl; ; /*1* class TestClass2 public: /*2* void print() ; class TestClass3:public TestClass2 public: void print() (分数:40.00)_正确答案:()解析:(1)将“class TestClass2”补充完整为:classTestClass2:p

13、ublic TestClass1 (2)将“void print()”补充完整为:virtual voidprint() (3)将“p=obj3;”修改为:p= (4)将“p.print();”修改为:p-print(); 答案考生文件夹 解析 本题的功能是通过 print 虚函数将字符串输出。在 VC 环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已定源程序的 main 主函数开始入手,可以看出程序通过调用类和成员函数实现各种输出操作。 (1)题目 1 要求“类 TestClass2 公共继承于 TestClass1”。从已有的类产生一个新的子类,成为

14、类的派生。声明派生类的一般形式为:class 派生类名:继承方式基类名。根据题目中的要求以及派生类的一般形式,第 1 个标识下添加语句“class TestClass2:Public TestClass1”。 (2)题目 2 要求“print 函数为虚函数”。在 C+中,用 virtual 声明的函数为虚函数,因此第 2 个标识下的语句修改为“virtualvoidprint()”。 (3)题目 3 要求“使得 p 指定对象 obj3”。p 为指针变量,obj3 为类的对象,将一个指针变量指向另一个变量,只要把被指向的变量的地址赋给指针变量即可。取对象 obj3 地址的语句为”。 (4)题目 4 要求“利用 p 调用 print()函数”。C+中用”-”运算符实现成员访问,因此调用 print()函数,应将第 4 个标识下修改为“p-print();”。

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

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

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