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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级 C+机试(操作题)模拟试卷 498及答案与解析 一、基本操作题 1 请打开考生文件夹下的解决方案文件 proj1,该工程中包含程序文件main cpp,其中有 Salary(“工资 ”)类和主函数 main的定义。程序中位于每个 “ERROR*found*”之后的一行语句行有错误,请加以改正。改正后程序的输出结果应为: 应发合计: 3500应扣合计: 67 5实发工资: 3432 5 注意:只修改每个 “ ERROR*found*下的那一行,不要改动程序中的其他内容。 #include iostream using namespace std; class Salary public

2、: Salary(const char*id, double the_base, double the_bonus, double the_tax) ERROR*found* : the_base(base), the_bonus(bonus), the_tax(tax) Staff_id=new charstrlen(id)+1; strcpy(staff_id, id); *found* Salary( )delete*staff_id; double getGrosSPay( )constreturn base+bonus; 返回应发项合计 double getNetPay( )cons

3、treturn getGrossPay( )-tax; 返回实发工资额 private: char*staff id;职工号 double base;基本 i焱 double bonus;奖金 double tax;代扣个人所得税 ; int main( ) Salary pay(“888888“, 3000 0, 500 0, 67 50); cout “应发合计: “ pay getGrossPay( ) “ “; cout “应扣合计: “ pay getGrossPay( )-pay getNetPay( ) “ “; ERROR*found* cout “实发工资: “ pay: g

4、etNetPay( ) endl; return0; 二、简单应用题 2 请打开考生文件夹下的解 决方案文件 proj2,该工程中含有一个源程序文件proj2 cpp。其中定义了类 Set和用于测试该类的主函数 main。类 Set是一个用于描述字符集合的类,在该字符集合中,元素不能重复 (将 “a”和 “A”视为不同元素 ),元素最大个数为 100。为该类实现一个构造函数 Set(char*s),它用一个字符串来构造一个集合对象,当字符串中出现重复字符时,只放入一个字符。此外,还要为该类实现另一个成员函数 InSet(char c),用于测试一个字符 c是否在一个集合中,若在,则返回 tru

5、e;否则返回 false。 构造函数 Set和成员函数 InSet的部分实现代码已在文件 proj2 cpp中给出,请在标有注释 “ TODO: ”的行中添加适当的代码,将这两个函数补充完整,以实现其功能。 提示:在实现构造函数时,可以调用 InSet函数来判断一个字符是否已经在集合中。 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动 “ *found*”。 proj2 cpp #include iostream using namespace std; const int NAXNUN=100; class Set: private: int hum;元素个数 c

6、har setdataNAXNUN;字符数组,用于存储集合元素 public: Set(char*s);构造函数,用字符串 s构造一个集合对象 bool InSet(char c); 判断一个字符 c是否在集合中,若在,返回 true,否则返回 false void Print( )const;输出集合中所有元素 ; Set: Set(char*s) num=0; while(*s) *found* if(_) TODO:添加代码,测试元素在集合中不存在 *found* _; TODO:添加一条语句,加入元素至集合中 s+; bool Set: InSet(char c) for(inti=0

7、; i num; i+) *found* if(_) TODO:添加代码,测试元素 c是否与集合 中某元素相同 *found* _; TODO:添加一条语句,进行 相应处理 return false; void Set: Print( )const cout “Set elements: “ endl; for(int i=0; i num; i+) cout setdatai ; cout endl; int main( ) char sMAXNUM; cin getline(s, MAXNUM-1); 从标准输入中读入一行 Set setobj(s);构造对象 setobj setobj

8、Print( );显示对象 setobj中内容 return0; 三、综合应用题 3 请打开考生文件夹下的解决方案文件 proj3,其中声明的是一个人员信息类,补充编制程序,使其功能完整。在 main函数中给出了一组测试数据,此种情况下程序的输出应该是: Zhang20Tsinghua。 注意:只能在函数 address_change的 “ *333*”和 “*666*”之间填入 若干语句,不要改动程序中的其他内容。 程序最后将结果输出到文件 out dat中。输出函数 writeToFile已经编译为 obj文件,并且在本程序中调用。 proj3 h #include iostream #i

9、nclude string using namespace std; class Person char name20; int age; char*address; public: Person( )age=0; address=0; VOid name change(char*name); 名字修改函数 void age_change(int_age); 年龄修改函数 void address_change(char*add); 地址修改函数 void info_display( ); 人员信息显示 Person( ); 析构函数 ; void writeToFile(const char

10、*path); proj3 cpp #include iostream #include string #include“proj3 h“ using namespace std; void Person: name_change(char*_name) strcpy(name, _name); void Person: age_change(int_age) age=_age; void Person: address_change(char*_add) if(address!=NULL)delete address; *333* *666* void Person: info_displa

11、y( ) cout name t age t; if(address!=NULL) cout addreSS endl; cout endl; Person: Person( ) if(address!=NULL) delete address; void main( ) Person p1; p1 name_change(“Zhang“); p1 age_change(20); p1 address_change(“Tsinghua University“); p1 address_change(“Tsinghua“); p1 info_display( ); writeToFile(“ “

12、); 国家二级 C+机试(操作题)模拟试卷 498答案与解析 一、基本操作题 1 【正确答案】 (1): base(the_base), bonus(the_bonus), tax(the_tax) (2) Salary( )delete staff_id; (3)cout “实发工资: “ pay get, NetPay( ) endl: 【试题解析】 (1)主要考查考生对构造函数的 掌握情况,构造函数的成员初始列表要把形参放在括号内。 (2)主要考查考生对析构函数的掌握情况,析构函数使用 delete释放指针, delete后要跟标识符 “ ”。 (3)主要考查考生对成员函数调用的掌握情况

13、,调用类的成员函数使用标识符“ ”,而不是作用域符 “: ”。 二、简单应用题 2 【正确答案】 (1)!InSet(*s) (2)setdatanum+=*s (3)c=setdatai (4)return true 【试题解析】 (1)主要考查考生对成员函数的掌握,题目要求:添 加代码,测试元素在集合中不存在,由类的定义可知函数 bool InSet(char c)可以测试字符 c是否在集合中,因此这里直接调用函数 bool InSet(char c)即可。 (2)题目要求:添加一条语句,加入元素至集合中,集合用数组 setdata表示,直接把元素添加到数组中即可。 (3)主要考查考生对

14、if语句的掌握,题目要求:测试元素 c是否与集合中某元素相同。前一条语句是个 for循环,利用下标 i遍历整个集合,通过 if语句中的判断条件判断 c是否在集合中,用 “=”判断。 (4)主要考查考生对成员函数的掌握 ,先看函数的注释:判断一个字符 c是否在集合中,若在,返回 true,否则返回 false。 if语句成立时,说明字符 c存在于集合中,因此应该返回 true。 三、综合应用题 3 【正确答案】 address=new charstrlen(_add)+1;给类成员变量动态分配空间 strcpy(address, _add);把字符串 _add复制给 address 【试题解析】 函数 address_change(char*_add)的功能是地址修改,也就是说通过该函数把类的地址修改为 add字符串。类 的私有成员 address是字符指针,因此首先要给 address分配空间,通过 new语句来实现:address=newcharstrlen(_add)+1;。接下来就是要复制字符串,使用系统函数strcpy,其用法为 strcpy(参数 1,参数 2),将参数 2的内容复制到参数 1中。

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