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

上传人:ideacase155 文档编号:1331784 上传时间:2019-10-17 格式:DOC 页数:3 大小:35.50KB
下载 相关 举报
【计算机类职业资格】国家二级C++机试(操作题)模拟试卷286及答案解析.doc_第1页
第1页 / 共3页
【计算机类职业资格】国家二级C++机试(操作题)模拟试卷286及答案解析.doc_第2页
第2页 / 共3页
【计算机类职业资格】国家二级C++机试(操作题)模拟试卷286及答案解析.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、国家二级 C+机试(操作题)模拟试卷 286及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modi1cpp,但该程序运行时有错,请改正 main()函数中的错误,使程序的输出结果如下: Constructor Default constructor Area is 12 Area is 0 Area is 12 注意:错误的语句在*error*的下面,修改该语句即可。#includeiostreamhclass CRectangleprivate: double length , width;publ

2、ic: CRectangle() cout“Defaultconstructorn“; CRectangle(double 1,double w) length=1;width=W; cout“Constructorn“; void Set(double 1,double W) this-length=1; this-width=w; ) Void GetArea() cout“Area is“length*widthendl; ;Void main() CRectangle Rect1(30,40); *error* CRectangle Rect2(1);*error* CRectangl

3、e Rect3; Rect1GetArea(); *error* Rect2Set(0); Rect2GetArea(); Rect3GetArea();(分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。阅读下列函数说明和代码,完成空出部分程序。函数 factor(int*des,intlength,int n)实现的功能是:将 n所有因数存放到 des中,通过 length引用返回因数的个数,比如 fator(a,length,20)执行后,则 a=1,2,4,5,10,20,length=6。 注意:只能补充函数

4、 factor 0,请勿改动其他部分的内容。 #include #define MAXNLEN 100 void factor(int*des,intlength, int n) void main() int aMAXNLEN,length; int n=20; factor(a,length,n); for(int i=0;iai“ “; cout_三、综合应用题(总题数:1,分数:2.00)3.使用 VC6打开考生文件夹下的源程序文件 modi3cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: 每卖出一个瓜,则计算瓜的重量,还要计算所有卖出瓜的总重量以

5、及总个数,同时允许退货,请按照以下的操作,把类补充完整 (1)定义类 Cmelon的私有静态数据成员float型变量 totalweight和 int型变量 totalNo,请在注释*1*后添加适当的语句。 (2)完成类 Cmelon的带一个 float型变量 w的构造函数,并把这个 w加到 totalweight中,并且 totalNo自加。请在注释*2*后添加适当的语句。 (3)在析构函数中,在 totalweight中减去weight,然后 totalNo自减,请在注释*3*后添加适当的语句。 (4)完成静态成员变量的初始化为 0,请在注释*4*后添加适当的语句。 注意:增加代码,或者修

6、改代码的位置已经用符号表示出来。请不要修改其他的程序代码。#includeiostreamhClass Cmelonprivate: float weight; *1* static int totalNo;public: Cmelon(fleat w) *2* totalweight+=w; totalNo+; Cmelon() *3* totalweight-=weight; void display() cout“Sell a melonwith“weight”kg”endl; cout “Total Sellnumber:“totalNoendl; cout “Total sellwe

7、ight:“totalweight“kg“endlendl; ;*4*float Cmelon:totalweight=00;int main() Cmelon melon1(12); melon1display(); Cmelon melon2(23); melon2display(); return 0;(分数:2.00)_国家二级 C+机试(操作题)模拟试卷 286答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.使用 VC6打开考生文件夹下的源程序文件 modi1cpp,但该程序运行时有错,请改正 main()函数中的错误,使程序的输出结果

8、如下: Constructor Default constructor Area is 12 Area is 0 Area is 12 注意:错误的语句在*error*的下面,修改该语句即可。#includeiostreamhclass CRectangleprivate: double length , width;public: CRectangle() cout“Defaultconstructorn“; CRectangle(double 1,double w) length=1;width=W; cout“Constructorn“; void Set(double 1,double

9、 W) this-length=1; this-width=w; ) Void GetArea() cout“Area is“length*widthendl; ;Void main() CRectangle Rect1(30,40); *error* CRectangle Rect2(1);*error* CRectangle Rect3; Rect1GetArea(); *error* Rect2Set(0); Rect2GetArea(); Rect3GetArea();(分数:2.00)_正确答案:(正确答案:(1)CRectangle Rect2; (2)CRectangle Rec

10、t3(Rectl); (3)Rect2Set(0,0);)解析:解析:(1)构造函数 CRectangle0不带有参数,CRectangle(double 1,double w)带有 2个参数,在创建对象时会自动调用构造函数,但是参数必须匹配,第 1个标识下定义 Rect2对象时,有一个参数,而类 CRectangle()中并没有重载一个参数的构造函数,编译后出错,因此第 1标识下应改为“CRectangle Rect2;”。 (2)Rect3GetArea0 输出的结果和 Rect1GetArea()输出结果一致,因此对象 Rect3和对象 Rect1两者具有相同的 length和 widt

11、h值,除定义 Rect3对象之外没有改变 Rect31的length和 width值,因此 Rect3成员变量的初始化是通过拷贝构造函数类实现的,即用 Rectl对象去初始化 Rect3,因此第 2个标识下应改为“CRectangle Rect3(Rectl);”。 (3)Rect2GetArea()的输出结果为 0,说明 Rect2的成员变量 length和 width值至少一个为 0,而 Set()函数必须有两个参数,这里Rect2Set(0)参数不匹配,应改为“Rect2Set(0,0);”或者“Rect2Set(0,5)”,两个参数当中至少一个为 0即可。二、简单应用题(总题数:1,分

12、数:2.00)2.使用 VC6打开考生文件夹下的源程序文件 modi2cpp。阅读下列函数说明和代码,完成空出部分程序。函数 factor(int*des,intlength,int n)实现的功能是:将 n所有因数存放到 des中,通过 length引用返回因数的个数,比如 fator(a,length,20)执行后,则 a=1,2,4,5,10,20,length=6。 注意:只能补充函数 factor 0,请勿改动其他部分的内容。 #include #define MAXNLEN 100 void factor(int*des,intlength, int n) void main()

13、int aMAXNLEN,length; int n=20; factor(a,length,n); for(int i=0;iai“ “; cout_正确答案:(正确答案:length=0; for (int i=1;i=n;i+) if(ni=0)判断是否 n的因数 deslength=i; length+; )解析:解析:(1)找到 n的每一个因数可采用循环方法,循环变量从 1开始到 n,逐个取 n和循环变量的余数。 (2)如果余数为 0说明是 n的因数,添加到 des中,参数 length是采用的引用传递方式,形参的改变会影响实参,因此可直接将 length的值加 1表示 des中元素

14、个数加 1。三、综合应用题(总题数:1,分数:2.00)3.使用 VC6打开考生文件夹下的源程序文件 modi3cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: 每卖出一个瓜,则计算瓜的重量,还要计算所有卖出瓜的总重量以及总个数,同时允许退货,请按照以下的操作,把类补充完整 (1)定义类 Cmelon的私有静态数据成员float型变量 totalweight和 int型变量 totalNo,请在注释*1*后添加适当的语句。 (2)完成类 Cmelon的带一个 float型变量 w的构造函数,并把这个 w加到 totalweight中,并且 totalNo自加

15、。请在注释*2*后添加适当的语句。 (3)在析构函数中,在 totalweight中减去weight,然后 totalNo自减,请在注释*3*后添加适当的语句。 (4)完成静态成员变量的初始化为 0,请在注释*4*后添加适当的语句。 注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。#includeiostreamhClass Cmelonprivate: float weight; *1* static int totalNo;public: Cmelon(fleat w) *2* totalweight+=w; totalNo+; Cmelon() *3* t

16、otalweight-=weight; void display() cout“Sell a melonwith“weight”kg”endl; cout “Total Sellnumber:“totalNoendl; cout “Total sellweight:“totalweight“kg“endlendl; ;*4*float Cmelon:totalweight=00;int main() Cmelon melon1(12); melon1display(); Cmelon melon2(23); melon2display(); return 0;(分数:2.00)_正确答案:(正

17、确答案:(1)添加语句:static float totalweiqht; (2)添加语句:weiqht=w; (3)添加语句:totalNo-; (4)添加语句: int cmelon:totalNo=0;)解析:解析:(1)静态数据成员声明时需使用关键字 static,因此第 1个标识下应添加“static float totalweight;”。 (2)构造函数用来对类成员进行初始化,在 Cmelon类的构造函数 Cmelon(noat w)中,完成 weight的初始化,并把这个 w加到 totalweight中,并且 totalNo自加,因此第 2个标识下应添加“weight=w:”。 (3)调用析构函数相当于退瓜,这时 totalweight中减去 weight,然后 totalNo自减,因此第 3个标识下应添加“totalNo-:”。 (4)静态数据成员的初始化格式为:数据类型类名:静态数据成员=初始值,因此第 4个标识下应添加“int Cmelon:totalNo=0;”。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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