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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级 C+机试(操作题)模拟试卷 286及答案与解析 一、基本操作题 1 请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 proj1,此工程中包含一个源程序文件 main cpp,其中有类 Book(“书 ”)和主函数 main的定义。程序中位于每个 “ ERROR *found*”下的语句行有错误,请加以改正。改正后程序的输出结果应该是: 书名: C语句程序设计总页数: 299 已把 “C语言程序设计 ”翻到第 50页 已把 “C语言程序设计 ”翻到第 51页 已把 “C语言程序设计 ”翻到第 52页 已把 “C语言程序设计 ”翻到第 51页 已把书合上。 当前页:

2、0 注意:只修改每个 “ ERROR *found*”下的那一行,不要改动程序中的其他内容。 #include iostream using namespace std; class Book char *title; int num_pages;页数 int cur_page;当前打开页面的页码, 0表示书未打开 public: ERROR *found* Book(const char theTitle, int pages) hum_pages(pages) title new char strlen(theTitle) 1; strcpy(title, theTitle); cout

3、end1 “书名: “ title “总页数: “ num_pages; Book()(deletetitle; bool isClosed()const(returncur_page 0; 书合上时返回 true,否则返回false bool isopen()constreturn!isClosed(); 书打开时返回 true,否则返回 false int numOfpages()const( return num_pages; 返回书的页数 int currentPage()const return cur_page; ) 返回打开页面的页码 ERROR*found* void open

4、AtPage(int page_no) const 把书翻到指定页 cout end1; if(page_no 1 page_no num_pages) cout “无法翻到第 “ cur_page “页。 “; close(); else cur_page page_no; cout “已把 “ title “”翻到第 “ cur page “页 “; void openAtPreVPage() openAtPage(cur_page 1); )把书翻到上一页 void openAtNextPage() openAtPage(cur_page 1); )把书翻到下一页 void close(

5、)把书合上 cout end1; if(isClosed() cout “书是合上的。 “; else ERROR*found* num pages 0; cout “已把书合上。 “; cout end1; ; int main() Book book(“C语言程序设计 “, 299); book 0penAtPage(50); book 0penAtNextPage(); book openAtNextPage(); book 0penAtPreVPage(); book close(); cout “当前页: “ book currentPage() end1; return 0; 二、

6、简单应用题 2 请使用 VC6或使用【答题】菜单打开考生文件夹 proj2下的工程 proj2。此工程中包含一个源程序文件 main epp,其中有 “房间 ”类 Room及其派生出的 “办公室 ”类 Office的定义,还有主函数 main的定义。请在程序中 “ *found*”下的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为: 办公室房间号: 308 办公室长度: 5 6 办公室宽度: 4 8 办公室面积: 26 88 办公室所属部门:会计科 注意:只 能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动 “ *found*”。 #includ

7、e iostream using namespace std; class Room “房间 ”类 int room_no; 房间号 double length;房间长度 (m) double width; 房间宽度 (m) public: Room(int the_room_no, doublethe_length, double the_width):room_no(the_room_no), length (the_length), width(the_width) int theRoomNo()constreturnroom_no; ) 返回房间号 double theLength()

8、constreturn length; ) 返回房间长度 double theWidth()constreturn width; 返回房间宽度 *found* double theArea()const_返回房间面积 (矩形面积 ) ; class Office: public Room “办公室 ”类 char *depart; 所属部门 public: Office(int the_room_no, double the_length, double the_width, const char *the depart) *found* : _ depart new charl strlen

9、(the_epart) 1; *found* strcpy(_); Office()deletedepart; const char *theDepartment() constreturn depart; )返回所属部门 ; int main() *found* Office_; cout “办公室房间号: “ an_ office theRoomNo() end1 “办公室长度: n an office theLength() end1 “办公室宽度: “ an_office theWidth() end1 “办公室面积: “ an_office。 theArea() end1 “办公室所

10、属部门: “ an_ofrice theDepartment() end1; retttm 0; 三、综合应用题 3 请使用 VC6或使用【答题】菜单打开考生文件夹 proj3下的工程文件 proj3。本题创建一个小型字符串类,字符串长度不超过 100。程序文件包括 proj3 h、proj3 cpp、 writeToFile obj。补充完成重载赋值运算符函数,完成深复制功能。 屏幕上输出的正确结果应该是: Hello! Happy new year! 要求: 补充编制的内容写在 “ *333*”与“*666*”两行之间。不得修改程序的其他部分。 注意: 程序最后调用 writeToFile

11、函数,使用另一组不同的测试数据,将不同的运行结果输出到文件 out dat中。输出函数 writeToFile已经编译为 obj文件。 proj3 h #include iostream #include iomanip using namespace std; class MiniString public: friend ostream&operator (ostream&output, const Minis-tring&s) 重载流插入 运算符 output s sPtr; return output; friend istream&operator istream &input, M

12、iniString &s) 重载流提取运算符 char teap100;用于输入的临时数细 temp0 0;初始为空字符串 input setw(100) temp; int inLen strlen(temp);输入字符串长度 if(inLen! 0) s length inLen;赋长度 if(s sPtr! 0)deletes sPtr;避免内存泄漏 s sPtr new chars length 1; strcpy(s sPtr, temp);如果 s不是空指针,则复制内容 else s sPtr0 、 0;如果 s是空指针,则为空字符串 return input; void mods

13、tring(const char *string2)更 改字符串内容 if(string2 1 0)如果 string2不是空指针。则复制内容 if(strlen(string2)! length) 1ength strlen(string2); deletesPtr; sPtr new char1ength 1; 分配内存 strcpy(sPtr, string2); ) else sPtr0 0;如果 string2是空指针 ,则为空字符串 MiniString operator ( const MiniString&otherString); MiniString(const char

14、*s “): length(s! 0)?strlen(s): 0)构造函数 SPtr 0; if(length! 0) setString(s); MiniString()析构函数 deletesPtr; private: int length; 字符串长度 char * sPtr; 指向字符串起始位置 void setString(const char*string2) 辅助函数 sPtr: new charstrlen(string2) 1; 分配内存 if(string2 1 0)strcpy(sPtr, string2); 如果 string2不是空指针,则复制内容 else sPtr

15、0 0;如果 string2是空指针,则为空字 符串 ; proj3 cpp #include iostream #include iomanip using namespace std; #include”proj3 h” MiniString&MiniString operator (const MiniString otherString) 重载赋值运算符函数。提示:可以调用辅助函数 setString *333* *666* int main() MiniString str1(“Hello!“), str2; void writeTOFile(const char *); str2

16、strl;使用重载的赋值运算符 str2 modString(“Happy newyear!“); cout str1 n; cout str2 n; writeToFile(“); return 0; 国家二级 C+机试(操作题 )模拟试卷 286答案与解析 一、基本操作题 1 【正确答案】 (1)Book(const char * theTitle, int pages): Bum_pages(pages) (2)void openAtPage(int page_no)把书翻到指定页 (3)cur_page 0; 【试题解析】 (1)主要考查考生对构造函数的掌握,构造函数的成员列表初始化法

17、要注意它的格式,即成员列表前要有标识符 “: ”,因此语句改为: Book(const char*theTitle, int pages): num_pages(pages)。 (2)主要考查考生对 const函数的掌握,在函数体中可以看到有语句 cur_pagepage_no,即 cur_page的值发生改变,因此该函数不是 const函数。 (3)主要考查考生对成员函数的掌握,题目要求输出的最后一条是 “当前页: 0”,可知主函数中调用 close函数后当前页为 0,因此应该是 cur_page 0;。 二、简单应用题 2 【正确答案】 (1)retum length * width; (

18、2)Room(the_room_no, the_length, the_width) (3)depart, the_depart (4)an_office(308, 5 6, 4 8, “会计科 “) 【试题解析】 (1)主要考查考生对成员函数的掌握,题目要求返回房间面积 (矩形面积 )。由此可知空格部分要填写的是一个 retum语句,返回房间面积,也就是length*width,因此可以得出程序 retum length*width;。 (2)主要考查考生对派生类的构造函数的掌握,派生类的构造函数要使用成员列表初始法先对基 类进行初始化。 (3)考查 strcpy函数,由前一条语句 depa

19、rt new charstrlen(the_depart) 1;可知,程序给 depart分配了长度为 the_depart串长加 1的空间,因此要复制字符串 the_depart串到 depart,直接填写 strcpy(depart, the_depart)即可。 (4)主要考查考生对类的掌握,题目要求输出的结果为: 办公室房间号: 308 办公室长度: 5 6 办公室宽度: 4 8 办公室面积: 26 88 办公室所属部门:会计科 由 Office类的构造函数可知要定义的一个 Office类的对象为 an_office(308,5 6, 4 8, “会计科 “)。 三、综合应用题 3 【

20、正确答案】 length otherString length; 把对象字符串 otherstring的长度赋值给变量 length setString(otherString sPtr); 调用函数 setstring,实现给类变量 sptr分配空间,以及逐个把对象 otherstring字符串的值复制到 sptr中 return*this;返回被赋值的对象 【试题解析】 主要考查考生对运算符重载的掌握,题目要求重载赋值运算符函数。要重载的运算符是 “ ”,即赋值的意思。提示:可以调用辅助函数setString。该函数的功能是复制形参的字符串到 sPtr中,因此,首先复制length,其次通过函数 setString复制 sPtr,最后按要求返回水 this;。

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