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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

【计算机类职业资格】国家二级C++机试(操作题)-试卷147及答案解析.doc

1、国家二级 C+机试(操作题)-试卷 147及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.请使用”答题”菜单或使用 VC6打开考生文件夹 pmjI下的工程 pmjl,程序中位于每个ERROR*found*水下的语句行有错误,请加以更正,不得修改程序的其他部分。更正后程序的输出应该是:ATme 注意:只能修改每个ERROR*found*下的那一行,不要改动程序中的其他内容。#includeiostreamusing namespace std;class Choiceprivate:const char answer,public:ERROR*f

2、ound*Choice(char C)answer=C;)一 Choice()void check(char x)coutxendl;ERROR*found*if(answer=x)cout“True”endl;elsecout“False”end1;int main()ERROR *found*Choice C=new Choice(A);C 一check(A);delete C;return 0;(分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.请使用”答题”菜单或使用 VC6打开考生文件夹 proj2下的工程 proj2,本程序中有两个类:一是日期类(Date),用于表

3、示一天的日期(年、月、日);另一个是截止日期类(Dead1ine),用于表示一个任务的截止日期,超过该日期即为超时。Deadline 类中有 Date类的数据成员。这里对 Deadline类的数据成员和成员函数做一下说明:int id;截止日期的 idDate enddate;截止日期,表示允许完成该任务的最后一天 void finish(Date date);date 未超过截止日期时,输出”Finished!”,否则输出”Time out” bool check(Date date);date 未超过截止日期时返回 true,否则返回 false。 程序正确情况下输出: Finished!

4、 Time out注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不能删除或移动“*found*”。#includeiOStreamusing namespace std;class Date(private:int year;int month;int dayof month;public:Date(int Y,int m,int d)this 一year=Y;this 一month:m;this 一day Of month=d;bool operator=(Date&dt)const if(this 一yeardtyear lI(this 一year=dtyear&this

5、一monthdtmonth)I I(this 一year=dtyearthis 一month=dtmonththis 一dayofmonth=dtday_of_month)*found*;return false;class Deadlineprivate:int id;Date end date;public:Deadline(int id,int year,int month,int day_of_month)*found*this 一id=id;void finish(Date date)if(check(date)*found*coutendl;elsecout”Time out”en

6、dl;)bool check(Date date) *found*return;:;int main()Deadline * d1=new Deadline(1,2014,3,12);Deadline*d2=new Deadline(2,2013,12,20);Date current time(2 01 4,1,1);dl 一finish(current time);d2 一finish(current time);delete d1,delete d2;return 0;(分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.请使用“答题”菜单或使用 VC6打开考生文件夹 pr

7、oj3下的工程 proj3,其中定义了 BaseX类(X 进制整数类),其中成员函数 print输出该整数指定数制的表示形式。使用展转相除法,可从低位到高位逐位求出所需要的表示形式,例如,求十制数 231的四进制表示形式,方法如下:2314=573574=141144=32 结果是:3213 在 main函数中给出了一组测试数据,正确的输出是:2001 注意:只需在*333*和*666*,之间填入所编写的若干语句,不要改动程序中的其他内容。#includeiostream#includecmath#include”BaseXh”using namespace std;BaseX:BaseX(i

8、nt n)(thiS 一num=n;BaseX:一 BaseX()void BaseX:print(int x) 输出整数 num的 X进制表示形式 int arr1 00; 存放转换结果,arr0存放最低位 int index=0; 当前数组 arr中元素的个数*333*666*for(int i=、index 一 1;i=0;i一) 从高位到低位输出所需表示形式 coutarri;coutendl; int main()BaseX b(12 9);bprint(4);writeToFile(”C:test、-),return 0; proj3BaseXh class BaseXint nu

9、m;public:BaseX(int n);一 BaseX();void printint x); ; void writeToFile(const char*path);(分数:2.00)_国家二级 C+机试(操作题)-试卷 147答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.请使用”答题”菜单或使用 VC6打开考生文件夹 pmjI下的工程 pmjl,程序中位于每个ERROR*found*水下的语句行有错误,请加以更正,不得修改程序的其他部分。更正后程序的输出应该是:ATme 注意:只能修改每个ERROR*found*下的那一行,不要改动程序

10、中的其他内容。#includeiostreamusing namespace std;class Choiceprivate:const char answer,public:ERROR*found*Choice(char C)answer=C;)一 Choice()void check(char x)coutxendl;ERROR*found*if(answer=x)cout“True”endl;elsecout“False”end1;int main()ERROR *found*Choice C=new Choice(A);C 一check(A);delete C;return 0;(分数

11、2.00)_正确答案:(正确答案:(1)Choice(char c):answer(c) (2)if(answer=:x) (3)Choice*c=new Choice(A);)解析:解析:主要考查类中 const成员变量的初始化,容易出错的是=与=运算符,以及指针的使用。 【解题思路】 (1)C+约定:初始化 eonst对象或引用类型的对象,但不能对他们赋值。在开始执行构造函数的函数体之前,必须完成初始化。初始化 const或引用类型数据成员的唯一机会是在构造函数初始化列表中。 (2)判断相等使用=运算符,不是赋值号“=”。 (3)new 操作符返回的是一个指针,因此使用指针变量来接收。二

12、简单应用题(总题数:1,分数:2.00)2.请使用”答题”菜单或使用 VC6打开考生文件夹 proj2下的工程 proj2,本程序中有两个类:一是日期类(Date),用于表示一天的日期(年、月、日);另一个是截止日期类(Dead1ine),用于表示一个任务的截止日期,超过该日期即为超时。Deadline 类中有 Date类的数据成员。这里对 Deadline类的数据成员和成员函数做一下说明:int id;截止日期的 idDate enddate;截止日期,表示允许完成该任务的最后一天 void finish(Date date);date 未超过截止日期时,输出”Finished!”,否则输

13、出”Time out” bool check(Date date);date 未超过截止日期时返回 true,否则返回 false。 程序正确情况下输出: Finished! Time out注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不能删除或移动“*found*”。#includeiOStreamusing namespace std;class Date(private:int year;int month;int dayof month;public:Date(int Y,int m,int d)this 一year=Y;this 一month:m;this 一day

14、 Of month=d;bool operator=(Date&dt)const if(this 一yeardtyear lI(this 一year=dtyear&this 一monthdtmonth)I I(this 一year=dtyearthis 一month=dtmonththis 一dayofmonth=dtday_of_month)*found*;return false;class Deadlineprivate:int id;Date end date;public:Deadline(int id,int year,int month,int day_of_month)*fou

15、nd*this 一id=id;void finish(Date date)if(check(date)*found*coutendl;elsecout”Time out”endl;)bool check(Date date) *found*return;:;int main()Deadline * d1=new Deadline(1,2014,3,12);Deadline*d2=new Deadline(2,2013,12,20);Date current time(2 01 4,1,1);dl 一finish(current time);d2 一finish(current time);de

16、lete d1,delete d2;return 0;(分数:2.00)_正确答案:(正确答案:(1)return true (2):enddate(year,month,day-0f_month) (3)”Finshed” (4)(enddate=date)?false:true)解析:解析:主要考查类构造函数定义,初始化列表;条件运算符的使用。 【解题思路】 (1)根据题设可知比较两个日期的大小,由 if语言的判断,可知 this的日期大于 date,返回真。 (2)构造函数的初始化列表,使用基类的构造函数完成子类成员的初始化。 (3)根据题意可知,没有超过 deadline,故输出“Fi

17、nshed”。 (4)检查当前日期是否超过截止时间。超过 deadline,返回 false,否则返回 true。三、综合应用题(总题数:1,分数:2.00)3.请使用“答题”菜单或使用 VC6打开考生文件夹 proj3下的工程 proj3,其中定义了 BaseX类(X 进制整数类),其中成员函数 print输出该整数指定数制的表示形式。使用展转相除法,可从低位到高位逐位求出所需要的表示形式,例如,求十制数 231的四进制表示形式,方法如下:2314=573574=141144=32 结果是:3213 在 main函数中给出了一组测试数据,正确的输出是:2001 注意:只需在*333*和*66

18、6*,之间填入所编写的若干语句,不要改动程序中的其他内容。#includeiostream#includecmath#include”BaseXh”using namespace std;BaseX:BaseX(int n)(thiS 一num=n;BaseX:一 BaseX()void BaseX:print(int x) 输出整数 num的 X进制表示形式 int arr1 00; 存放转换结果,arr0存放最低位 int index=0; 当前数组 arr中元素的个数*333*666*for(int i=、index 一 1;i=0;i一) 从高位到低位输出所需表示形式 coutarri

19、coutendl; int main()BaseX b(12 9);bprint(4);writeToFile(”C:test、-),return 0; proj3BaseXh class BaseXint num;public:BaseX(int n);一 BaseX();void printint x); ; void writeToFile(const char*path);(分数:2.00)_正确答案:(正确答案:while(aura) artindex+=numx; Bum=x; )解析:解析:主要考查将一个数转化为 x进制,使用辗转相除法来处理。 【解题思路】 将一个数转化为x进制,使用辗转相除法,将余数放在 arr数组中,对商继续使用辗转相除法来处理,直到商为 0。 最后反向输出数组中的值,即为 x进制的数。

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