【计算机类职业资格】二级C++-42及答案解析.doc
《【计算机类职业资格】二级C++-42及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-42及答案解析.doc(8页珍藏版)》请在麦多课文档分享上搜索。
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; /返回电源开关状态 /返回当前音量,关机情况下返回
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C42 答案 解析 DOC
