[计算机类试卷]国家二级C++机试(操作题)模拟试卷291及答案与解析.doc

上传人:王申宇 文档编号:497367 上传时间:2018-11-28 格式:DOC 页数:6 大小:36KB
下载 相关 举报
[计算机类试卷]国家二级C++机试(操作题)模拟试卷291及答案与解析.doc_第1页
第1页 / 共6页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷291及答案与解析.doc_第2页
第2页 / 共6页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷291及答案与解析.doc_第3页
第3页 / 共6页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷291及答案与解析.doc_第4页
第4页 / 共6页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷291及答案与解析.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、国家二级 C+机试(操作题)模拟试卷 291及答案与解析 一、基本操作题 1 请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 proj1。程序中位于每个 “ ERROR *found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为: value 63 number 1 注意:只修改每个 “ ERROR*found*”下的那一行,不要改动程序中的其他内容。 #include iostream using namespace std; class MyClass int * P; const int N; public: ERROR *found* MyClass

2、(int val): N 1 P new int; *p val; ERROR *found* MyClass()delete * P; ) friend void print(MyClass&obj); ; ERROR *found* void MyClass print(MyClasS&obj) cout “value “ * (obj P) end1, cout “number “ obj N end1; int main() MyClass obj(63); print(obj); return 0; 二、简单应用题 2 请使用 VC6或使用【答题】菜单打开考生文件夹 proj2下的工

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

4、e: public Component public: *found* void setChild(_) m_child child; virtual void print()const m_child print(); private: Component * m_child; ; class Leaf: public Component public: virtual void print()const *found* ; int main() Leaf node; Compos ite comp; comp setChild(&node); Component * P ∁ P

5、print(); return 0; 三、综合应用题 3 请使用 VC6或使用【答题】菜单打开考生文件夹 proj3下的工程 proj3,其中 定义的 Matrix是一个用于表示矩阵的类。成员函数 max_value的功能是求出所有矩阵元素中的最大值。例如,若有 33矩阵 则调用 max_value函数,返回值为 3。请编写成员函数 max_valueo 要求: 补充编制的内容写在 “*333*”与 “ *666*”之间,不得修改程序的其他部分。 注意:程序最后将结果输出到文件 out dat中。输出函数 wfiteToFile已经编译为 obj文件,并且在本程序中调用。 Matrix h#i

6、nclude iostream#include iomanip using namespace std; const int M 18; const int N 18; class Matrixint arrayMN; public: Matrix() int getElement(int i, int j)constreturn arrayij; void setElement(int i, intj, int。 value)arrayij value; ) int max value()const; void show(const char *s)const COUt end1 s; fo

7、r(int i 0; i M; i ) cout end1; for(int j 0; j N; j ) cout setw(4)arrayij; ; void readFromFile(const char*, Matrix&); void writeToFile (char *, const Matrix&); main cpp#include“Matrix h“#include fstream void readFromFile(const char*f, Matrix&m) ifstream infile(f); if(infile fail()cerr “打开输入文件失败 !“, r

8、eturn; int k, for(int i 0; i M; i ) for(int j 0; jN; j ) infile k; m setElement(i, j, k); int Matrix max value()const *333* *666*int main() Matrix m; readFromFile(“, m); m show(“Matrix: “); cout end1 “最大元素: “ m max value() end1; writeToFile(“, m); return 0; 国家二级 C+机试(操作题)模拟试卷 291答案与解析 一、基本操作题 1 【正确答

9、案】 (1)MyClass(int val): N(1) (2) MyClass()deletep; (3)void print(MyClass obj) 【 试题解析】 (1)主要考查考生对构造函数的掌握,在这里不能使用赋值语句。 (2)主要考查考生对析构函数的掌握,析构函数的 delete语句要使用标识符 “”,即 deletep;。 (3)主要考查考生对友元函数的掌握,友元函数并不属于类,因此定义时前面不用加类名和作用域符号。 二、简单应用题 2 【正确答案】 (1)virtual void print()const 0; (2)Component * child (3)cout “Le

10、af Node“ end1; 【试题解析】 (1)主要考查考生对纯虚函数的掌握,题目要求声明纯虚函数print()。在其派生类中 print()函数的定义为 virtual void print()const,由此可知纯虚函数为 virtual void print()const 0。 (2)主要考查考生对成员函数的掌握,题目要求填写函数 void setChild的形参,由 setChild的函数体可知形参为 child,再看类的私有成员 m_child的定义:Component * m_child;。由此可知形参为: Component * childo (3)主要考查考生对纯虚函数的掌握

11、,先看主函数的程序: Leaf node; Compos ite comp; comp setChild(&node); Component * P ∁ P print(); 第一条和第二条语句都是定义语句,第三条语句调用函数 setChild,由 setChild函数的定义可知, comp中的 re_child等于 node,第四条语句定义了个指针 P指向comp的地址,也就是 node,最后一条语句通过指针 P调用函数 print,也就 是调用类 Leaf的函数 print,因为题目要求输出: Leaf Node,因此在这里添加语句:cout “Leaf Node“ end1;。

12、 三、综合应用题 3 【正确答案】 Int temp 0; 定义整数变量 temp,并赋值为零 for(int i 0; i M; i ) 遍历矩阵的行 for(int j 0; j N; j ) 遍历短阵的列 if(temp arrayij) 如果 temp小于 arrayij temp arrayij; 把 arrayij赋值给 temp return temp; 返回 temp 【试题解析】 主要考查考生对二维数组的掌握,题目要求成员函数 max_value的功能是求出所有矩阵元素中的最大值。因此只要逐个元素比较即可,下标 i和 j作为矩阵行和列的标记,使用双层 for循环来遍历数组中的所有元素。

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

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

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