欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:497208       资源大小:39KB        全文页数:9页
    • 资源格式: DOC        下载积分:2000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要2000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    [计算机类试卷]国家二级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中,最后返回。


    注意事项

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开