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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级 C+机试(操作题)模拟试卷 285及答案与解析 一、基本操作题 1 请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 proj1,此工程包含一个源程序文件 proj1 cpp。其中位于每个注释 “ ERROR *found*”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: You are right 注意:只修改注释 “ ERROR *found*”的下一行语句,不要改动程序中的其他内容。 proj1 cpp #include iostream using namespace std; class MyClass public: MyClass(int

2、 x): number(x) ERROR *found* MyClass(int x) ERROR *found* void Judge(MyClass &obj); private: int number; ; void Judge(MyClass &obj) if(obj number 10) cout “You are right “ end1; else cout “Sorry“ end1; int main() ERROR *found* MyClass obj ect; Judge(object); return 0; 二、简单应用题 2 请使用 VC6或使用【答题】菜单打开考生文

3、件夹 proj2下的工程 proj2,此工程中包含一个头文件 shape h,其中包含了类 Shape、 Point和 Triangle的声明;包含程序文件 shape cpp,其中包含了类 Triangle的成员函数和其他函数的定义;还包含程序文件 proj2 cpp,其中包含测试类 Shape、 Point和 Triangle的程序语句。请在程序中的横线处填写适当的代码并删除横线,以实现上述功能。此程序的正确输出结果应为: 此图形是一个抽象图形,周长 0,面积 0 此图形是一个三角形,周长 6 82843,面积 2 注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移

4、动 “ *found*”。 shape h class Shape public: virtual double perimeter() const return 0; 返回形状的周长 virtual double area()constreturn 0; 返回形状的面积 virtual const char * name() const return“抽象图形 “)返回形状的名称 ; class Point表示平面坐标系中 的点的类 double x; double y; public: *found* Point(double x0, double y0): _用 x0、 y0初始化数据成

5、员 x、 y double getX () constreturn x, double gety () constreturn y; ; class Triangle: public Shape *found*_; 定义 3个私有数据成员 public: Triangle(Point p1, Point p2, Point p3): pointl(p1), point2 (p2), point3(p3) double perimeter()cons t; double area()const; const char *name()constreturn“三角形 “; ; shape cpp #

6、include“shape h“ #include cmath double length(Point p1, Point p2) return sqrt(p1 getX() p2 getX() * (p1 getX() p2 getX() (p1 getY()p2 getY() * (p1 getY() p2 getY(); double Triangle perimeter ()const 一个 return语句,它利用 length函数计算并返回三角形的周长 *found* _; double Triangle area()const double s perimeter() 2 0;

7、return sqrt(s * (s length (point1, point2)* (s length(point2, point3)* (s length(point3, point1); proj2 cpp #include“shape h“ #include iostream using namespace std; *found* _ show函数的函数头 (函数体以前的部分 ) cout “此图形是一个 “ shape name() “,周长 “ shape perimeter() “,面积 “ shape area() end1; int main() Shape s; Tri

8、angle tri(Point(0, 2), Point(2, 0), Point(0, 0); show(s); show(tri); return 0; 三、综合应用题 3 请使用【答题】菜单命令或直接用 VC6打开考生文件夹下的工程 proj3,其中声明的是一个人员信息类,补充编制程序,使其功能完整。在 main函数中给出了一组测试数据,此种情况下程序的输出应该是: Zhang 20 Tsinghua。 注意:只能在函数 address_change的 “ *333*”和“*666*”之间填入若干语句,不要改动程序中的其他内容。 程序最后将结果输出到文件 out dat中。输出函数 wr

9、iteToFile已经编译为 obj文件,并且在本程序中调用。 proj3 h #include iostream #include string using namespace std; class Person char name20; int age; char * address; public: Person() age 0; address 0; void name_change(char * _name); 名字修改函数 void age_change(int_age); 年龄修改函数 void address_change(char*_ add); 地址修改函数 void in

10、fo display(); 人员信息显示 Person(); 析构函数 ; void wrriteToFile(const char * path); proj3 cpp #include iostream #include string #include“proj3 h“ using namespace std; void Person name change(char * _name 1 strcpy(name, name); void PeEson age_change(int_age) age _age; void PeEson address_change (char *_add)

11、if(address! NULL)deleteaddress; *333* *666* void Person info_display() cout name t age t; if(address! NULL) cout address end1; tout end1; Person PeEson() if(address! NULL) deleteaddress; void main() PeEson p1; p1 name_change(“Zhang“); p1 age_change(20); p1 address_change(“Tsinghua University“); p1 a

12、ddress change(“Tsinghua“); p1 info display(); writeToFile(“); 国家二级 C+机试(操作题)模拟试卷 285答案与解析 一、基本操作题 1 【正确答案】 (1) MyClass() (2)friend void Judge(MyClass &obj); (3)MyClass object(10); 【试题解析】 (1)主要考查考生对析构函数 的掌握,析构函数是没有形参的,因此把形参去掉即可,因为该类没有动态分配空间,所以不需要使用 delete语句释放空间。 (2)主要考查考生对友元函数的掌握,在函数定义中有语句 void Judge

13、(MyClass&obj),在 main函数中有语句 Judge(object);,即 Judge函数是可以被类外函数调用的,并且定义时没有加上类名和作用域,因此可以知道 Judge函数是友元函数,需要在类型前加上 friend。 (3)主要考查考生对构造函数调用的掌握,题目要求输出结果为: You are right,在 Judge函数体内有语句: if(obj number 10) cout “You are right “ end1; 要想使屏幕输出语句: You are right,就必须使 obj number的值为 10,因此要使用构造函数语句 MyClass object(10)

14、;。 二、简单应用题 2 【正确答案】 (1)x(x0), Y(y0) (2)Point point1, point2, point3 (3)return length(point1, point2) length(point1, point3) length(point2, point3) (4)void show(Shape&shape) 【试题解析】 (1)主要考查考生对构造函数的掌握,题目要求用 x0、 y0初始化数据成员 x、 y,因此在这里使用成员列表初始化,即 Point(double x0, double y0):x(x0), y(yo)。 (2)主要考查考生对构造函数的掌握,

15、题目要求定义 3个私有数据成员。由构造函数可知 3个私有数据成员的类型都是 Point,名称分别为 point1、 point2和point3,因此空格处填写: Point point1, point2, point3。 (3)主要考查:考生对成员函数的掌握,题目要求使用 return语句,利用 length函数计算并返回三角形的周长。 length函数返回的是两点间的距离,因此 return语句只要返回三角形三条边的距离和,即为三角形的周长。 (4)主要考查考生对成员函数的掌握,这里要定义 show函数的函数头 (函数体以前的部分 )。由主函数 main中 show函数的使用情况 show(

16、s)和 show(tri)可知 , s是Shape类, tri是 Triangle类,因为 Triangle是 Shape类的派生类,所以可知 show函数的参数是 Shape类型,无返回值,得出语句 void show (Shape&shape)。 三、综合应用题 3 【正确答案】 address new charstrlen(_add) 1; 给类成员变量动态分配空间 strcpy(address, _add);把字符 _add复制给 address 【试题解析】 函数 address_change(char*_add)的功 能是地址修改,也就是说通过该函数把类的地址修改为 add字符串。类的私有成员 address是字符指针,因此首先要给 address分配空间,通过 new语句来实现: addressnewcharstrlen(_add) 1;。接下来就是要复制字符串,使用系统函数 strcpy,其用法为 strcpy(参数 1,参数 2),将参数 2的内容复制到参数 1中。

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