【计算机类职业资格】C++语言笔试-7及答案解析.doc

上传人:cleanass300 文档编号:1318225 上传时间:2019-10-17 格式:DOC 页数:5 大小:37.50KB
下载 相关 举报
【计算机类职业资格】C++语言笔试-7及答案解析.doc_第1页
第1页 / 共5页
【计算机类职业资格】C++语言笔试-7及答案解析.doc_第2页
第2页 / 共5页
【计算机类职业资格】C++语言笔试-7及答案解析.doc_第3页
第3页 / 共5页
【计算机类职业资格】C++语言笔试-7及答案解析.doc_第4页
第4页 / 共5页
【计算机类职业资格】C++语言笔试-7及答案解析.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、C+语言笔试-7 及答案解析(总分:100.00,做题时间:90 分钟)一、操作题(总题数:3,分数:100.00)1.请使用 VC6 或使用答题菜单打开考生文件夹 proj1 下的工程 proj1。程序中位于每个“/ERROR *found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:value=63number=1注意:只修改每个“/ERROR *found*”下的那一行,不要改动程序中的其他内容。#include iostreamusing namespace std;class MyClass int*p;const int N;public:/ERROR *foun

2、d*MyClass(int val):N=1p=new int;*p=val;/ERROR *found*MyClass() delete*p;friend void print(MyClass;/ERROR *found*void MyClass:print(MyClasscout“number=“obj.Nendl;int main()MyClass obj(63);print(obj);return 0;(分数:30.00)_2.请使用 VC6 或使用答题菜单打开考生文件夹 proj2 下的工程 proj2,其中定义了 Component 类、Composite 类和 Leaf 类。Co

3、mponent 是抽象基类,Composite 和 Leaf 是 Component 的公有派生类。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:Leaf Node注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“/ *found*”。#includeiostreamusing namespace std;class Componentpublic:/声明纯虚函数 print()/*found*;class Composite:public Componentpublic:/*found*void setChild(_)m_chil

4、d=child;virtual void print()constm_child-print();private:Component*m_child;class Leaf:public Componentpublic:virtual void print()const/*found*_;int main()Leaf node;Composite comp;comp.setChild(Component*p=p-print();return 0;(分数:30.00)_3.请使用 VC6 或使用答题菜单打开考生文件夹 proj3 下的工程 proj3,其中定义的 Matrix 是一个用于表示矩阵的

5、类。成员函数 max_value 的功能是求出所有矩阵元素中的最大值。例如,若有 33 矩阵(分数:40.00)_C+语言笔试-7 答案解析(总分:100.00,做题时间:90 分钟)一、操作题(总题数:3,分数:100.00)1.请使用 VC6 或使用答题菜单打开考生文件夹 proj1 下的工程 proj1。程序中位于每个“/ERROR *found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:value=63number=1注意:只修改每个“/ERROR *found*”下的那一行,不要改动程序中的其他内容。#include iostreamusing namespace

6、 std;class MyClass int*p;const int N;public:/ERROR *found*MyClass(int val):N=1p=new int;*p=val;/ERROR *found*MyClass() delete*p;friend void print(MyClass;/ERROR *found*void MyClass:print(MyClasscout“number=“obj.Nendl;int main()MyClass obj(63);print(obj);return 0;(分数:30.00)_正确答案:(1)MyClass(int val):N

7、(1)(2)MyClass()deletep;(3)void print(MyClass。(3)主要考查考生对友元函数的掌握,友元函数并不属于类,因此定义时前面不用加类名和作用域符号。友元函数考查较少,但也是很关键的,友元函数并不属于类,只是可以使用类的私有成员而已,因此定义的时候就当作普通函数处理即可。2.请使用 VC6 或使用答题菜单打开考生文件夹 proj2 下的工程 proj2,其中定义了 Component 类、Composite 类和 Leaf 类。Component 是抽象基类,Composite 和 Leaf 是 Component 的公有派生类。请在横线处填写适当的代码并删除

8、横线,以实现上述类定义。此程序的正确输出结果应为:Leaf Node注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“/ *found*”。#includeiostreamusing namespace std;class Componentpublic:/声明纯虚函数 print()/*found*;class Composite:public Componentpublic:/*found*void setChild(_)m_child=child;virtual void print()constm_child-print();private:Componen

9、t*m_child;class Leaf:public Componentpublic:virtual void print()const/*found*_;int main()Leaf node;Composite comp;comp.setChild(Component*p=p-print();return 0;(分数:30.00)_正确答案:(1)virtual void print()const=0;(2)Component*child(3)cout“Leaf Node“endl;)解析:解析 本题考查抽象类 Component 类及其派生类 Composite 和 Leaf,其中涉及

10、纯虚函数和成员函数。纯虚函数要根据在派生类中该函数的返回值、参数、有无 const 来确定。(1)主要考查考生对纯虚函数的掌握,题目要求声明纯虚函数 print()。在其派生类中 print()函数的定义为 virtualvoid print() const,由此可知纯虚函数为 virtual void pnnt()const=0。(2)主要考查考生对成员函数的掌握,题目要求填写函数 void setChild 的形参,由 setChild 的函数体可知形参为 child,再看类的私有成员 m_child 的定义:Component*m_child;。由此可知形参为:Component*chi

11、ld。(3)主要考查考生对纯虚函数的掌握,先看主函数的程序:leaf node;Composite comp;comp.setChild(Component*p=p-print();第一条和第二条语句都是定义语句,第三条语句调用函数 setChild,由 setChild 函数的定义可知,comp中的 m_child 等于 node,第四条语句定义了个指针 p 指向 comp 的地址,也就是 node,最后一条语句通过指针 p 调用函数 print,也就是调用类 Leaf 的函数 print,因为题目要求输出:Leaf Node,因此在这里添加语句:cout“Leaf Node“endl;。3

12、.请使用 VC6 或使用答题菜单打开考生文件夹 proj3 下的工程 proj3,其中定义的 Matrix 是一个用于表示矩阵的类。成员函数 max_value 的功能是求出所有矩阵元素中的最大值。例如,若有 33 矩阵(分数:40.00)_正确答案:(int temp=0;/定义整数变量 temp,并赋值为零for(int i=0;iM;i+)/遍历矩阵的行for(int j=0;jN;j+)/遍历短阵的列if(temparrayij)/如果 temp 小于 arrayijtemp=arrayij;/把 arrayij赋值给 tempreturn temp; /返回 temp)解析:解析 本题考查 Matrix 类,其中涉及构造函数、二维数组、成员函数和 const 函数。主要考查考生对二维数组的掌握,题目要求成员函数 max_value 的功能是求出所有矩阵元素中的最大值。因此只要逐个元素比较即可,下标 i 和 j 作为矩阵行和列的标记,使用双层 for 循环来遍历数组中的所有元素。主要考查考生对二维数组的掌握,二维数组使得存储的数据大幅增加,只要把二维数组想象成矩阵,利用矩阵相关知识求解即可。

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

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

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