【计算机类职业资格】二级C++机试-173及答案解析.doc

上传人:diecharacter305 文档编号:1324353 上传时间:2019-10-17 格式:DOC 页数:7 大小:33KB
下载 相关 举报
【计算机类职业资格】二级C++机试-173及答案解析.doc_第1页
第1页 / 共7页
【计算机类职业资格】二级C++机试-173及答案解析.doc_第2页
第2页 / 共7页
【计算机类职业资格】二级C++机试-173及答案解析.doc_第3页
第3页 / 共7页
【计算机类职业资格】二级C++机试-173及答案解析.doc_第4页
第4页 / 共7页
【计算机类职业资格】二级C++机试-173及答案解析.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、二级 C+机试-173 及答案解析(总分:100.00,做题时间:90 分钟)一、1改错题(总题数:1,分数:33.00)1.使用 VC6 打开考生文件夹下的工程 RevProj11。此工程包含一个源程序文件 RevMain11.cpp,但在源程序文件中有错误。请改正程序中的错误,使它能得到正确结果。注意,不得删行或增行,也不得更改程序的结构。源程序文件 RevMainll.cpp 中的程序清单如下:/RevMainll.cpp#includeiostreamusing namespace std;class pointprivate:const int color;int x;int y;p

2、ublic:point(int x,int y,int c)this-x=x;this-y=y;color=c;void show()cout“x=“x“,y=“y“,color=“colorend1;int main()const point p(10,10,100);p.show();return 0;(分数:33.00)_二、2简单应用题(总题数:1,分数:33.00)2.请编写一个函数 int fun(int n),其中 n 为自然数。函数 fun()的功能是求出自然数 n(包括 n)以内所有素数的和,并返回其值。注意;部分源程序已存在文件 PROC11.cpp 中。请勿修改主函数和其

3、他函数中的任何内容,仅在函数 fun()的花括号中填写若干语句。文件 PROC11.cpp 的内容如下:/PROC11.cpp#includeiostreamusing namespace std;int fun(int n);int main()int number;cout“Enter the number which you want to caculate: /n“;cinnumber;cout“The result is:“fun(number)end1;return 0;int fun(int n)/* * * * * * * * *(分数:33.00)_三、3综合应用题(总题数:

4、1,分数:34.00)3.使用 VC6 打开考生文件夹下的工程 MyProj11。此工程包含一个源程序文件 MyMain11.cpp。程序中定义了 3 个类 A、B 和 C,但类 C 的定义并不完整。请按要求完成下列操作,将类的定义补充完成:类 C 是基类 A 和 B 公有派生来的。请在注释“/* *1* *”之后添加适当的语句。完成构造函数 C(int k)定义,采用初始化列表的方式使基类 A 私有成员 a 初始化为 k-2,基类 B 的私有成员 b 初始化为 k+2,类 C 的私有成员 c 初始化为 k。请在注释“/* *2* *”之后添加适当的语句。完成类 Derived 的成员函数 d

5、isp()的类体外的定义。函数 disp()中要分别显式调用基类 A、B 的 disp()函数,然后要输出私有成员 c 的值。请在注释“/* *3* *”之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件 MyMain11.cpp 清单如下;/MyMain11.cpp#include iostreamusing namespace std;class Aprivate:int a;public:A(int i) a=i;void disp()couta“ , “;class Bprivate:int b;public:B(int j) b=j;disp

6、( )coutb“, “;/* * *1* * *private:int c;public:/* * *2* * *void disp();void c:disp()/* * *3* * *int main ( )C obj(10);obj.disp();return 0;(分数:34.00)_二级 C+机试-173 答案解析(总分:100.00,做题时间:90 分钟)一、1改错题(总题数:1,分数:33.00)1.使用 VC6 打开考生文件夹下的工程 RevProj11。此工程包含一个源程序文件 RevMain11.cpp,但在源程序文件中有错误。请改正程序中的错误,使它能得到正确结果。注意

7、,不得删行或增行,也不得更改程序的结构。源程序文件 RevMainll.cpp 中的程序清单如下:/RevMainll.cpp#includeiostreamusing namespace std;class pointprivate:const int color;int x;int y;public:point(int x,int y,int c)this-x=x;this-y=y;color=c;void show()cout“x=“x“,y=“y“,color=“colorend1;int main()const point p(10,10,100);p.show();return 0

8、;(分数:33.00)_正确答案:(正确的程序代码如下:#includeiostreamusing namespace std;class pointprivate:const int color;int x;int y;public:point(int x,int y,int c):color(c)this-x=x;this-y=y;void show()cout“x=“x“,y=“y“,color=“colorend1;int main()point p(10,10,100);p.show();return 0;)解析:解析 本题程序中有 2 处错误:C+中,如果在一个类中说明了常数据成员

9、,那么构造函数就只能通过初始化列表对数据成员进行初始化。私有成员 color 被定义成常数据成员,因此构造函数 point()对 color 的初始化形式是错误的。C+中,如果将一个对象说明为常对象,则通过该常对象只能调用它的常成员函数,不能调用其他成员函数。主函数中对象 p 被定义成类 point 的常对象,因此通过该对象不能调用非常成员函数 show()。二、2简单应用题(总题数:1,分数:33.00)2.请编写一个函数 int fun(int n),其中 n 为自然数。函数 fun()的功能是求出自然数 n(包括 n)以内所有素数的和,并返回其值。注意;部分源程序已存在文件 PROC11

10、.cpp 中。请勿修改主函数和其他函数中的任何内容,仅在函数 fun()的花括号中填写若干语句。文件 PROC11.cpp 的内容如下:/PROC11.cpp#includeiostreamusing namespace std;int fun(int n);int main()int number;cout“Enter the number which you want to caculate: /n“;cinnumber;cout“The result is:“fun(number)end1;return 0;int fun(int n)/* * * * * * * * *(分数:33.0

11、0)_正确答案:(函数 fun()的定义如下:int fun(int n)int i,j,sum=0;for(j=2;jn;j+)for(i=2;i=i;i+)if(j%i=0)break;if(i=j)sum+=j;)解析:解析 所谓素数就是其约数只有 1 和其本身的自然数。因为除 2 以外的素数都是奇数,所以只需要对奇数进行判断即可。可以采用一个双重循环结构,通过外循环的控制变量 i 每次向内循环提供一个奇数,让内循环进行判断。根据素数的定义,内循环的控制变量 i 的初值为 2,终值为外循环的控制变量 i的平方根,步长为 1。在内循环中判断 i 能否被 j 整除。如果 i 能被 j 整除,

12、则表明 i 不是素数,就退出内循环,将控制转移到内循环的后继语句:如果循环能正常结束,表明除了 1 和其本身没有其他约数,因此,i 是一个素数。利用循环正常结束时它的循环控制变量的值总是超出(大于或小于)循环终值的特性,在内循环的外面判断内循环的控制变量 j 是否大于内循环的终值,就能确定 i 的值是否为素数。三、3综合应用题(总题数:1,分数:34.00)3.使用 VC6 打开考生文件夹下的工程 MyProj11。此工程包含一个源程序文件 MyMain11.cpp。程序中定义了 3 个类 A、B 和 C,但类 C 的定义并不完整。请按要求完成下列操作,将类的定义补充完成:类 C 是基类 A

13、和 B 公有派生来的。请在注释“/* *1* *”之后添加适当的语句。完成构造函数 C(int k)定义,采用初始化列表的方式使基类 A 私有成员 a 初始化为 k-2,基类 B 的私有成员 b 初始化为 k+2,类 C 的私有成员 c 初始化为 k。请在注释“/* *2* *”之后添加适当的语句。完成类 Derived 的成员函数 disp()的类体外的定义。函数 disp()中要分别显式调用基类 A、B 的 disp()函数,然后要输出私有成员 c 的值。请在注释“/* *3* *”之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件 MyMain11

14、.cpp 清单如下;/MyMain11.cpp#include iostreamusing namespace std;class Aprivate:int a;public:A(int i) a=i;void disp()couta“ , “;class Bprivate:int b;public:B(int j) b=j;disp ( )coutb“, “;/* * *1* * *private:int c;public:/* * *2* * *void disp();void c:disp()/* * *3* * *int main ( )C obj(10);obj.disp();return 0;(分数:34.00)_正确答案:(clas C:public B,public AC(int k):A(k-2),B(k+2),c(k)A: :disp(); B: :disp();coutcend1;)解析:解析 程序中定义了 3 个类 A、B 和 C,其中类 C 是由类 A 和类 B 共同派生而来的。因此,派生类C 的构造函数不仅负责初始化派生类对象的基类成员,还要对派生类 C 的新增成员 c 进行初始化。对于第3 处要求显式调用基类的 disp()函数,可采用作用域分辨符“:”来调用基类的成员函数。

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

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

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