ImageVerifierCode 换一换
格式:DOC , 页数:9 ,大小:47.50KB ,
资源ID:1324189      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1324189.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(【计算机类职业资格】二级C++分类模拟112及答案解析.doc)为本站会员(towelfact221)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

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

1、二级 C+分类模拟 112 及答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.请使用 VC6 或使用【答题】菜单打开 proj1 下的工程 proj1,该工程中含有一个源程序文件proj1.cpp。其中位于每个注释“/ ERROR *found*”之后的一行语句有错误。请改正这些错误,使程序的输出结果为:1 2 3 4 5 6 7 8 9 10 注意:只能修改注释“/ ERROR *found*”的下一行语句,不要改动程序中的其他内容。 / proj1.cpp #include iostream using namespace std; c

2、lass MyClass public: MyClass(int len) array = new intlen; arraySize = len; for (int i = 0; i arraySize; i +) arrayi = i+1; MyClass() / ERROR *found* delete arrayi; void Print() const for (int i = 0; i arraySize; i +) / ERROR *found* cin arrayi “; cout endl; private: int * array; int arraySize; ; int

3、 main() / ERROR *found* MyClass obj; obj.Print(); return 0; (分数:30.00)_二、简单应用题(总题数:1,分数:30.00)2.请使用 VC6 或使用【答题】菜单打开 proj2 下的工程 proj2,此工程中声明的 Array 是一个表示数组的类。一个 Array 对象可以包含多个整型元素。Array 的成员说明如下: 成员函数 add 用于向数组的末尾添加一个元素; 成员函数 get 用于获取数组中指定位置的元素; 数据成员 a 表示实际用于存储数据的整型数组; 数据成员 size 表示数组的容量,数组中的元素个数最多不能超过

4、 size; 数据成员 num 表示当前数组中的元素个数。 SortedArray 是 Array 的派生类,表示有序数组。SortedArray 重新定义了 Array 中的 add 函数,以确保有序数组中的元素始终按照升序排列。请在程序中的横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的正确输出结果应为: 10,9,8,7,6,5,4,3,2,1, 1,2,3,4,5,6,7,8,9,10, 注意:只在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“/ *found*”。 #include iostream using namespace std; clas

5、s Array public: Array(unsigned int s) size = s; num= 0; a = new ints; virtual Array() delete a; virtual void add(int e) if (num size) / *found* _ num +; int get(unsigned int i) const if (i size) return ai; return 0; protected: int * a; unsigned int size, num; ; class SortedArray : public Array publi

6、c: / *found* SortedArray(unsigned int s) :_ virtual void add(int e) if (num = size) return; int i =0, j; while (i num) if (e ai) for (j =num; j i; j-) / *found* _; / *found* _; break; i+; if (i = num) ai = e; num +; ; void fun(Array for (i = 10; i = 1; i-) a.add (i); for (i = 0; i 10; i+) cout a.get

7、i) “, “; cout endl; int main() Array a(10); fun(a); SortedArray sa(10); fun(sa); return 0; (分数:30.00)_三、综合应用题(总题数:1,分数:40.00)3.请使用 VC6 或使用【答题】菜单打开 proj3 下的工程文件 proj3,此工程包含一个源程序文件proj3.cpp,其中定义了用于表示二维向量的类 MyVector;程序应当显示(6,8)。但程序中有缺失部分,请按照以下提示,把缺失部分补充完整: (1)在“/ *1* *found*”的下方是构造函数的定义,它用参数提供的坐标对 x 和

8、 y 进行初始化。(2)在“/ *2* *found*”的下方是减法运算符函数定义中的一条语句。两个二维向量相减生成另一个二维向量:其 X 坐标等于两向量 X 坐标之差,其 Y 坐标等于两向量 Y 坐标之差。 (3)在“/ *3* *found*”的下方,语句的功能是使变量 v3 获得新值,它等于向量 v1 与向量v2 之和。 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“*found*”。/ proj3.cpp #include iostream using std:ostream; using std:cout; using std:endl; class M

9、yVector /表示二维向量的类 double x; /X 坐标值 double y; /Y 坐标值 public: MyVector (double i = 0.0, double j = 0.0); /构造函数 MyVector operator + (MyVector j); /重载运算符+ friend MyVector operator - (MyVector i, MyVector j); /重载运算符- friend ostream /重载运算符 ; / *1* *found* _ (double i, double j): x(i),y(j) MyVector MyVecto

10、r:operator + (MyVector j) return MyVector (x + j. x, y + j. y); MyVector operator - (MyVector i, MyVector j) / *2* *found* return MyVector (_); ostream /输出向量 v 的坐标 return os; int main() MyVector v1(2,3), v2(4,5), v3; / *3* *found* v3 =_; cout v3 endl; return 0; (分数:40.00)_二级 C+分类模拟 112 答案解析(总分:100.0

11、0,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.请使用 VC6 或使用【答题】菜单打开 proj1 下的工程 proj1,该工程中含有一个源程序文件proj1.cpp。其中位于每个注释“/ ERROR *found*”之后的一行语句有错误。请改正这些错误,使程序的输出结果为:1 2 3 4 5 6 7 8 9 10 注意:只能修改注释“/ ERROR *found*”的下一行语句,不要改动程序中的其他内容。 / proj1.cpp #include iostream using namespace std; class MyClass public: MyClass

12、int len) array = new intlen; arraySize = len; for (int i = 0; i arraySize; i +) arrayi = i+1; MyClass() / ERROR *found* delete arrayi; void Print() const for (int i = 0; i arraySize; i +) / ERROR *found* cin arrayi “; cout endl; private: int * array; int arraySize; ; int main() / ERROR *found* MyCl

13、ass obj; obj.Print(); return 0; (分数:30.00)_正确答案:()解析:delete array; cout arrayi “; MyClass obj(10); 答案考生文件夹 考点 本题考查 MyClass 类,其中涉及构造函数、析构函数、输出语句、动态数组和语句初始化。一般考到类时就会涉及构造函数,要注意构造函数的定义方法。析构函数就是考查 delete 语句的用法,其一般形式为:delete+要释放的指针。 解析 (1)语法错误,使用 delete 语句删除一个指针时,直接把指针变量的名称放在 delete后面即可。(2)考查考生对输入、输出语句的运用

14、使用 cout 进行数据输出操作,一般格式为:coutExpr;。其中,Expr 代表一个表达式,“”称为插入运算符,该语句的含义是,将表达式 Expr 的值输出到屏幕上。使用 cin 进行数据输入操作,一般格式为:cinvar;。其中,var 代表一个变量,“”称为提取运算符,该语句的含义是,将用户输入的数据保存到 var 中。 (3)考查语句的初始化,我们来看 MyClass 类的构造函数: MyClass (int len) array = new intlen; /给数组动态分配空间,大小为 len arraySize = len; /赋值 for (int i = 0; i arr

15、aySize; i +) arrayi = i + 1; /循环给数组赋值,从 1 到 10 请注意:形参 len 没有定义默认值,因此要想使 array 动态数组里依次存放1,2,3,4,5,6,7,8,9,10,就是要给 len 赋值为 10。 delete 语句是最常考的知识点,用于释放指针变量,其一般形式为:delete+要释放的指针。二、简单应用题(总题数:1,分数:30.00)2.请使用 VC6 或使用【答题】菜单打开 proj2 下的工程 proj2,此工程中声明的 Array 是一个表示数组的类。一个 Array 对象可以包含多个整型元素。Array 的成员说明如下: 成员函数

16、 add 用于向数组的末尾添加一个元素; 成员函数 get 用于获取数组中指定位置的元素; 数据成员 a 表示实际用于存储数据的整型数组; 数据成员 size 表示数组的容量,数组中的元素个数最多不能超过 size; 数据成员 num 表示当前数组中的元素个数。 SortedArray 是 Array 的派生类,表示有序数组。SortedArray 重新定义了 Array 中的 add 函数,以确保有序数组中的元素始终按照升序排列。请在程序中的横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的正确输出结果应为: 10,9,8,7,6,5,4,3,2,1, 1,2,3,4,5,6,7

17、8,9,10, 注意:只在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“/ *found*”。 #include iostream using namespace std; class Array public: Array(unsigned int s) size = s; num= 0; a = new ints; virtual Array() delete a; virtual void add(int e) if (num size) / *found* _ num +; int get(unsigned int i) const if (i size) ret

18、urn ai; return 0; protected: int * a; unsigned int size, num; ; class SortedArray : public Array public: / *found* SortedArray(unsigned int s) :_ virtual void add(int e) if (num = size) return; int i =0, j; while (i num) if (e ai) for (j =num; j i; j-) / *found* _; / *found* _; break; i+; if (i = nu

19、m) ai = e; num +; ; void fun(Array for (i = 10; i = 1; i-) a.add (i); for (i = 0; i 10; i+) cout a.get(i) “, “; cout endl; int main() Array a(10); fun(a); SortedArray sa(10); fun(sa); return 0; (分数:30.00)_正确答案:()解析:(1)anum=e; (2)Array(s) (3)aj=aj-1 (4)ai=e 答案考生文件夹 考点 本题考查数组类 Array 及 Array 的派生类 Sorte

20、dArray,其知识点涉及构造函数、析构函数、虚函数和动态数组。一般考到函数时,首先要看函数名,通过函数名称能大概知道该函数的功能,比如 Array 类中的 virtual void add(int e)函数,看到这个函数我们能得到如下信息。 (1)有关键字 virtual,说明该函数是虚函数,在 Array 类的派生类里肯定会有对 add 函数的定义。 (2)有关键字 void,说明此函数没有返回值。 (3)add 的意思是添加,它的形参是 int e,那么我们大概可以猜到该函数的功能是把整型数值 e 添加到数组 a 中。 解析 (1)考查的是虚函数 virtual void add(int

21、 e)的定义,即添加一个整型数 e 到 anum中。 (2)主要考查的是 Array 类的派生类 SortedArray 类的构造函数的定义,定义之前要对基础类初始化。 (3)因为 SortedArray 类是排序类,所以数组 a 中的元素要从小到大排序。在 if(eai)条件下,要把i 后的元素逐个往后移一位,因此此处为 aj=aj-1。 (4)主要考查虚函数 virtual void add(int e)在派生类 SortedArray 类中的定义,把插入的数据放在数组 a 的第 i+1 个位置,即 ai=e;。三、综合应用题(总题数:1,分数:40.00)3.请使用 VC6 或使用【答题

22、菜单打开 proj3 下的工程文件 proj3,此工程包含一个源程序文件proj3.cpp,其中定义了用于表示二维向量的类 MyVector;程序应当显示(6,8)。但程序中有缺失部分,请按照以下提示,把缺失部分补充完整: (1)在“/ *1* *found*”的下方是构造函数的定义,它用参数提供的坐标对 x 和 y 进行初始化。(2)在“/ *2* *found*”的下方是减法运算符函数定义中的一条语句。两个二维向量相减生成另一个二维向量:其 X 坐标等于两向量 X 坐标之差,其 Y 坐标等于两向量 Y 坐标之差。 (3)在“/ *3* *found*”的下方,语句的功能是使变量 v3 获

23、得新值,它等于向量 v1 与向量v2 之和。 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“*found*”。/ proj3.cpp #include iostream using std:ostream; using std:cout; using std:endl; class MyVector /表示二维向量的类 double x; /X 坐标值 double y; /Y 坐标值 public: MyVector (double i = 0.0, double j = 0.0); /构造函数 MyVector operator + (MyVector j);

24、 /重载运算符+ friend MyVector operator - (MyVector i, MyVector j); /重载运算符- friend ostream /重载运算符 ; / *1* *found* _ (double i, double j): x(i),y(j) MyVector MyVector:operator + (MyVector j) return MyVector (x + j. x, y + j. y); MyVector operator - (MyVector i, MyVector j) / *2* *found* return MyVector (_)

25、 ostream /输出向量 v 的坐标 return os; int main() MyVector v1(2,3), v2(4,5), v3; / *3* *found* v3 =_; cout v3 endl; return 0; (分数:40.00)_正确答案:()解析:(1)MyVector:MyVector (2)i.x-j.x,i.y-j.y (3)v1+v2 答案考生文件夹 考点 本题考查二维向量类 MyVector,其中涉及的知识点有构造函数,重载运算符+、-、。在类外定义构造函数时,语法和定义其他类函数一样,前面要加上类名和作用域符号。重载运算符函数要注意其返回值类型和参数类型。 解析 (1)主要考查的是构造函数,在类外定义构造函数时要使用类名和作用域,即MyVector:MyVector。 (2)主要考查重载运算符“-”的返回语句,返回值应为向量 i 和 j 的差,即 MyVector(i.x-j.x,i.y-j.y);。 (3)主要考查重载运算符“+”的使用,由题目可知 v3 是 v1 和 v2 的和,前面我们已经重新定义了运算符“+”,所以在这里直接使用语句 v3=v1+v2;即可。

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