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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级 C+机试(操作题)模拟试卷 148及答案与解析 一、基本操作题 1 请使用菜单命令或直接使用 VC6打开考生文件夹下的工程 pmj1,其中有 “MP3播放器 ”类 MP3Player和主函数 main的定义。程序中位于每个ERROR*found*下的语句行有错误,请加以更正。更正后程序的输出应该是: 天籁一 1 黑色 注意:只能修改每个 ERROR*found*下的那一行:不要改动程序中的其他内容。 #include #include using namespace std; class MP3 Player “MP3播放器 ”类 char*type; 型号 char* color;

2、 颜色 public: ERROR*found* MP3 Player(const char* ty=NULL, const char *co) ERROR*found* if(ty=NULL) type: NULL; else type=new charstrlen(ty)+1; strcpy(type, ty); if(co=NULL) color=NULL; else color=new charstrlen(CO)+1; strcpy(color, co); 一 MP3Player() if(type)deletetype; ERROR *found* i f(color)delete

3、 color; const char*getType()constre turn type; const char*getColor()constre turn color; ) , int main() MP3Player myplayer(“天籁 -1”, “黑色 ”); cout #include usiog namespace std; #define MaxElement 100 class Element “元素 ”类 public: int n; Element(int i=0): n(i) ; class MySet “集合 ”类 Element*element; 指向存储元素

4、的数组的指针 int Size;数组大小 int counter; 数组中元素的个数 int current; 用于表示扫描位置,及当前被扫描元素在数组中的下标 public: MySet(): element(new Element1 00), size(1 00), counter(0), current(0) 一 MySet()deleteelement; void add(Element ele); 向集合中添加一个元素,保持由小到大的顺序。 void remove(Element ele); 删除集合中指定的元素 void scanFirst()current=0 ; )将扫描位置定

5、位于首元素 *found* void scanNext()(_; ) 将扫描位置定位于下一个元素 Element get()constreturn ele- mentcurrent; 返回当前被扫描的元素 bool isEnded()constreturn current=counter; ) 如果已经没有更多的元素可扫描了,返回 true。 void show(); 显示集合中所有元素 ; void MySet: add(Element ele) int pos=counter; pos用于确定元素应插入的位置 while(pos0) 从后往前寻找该位置 if(ele nelementpos

6、一 1 n) break; 找到应插入的位置, 退出循环 *found* if()return; 发现相同元素,终止添加过程。 Pos一一; if(counter=size) 如果没有足够空间,扩充空间 (增加 100个元素的容量 ) Element*tmp=element; tmp指向原来的数组 *found* element=_; 申请一个新的数组,容量扩大 100个元素的容量 for(int i=0; ipos; i一一 )elementi=elementi一 1; 后移相关元素,腾出存放新元素的空间 elementpos=ele,插入新元素 counter+; void MySet:

7、show()f scanFirst(); 扫描位置定位于首元素 while(!isEnded() cout=0)从后往前寻找该位置 if(ele nelenntpos n)return; 集合中没有该元素,终止删除过程。 if(ele n=elementpos n) break; 找到删除的元素,退出 循环。 pos一一; if(pos=20070619 20070621= “, date2 show(); cout= ; date3 show(); cout= “; date4 show(); cout #include using namespace std; class Date int

8、 year; int month; int day; public: Date(int Y, int m, int d): year (Y), month(m), day(d) int getYear()constreturn year; ) int getMonth()constreturn month; ) int getDay()constreturn day; ) void show(ostream&os=cout)j bool operator=(Date date)const return year=date year month =date month day=date day;

9、 bool isLessThan(Date date)const; ; void writeToFile(const char*path); 国家二级 C+机试( 操作题)模拟试卷 148答案与解析 一、基本操作题 1 【正确答案】 (1)MP3Player(const char*ty=NULL, const char*co=NULL) 或 MP3Player(const char*ty, const char*co) (2)if(ty=NULL) (3)if(color)deletecolor; 【试题解析】 本题考查 MP3Player类,其中涉及构造函数的参数默认值、相等运算符与赋值运算

10、符的区别、动态分配内存的释放。 【解题思路】 (1)主要考查考生对 函数参数的默认值的掌握, C+中的函数可以提供默认实参,如果一个形参具有默认实参,那么它之后的所有形参都必须有默认实参,题目中ty提供了默认实参,所以 co也必须提供默认实参,或者将 ty的默认实参去掉。 (2)主要考查考生对相等运算符与赋值运算符区别的掌握,题意是判断指针 ty是否为 NULL,而不是将 ty赋值为 NULL,修改赋值运算符为相等运算符。 (3)主要考查动态分配内存的释放,动态分配的内存在释放时, new分配的内存需要使用 delete释放,而 new分配的内存需要使用 delete。 二、简单应用 题 2

11、【正确答案】 (1)+current (2)ele.n=elementpos一 1 n (3)new Elementsize+100 (4)scanNext() 【试题解析】 本题考查自增运算符、相等运算符,动态内存分配、成员函数的使用。 【解题思路】 (1)主要考查考生对数组和自增运算符的掌握情况,扫描数组元素,将扫描位置定位到下一个元素,需要将下标加 1,使用自增运算符。 (2)主要考查考生对数组元素的访问和比较运算符的掌握, pos初值为数组元素个数,所以访问 element元素 使用 pos一 1,避免访问数组越界;另外需要判断插入元素与当前元素是否相等来决定程序是否返回,使用相等运算

12、符。 (3)主要考查考生对动态内存分配的掌握,题意需要申请一个新的数组,并将当前数组容量 size扩大 100个,所以答案为 new Elementsize+loo。 (4)主要考查考生对类成员函数的掌握, show函数用来输出数组的所有元素,所以从首元素开始一次输出,输出一个元素需要将扫描定位到下一个元素,对应于前面的 scan First(),使用成员函数 scanNext()最合适不过了。 三、综合应用题 3 【正确答案】 bool less=false; if(yeardate getYear()Il year=: date getYear()&monthdate getMonth()

13、lI year= =date getYear()&month=date getMonth ()& daydate getDay() less=true; return less; 【试题解析】 本题考查的是 Date类,其中涉及布尔变量、成员函数的使用、逻辑运算符和关系运算符的使用。 【解题 思路】 主要考查考生对成员函数、关系运算符和逻辑运算符的掌握,成员函数isLessThan是将该对象本身与参数 date进行比较,返回是否小于的布尔值。为了比较 isLessThan的调用对象与 date的大小,需要依次比较 year、 month、 day三个整数,由于 date的 year、 month、 day都是私有成员,所以不能在 islessThan中直接使用 date的私有成员,而是应该使用 date的共有成员函数来返回这些值,再将本身的成员与返回值比较,同时,为了比较时间大小,应该首先将 year进行比较,接着是 month,最后是 day,并将比较结果暂存布尔变量 less中,最后返回。

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