【计算机类职业资格】二级C++机试-134及答案解析.doc
《【计算机类职业资格】二级C++机试-134及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++机试-134及答案解析.doc(9页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+机试-134 及答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.请使用“答题”菜单或从 VC6 中打开考生文件夹 proj1 下的工程 proj1。此工程包含了类 Pets(“宠物”)和主函数 main 的定义。程序中位于每个/ERRO*found*下的语句行有错,请加以改正。改正后程序的输出结果是:Name: sonny Type: dogName: John Type: dogName: Danny Type: catName: John Type: dog注意:只能修改每个/ERROR*found*下的那一行,不要改动程序
2、中的其他内容。/源程序#include iostreamusing namespace std;enum Pets_typedog,cat,bird,fish;class Petsprivate:char*name:Pets_type type;public:Pets(const char*name=“sonny“,Pets_type type=dog);Pets operator=(const Pets s);Pets();void show() const;Pets:Pets(const char*name,Pets_type type) /构造函数this-name=new charst
3、rlen(name)+1;strcpy(this-name,name);/ERROR*found*type=type;Pets:Pets() /析构函数,释放 name 所指向的字符串/ERROR*found*name=/0:PetsPets:operator=(const Pets s)if(s=this) return*this; /确保不要向自身赋值deletename;name=new charstrlen(s.name)+1;/ERROR*found*strcpy(s.name,this-name);type=S.type;return*this:void Pets:show() c
4、onstcouL“Name:“name“Type:“;switch(type)case dog: cout“dog“;break;case cat: cout“cat“;break;case bird: cout“bird“;break;case fish: cout“fish“;break;coutendl;int main()Pets mypet1,mypet2(“John“,dog);Pets youpet(“Danny“,cat);mypet1show();mypet2show();youpet.show();youpet=mypet2;youpet.show();return 0:(
5、分数:30.00)_二、2简单应用题(总题数:1,分数:40.00)2.使用“答题”菜单或从 VC6 中打开考生文件夹 proj2 下的工程 proj2。此工程包含一个程序文件main.cpp,其中有类 Quadritic、类 Root 以及主函数 main 的定义。一个 Quadritic 对象表示一个ax2+bx+c 的一元二次多项式。一个 Root 对象用于表示方程 ax2+bx+c=0 的一组根,它的数据成员num_of_roots 有 3 种可能的值 0、1 和 2,分别表示根的 3 种情况:无实根、有两个相同的实根和有两个不同的实根。请在程序中的画线处填写适当的代码,然后删除横线,
6、以实现上述类定义。此程序的正确输出结果应为(注:输出中的 X2 表示 x2):3X2+4X+5=0.0 无实根4.5X2+6X+2=0.0 有两个相同的实根: -0.666667 和-0.6666671.5X2+2X-3=0.0 有两个不同的实根: 0.896805 和-2.23014/源程序#includeiostream#includeiomanip#includecmathusing namespace std;class Root /一元二次方程的根public:const double x1; /第一个根const double x2; /第二个根const int num_of_r
7、oots; /不同根的数量:0、1 或 2Root():x1(0.0),x2(0.0),num_of_roots(0) /创建一个“无实根”的 Root 对象Root(double root)/*found*:_ /创建一个“有两个相同的实根”的 Root 对象Root(double root1,double root2):x1(root1),x2(root2),num_of_roots(2) /创建一个有两个不同的实根的 Root 对象void show() const /显示根的信息cout“/t/t“:switch(num_of_roots)case 0:/*found*case 1:c
8、out“有两个相同的实根:“x1“和“x2;break;default:cout“有两个不同的实根:“x1“和“x2;break;class Quadratic /二次多项式public:const double a,b,c; /分别表示二次项、一次项和常数项 3 个系数Quadratic(double a,double b,double c) /构造函数/*found*:_Quadratic(Quadraticx) /复制构造函数:a(x.a),b(x.b),c(x.c)Quadratic add(Quadratic x)const /求两个多项式的和return Quadratic(a+x
9、.a,b+x.b,c+x.c);Quadratic sub(Quadratic x)const /求两个多项式的差/*found*double value(double x)const /求二次多项式的值return a *x*x+b*x+c:Root root() const /求一元二次方程的根double delta=b*b-4*a*e; /计算判别式if(delta0.0)return Root();if(delta=0.0)return Root(-b/(2 *a);double sq=sqrt(delta);return Root(-b+sq)/(2*a),(-b-sq)/(2*a
10、);void show() const /显示多项式coutendla“X2“showposb“X“cnoshowpos;void showFunction() /显示一元二次方程show();cout“=0.0“:;int main()Quadratic q1(3.0,4.0, 5.0), q2 (4.5,6.O,2.O),q3(q2.sub(ql);q1.showFunction();q1.root()show();q2.showFunction();q2.root()show();q3.showFunction();q3.root()show();coutendl;return 0:(分
11、数:40.00)_三、3综合应用题(总题数:1,分数:30.00)3.请使用“答题”菜单或使用 VC6 打开考生文件夹 proj3 下的工程 proj3,其中声明了 VaIArray 类,该类在内部维护一个动态分配的整型数组。ValArray 类的复制构造函数应实现对象的深层复制。请编写ValArray 类的复制构造函数。在 main 函数中给出了一组测试数据,此情况下程序的输出应该是:ValArray v1=1,2,3,4,5ValArray v2=1,2,3,4,5要求:补充编制的内容写在/*333*与/*666*两行之间,不得修改程序的其他部分。注意:程序最后已经将结果输出到文件 out
12、.dat 中。输出函数 writeToFile 已经编译为 obj 文件,并且在本程序中调用。/源程序#include“ValArray.h“VaIArray: VaIArray(const ValArray other)/*333*/*666*int main()const int a=1,2,3,4,5 ;ValArray v1(a,5);cout“ValArray v1=“;v1.print(cout);coutendl;ValArray v2(v1);cout“ValArray v2=“;v2.print(cout);coutendl;/ writeToFile(“K: /b10 /6
13、1000101 /“);return 0;(分数:30.00)_二级 C+机试-134 答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.请使用“答题”菜单或从 VC6 中打开考生文件夹 proj1 下的工程 proj1。此工程包含了类 Pets(“宠物”)和主函数 main 的定义。程序中位于每个/ERRO*found*下的语句行有错,请加以改正。改正后程序的输出结果是:Name: sonny Type: dogName: John Type: dogName: Danny Type: catName: John Type: dog注意:
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 机试 134 答案 解析 DOC
