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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

[计算机类试卷]国家二级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循环语句来完成复制过程。

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