【计算机类职业资格】二级C++分类模拟122及答案解析.doc
《【计算机类职业资格】二级C++分类模拟122及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++分类模拟122及答案解析.doc(9页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+分类模拟 122 及答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.请使用 VC6 或使用【答题】菜单打开 proj1 下的工程 proj1,此工程中含有一个源程序文件proj1.cpp。其中位于每个注释“/ ERROR *found*”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: Constructor called. The value is 10 Copy constructor called. The value is 10 Destructor called. Destructor called. 注意:
2、只修改注释“/ERROR *found*”的下一行语句,不要改动程序中的其他内容。 / proj1.cpp #include iostream using namespace std; class MyClass public: / ERROR *found* MyClass(int i) value = i; cout “Constructor called.“ endl; / ERROR *found* MyClass(const MyClass p) value = p.value; cout “Copy constructor called.“ endl; void Print() c
3、out “The value is“ value endl; / ERROR *found* void MyClass() cout “Destructor called.“ endl; private: int value; ; int main() MyClass obj1; obj1.Print(); MyClass obj2(obj1); obj2.Print(); return 0; (分数:30.00)_二、简单应用题(总题数:1,分数:30.00)2.请使用 VC6 或使用【答题】菜单打开 proj2 下的工程 proj2,其中有矩阵基类 MatrixBase、矩阵类Matrix
4、 和单位阵 UnitMatrix 的定义,还有 main 函数的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为: 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“/ *found*”。 #include iostream using namespace std; /矩阵基础类,一个抽象类 class MatrixBase in
5、t rows, cols; public: MatrixBase (int rows, int cols):rows (rows), cols(cols) int getRows() const return rows; /矩阵行数 int getCols() const return cols; /矩阵列数 virtual double getElement (int r, int c)const = 0; /取第 i 个元素的值 void show() const /分行显示矩阵中所有元素 for(int i = 0; i rows; i+) cout endl; for (int j =
6、 0; j cols; j+) / *found* cout _ “ “; ; /矩阵类 class Matrix: public MatrixBase double * val; public: / *found* Matrix (int rows, int cols, double m = NULL):_ / *found* val =_; for(int i = 0; i rows * cols; i+) vali = (m=NULL? 0.0:mi); Matrix() delete val; double getElement (int r, int c) constreturn v
7、alr * getCols() +c;) ; /单位阵(主对角线元素都是 1,其余元素都是 0 的方阵)类 class UnitMatrix: public MatrixBase public: UnitMatrix (int rows): MatrixBase(rows, rows) /单位阵行数列数相同 double getElement (int r, int c) const / *found* if(_) return 1.0; return 0.0; ; int main() MatrixBase * m; double d 5 = 1,2, 3, 4,5, 2,3,4,5,6,
8、3,4,5,6,7; m = new Matrix (3, 5, (double *)d); m - show(); delete m; cout endl ; m = new UnitMatrix (6); m - show(); delete m; return 0; (分数:30.00)_三、综合应用题(总题数:1,分数:40.00)3.请使用 VC6 或使用【答题】菜单打开 proj3 下的工程 proj3,其中声明的 DataList 类,是一个用于表示数据表的类。DataList 的重载运算符函数 operator+,其功能是求当前数据表与另一个相同长度的数据表之和;即它返回一个数
9、据表,其每个元素等于相应两个数据表对应元素之和。请编写这个 operator+函数。程序的正确输出应该是: 两个数据表: 1,2,3,4,5,6 3,4,5,6,7,8 两个数据表之和: 4,6,8,10,12,14 要求: 补充编制的内容写在“/ *333*”与“/ *666*”之间,不得修改程序的其他部分。 注意:程序最后将结果输出到文件 out.dat 中。输出函数 writeToFile 已经编译为 obj 文件,并且在本程序中调用。 /DataList.h #include iostream using namespace std; class DataList /数据表类 int
10、len; double * d; public: DataList(int len, double data=NULL); DataList(DataList int length() const return len; double getElement (int i) const return di; DataList operator + (const DataList /两个数据表求和 void show( const; /显示数据表 ; void writeToFile (char *, const DataList /main.cpp #include “DataList.h“ D
11、ataList:DataList (int len, double data):len(len) d=new doublelen; for(int i = 0; i len; i +) di = (data = NULL? 0.0:datai); DataList:DataList (DataList for(int i = 0; i len; i+) di = data.di; DataList DataList:operator + (const DataList / *333* / *666* return DataList (list.length(),dd); void DataLi
12、st:show() const /显示数据表 for (int i = 0; i len-1; i+) cout di “,“; cout dlen-1 endl; int main() double s1 = 1,2,3,4,5,6; double s2 = 3,4,5,6,7,8; DataList list1(6, s1), list2(6, s2); /定义两个数据表对象 cout “两个数据表:“ endl; list1.show(); list2.show(); cout endl “两个数据表只和:“ endl; (list1 + list2).show(); writeToFi
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 分类 模拟 122 答案 解析 DOC
