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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

【计算机类职业资格】二级C++-54及答案解析.doc

1、二级 C+-54及答案解析(总分:100.00,做题时间:90 分钟)一、B基本操作题/B(总题数:1,分数:30.00)1.请使用 VC6或使用答题菜单打开考生文件夹 proj1下的工程 proj1,此工程中含有一个源程序文件proj1.cpp。其中位于每个注释“/ERROR*found*”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: There are 2 object(s). 注意:只修改注释“/ERROR *found*”的下一行语句,不要改动程序中的其他内容。 /proj1.cpp #include iostream using namespace std; clas

2、s MyClass public: / ERROR *found* MyClass(int i = 0) value = i count +; void Print() cout “There are“ count “object(s).“ endl; private: const int value; static int count; ; / ERROR *found* static int MyClass:count = 0; int main() MyClass obj1, obj2; / ERROR *found* MyClass.Print(); return 0; (分数:30.

3、00)_二、B简单应用题/B(总题数:1,分数:30.00)2.凡是使用过 C语言标准库函数 strcpy(char*s1,char*s2)的程序员都知道,使用该函数时有一个安全隐患,即当指针 s1所指向的空间不能容纳字符串 s2的内容时,将发生内存错误。类 Stung的 Strcpy成员函数能进行简单的动态内存管理,其内存管理策略为:若已有空间能容纳新字符串,则直接进行字符串复制;若已有空间不够时,将重新申请一块内存空间(能容纳下新字符串),并将新字符串内容复制到新申请的空间中,释放原字符串空间。 请使用 VC6或使用答题菜单打开考生文件夹 proj2下的工程proj2,此工程中含有一个源程

4、序文件 proj2.cpp。其中定义了类 String和用于测试该类的主函数 main,且成员函数 Strepy的部分实现代码也已在该文件中给出,请在标有注释“/TODO:”的行中添加适当的代码,将这个函数补充完整,以实现其功能。 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“/*found*”。 / proj2.cpp #include iostream using namespace std; class String private: int size; /缓冲区大小 char * buf; /缓冲 public: String(int bufsize);

5、void Strcpy(char * s); /将字符串 s 复制到 buf中 void Print() const; String() if (buf != NULL) delete buf; ; String:String (int bufsize) size = bufsize; bur = new charsize; * buf = /0; void String:Strcpy (char * s) char * p,* q; int fen = strlen(s); if (len+1 size) /缓冲区空间不够,须安排更大空间 size = len+1; p = q = new

6、char size; /* found* while(* q=* s) !=0) _ /TODO: 添加代码将字符串 s复制到字符指针 q中 delete buf; buf = p; else /*found* for(p=buf; _; p+, s+); /TODO: 添加代码将字符串 s复制到buf中 void String:Print() const cout size /t buf endl; int main () char s100; String str (32); cin.getline(s, 99); str.Strcpy(s); str.Print (); return 0

7、 (分数:30.00)_三、B综合应用题/B(总题数:1,分数:40.00)3.请使用 VC6或使用答题菜单打开考生目录 proj3下的工程文件 proj3,该工程中包含一个源程序文件proj3.cpp,其中定义了用于表示平面坐标系中的点的类 MyPoint和表示圆形的类 MyCircle;程序应当显示: (1,2),5,31.4159,78.5398 但程序中有缺失部分,请按照以下提示,把缺失部分补充完整: (1)在“/*1* *found*”的下方是构造函数的定义,它用参数提供的圆心和半径分别对 cen和 rad进行初始化。 (2)在“/*2* *found*”的下方是非成员函数 per

8、imeter的定义,它返回圆的周长。(3)在“/*3* *found*”的下方是友元函数 area的定义,它返回圆的面积。 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“*found*”。 / proj3.cpp #include iostream #include cmath using namespace std; class MyPoint /表示平面坐标系中的点的类 double x; double y; public: MyPoint (double x, double y) this-x=x; this-y=y; double getX()const

9、return x; double getY()const return y; void show()const cout (x, y); ; class MyCircle /表示圆形的类 MyPoint cen; /圆心 double rad; /半径 public: MyCircle(MyPoint,double); MyPoint center () const return cen; /返回圆心 double radius()const return fad; /返回圆半径 friend double area (MyCircle); /返回圆的面积 ; /*1* *found* MyC

10、ircle:MyCircle(MyPoint p, doubler) : cen(p), _ #define PI 3.1415926535 double perimeter(MyCircle c) /返回圆 c的周长 /*2* *found* return PI*_; /*3* *found* double area(_) /返回圆 a的面积 return PI* a.rad* a.rad; int main() MyCircle c(MyPoint(1, 2), 5.0); c.center().show(); cout ,c.radius() ,perimeter(c) ,area(c)

11、endl; return 0; (分数:40.00)_二级 C+-54答案解析(总分:100.00,做题时间:90 分钟)一、B基本操作题/B(总题数:1,分数:30.00)1.请使用 VC6或使用答题菜单打开考生文件夹 proj1下的工程 proj1,此工程中含有一个源程序文件proj1.cpp。其中位于每个注释“/ERROR*found*”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: There are 2 object(s). 注意:只修改注释“/ERROR *found*”的下一行语句,不要改动程序中的其他内容。 /proj1.cpp #include iostream

12、 using namespace std; class MyClass public: / ERROR *found* MyClass(int i = 0) value = i count +; void Print() cout “There are“ count “object(s).“ endl; private: const int value; static int count; ; / ERROR *found* static int MyClass:count = 0; int main() MyClass obj1, obj2; / ERROR *found* MyClass.

13、Print(); return 0; (分数:30.00)_正确答案:(1)MyClass(int i=0):value(i) (2)int MyClass:count=0; (3)obj2.Print();)解析:考点 本题考查 MyClass类,其中涉及构造函数、成员函数、常变量和静态数据成员。 解析 (1)主要考查考生对构造函数的掌握,使用成员列表初始化给常变量赋初始值。 (2)主要考查考生对静态数据成员的掌握,静态数据成员的赋值不需要使用 static关键字。 (3)主要考查考生对成员函数调用的掌握,MyClass 是类名,不能调用函数,应使用对象 obj2调用函数。二、B简单应用题/

14、B(总题数:1,分数:30.00)2.凡是使用过 C语言标准库函数 strcpy(char*s1,char*s2)的程序员都知道,使用该函数时有一个安全隐患,即当指针 s1所指向的空间不能容纳字符串 s2的内容时,将发生内存错误。类 Stung的 Strcpy成员函数能进行简单的动态内存管理,其内存管理策略为:若已有空间能容纳新字符串,则直接进行字符串复制;若已有空间不够时,将重新申请一块内存空间(能容纳下新字符串),并将新字符串内容复制到新申请的空间中,释放原字符串空间。 请使用 VC6或使用答题菜单打开考生文件夹 proj2下的工程proj2,此工程中含有一个源程序文件 proj2.cpp

15、其中定义了类 String和用于测试该类的主函数 main,且成员函数 Strepy的部分实现代码也已在该文件中给出,请在标有注释“/TODO:”的行中添加适当的代码,将这个函数补充完整,以实现其功能。 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“/*found*”。 / proj2.cpp #include iostream using namespace std; class String private: int size; /缓冲区大小 char * buf; /缓冲 public: String(int bufsize); void Strcpy(c

16、har * s); /将字符串 s 复制到 buf中 void Print() const; String() if (buf != NULL) delete buf; ; String:String (int bufsize) size = bufsize; bur = new charsize; * buf = /0; void String:Strcpy (char * s) char * p,* q; int fen = strlen(s); if (len+1 size) /缓冲区空间不够,须安排更大空间 size = len+1; p = q = new char size; /*

17、 found* while(* q=* s) !=0) _ /TODO: 添加代码将字符串 s复制到字符指针 q中 delete buf; buf = p; else /*found* for(p=buf; _; p+, s+); /TODO: 添加代码将字符串 s复制到buf中 void String:Print() const cout size /t buf endl; int main () char s100; String str (32); cin.getline(s, 99); str.Strcpy(s); str.Print (); return 0; (分数:30.00)_

18、正确答案:(1)+q;+s; (2)(*p=*s)!=0)解析:考点 本题考查 string类,其中涉及动态数组、构造函数、成员函数、const 函数和析构函数。 解析 (1)主要考查考生对 while循环的掌握,先看语句注释:添加代码将字符串 s复制到字符指针 q中。程序已经给出了赋值语句,这里只要使 q和 s递增即可。 (2)主要考查考生对 for循环的掌握,先看语句注释:添加代码将字符串 s复制到 bur中。因为循环体中没有语句,直接用分号结束,因此需要在循环条件中完成赋值,同时进行条件判断,赋值语句为*p=*s,判断条件为当前字符不是字符串结束符。三、B综合应用题/B(总题数:1,分数

19、40.00)3.请使用 VC6或使用答题菜单打开考生目录 proj3下的工程文件 proj3,该工程中包含一个源程序文件proj3.cpp,其中定义了用于表示平面坐标系中的点的类 MyPoint和表示圆形的类 MyCircle;程序应当显示: (1,2),5,31.4159,78.5398 但程序中有缺失部分,请按照以下提示,把缺失部分补充完整: (1)在“/*1* *found*”的下方是构造函数的定义,它用参数提供的圆心和半径分别对 cen和 rad进行初始化。 (2)在“/*2* *found*”的下方是非成员函数 perimeter的定义,它返回圆的周长。(3)在“/*3* *fou

20、nd*”的下方是友元函数 area的定义,它返回圆的面积。 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“*found*”。 / proj3.cpp #include iostream #include cmath using namespace std; class MyPoint /表示平面坐标系中的点的类 double x; double y; public: MyPoint (double x, double y) this-x=x; this-y=y; double getX()const return x; double getY()const ret

21、urn y; void show()const cout (x, y); ; class MyCircle /表示圆形的类 MyPoint cen; /圆心 double rad; /半径 public: MyCircle(MyPoint,double); MyPoint center () const return cen; /返回圆心 double radius()const return fad; /返回圆半径 friend double area (MyCircle); /返回圆的面积 ; /*1* *found* MyCircle:MyCircle(MyPoint p, double

22、r) : cen(p), _ #define PI 3.1415926535 double perimeter(MyCircle c) /返回圆 c的周长 /*2* *found* return PI*_; /*3* *found* double area(_) /返回圆 a的面积 return PI* a.rad* a.rad; int main() MyCircle c(MyPoint(1, 2), 5.0); c.center().show(); cout ,c.radius() ,perimeter(c) ,area(c)endl; return 0; (分数:40.00)_正确答案:(1)rad(r) (2)2*c.radius() (3)MyCircle a)解析:考点 本题考查 MyPoint类和 MyCircle类,其中涉及构造函数、成员函数、const 函数和友元函数。 解析 (1)主要考查考生对构造函数的掌握,使用成员列表初始化给 rad赋初始值。 (2)主要考查考生对成员函数的掌握,函数功能为返回圆 c的周长。要返回圆的周长,应利用公式 PI*2*c.radius()完成。 (3)主要考查考生对成员函数的掌握,因为函数功能为返回圆 a的面积,所以函数的形参应该为MyCircle a。

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