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

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

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

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

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

    1、二级 C+-42及答案解析(总分:100.00,做题时间:90 分钟)一、B基本操作题/B(总题数:1,分数:30.00)1.请使用 VC6或使用答题菜单打开考生文件夹 proj1下的工程 proj1,该工程中包含程序文件main.cpp,其中有关 TVset(“电视机”)和主函数 main的定义。程序中位于每个“/ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是:规格:29 英寸,电源:开,频道:5,音量:18 规格:29 英寸,电源:关,频道:-1,音量:-1 注意:只修改每个“/ERROR*fund*”下的那一行,不要改动程序中的其他内容。 #inc

    2、ludeiostream using namespace std; class TVSet /“电视机“类 const int size; int channel; /频道 int volume; /音量 bool on; /电源开关: true 表示开, false 表示关 public: /ERROR*found* TVSet(int Size) this-size(size); channel=0; volume=15; on=false; int getSize()constreturn size; /返回电视机规格 bool isOn()constreturn on; /返回电源开关

    3、状态 /返回当前音量,关机情况下返回-1 int getVolume()constreturn isOn ()?volume: -1; /返回当前频道,关机情况下返回-1 int getChannel()constreturn isOn ()?channel: -1; /ERROR*found* void turnOnOff()const/将电源在“开”和“关”之间转换 on=! on; void setChannel To (int chan) /设置频道(关机情况下无效) if(isOn() void setVolumeTo (int vol) /设置音量(关机情况下无效) if(isOn

    4、() void show state() /ERROR*found* cout“规格:“getSize()“英寸“ “,电源:“(isOn()?“开“: “关“) “,频道:“getChannel() “,音量:“getVolume()endl; ; int main() TVSet tv(29); tv.turnOnOff(); tv.SetChannelTo(5); tv.setVolumeTo(18); tv.show State(); tv.turnOnOff(); tv.show state(); return 0; (分数:30.00)_二、B简单应用题/B(总题数:1,分数:30

    5、.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种情况:无实根、有两个相同的实根和有两个不同的实根。请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为(注:输出中的 X2表示 x2):3X2

    6、+4x+5=0.0 无实根4.5X2+6X+2=0.0有两个相同的实根:-0.666667 和-0.6666671.5X2+2X-3=0.0有两个不同的实根:0.896805 和-2.23014注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“/*found*”。#includeiostream#includeiomanip#includecmathusing namespace std;class Root /一元二次方程的根public:const double x1; /第一个根const double x2; /第二个根const int num of ro

    7、ots; /不同根的数量:0、1 或 2/创建一个“无实根”的 Root对象Root(): 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)void show()const /显示根的信息cout“/t/t“;switch(num_of_roots)case 0:/*found*_case

    8、1:cout“有两个相同的实根:“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(QuadraticQuadratic sub(Quadratic X)const/求两个多项式的差/*found*_double value(double x)const/求二次多项式的值

    9、return a*x*x+b*x+c;Root root()const/求一元二次方程的根double delta=b*b-4*a*c;/计算判别式if(delta0.0) return Root();if(deita=0.0)return Root(-b/(2*a);double sq=sqrt(delta);return Root(-b+sq)/(2*a),(-b-sq)/(2*a);void show()const/显示多项式coutendla“X2“show-posb“x“cnoshowpos;void showFunction()/显示一元二次方程show();cout“=0.0“;

    10、int main()Quadratic q1(3.0, 4.0, 5.0), q2(4.5, 6.0, 2.0), q3(q2. sub(q1);q1.showFunction();q1.root().show();q2.showFunction();q2.root().show();q3.showFunction();q3.root().show();coutendl;return 0;(分数:30.00)_三、B综合应用题/B(总题数:1,分数:40.00)3.请使用 VC6或使用答题菜单打开考生文件夹 proj3下的工程 proj3,其中包含了类 Integers和主函数 main的定义

    11、。一个 Integers对象就是一个整数的集合,其中包含 0个或多个可重复的整数。成员函数add的作用是将一个元素添加到集合中,成员函数 remove的作用是从集合中删除指定的元素(如果集合中存在该元素),成员函数 sort的作用是将集合中的整数按升序进行排序。请编写这个 sort函数。此程序的正确输出结果应为: 5 28 2 4 5 3 2 75 27 66 31 5 28 2 4 5 3 2 75 27 66 31 6 5 28 2 4 5 3 2 75 27 66 31 6 19 5 28 4 5 3 2 75 27 66 31 6 19 5 28 4 5 3 2 75 27 66 31

    12、 6 19 4 2 3 4 4 5 5 6 19 27 28 31 66 75 要求: 补充编制的内容写在“/*333*”与“/*666*”之间。不得修改程序的其他部分。 注意:相关文件包括:main.cpp、Integers.h。 程序最后调用 writeToFile函数,使用另一组不同的测试数据,将不同的运行结果输出到文件 out.dat中。输出函数 writeToFile已经编译为 obj文件。 /Integers.h #ifndef INTEGERS #define INTEGERS #includeiostream using namespace std; const int MAX

    13、ELEMENTS=100; /集合最多可拥有的元素个数 class Integers int elemMAXELEMENTS; /用于存放集合元素的数组 int counter; /用于记录集合中元素个数的计数器 public: Integers(): counter(0) /创建一个空集合 Integers(int data, int size); /利用数组提供的数据创建一个整数集合 void add(int element); /添加一个元素到集合中 void remove(int element); /删除集合中指定的元素 int getCount()constreturn count

    14、er; /返回集合中元素的个数 int getElement(int i)constreturn elemi; /返回集合中指定的元素 void sort(); /将集合中的整数按由小到大的次序进行排序 void show()const; /显示集合中的全部元素 ; void writeToFile(const char*path); #endif /main.cpp #include“Integers.h“ #includeiomanip Integers:Integers(int data, int size): counter(0) for(int i=0; isize; i+) add

    15、(datai); void Integers:add(int element) if(counterMAXELEMENTS) elemcounter+=element; void Integers:remove(int element) int j; for(j=counter-1; j=0; j-) if(elemj=element)break; for(int i=j; icounter-1; i+) elemi=elemi+1; counter-; void Integers:sort() /*333* /*666* void Integers:show()Const for(int i

    16、=0; igetCount(); i+) coutsetw(4)getElement(i); coutendl; int main() int d=5, 28, 2, 4, 5, 3, 2, 75, 27, 66, 31); Integers s(d, 11); s.show(); s.add(6); s.show(); s.add(19); s.show(); s.remove(2); s.show(); s.add(4); s.show(); s.sort(); s.show(); writeToFile(“); return 0; (分数:40.00)_二级 C+-42答案解析(总分:1

    17、00.00,做题时间:90 分钟)一、B基本操作题/B(总题数:1,分数:30.00)1.请使用 VC6或使用答题菜单打开考生文件夹 proj1下的工程 proj1,该工程中包含程序文件main.cpp,其中有关 TVset(“电视机”)和主函数 main的定义。程序中位于每个“/ERROR*found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是:规格:29 英寸,电源:开,频道:5,音量:18 规格:29 英寸,电源:关,频道:-1,音量:-1 注意:只修改每个“/ERROR*fund*”下的那一行,不要改动程序中的其他内容。 #includeiostream using

    18、 namespace std; class TVSet /“电视机“类 const int size; int channel; /频道 int volume; /音量 bool on; /电源开关: true 表示开, false 表示关 public: /ERROR*found* TVSet(int Size) this-size(size); channel=0; volume=15; on=false; int getSize()constreturn size; /返回电视机规格 bool isOn()constreturn on; /返回电源开关状态 /返回当前音量,关机情况下返回

    19、-1 int getVolume()constreturn isOn ()?volume: -1; /返回当前频道,关机情况下返回-1 int getChannel()constreturn isOn ()?channel: -1; /ERROR*found* void turnOnOff()const/将电源在“开”和“关”之间转换 on=! on; void setChannel To (int chan) /设置频道(关机情况下无效) if(isOn() void setVolumeTo (int vol) /设置音量(关机情况下无效) if(isOn() void show state

    20、() /ERROR*found* cout“规格:“getSize()“英寸“ “,电源:“(isOn()?“开“: “关“) “,频道:“getChannel() “,音量:“getVolume()endl; ; int main() TVSet tv(29); tv.turnOnOff(); tv.SetChannelTo(5); tv.setVolumeTo(18); tv.show State(); tv.turnOnOff(); tv.show state(); return 0; (分数:30.00)_正确答案:(1)TVSet(int size):size(size) (2)vo

    21、id turnOnOff() (3)cout“规格:“ getSize()“英寸“)解析:考点 主要考查 TVSet类,其中涉及构造函数、const 函数和 bool型函数。TVSet 类的私有成员中有个常变量 const int size,这种变量只能使用成员列表初始化来赋值,判断一个函数是否为 const函数,就要看函数体内是否有成员变量的值发生了改变。 解析 (1)主要考查考生对构造函数的掌握,因为 size是常变量,所以只能用成员初始化列表来初始 size,即 TVSet(int size):size(size)。 (2)主要考查考生对 const函数的掌握,在 turnOnOff函数

    22、中,有语句:on=!on;,使得 on的值发生改变,因此该函数不能使用 const。 (3)主要考查考生对输出语句的掌握,下一条语句:“,电源:“(isOn()?“开“:“关“),说明输出语句还没结束,因此不能用“;”。二、B简单应用题/B(总题数:1,分数:30.00)2.请使用 VC6或使用答题菜单打开考生文件夹 proj2下的工程 proj2。该工程中包含一个程序文件main.cpp,其中有类 Quadritic、类 Root及主函数 main的定义。一个 Quadritic对象表示一个 ax2+bx+c的一元二次多项式。一个 Root对象用于表示方程 ax2+bx+c=0的一组根,它的

    23、数据成员 num_of_roots有3种可能的值,即 0、1 和 2,分别表示根的 3种情况:无实根、有两个相同的实根和有两个不同的实根。请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为(注:输出中的 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注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“/*found*”。#includeiostream#inclu

    24、deiomanip#includecmathusing namespace std;class Root /一元二次方程的根public:const double x1; /第一个根const double x2; /第二个根const int num of roots; /不同根的数量:0、1 或 2/创建一个“无实根”的 Root对象Root(): x1(0.0), x2(0.0), num_of_roots(0)/创建一个“有两个相同的实根”的 Root对象Root(double root)/*found*:_/创建一个“有两个不同的实根”的 Root对象Root (double roo

    25、t1, double root2): x1(root1), x2(root2), num_of_roots(2)void show()const /显示根的信息cout“/t/t“;switch(num_of_roots)case 0:/*found*_case 1:cout“有两个相同的实根:“x1“和“x2; break;default:cout“有两个不同的实根:“x1“和“x2;break;class Quadratic /二次多项式public:const double a, b, c; /分别表示二次项、一次项和常数项等 3个系数Quadratic(double a, double

    26、 b, double c)/构造函数/*found*“_Quadratic(QuadraticQuadratic 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*c;/计算判别式if(delta0.0) return Root();if(deita=0.0)return Root(-b/(2*a);double sq=sqrt(delta);return Root

    27、(-b+sq)/(2*a),(-b-sq)/(2*a);void show()const/显示多项式coutendla“X2“show-posb“x“cnoshowpos;void showFunction()/显示一元二次方程show();cout“=0.0“;int main()Quadratic q1(3.0, 4.0, 5.0), q2(4.5, 6.0, 2.0), q3(q2. sub(q1);q1.showFunction();q1.root().show();q2.showFunction();q2.root().show();q3.showFunction();q3.root

    28、().show();coutendl;return 0;(分数:30.00)_正确答案:(1)x1(root),x2(root),num_of_roots(1) (2)cout“无实根“;break; (3)a(a),b(b),c(c) (4)return Quadratic(a-x.a,b-x.b,c-x.c);)解析:考点 本题考查 Root类和 Quadratic类,其中涉及构造函数和 const函数。 解析 (1)主要考查考生对构造函数的掌握,题目要求创建一个“有两个相同的实根”的 Root对象。说明两个根 x1和 x2相等,根的数量为 1,因此可以得出语句:x1(root),x2(r

    29、oot),num_of_roots(1)。 (2)主要考查考生对 switch语句的掌握,在语句 switch(num_of_roots)中,num_of_roots 代表根的数量,当为 0时,表示没有根,因此输出无实根,注意要在句尾加 break。 (3)主要考查考生对构造函数的掌握,本题使用成员初始化列表来构造函数。 (4)主要考查考生对成员函数的掌握,题目要求求两个多项式的差。两个多项式的差就是各个次方的系数相减,因此得出语句:return Quadratic(a-x.a,b-x.b,c-x.c);。三、B综合应用题/B(总题数:1,分数:40.00)3.请使用 VC6或使用答题菜单打开

    30、考生文件夹 proj3下的工程 proj3,其中包含了类 Integers和主函数 main的定义。一个 Integers对象就是一个整数的集合,其中包含 0个或多个可重复的整数。成员函数add的作用是将一个元素添加到集合中,成员函数 remove的作用是从集合中删除指定的元素(如果集合中存在该元素),成员函数 sort的作用是将集合中的整数按升序进行排序。请编写这个 sort函数。此程序的正确输出结果应为: 5 28 2 4 5 3 2 75 27 66 31 5 28 2 4 5 3 2 75 27 66 31 6 5 28 2 4 5 3 2 75 27 66 31 6 19 5 28

    31、4 5 3 2 75 27 66 31 6 19 5 28 4 5 3 2 75 27 66 31 6 19 4 2 3 4 4 5 5 6 19 27 28 31 66 75 要求: 补充编制的内容写在“/*333*”与“/*666*”之间。不得修改程序的其他部分。 注意:相关文件包括:main.cpp、Integers.h。 程序最后调用 writeToFile函数,使用另一组不同的测试数据,将不同的运行结果输出到文件 out.dat中。输出函数 writeToFile已经编译为 obj文件。 /Integers.h #ifndef INTEGERS #define INTEGERS #i

    32、ncludeiostream using namespace std; const int MAXELEMENTS=100; /集合最多可拥有的元素个数 class Integers int elemMAXELEMENTS; /用于存放集合元素的数组 int counter; /用于记录集合中元素个数的计数器 public: Integers(): counter(0) /创建一个空集合 Integers(int data, int size); /利用数组提供的数据创建一个整数集合 void add(int element); /添加一个元素到集合中 void remove(int elem

    33、ent); /删除集合中指定的元素 int getCount()constreturn counter; /返回集合中元素的个数 int getElement(int i)constreturn elemi; /返回集合中指定的元素 void sort(); /将集合中的整数按由小到大的次序进行排序 void show()const; /显示集合中的全部元素 ; void writeToFile(const char*path); #endif /main.cpp #include“Integers.h“ #includeiomanip Integers:Integers(int data,

    34、int size): counter(0) for(int i=0; isize; i+) add(datai); void Integers:add(int element) if(counterMAXELEMENTS) elemcounter+=element; void Integers:remove(int element) int j; for(j=counter-1; j=0; j-) if(elemj=element)break; for(int i=j; icounter-1; i+) elemi=elemi+1; counter-; void Integers:sort()

    35、/*333* /*666* void Integers:show()Const for(int i=0; igetCount(); i+) coutsetw(4)getElement(i); coutendl; int main() int d=5, 28, 2, 4, 5, 3, 2, 75, 27, 66, 31); Integers s(d, 11); s.show(); s.add(6); s.show(); s.add(19); s.show(); s.remove(2); s.show(); s.add(4); s.show(); s.sort(); s.show(); write

    36、ToFile(“); return 0; (分数:40.00)_正确答案:(for(int i=0; icounter; i+) /遍历数组 elem for(int j =counter-1; ji; j-) /从最后一位到 i到前一位遍历 elem if(elemielemj) /如果 elemi大于 elemj,则两值替换 int temp=elemi; /定义整形变量 temp并赋值为 elemi; elemi=elemj; /给 elemi赋值elemi elemj=temp; /给 elemj赋值 temp )解析:考点 本题考查 Integers类,其中涉及数组、构造函数、成员函数、const 函数和排序算法。 解析 主要考查考生对排序算法的掌握,要排序的数组为 elem,元素个数为 counter,在这里使用下标i和 j进行比较,当 elemielemj时,数组元素通过中间变量 temp进行交换。


    注意事项

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




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

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

    收起
    展开