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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

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

2、td; const int Size =4; class MyClass public: MyClass(int x=0) :value(x) void Set(int x) value=x; friend void Judge(MyClass private: int value; ; / ERROR * found* voidMyClass:Judge(MyClass else cout “smaller“ endl; int main () MyClass * ptr =new MyClassSize; for(int i=0;i_二、B简单应用题/B(总题数:1,分数:30.00)2.

3、请使用 VC6或使用答题菜单打开考生文件夹 proj2下的工程 proj2,此工程中含有一个源程序文件proj2.cpp,其中定义了 MyString类。MyString 是一个用于表示字符串的类,其构造函数负责动态分配一个字符数组,并将形参指向的字符串复制到该数组中;成员函数 reverse的功能是对字符串进行反转操作,例如,字符串“ABCDE”经过反转操作后,会变为“EDCBA”;成员函数 print的作用是将字符串输出到屏幕上。 请在横线处填写适当的代码并删除横线,以实现 MyString类的功能。此程序的正确输出结果应为: Before reverse: abc defg After

4、reverse: cha gfed 注意:只在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“/*found*”。 /proj2.cpp #include iostream using namespace std; class MyString public: MyString (const char* s) /* found* m_str = new char_; strcpy (m_str, s) ; MyString () /* found* _; void reverse () int n = strlen(m str) ; for (int i=0; i n/2;

5、+i) int tmp = m_stri; /* found* m_stri = _; /* found* _; void print () cout m_str endl; /其他成员. private: char* m_str; ; int main(int argc, char * argv) MyString str1 (“abc“), str2 (“defg“); cout “Before reverse: /n“; str1.print (); str2.print (); str1.reverse (); str2.reverse (); cout “After reverse:

6、 /n“; str1.print (); str2.print (); return 0; (分数:30.00)_三、B综合应用题/B(总题数:1,分数:40.00)3.请使用 VC6或使用答题菜单打开考生文件夹 proj3下的工程文件 proj3。本题创建一个小型字符串类,字符串长度不超过 100。程序文件包括 proj3.h、proj3.cpp、writeToFile.obj。补充完成 proj3.h,重载+运算符。 要求: 补充编制的内容写在“/*333*”与“/*666*”之间,不得修改程序的其他部分。 注意:程序最后将结果输出到文件 out.dat中。输出函数writeToFile已

7、经编译为 obj文件,并且在本程序中调用。 /proj3.h #include iostream #include iomanip using namespace std; class MiniString /+运算符重载 public: friendostream return output; friend istream /用于输入的临时数组 temp0 = /0; input setw (100) temp; int inLen = strlen(temp); /取输入字符串长度 if( inLen ! = O) s.length = inLen; /赋长度 if(s.sPtr! = 0

8、) delete s.sPtr; /避免内存泄 s.sPtr = new char s.length + 1; strcpy( s.sPtr, temp ); /如果 s不是空指针,则复制内容 else s.sPtr0 = /0; /如果 s是空指针,则为空字符串 return input; MiniString (const char * s = “): length(s!= 0)?strlen (s): 0)setString (s); MiniString() delete sPtr; /析构函数 /* 333* /+运算符重载 /* 666* MiniString (MiniStrin

9、g sPtr = new char s.length + 1; strcpy( sPtr, s.sPtr); private: int length; /字符串长度 char * sPtr; /指向字符串起始位置 void setString(const char * string2) /辅助函数 sPtr = new char strlen(string2) + 1; /分配内存 if ( string2!= 0) strcpy( sPtr, string2 ); /如果 string2不是空指针,则复制内容 else sPtr 0 = /0; /如果 string2是空指针,则为空字符串

10、; /proj3.cpp #include iostream #include iomanip using namespace std; #include “proj3.h“ int main () MiniString strl (“Hello!“), str2 (“World“); void writeToFile (char * ); MiniString temp = str1 + str2; /使用重载的+运算符 cout temp “/n“; writeToFile (“); return 0; (分数:40.00)_二级 C+-61答案解析(总分:100.00,做题时间:90 分

11、钟)一、B基本操作题/B(总题数:1,分数:30.00)1.请使用 VC6或使用答题菜单打开考生文件夹 proj1下的工程 proj1,此工程中含有一个源程序文件proj1.cpp。其中每个注释“/ERROR *found*”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: smaller smaller smaller largest 注意:只修改注释“/ERROR *found*”的下一行语句,不要改动程序中的其他内容。 /proj1.cpp #include iostream using namespace std; const int Size =4; class MyCl

12、ass public: MyClass(int x=0) :value(x) void Set(int x) value=x; friend void Judge(MyClass private: int value; ; / ERROR * found* voidMyClass:Judge(MyClass else cout “smaller“ endl; int main () MyClass * ptr =new MyClassSize; for(int i=0;i_正确答案:(1)void Judge(MyClass class MyString public: MyString (c

13、onst char* s) /* found* m_str = new char_; strcpy (m_str, s) ; MyString () /* found* _; void reverse () int n = strlen(m str) ; for (int i=0; i n/2; +i) int tmp = m_stri; /* found* m_stri = _; /* found* _; void print () cout m_str endl; /其他成员. private: char* m_str; ; int main(int argc, char * argv)

14、MyString str1 (“abc“), str2 (“defg“); cout “Before reverse: /n“; str1.print (); str2.print (); str1.reverse (); str2.reverse (); cout “After reverse: /n“; str1.print (); str2.print (); return 0; (分数:30.00)_正确答案:(1)strlen(s)+1 (2)deletem_str (3)m_strn-i-1 (4)m_strn-i-1=tmp)解析:考点 本题考查 MyString类,其中涉及构造

15、函数、动态数组、析构函数和成员函数。 解析 (1)考查使用 new语句动态分配内存空间,要分配的空间大小应为字符串的长度加 1。 (2)主要考查考生对析构函数的掌握,析构函数使用 delete语句释放指针。 (3)和(4)主要考查考生对成员函数的掌握,这里是一个变量交换操作,通过中间变量 tmp交换。三、B综合应用题/B(总题数:1,分数:40.00)3.请使用 VC6或使用答题菜单打开考生文件夹 proj3下的工程文件 proj3。本题创建一个小型字符串类,字符串长度不超过 100。程序文件包括 proj3.h、proj3.cpp、writeToFile.obj。补充完成 proj3.h,重

16、载+运算符。 要求: 补充编制的内容写在“/*333*”与“/*666*”之间,不得修改程序的其他部分。 注意:程序最后将结果输出到文件 out.dat中。输出函数writeToFile已经编译为 obj文件,并且在本程序中调用。 /proj3.h #include iostream #include iomanip using namespace std; class MiniString /+运算符重载 public: friendostream return output; friend istream /用于输入的临时数组 temp0 = /0; input setw (100) te

17、mp; int inLen = strlen(temp); /取输入字符串长度 if( inLen ! = O) s.length = inLen; /赋长度 if(s.sPtr! = 0) delete s.sPtr; /避免内存泄 s.sPtr = new char s.length + 1; strcpy( s.sPtr, temp ); /如果 s不是空指针,则复制内容 else s.sPtr0 = /0; /如果 s是空指针,则为空字符串 return input; MiniString (const char * s = “): length(s!= 0)?strlen (s):

18、0)setString (s); MiniString() delete sPtr; /析构函数 /* 333* /+运算符重载 /* 666* MiniString (MiniString sPtr = new char s.length + 1; strcpy( sPtr, s.sPtr); private: int length; /字符串长度 char * sPtr; /指向字符串起始位置 void setString(const char * string2) /辅助函数 sPtr = new char strlen(string2) + 1; /分配内存 if ( string2!

19、= 0) strcpy( sPtr, string2 ); /如果 string2不是空指针,则复制内容 else sPtr 0 = /0; /如果 string2是空指针,则为空字符串 ; /proj3.cpp #include iostream #include iomanip using namespace std; #include “proj3.h“ int main () MiniString strl (“Hello!“), str2 (“World“); void writeToFile (char * ); MiniString temp = str1 + str2; /使用

20、重载的+运算符 cout temp “/n“; writeToFile (“); return 0; (分数:40.00)_正确答案:(MiniString /给pt动态分配大小为 lenth+1 Strcpy(pt, sPtr); /把 sptr中的内容复制到 pt中 int blength=length; /把 length赋值给变量 biength length+=s.length; /把对象 s成员变量 length加到 length deletesPtr; /删除 sptr的空间 sPtr=new charlength+1; /给 sptr动态分配大小 length的空间 strcpy(SPtr, pt); /把 pt中的内容复制到 sptr中 deletept; /删除 pt的空间 for(int i=0; ilength; +i) /从零到 length遍历 sPtrblength+i=s.sPtr i; /把对象 s中成员变量 sptri赋值 给 sptrblength+i return*this; /返回 this指的 对象 )解析:考点 本题考查 MiniString类,其中涉及构造函数、友元函数、运算符重载和析构函数。 解析 主要考查考生对运算符重载的掌握,因为有动态数组,所以要先分配空间,再复制字符串。

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