欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:1324084       资源大小:37.50KB        全文页数:7页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、二级 C+-35 及答案解析(总分:61.00,做题时间:90 分钟)一、B1改错题/B(总题数:1,分数:30.00)使用 VC+6.0 打开考生文件夹下的源程序文件 1.cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个 catch 必须抛出执行的任何异常。程序异常,输出信息为error0ERROR注意:不要改动 main 函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/*error*的下面。试题程序:#includeiostream.hint main()trythrow(“error“);/*error*catch(char s)coutsend1;t

    2、rythrow(int)0);/*error*catch()coutiend1;trythrow(0);throw(“error“);/*error*catch()cout“ERROR“end1;return 0;(分数:30.00)填空项 1:_填空项 1:_填空项 1:_二、B2简单应用题/B(总题数:1,分数:1.00)1.请编写一个函数 int Count(double a,int n),统计出具有 n 个元素的一维数组中大于等于所有元素平均值的元素个数并返回这个值。注意:请使用 for 循环实现该函数。 注意:部分源程序已存在文件test12_2.cpp 中。 请勿修改主函数 mai

    3、n 和其他函数中的任何内容,仅在函数 Count 的花括号中填写若干语句。 文件 test12_2 的内容如下: #includeiostream.h int Count(double a, int n) void main() double a5; cout“请输入 5 个 double 型的数字“endl; for(int i=0;i5;i+) cinai; int result=Count(a,5); cout“大于等于所有元素平均值的元素个数:“resultendl; (分数:1.00)_三、B3综合应用题/B(总题数:1,分数:30.00)2.请使用“答题”菜单或使用 VC6 打开考

    4、生文件夹 proj3 下的工程 proj3,其中包含了类 Polyno-mial(“多项式”)的定义。形如 5x4+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中。作为成员函数重载

    5、的运算符“+”用于计算两个多项式的和,并返回作为计算结果的那个多项式。请补充完成文件 Polynomial.cpp 中重载运算符函数 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,

    6、-5.9,0.0,12.8,7.3,p3=1.0,6.1,2.8,0.0,7.3,-2.3;Polynomial poly1(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:

    7、/Polynomial.cpp 函数#include“Polynomial.h“#include strstream#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

    8、 buf“+“:buffabs(coefi);if(i0)buf“X“:if(i1)buf“i;bufends:return 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*/

    9、*333*while(n1cn-1=0.0)n-;/去除无效的(系数为 0 的)最高次项return Polynomial(c,n);(分数:30.00)_二级 C+-35 答案解析(总分:61.00,做题时间:90 分钟)一、B1改错题/B(总题数:1,分数:30.00)使用 VC+6.0 打开考生文件夹下的源程序文件 1.cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个 catch 必须抛出执行的任何异常。程序异常,输出信息为error0ERROR注意:不要改动 main 函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/*error*的下面。试题程序:#

    10、includeiostream.hint main()trythrow(“error“);/*error*catch(char s)coutsend1;trythrow(int)0);/*error*catch()coutiend1;trythrow(0);throw(“error“);/*error*catch()cout“ERROR“end1;return 0;(分数:30.00)填空项 1:_ (正确答案:应改为“catch(char *s)”。)解析:填空项 1:_ (正确答案:应改为“catch(int i)”。)解析:填空项 1:_ (正确答案:应改为“catch()”。)解析:解

    11、析 本题中第 1 个标识前的异常抛出语句为“throw(“error“);”,其中的类型为字符串。所以对应的异常捕捉语句 catch 中应该符合这个类型,而程序中给出的语句“catch(char s)”是字符型的,所以第 2 处的语句修改为“catch(char *s)”。第 2 个标识前的异常抛出语句为“throw(int)0);”,其中的类型为 int。对应的异常捕捉语句 catch 中应该符合这个类型,所以补充 catch 子句中的类型,否则如果找不到匹配的 catch 块,系统就会调用一个系统函数,使程序终止运行。即第 1 处的语句修改为“catch(int i)”。如果在 catch

    12、 子句中没有指定异常信息的类型,那么就用删节号“”表示它可以捕捉任何类型的异常信息,即修改为“catch()”。二、B2简单应用题/B(总题数:1,分数:1.00)1.请编写一个函数 int Count(double a,int n),统计出具有 n 个元素的一维数组中大于等于所有元素平均值的元素个数并返回这个值。注意:请使用 for 循环实现该函数。 注意:部分源程序已存在文件test12_2.cpp 中。 请勿修改主函数 main 和其他函数中的任何内容,仅在函数 Count 的花括号中填写若干语句。 文件 test12_2 的内容如下: #includeiostream.h int Co

    13、unt(double a, int n) void main() double a5; cout“请输入 5 个 double 型的数字“endl; for(int i=0;i5;i+) cinai; int result=Count(a,5); cout“大于等于所有元素平均值的元素个数:“resultendl; (分数:1.00)_正确答案:(int Count(double a, int n) double m=0 int i; for(i=0;in;i+) m+=ai; m=m/n; int c=0; for(i=0;in;i+) if(ai=m) c+; return c; )解析:

    14、解析 本题考查的是考生对于一维数组作参数的调和 for 循环语句的熟练应用。一维数组作参数时,形参就是数组实参是数组名加上一对中括号,在函数体内部使用与一般数组完全相同,这也是传值调用的一种,注意最后把计算结果是 return 语句返回。三、B3综合应用题/B(总题数:1,分数:30.00)2.请使用“答题”菜单或使用 VC6 打开考生文件夹 proj3 下的工程 proj3,其中包含了类 Polyno-mial(“多项式”)的定义。形如 5x4+3.4x2-7x+2 代数式称为多项式,其中的 5 为 4 次项系数,3.4 为 2 次项系数,-7 为 1 次项系数,2 为 0 次项(常数项)系

    15、数。此例缺 3 次项,意味着 3 次项系数为 0,即省略了0x3。在 Polynomial 中,多项式的各个系数存储在一个名为 coef 的数组中。例如对于上面的多项式,保存在 coef0、coef1、coef4中的系数依次为:2.0、-7.0、3.4、0.0、5.0,也即对于 i 次项,其系数就保存在 coefi中。作为成员函数重载的运算符“+”用于计算两个多项式的和,并返回作为计算结果的那个多项式。请补充完成文件 Polynomial.cpp 中重载运算符函数 operator+的定义。此程序的正确输出结果应为:p1+p2 的结果:7.3X4+20.6X3-41.2X2-2.4X+5p2+

    16、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 poly1(p1, sizeof(p1)/sizeof(double),poly2(p2, sizeof(p2) /sizeof(double),po

    17、ly3(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#include cmathconst char*Polynomial::tostring() const/将多项式转换成用于输出的字符串stati

    18、c 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:return buf.str();Polynomial Polynomial: operator+(const Polynomial x) constd

    19、ouble 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 Polynomial(c,n);(分数:30.00)_正确答案:(/*333* for(int i=0;in;i+) ci=this-coefi+x.coefi; /*666*)解析:解析 最后返回的是 Polynomial(c,n),因为知道 c 中存的是多项式系数,而多项式相加的系数应该是各项对应系数之和,所以 ci=this-coefi+x.coefi;。


    注意事项

    本文(【计算机类职业资格】二级C++-35及答案解析.doc)为本站会员(hopesteam270)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开