【计算机类职业资格】二级C++机试-131及答案解析.doc
《【计算机类职业资格】二级C++机试-131及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++机试-131及答案解析.doc(8页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+机试-131 及答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.请使用“答题“菜单或使用 VC6 打开考生文件夹 proj1 下的工程 proj1。此工程包含程序文件main.cpp。程序中位于每个/ERROR*found*下的语句行有错误,请加以更正。更正后程序的输出应该是:1958 年 3 月 23 日比 2001 年 11 月 5 日更早2001 年 11 月 5 日比 1958 年 3 月 23 日更晚2001 年 11 月 5 日与 2001 年 11 月 5 日是同一日期注意:只能修改每个/ERROR*found*下
2、的那一行,不要改动程序中的其他内容。/源程序#include iostreamusing namespace std;class Dateint year;int month;int day;public:/ERROR*found*Date(int yyyy, int mm, int dd): yyyy(year),mm(month),dd(day)bool isLaterThan(Date dt) const /当前日期晚于日期 dt 时返回 trueif(year!=dt.year) return yeardt.year;if(month!=dt.month) return monthdt
3、.month;return daydt.day;bool isEarlyThan(Date dt) const /当前日期早于日期 dt 时返回 trueif(year!=dt.year) return yeardt.year;if(month !=dt.month) return monthdt.month;/ERROR*found*return daydt.day;void showDate() const coutyear“年“month“月“day“日“;;/ERROR*found*void compareDate(Date dt1 Date dt2) constif(dt1.isLa
4、terThan(dt2)dt1.showDate();cout“比“;dt2.showDate();cout“更晚“endl;else if(dt1.isEarlyThan(dt2)dt1.showDate();cout“比“;dt2.showDate();cout“更早“endl;elsedt1.showDate();cout“与“;dt2.showDate();cout“是同一日期“endl;int main()Date dt1(1958,3,23),dt2(2001,11,5);compareDate(dt1,dt2);compareDate(dt2,dt1);compareDate(d
5、t2,dt2);return 0:(分数:30.00)_二、2简单应用题(总题数:1,分数:40.00)2.请使用“答题”菜单或使用 VC6 打开考生文件夹 proj2 下的工程 proj2。此工程包含一个程序文件main.cpp,其中的 Array 是一个表示数组的模板类。Array 的成员 a 用于指向存放数据的数组,size 表示该数组的大小。此程序的输出结果应为:829,20,33,12,18,66,25,1466,33注意:只能在画线处填写适当的代码,不要改动程序中的其他内容,也不能删除或移动/*found*。/源程序#include iostream#include cstdlib
6、using namespace std;templateclass Typeclass Array/数组类Type *a;int size;public:Array(Type b,int mm):size(mm)/构造函数if(size2) cout“数组长度太小,退出运行!/n“;exit(1);/*found*a=_;/a 指向申请的数组空间for(int i=0; isize; i+) ai=bi;/*found*Array()_; /析构函数void MaxTwo(Type x1,Type x2) const;/由 x1 和 x2 带回数组 a 中的两个最大值/*found*int L
7、ength() const_;/返回数组长度Type operator(int i) const /下标运算符重载成员函数if(i0 | i=size)cout“下标越界!“endl;exit(1);return ai;/由 x1 和 x2 带回数组 a 中的两个最大值templateclass Typevoid ArrayType:MaxTwo(Type x1,Type x2) const /补充完整函数体的内容/将数组 a 中头两个数据赋值给 x1 和 x2,使得 x1=x2/*found*_?(x1=a0,x2=a1):(x1=a1,x2=a0);for(int i=2;isize; i
8、+)if(aix1)x2=x1; x1=ai;else if(aix2) x2=ai;void main()int s18=29,20,33,12,18,66,25,14;Arrayint d1(s1,8);int i,a,b;d1.M axTwo(a,b);coutd1.Length()endl;for(i=0;icoutd17endl;couta“,“bendl;(分数:40.00)_三、3综合应用题(总题数:1,分数:30.00)3.请使用“答题”菜单或使用 VC6 打开考生文件夹 proj3 下的工程 proj3,其中包含了类 Polyno-mial(“多项式”)的定义。形如 5x4+
9、3.4x2-7x+2 代数式称为多项式,其中的 5 为 4 次项系数,3.4 为 2 次项系数,-7 为 1 次项系数,2 为 0 次项(常数项)系数。此例缺 3 次项,意味着 3 次项系数为 0,即省略了0x3。在 Polynomial 中,多项式的各个系数存储在一个名为 coef 的数组中。例如对于上面的多项式,保存在 coef0、coef1、coef4中的系数依次为:2.0、-7.0、3.4、0.0、5.0,也即对于 i 次项,其系数就保存在 coefi中。作为成员函数重载的运算符“+”用于计算两个多项式的和,并返回作为计算结果的那个多项式。请补充完成文件 Polynomial.cpp
10、中重载运算符函数 operator+的定义。此程序的正确输出结果应为:p1+p2 的结果:7.3X4+20.6X3-41.2X2-2.4X+5p2+p3 的结果:-2.3X5+14.6X4+12.8X3+2.8X2+0.2X+1注意:只需要在 operator+的/*333*和/*666*之间填入若干语句,不要改动程序中的其他内容。/源程序/主函数#include“Polynomial.h“int main()double p1=5.0,3.5,-41.2,7.8,p2=0.0,-5.9,0.0,12.8,7.3,p3=1.0,6.1,2.8,0.0,7.3,-2.3;Polynomial p
11、oly1(p1, sizeof(p1)/sizeof(double),poly2(p2, sizeof(p2) /sizeof(double),poly3(p3, sizeof(p3) /sizeof(double);cout“p1+p2 的结果:“(polyl+poly2).tostring()endl;cout“p2+p3 的结果:“(poly2+poly3).tostring()endl;/ writeToFile(“K:/b10/61000102/“);return 0:/Polynomial.cpp 函数#include“Polynomial.h“#include strstream
12、#include cmathconst char*Polynomial::tostring() const/将多项式转换成用于输出的字符串static char s1000;s0=0;strstream buf(s,1000);for(int i=num_of_terms-1;i=0;i-)if(coefi=0.0) continue, /0 系数项不输出if(coefi0.0) buf“-“; /负系数先输出“-“else if(strlen(s)=0) buf“ “;else buf“+“:buffabs(coefi);if(i0)buf“X“:if(i1)buf“i;bufends:re
13、turn buf.str();Polynomial Polynomial: operator+(const Polynomial x) constdouble c100=0.0;/存放结果系数的数组,所有元素初始化为零。假定项数不会超过 100/下面的 n 为两个操作数中项数的较大者int n=(num_of_terms=x.num_of_terms? num_of_terms:x.num_of_terms);/将两个多项式的对应系数之和存放到数组 c 的对应单元中/*333*/*333*while(n1cn-1=0.0)n-;/去除无效的(系数为 0 的)最高次项return Polynom
14、ial(c,n);(分数:30.00)_二级 C+机试-131 答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.请使用“答题“菜单或使用 VC6 打开考生文件夹 proj1 下的工程 proj1。此工程包含程序文件main.cpp。程序中位于每个/ERROR*found*下的语句行有错误,请加以更正。更正后程序的输出应该是:1958 年 3 月 23 日比 2001 年 11 月 5 日更早2001 年 11 月 5 日比 1958 年 3 月 23 日更晚2001 年 11 月 5 日与 2001 年 11 月 5 日是同一日期注意:只
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 机试 131 答案 解析 DOC
