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

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

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

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

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

    1、国家二级 C+机试(操作题)模拟试卷 491及答案与解析 一、基本操作题 1 请打开考生文件夹下的解决方案文件 proj1,其中:有点类 Point和线段类 Line和主函数 main的定义,程序中位于每个 “ ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出应为: p1=(8, 4)p2=(3, 5) 注意:只修改两个 “ ERROR*found*”下的那一行,不要改动程序中的其他内容。 #inclucle iostream #include cmath using namespace std; class Point double x, y; public: P

    2、oint(double x=0 0, double y=0 0) ERROR*found* x=x; y=y; double getX( )constreturn x; double getY( )constreturn y; ERROR*found* void show( )constcout ( x , y ) ; class Line Point; p1, p2; public: Line(Point; pt1, Pointpt2) ERROR*found* pt1=p1; pt2=p2; Point getP1( )constreturnp1; Point getP2( )constr

    3、eturnp2; ; int main( ) Line line(Point: (8, 4), Point(3, 5); cout “p1=“; line getP1( ) show( ); cout “p2=“; line getP2( ) show( ); tout endl; return0; 二、简单应用题 2 请打开考生文件夹下的解决方案文件 proj2,该工程中包含程序文件main cpp,其中有类 Mammal(“哺乳动物 ”)、类 Elephant(“大象 ”)、类 Mouse(“老鼠 ”)的定义和主函数 main的定义。请在横线处填写适当的代码并删除横线,以实现上述定义。此程

    4、序的正确输出结果应为: ELEPHANT MOUSE 注意:只能在横线处填写适当的代码,不要改动程序 中的其他内容,也不要删除或移动 “ *found*”。 #include iostream using namespace std; enum categoryENPTY, ELEPHANT, NOUSE); char*output =“ENPTY“, “ELEPHANT“, “NOUSE“; class Marrlitlal public: Nammal(char*str) *found* name=new_ strcpy(name, str); virtual char*WhoAmI( )

    5、=0; virtual Nammal( ) delete name; void Print( )cout WhoAmI( ) endl; private: char*name; ; class Elephant: public Nammal public: *found* Elephant(char*str): _ char*WhoAmI( )return outputELEPHANT; ; class Nouse: public Nammal public: Mouse(char*str): Mammal(str) *found* char*WhoAml( )_ ; int main( )

    6、*found* Mammal*pm=new_(“Huanhuan“); pm- Print: ( ); delete pm; pm=newNouse(“Micky“); pm- Print( ); delete pm; return0; 三、综合应用题 3 请打开考生文件夹下的解决方案文件 proj3,其中声明了 ValArray类,该类在内部维护一个动态分配的整型数组。 ValArray类的复制构造函数应实现对象的深层复制。请编写 ValArray类的复制构造函数。在 main函数中给出了一组测试数据,此种情况下程序的输出应该是: ValArray v1=1, 2, 3, 4, 5 ValA

    7、rray v2=2, 2, 2, 2, 2 要求: 补充编制的内容写在 “ *333*”与 “ *666*”之间。不要修改程序的其他部分。 注意: 相关文件包括: main cpp、 ValArray h。 程序最后调用 writeToFile函数,使用另一组不同的测试数据,将不同的运行结果输出到文件 out dat中。输出函数 writeToFile已经编译为 obj文件。 ValArray h #include iostream using namespace std; class ValArray int*v; int size; public: ValArray(const int*p

    8、, intn): size(n) v=new intsize; for(int i=0; i Size; i+) vi=pi; ValArray(const ValArray&other); ValArray( )delete v; void setElement(int i, int val) vi=val; void print(ostream&out)const out ; for(int i=0; i size-1; i+) out vi “, “; out vsize-1 ; ; void writeToFile(const char*); main cpp #include“Val

    9、Array h“ ValArray: ValArray(const ValArray&other) *333* *666* int main( ) const int a =1, 2, 3, 4, 5; ValArray v1(a, 5); ValArray v2(v1); for(int i=0; i 5; i+) v2 setElement(i, 2); cout “ValArray v1=“; v1 print(cout); cout endl; cout “ValArray v2=“; v2 print(cout); cout endl; writeToFile(“ “); retur

    10、n0; 国家二级 C+机试(操作题)模拟试卷 491答案与解析 一、基本操作题 1 【正确答案】 (1): x(x), y(y)或 this- x=x, this- y=y; (2)void show( )consteout ( x , y ); (3): p1(pt1), p2(pt2)或 p1=pt1; p2=pt2 【试题解析】 (1)主要考查考生对构造函数的掌握,因为形参名和私有成员名称一样,因此不能直接赋值,在这里使用成员列表初始化,也可以使用 this指针赋值。 (2)主要考查考生对语句基本语法的掌握,根据语句: void show( )consttout ( x , y )。可看

    11、出函数体内并没有 “; ”作为 tout语句的结束符,因此程序错误。 (3)主要考查考生对构造函数的掌握,形参是 pt1和 pt2,这里写反了,也可以他用成员列太表初始化法,可以避免这种错误。 二、简单应用题 2 【正确答案】 (1)charstrlen(str)+1; (2)Mammal(str) (3)return outputMOUSE; (4)Elephant 【试题解析】 (1)主要考查分配空间,程序要给 name分配空间,由下一条语句中strcpy(name, str)可知 程序要把字符串 str复制给 name,因此要分配的空间大小为 strlen(str)+1。 (2)主要考查

    12、考生对构造函数的掌握,因为 Elephant类是 Mammal类的派生类,所以其构造函数要使用成员列表先对 Mammal类初始化。 (3)主要考查考生对枚举类型的掌握,先看程序: enum categoryEMPTY,ELEPHANT, MOUSE。再参考 Elephant类中的 WhoAmI函数:char*WhoAmI( )return outputELEPHANT; 。可知这里要填写的返回语句为: return outputMOUSE;。 (4)主要考查考生对派生类的掌握,题目要求输出: ELEPHANT MOUSE 可知,要先调用 Elephant类的 WhoAmI函数,因此给指针 pm

    13、分配 Elephant类空间。 三、综合应用题 3 【正确答案】 size=other size;把对象数组的大小赋值给 size v=new intother size;根据对象数组的大小动态分配数组 v for(int i=0; i size; +i) vi=other vi;遍历整个对象的数组把值 other vi放到数组 v中 【试题解析】 主要考查考生对复制构造函数的掌握。由函数名: ValArray:ValArrav(const ValArray&other),知道要复制的对象是 other,对由 ValArray类的成员: int*v; int size;知道要复制的内容是动态数组 v及整型变量 size。动态数组要使用 new语句分配内存,最后利用 for循环语句来完成复制过程。


    注意事项

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




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

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

    收起
    展开