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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级 C+机试(操作题)模拟试卷 205及答案与解析 一、基本操作题 1 请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 proj1。该工程中包含程序文件 main cpp,其中有类 CDate(“日期 ”)和主函数 main的定义。程序中位于每个 “ ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为: 原日期: 2005-9-25 更新后的日期: 2006-4-1 注意:只修改每个 “ ERROR*found*”下的那一行,不要改动程序中的其他内容。 1 #iFtC2ude 2 #iD Clude 3 usingr namespac

2、e std; 4 5 class CDate日期类 6 7 ERROR * found* 8 protected: 9 CDate(); 10 CDate(int d, int m, int y) 11 12 ERROR *found* 13 SetDate(int day=d, int month=m, int year=y); 14 ; 15 void Di splay();显示日期 16 void Set: Date(int day, int month, int year) 17 设置日期 18 m_nDay=day;m nMonth=month; mnYear=year; 19 pr

3、ivate: 20 intm_nDay;日 21 int_m nMonth;月 22 int m_nYear;年 23 ; 24 25 void CDate: Display()显示日期 26 27 ERROR *found* 28 cout 2 using namespace std; 3 class Date 日期类 4 int year,month,day;年、月、日 5 public: 6 Date(int year, int month, int day): year(year), month(month), day(day) 7 int getYear()constreturn y

4、ear; 8 int getMonth()constreturn month; 9 int getDay()constreturn day; 10 ; 11 class Person 人员类 12 char name14;姓名 13 bool is male;性别,为 true时表示男性 14 Date birth date;出生日期 15 public: 16 Person(char*name, bool is_male, Date birth_date) 17 *found* 18 : _ 19 20 strcpy(this-name, name); 21 22 const char*ge

5、tName()constre-turn name; 23 bool isMale()constreturn is male; 24 Date getBirthdate()const return birth_date; 25 利用 strcmp()函数比较姓名,返回一个正数、 0或负数,分别表示大于、等于、小于 26 int compareName(const Person p)const 27 *found* 28 _; 29 void show() 30 couti) 46 Person p=psm; 47 psm=psi; 48 psi=P; 49 50 51 52 53 int mai

6、n() 54 Person staff= 55 Person(“张三 “, true, Date(1978, 4, 2 0), 56 Person(“王五 “, false, Date(1965, 8, 3), 57 Person(“杨六 “, false, Date(1965, 9, 5), 58 Person(“李四 “, true, Date(1973, 5, 3 0) 59 ; 60 const int size=sizeof(staff) si-zeof(staff0); 61 int i; 62 cout 3 using namespace std; 4 class Person

7、5 6 char*idcardno;用动态空间存储的身份证号 7 char*name; 用动态空间存储的姓名 8 bool ismale; 性别: true为男, false为女 9 public: 10 Person(const char*pid, const char*pname, bool pmale); 11 Person() 12 *1* *found* 13 _; 14 15 const char*getIDCardNO()constreturn idcardno ; 16 const char*getName()constre-turn name; 17 void rename(

8、const char水 new name); 18 bool isMale()constreturn ismale; ; 19 class Staff: public Person 20 21 char * department; 22 double salary; 23 public: 24 Staff(const char*id_card_no, const char*p_name, bool is_male, const char*dept, double sal; 25 Staff()deletedepartment; 26 const char*getDepartment()cons

9、treturn department ;) 27 void setDepartment(const char*d); 28 double getSalary()constreturn salary; 29 void setSalary(double s)salary=s; 30 ; 31 Person: Person(const char*id card 32 no, const char*p_name, bool is male): ismale(is_male) 33 34 idcardno=new charstrlen(id_card_no)+1; 35 strcpy(idcardno,

10、 id card no); 36 name=new charstrlen(p_name)+1; 37 strcpy(name, p_name); 38 39 void Pemson: rename(const char*new_name) 40 41 deletename; 42 *2* *found* 43 _; 44 strcpy(name, new_name); 45 46 Staff: Staff(const char*id cardno, const char*p_name, bool is_male, 47 *3* *found* 48 const char*dept, doubl

11、e sal): _ 49 50 department=new charstrlen(dept)+1; 5l strcpy(department, dept); 52 salary: sal; 53 54 void Staff: setDepartment (const char*dept) 55 56 deletedepartment; 57 department: new charstrlen(dept)+1; 58 strcpy(department, dept); 59 60 int main() 61 62 Staff Zhangsan(“123456789012345“, “张三 “

12、, false, “人事部 “, 1234 56); 63 Zhangsan rename(“张小丽 “); 64 coutname, name);可知,要使用成员列表初始化的成员为 is_male和 birth_date。 (2)主要考查考生对 strcmp()函数的掌握,先看程序对该函数的功能要求:利用strcmp()函数比较姓名,返回一个正数、 0或负数,分别表示大于、等于、小于。因为 trcmp()函数的功能是比较字符串大小,因此可以直接被 return语句调用:return strcmp(name, p getName();。 (3)主要考查考生对成员函数的掌握,程序的注释为:显示出

13、生月,由此可以知道这里要输出出生月份,直接调用函数 getMonth()即可。 三、综合应用题 3 【正确答案】 (1)deleteidcardno, name (2)name=new charstrfen(new_name)+1 (3)Person(id_card_no, p_name, is-male) 【试题解析】 (1)主要考查考生对析构函数的掌握,题目要求释放两个指针成员所指向的动态空间。释放动态空间应 使用 delete语句,因为要释放两个指针,使用语句: deleteidcardno, name;实现。注意当释放多个指针时,中间用逗号隔开。 (2)考查动态数组分配空间,题目要求指针 name指向申请到的足够容纳字符串new_name的空间。使用 strlen(new_name)得到字符串 new_name的长度,但是这里要注意加 1。 (3)主要考查考生对派生类构造函数的掌握,题目要求利用参数表中前几个参数对基类 Person进行初始化。派生类的构造函数要使用成员列表初始化法对基类初始化,因此为 const char*dept, double sal): Person(id_card_no, p_name,is_male)。

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