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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

【计算机类职业资格】国家二级C++机试(操作题)模拟试卷338及答案解析.doc

1、国家二级 C+机试(操作题)模拟试卷 338 及答案解析(总分:8.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.请使用 VC6 或使用【答题】菜单打开考生文件夹 pmjl 下的工程 pmjl。其中有线段类 Line 的定义。程序中位于每个“ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是: End point 1=(1,8),End point 2=(5,2),length=72111。 注意:只修改每个“ERROR*found*”下的那一行,不要改动程序中的其他内容。#includeiostream#includecmat

2、husing namespace std;class Line;double length(Line); class Line 线段类 double x1,y1;线段端点 1 double x2,y2;线段端点2public:ERROR*found* Line(double x1,double yl,doublex2,double y2)const this-x1=x1; this-y1=y1; this-x2=x2; this-y2=y2; double getX1()constreturn x1; double getYl()constreturn y1; double getX2()co

3、nstreturn x2; double getY2()constreturn y2; void show()const tout”End point 1=(”x1”,”y1; cout”),End point 2=(”x2”,”y2;ERROR* found* cout”),length=”length(this) ”o”endl; ;double length(Line 1)ERROR*found* return sqrt(1x11x2)*(1x11x2)+(1y11y2)*(1y1 一 1y2);int main() Line r1(10,80,50,20); r1show();retu

4、rn 0;(分数:2.00)_二、简单应用题(总题数:2,分数:4.00)2.请使用 VC6 或使用【答题】菜单打开考生文件夹 proj2 下的工程 proj2,此工程中包含一个头文件shapeh,其中包含了类 Shape、Point 和 Triangle 的声明;包含程序文件 shapecpp,其中包含了类Tfiangle 的成员函数和其他函数的定义;还包含程序文件 proj2cpp,其中包含测试类 Shape、Point和 Triangle 的程序语句。请在程序中的横线处填写适当的代码并删除横线,以实现上述功能。此程序的正确输出结果应为: 此图形是一个抽象图形,周长=0,面积=0 此图形是

5、一个三角形,周长=682843,面积=2 注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“*found*”。/shapeh class Shapepublic: virtual double perimeter()constreturn 0;) 返回形状的周长 virtual double area()constre-turn 0; 返回形状的面积 virtual const char* name()constreturn“抽象图形“;) 返回形状的名称;class Point表示平面坐标系中的点的类 double x; double Y;public:*foun

6、d* Point (double x0,double y0):_用x0、y0 初始化数据成员 x、y double getX()constreturn x;) double getY()const ( return 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*

7、name()constreturn”三角形”;);shapecpp#include”shapeh”#includecmathdouble length(Point pl,Point p2) return sqrt(p1getX()一 p2getX()*(p1getX()一 p2getX()+(p1getY()一 p2getY()*(p1getY()一p2getY();double Triangle:perimeter()const一个 return 语句,它利用 length 函数计算并返回三角形的周长*found*_;double Triangle:area()const double s=

8、perimeter()20; return sqrt(s*(slength(pointl,point2)* (slength(point2,point3)* (Slength(point3,pointl);proj2cpp#include”shapeh”#includeiostreamusing namespace std;*found*show 函数的函数头(函数体以前的部分) cout“此图形是一个“shapename()”,周长=”shapeperimeter()”,面积=”shapearea()endl;int main() Shape s; Triangle tri(Point(0,

9、2),Point(2,0),Point(0,0); show(s); show(tri); return 0;(分数:2.00)_3.请使用 VC6 或使用【答题】菜单打开考生文件夹 proj2 下的工程 proj2,此工程包含有一个源程序文件proj2cpp,其中定义了 Stack 类和 ArrayStack 类。 Stack 是一个用于表示数据结构“栈”的类,栈中的元素是字符型数据。Stack 为抽象类,它只定义了栈的用户接口,如下所示: 公有成员函数 功能 push 入栈:在栈顶位置添加一个元素 pop 退栈:取出并返回栈顶元素 ArrayStack 是 Stack 的派生类,它实现了

10、Stack 定义的接口。ArrayStack 内部使用动态分配的字符数组作为栈元素的存储空间。数据成员 maxSize 表示的是栈的最大容量,top 用于记录栈顶的位置。成员函数 push 和 poP 分别实现具体的入栈和退栈操作。 请在程序中的横线处填写适当的代码,然后删除横线,以实现上述功能。此程序的正确输出结果应为: a,b,c c,b,a 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“*found*”。proj 2cpp#includeiostreamusing namespace std;class Stackpublic: virtual void p

11、ush(char c)=0; virtual char pop()=0;;class ArrayStack:public Stack char*P; int maxSize; int top;public: ArrayStack(int s) top=0; maxSize=s;/*found*p=_; 一 ArrayStack() /*found*_;void push(char c) if(top=maxSize) cerr”Overflow!n”; return; *found*_; top+; char pop() if(top=0) cerr”Underflow! n”; return

12、0; top-;/* found*_;;void f(Stack void writeTOFile(const char*); maincpp #include”ValArrayh” ValArray:ValArray(const ValArray v2print(cout); coutendl; writeToFile(”); return 0;(分数:2.00)_国家二级 C+机试(操作题)模拟试卷 338 答案解析(总分:8.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.请使用 VC6 或使用【答题】菜单打开考生文件夹 pmjl 下的工程 pmjl。其中有线

13、段类 Line 的定义。程序中位于每个“ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是: End point 1=(1,8),End point 2=(5,2),length=72111。 注意:只修改每个“ERROR*found*”下的那一行,不要改动程序中的其他内容。#includeiostream#includecmathusing namespace std;class Line;double length(Line); class Line 线段类 double x1,y1;线段端点 1 double x2,y2;线段端点2public:ERR

14、OR*found* Line(double x1,double yl,doublex2,double y2)const this-x1=x1; this-y1=y1; this-x2=x2; this-y2=y2; double getX1()constreturn x1; double getYl()constreturn y1; double getX2()constreturn x2; double getY2()constreturn y2; void show()const tout”End point 1=(”x1”,”y1; cout”),End point 2=(”x2”,”y

15、2;ERROR* found* cout”),length=”length(this) ”o”endl; ;double length(Line 1)ERROR*found* return sqrt(1x11x2)*(1x11x2)+(1y11y2)*(1y1 一 1y2);int main() Line r1(10,80,50,20); r1show();return 0;(分数:2.00)_正确答案:(正确答案:(1)Line(double x1,double y1,double x2,double y2) (2)coutlength(*this)解析:解析:(1)主要考查考生对构造函数的

16、掌握,构造函数要给私有成员赋初始值,因此不能使用eonst 来限制。 (2)主要考查考生对 this 指针的掌握,由函数 length 的声明 double length(Line);可知,length 函数的形参是 Line 类,在 void show()const 函数里,this 指针指向的是当前 Line 类,因此可以用*this 表示当前 Line 类。 (3)主要考查考生对成员函数的掌握,length 函数是类外函数,不能直接调用类的私有成员,因此要通过成员函数取得对应的值。二、简单应用题(总题数:2,分数:4.00)2.请使用 VC6 或使用【答题】菜单打开考生文件夹 proj2

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

18、/shapeh class Shapepublic: virtual double perimeter()constreturn 0;) 返回形状的周长 virtual double area()constre-turn 0; 返回形状的面积 virtual const char* name()constreturn“抽象图形“;) 返回形状的名称;class Point表示平面坐标系中的点的类 double x; double Y;public:*found* Point (double x0,double y0):_用x0、y0 初始化数据成员 x、y double getX()const

19、return x;) double getY()const ( return 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”三角形”;);shapecpp#include”shapeh”#includecmathdouble

20、length(Point pl,Point p2) return sqrt(p1getX()一 p2getX()*(p1getX()一 p2getX()+(p1getY()一 p2getY()*(p1getY()一p2getY();double Triangle:perimeter()const一个 return 语句,它利用 length 函数计算并返回三角形的周长*found*_;double Triangle:area()const double s=perimeter()20; return sqrt(s*(slength(pointl,point2)* (slength(point2

21、,point3)* (Slength(point3,pointl);proj2cpp#include”shapeh”#includeiostreamusing namespace std;*found*show 函数的函数头(函数体以前的部分) cout“此图形是一个“shapename()”,周长=”shapeperimeter()”,面积=”shapearea()endl;int main() Shape s; Triangle tri(Point(0,2),Point(2,0),Point(0,0); show(s); show(tri); return 0;(分数:2.00)_正确答案

22、:(正确答案:(1)X(x0),Y(y0) (2)Point point1,point2,point3 (3)retum length(point1,point2)+length(point1, point3)+length(point2,point3) (4)void show(Shapeclass Stackpublic: virtual void push(char c)=0; virtual char pop()=0;;class ArrayStack:public Stack char*P; int maxSize; int top;public: ArrayStack(int s)

23、 top=0; maxSize=s;/*found*p=_; 一 ArrayStack() /*found*_;void push(char c) if(top=maxSize) cerr”Overflow!n”; return; *found*_; top+; char pop() if(top=0) cerr”Underflow! n”; return0; top-;/* found*_;;void f(Stack void writeTOFile(const char*); maincpp #include”ValArrayh” ValArray:ValArray(const ValAr

24、ray v2print(cout); coutendl; writeToFile(”); return 0;(分数:2.00)_正确答案:(正确答案:size =othersize; V=new int slze; for(int i=0;i 解析:解析:主要考查考生对复制构造函数的掌握,ValArray 类的复制构造函数应实现对象的深层复制。由 ValArray 类的构造函数: ValArray(const int* p,int n) :size (n) v=new intsize; 给 v 分配大小为 size 的空间 for (int i =0; i size; i+) /遍历 p vi=pi; 把 pi赋值给 vi 可知类中 v 是动态数组,size 表示数组长度,因此要先给 v 分配空间为 size,再逐个元素复制以达到对象的深层复制。

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