[计算机类试卷]国家二级C++机试(操作题)模拟试卷292及答案与解析.doc
《[计算机类试卷]国家二级C++机试(操作题)模拟试卷292及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C++机试(操作题)模拟试卷292及答案与解析.doc(10页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C+机试(操作题)模拟试卷 292及答案与解析 一、基本操作题 1 请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 proj1,该工程中包含程序文件 main cpp,其中有类 Door(“门 ”)和主函数 main的定义。程序中位于每个 “ ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为: 打开 503号门 门是锁着的,打不开。 打开 503号门的锁 锁开了。 打开 503号门 门打开了。 打开 503号门 门是 开着的,无须再开门。 锁上 503号门 先关门 门锁上了。 注意:只修改每个 “ ERROR*found*”下的
2、那一行,不要改动程序中的其他内容。 #include iostream using namespace std; class Door int num; 门号 bool closed; true表示门关着 bool locked; true表示门锁着 public: Door(int num) ERROR *found* num this num; closed locked true; bool isClosed()const return closed; 门关着时返回 true,否则返回 false bool isOpened()constreturn!closed; 门开着时返回 tru
3、e,否则返回 false bool isLocked()constreturn locked; 门锁着时返回 true,否则返回 false bool i sUnlocked()constreturn!locked; ) 门未锁时返回 true,否则返回 false void open() 开门 cout end1 “打开 “ num “号门 “ ; ERROR *found* if(closed) cout “门是开着的,无须再开门。 “; else if(locked) cout “门是锁着的,打不开。 “; else closed false; cout “门打开了。 “; void c
4、lose() 关门 cout end1 “关上 ” num “号门 “ ; if fclosed) cout “门是关着的,无须再关门。 ”; else closed true; cout “门关上了。 “; ERROR *found* void lock()const 锁门 cout endl “锁上 “ num “号门 “ ; if(10cked) tout “门是锁着的,无须再锁门。 “; else if(!closed) tout “先关门 “ ; closed true; locked true; COUt “门锁上了。 “; void unlock() 开锁 cout end1 “
5、开 “ num “号门的锁 “ ; if(!locked) tout “门没有上锁,无须再开锁。 “; else locked false; cout “锁开了。 “; , int main()f Door door(503); door open(); door unlock(); door open(); door open(); door lock(); return 0; 二、简单应用题 2 请使用 VC6或使用【答题】菜单打开考生文件夹 proj2下的工程 proj2,该工程中包含一个 程序文件 main cpp,其中有日期类 Date、人员类 Person及排序函数sortByNa
6、me和主函数 main的定义。请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义和函数定义。此程序的正确输出结果应为: 按姓名排序 排序前 张三 男 出生日期: 1978年 4月 20日 王五 女 出生日期: 1965年 8月 3日 杨六 女 出生日期: 1965年 9月 5日 李四 男 出生日期: 1973年 5月 30日 排序后: 李四 男 出生 日期: 1973年 5月 30日 王五 女 出生日期: 1965年 8月 3日 杨六 女 出生日期: 1965年 9月 5日 张三 男 出生日期: 1978年 4月 20日 注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也
7、不要删除或移动 “ *found*”。 #include iostream using namespace std; class Date 日期类 int year, month, day;年、月、日 public: Date(int year, int month, int day): year(year), month(month), day(day) int getYear()constreturn year; int getMonth()const(return month; int getDay()constreturn day; ; class Person人员类 char nam
8、e14;姓名 bool is_male,性别,为 true时表示男性 Date birth_date;出生日期 public: Person(char *name, bool is male, Date birth date) *found* : _ strcpy(this name, name); const char *getName()const return name; bool isMale()const return is_male; Date getBi rthdate()constreturn birth_date; 利用 strcmp()函数比较姓名,返回一个正数、 0或负数
9、,分别表示大于、等于、小于 int compareName(const Person p)const *found* _ void show() cout end1; cout name “ (is_male?“男 “: “女 “) “ “出生日期: “birth_date getYear() “年 “显示出生年 *found* _显示出生月 birth_date、 getDay() “日 “;显示出生日 ; void sortByName(Person ps, int size) 将人员数组按姓名排列为升序 for(int i 0; i size 1; i ) 采用选择排序算法 int m
10、i; for(int j i 1; j size; j ) if(psj compareName(ps m) 0) m j; if(m i) Person P psm; psm psi; psi p; int main() Person staff Person(“张三 “, true, Date(1978, 4, 20), Person(“王五 “, false, Date(1965, 8, 3), Person(“杨六 “, false, Date(1965, 9, 5), Person(“李四 “, true, Date(1973, 5, 30) ; const int size siz
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 机试 操作 模拟 292 答案 解析 DOC
