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

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

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

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

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

    1、二级 C+-66及答案解析(总分: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 *found*”下的那一行,不要改动程序中的其他内容。

    2、#include iostream using namespace Std; class TVSet /“电视机“类 const int size; int channel; /频道 int volume; /音量 bool on; /电源开关:true 表示开,false 表示关 public: TVSet (int size): size (size), channel(0), onfalse) / ERROR * found* int getSize () const return size; /返回电视机规格 bool isOn()const return on; /返回电源开关状态

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

    4、show state() cout “规格:“ getSize() “英寸“ “,电源:“ (isOn ()? “开“ : “关“) “,频道:“ getChannel () “,音量:“ getVolume () endl; ; int main() TVSet tv (29); tv.turnOnOff (); tv. setChannelTo (5); tv.show state(); tv.turnOnOff (); tv.show state(); return 0; (分数:30.00)_二、B简单应用题/B(总题数:1,分数:30.00)2.请使用 VC6或使用答题菜单打开考生文

    5、件夹 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+4X+5=0.1 无实根4.5X2+6X+2=0.0

    6、 有两个相同的实根:-0.666667 和-0.6666670.5X2+2X-3=0.0 有两个不同的实根:0.896805 和-2.23014注意:只在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“/*found*”。#include iostream#include iomanip#include cmathusing namespace std;class Root /一元二次方程的根public:const double x1; /第一个根const double x2; /第二个根const int num of roots; /不同根的数量:0、1 或 2/创建

    7、一个“无实根”的 Root对象Root(): x1 (0.0), x2 (0.0), num_of_roots (0) /创建一个“有两个相同的实根”的 Root对象Root (double root): x1 (root), x2 (root), num_of_roots(1) /创建一个“有两个不同的实根”的 Root对象Root (double root1, double root2)/* found*:_void show () const /显示根的信息cout “/t/t“;/* found*switch (_) case 0:cout “无实根“; break;case 1:co

    8、ut “有两个相同的实根:“ x1“ 和 “ x2; break;default:cout “有两个不同的实根:“ x1“ 和 “ x2; break;class Quadratic /二次多项式public:const double a, b, c;Quadratic (double aa, double bb, double cc) /构造函数:a(aa), b(bb), c(cc) Quadratic (QuadraticQuadratic sub (Quadratic x) const /求两个多项式的差return Quadratic(a-x.a, b-x.b, c-x.c);dou

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

    10、b “X“ c noshowpos;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 ().show();cout endl;return 0;(分数:30.00)_三、B综合应用题/B(总题数

    11、:1,分数:40.00)3.请使用 VC6或使用答题菜单打开考生文件夹 proj3下的工程 proj3,其中包含了日期类 Date、人员类Person及排序函数 sortByAge和主函数 main的定义。其中 Person的成员函数 compareAge的功能是:将当前 Person对象和参数 Person对象进行比较,若前者的年龄大于后者的年龄,则返回一个正数;若前者的年龄小于后者的年龄,则返回一个负数;若年龄相同则返回 0。注意,出生 13期越大,年龄越小。请编写成员函数 compareAge。在 main函数中给出了一组测试数据,此时程序的正确输出结果应为: 按年龄排序 排序前: 张三

    12、 男 出生日期:1978 年 4月 20日 王五 女 出生日期:1965 年 6月 3日 杨六 女 出生日期:1965 年 9月 5日 李四 男 出生日期:1973 年 5月 30日 排序后: 张三 男 出生日期:1978年 4月 20日 李四 男 出生日期:1973 年 5月 30日 杨六 女 出生日期:1965 年 9月 5日 王五 女 出生日期:1965 年 6月 3日 要求: 补充编制的内容写在“/*333*”与“/*666*”之间,不得修改程序的其他部分。 注意:程序最后将结果输出到文件out.dat中。输出函数 WriteToFile已经编译为 obj文件,并且在本程序中调用。 /

    13、Person.h #include iostream using namespace std; class Date /日期类 int year,month, day; /年、月、日 public: Date(int year, int month, int day):year(year), month(month), day(day) int getYear()const return year; int getMonth () const return month; int getDay()const return day; ; class Person /人员类 char name14;

    14、 /姓名 boom is male; /性别,为 true时表示男性 Date birth date; /出生日期 public: Person (char * name, bool is_male, Date birth_date); const char * getName () const return name; bool isMale()const return is male; Date getBirthdate () const return birth date; int compareAge (const Person void show()const; ; void sor

    15、tByAge(Personps, int size); void writeToFile(char * ); /main.cpp #include“Person.h“ Person:Person(char * name, boom is_male, Date birth_date):is_male(is_male),birth_date(birth_date) strcpy(this-name, name); int Person:compareAge(const Person cout name “ /显示姓名 (is_male? “男“ : “女“) /显示性别(“男“或“女“) “出生日

    16、期:“ /显示出生日期 birth_date.getYear () “年“ birthdate.getMonth() “月“ birthdate.getDay() “日“; void sortByAge(Person ps, int size) for(int i=0; isize-1; i+) / int m=i; for (int j=i+1; jsize; j+) if (pareAge (psm)0) m=j; if (mi) Person p=psm; psm=psi; psi=p; int main() Person staff = Person (“张三“, true, Date

    17、 (1978, 4, 20), Person (“王五“, false, Date (1965, 6, 3), Person(“杨六“, false, Date (1965, 9, 5), Person (“李四“, true, Date (1973, 5, 30) ; const int size = sizeof (staff)/sizeof(staff0); int i; cout “按年龄排序“ endl “排序前:“; for(i=0; isize; i+) staffi. show (); sortByAge (staff, size); cout endl endl “排序后:“

    18、; for(i=0; isize; i+) staffi. show (); cout endl; writeToFile (“); return 0; (分数:40.00)_二级 C+-66答案解析(总分:100.00,做题时间:90 分钟)一、B基本操作题/B(总题数:1,分数:30.00)1.请使用 VC6或使用答题菜单打开考生文件夹 proj1下的工程 proj1。此工程中包含源程序文件main.cpp,其中有类 TVSet(“电视机”)和主函数 main的定义。程序中位于每个“/ERROR *found*”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是: 规格:29英寸

    19、,电源:开,频道:5,音量:18 规格:29 英寸,电源:关,频道:-1,音量:-1 注意:只修改每个“/ERROR *found*”下的那一行,不要改动程序中的其他内容。 #include iostream using namespace Std; class TVSet /“电视机“类 const int size; int channel; /频道 int volume; /音量 bool on; /电源开关:true 表示开,false 表示关 public: TVSet (int size): size (size), channel(0), onfalse) / ERROR * f

    20、ound* int getSize () const return size; /返回电视机规格 bool isOn()const return on; /返回电源开关状态 /返回当前音量,关机情况下返回-1 int getVolume () const return isOn()? volume : -1; /返回当前频道,关机情况下返回-1 int getChannel () const return isOn()? channel: -1; void turnOnOff() on=! on; /将电源在“开”和“关”之间转换 void setChannelTo (int chan) if

    21、(isOn() / ERROR * found* void setVolumeTo (int vol)const /设置音量(关机情况下无效) if(isOn() void show state() cout “规格:“ getSize() “英寸“ “,电源:“ (isOn ()? “开“ : “关“) “,频道:“ getChannel () “,音量:“ getVolume () endl; ; int main() TVSet tv (29); tv.turnOnOff (); tv. setChannelTo (5); tv.show state(); tv.turnOnOff ()

    22、; tv.show state(); return 0; (分数:30.00)_正确答案:(1)volume=18; (2)channel=chan; (3)void setVolumeTo(int vol)解析:考点 本题考查 TVSet类,其中涉及构造函数、成员函数、const 函数和 bool函数。 解析 (1)主要考查考生对构造函数的掌握,有题目要求输出音量为 18,因此使用构造函数将 volume初始为 18。 (2)主要考查考生对成员函数的掌握,满足 if条件的要设置频道,即 channel=chan;。 (3)主要考查考生对const函数的掌握,函数体内存在语句 volume=v

    23、ol;,使变量的值发生改变,因此不能用 const定义函数。二、B简单应用题/B(总题数:1,分数:30.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种情况:无实根、有两个相同的实根和有两个不同的实根。请在横线处填写适当

    24、的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为(注:输出中的 X2表示 x2):3X2+4X+5=0.1 无实根4.5X2+6X+2=0.0 有两个相同的实根:-0.666667 和-0.6666670.5X2+2X-3=0.0 有两个不同的实根:0.896805 和-2.23014注意:只在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“/*found*”。#include iostream#include iomanip#include cmathusing namespace std;class Root /一元二次方程的根public:const dou

    25、ble 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): x1 (root), x2 (root), num_of_roots(1) /创建一个“有两个不同的实根”的 Root对象Root (double root1, double root2)/* found*:_void show () co

    26、nst /显示根的信息cout “/t/t“;/* found*switch (_) case 0:cout “无实根“; break;case 1:cout “有两个相同的实根:“ x1“ 和 “ x2; break;default:cout “有两个不同的实根:“ x1“ 和 “ x2; break;class Quadratic /二次多项式public:const double a, b, c;Quadratic (double aa, double bb, double cc) /构造函数:a(aa), b(bb), c(cc) Quadratic (QuadraticQuadrat

    27、ic sub (Quadratic x) const /求两个多项式的差return Quadratic(a-x.a, b-x.b, c-x.c);double value (double x) const /求二次多项式的值return a* x* x+b* x+c;Root root ()const /求一元二次方程的根double delta=b* b-4* a* c; /计算判别式/* found*if (delta0.0)_;if (delta =0.0)return Root ( -b/(2* a);double sq = sqrt (delta);returnRoot(-b+sq

    28、)/(2* a), (-b-sq) / (2“ a);void show() const /显示多项式cout endl a “X2 “ showpos b “X“ c noshowpos;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.s

    29、howFunction ();q3.root ().show();cout endl;return 0;(分数:30.00)_正确答案:(1)x1(root1), x2(root2),nun_of_roots(2) (2)num_of_roots (3)a(x.a),b(x.b),c(x.c) (4)return Root()解析:考点 本题考查 Root类和 Quadratic类,其中涉及常变量、构造函数、成员函数和 const函数。 解析 (1)主要考查考生对构造函数的掌握,应使用成员列表初始化。 (2)主要考查考生对 switch语句的掌握,使用 num_of_roots判断根的信息。

    30、(3)主要考查考生对构造函数的掌握,应使用成员列表初始化。 (4)主要考查考生对成员函数的掌握,结合数学知识可知,当 deha0.0 时,方程式无解。三、B综合应用题/B(总题数:1,分数:40.00)3.请使用 VC6或使用答题菜单打开考生文件夹 proj3下的工程 proj3,其中包含了日期类 Date、人员类Person及排序函数 sortByAge和主函数 main的定义。其中 Person的成员函数 compareAge的功能是:将当前 Person对象和参数 Person对象进行比较,若前者的年龄大于后者的年龄,则返回一个正数;若前者的年龄小于后者的年龄,则返回一个负数;若年龄相同

    31、则返回 0。注意,出生 13期越大,年龄越小。请编写成员函数 compareAge。在 main函数中给出了一组测试数据,此时程序的正确输出结果应为: 按年龄排序 排序前: 张三 男 出生日期:1978 年 4月 20日 王五 女 出生日期:1965 年 6月 3日 杨六 女 出生日期:1965 年 9月 5日 李四 男 出生日期:1973 年 5月 30日 排序后: 张三 男 出生日期:1978年 4月 20日 李四 男 出生日期:1973 年 5月 30日 杨六 女 出生日期:1965 年 9月 5日 王五 女 出生日期:1965 年 6月 3日 要求: 补充编制的内容写在“/*333*”

    32、与“/*666*”之间,不得修改程序的其他部分。 注意:程序最后将结果输出到文件out.dat中。输出函数 WriteToFile已经编译为 obj文件,并且在本程序中调用。 /Person.h #include iostream using namespace std; class Date /日期类 int year,month, day; /年、月、日 public: Date(int year, int month, int day):year(year), month(month), day(day) int getYear()const return year; int getMo

    33、nth () const return month; int getDay()const return day; ; class Person /人员类 char name14; /姓名 boom is male; /性别,为 true时表示男性 Date birth date; /出生日期 public: Person (char * name, bool is_male, Date birth_date); const char * getName () const return name; bool isMale()const return is male; Date getBirthd

    34、ate () const return birth date; int compareAge (const Person void show()const; ; void sortByAge(Personps, int size); void writeToFile(char * ); /main.cpp #include“Person.h“ Person:Person(char * name, boom is_male, Date birth_date):is_male(is_male),birth_date(birth_date) strcpy(this-name, name); int

    35、Person:compareAge(const Person cout name “ /显示姓名 (is_male? “男“ : “女“) /显示性别(“男“或“女“) “出生日期:“ /显示出生日期 birth_date.getYear () “年“ birthdate.getMonth() “月“ birthdate.getDay() “日“; void sortByAge(Person ps, int size) for(int i=0; isize-1; i+) / int m=i; for (int j=i+1; jsize; j+) if (pareAge (psm)0) m=j;

    36、 if (mi) Person p=psm; psm=psi; psi=p; int main() Person staff = Person (“张三“, true, Date (1978, 4, 20), Person (“王五“, false, Date (1965, 6, 3), Person(“杨六“, false, Date (1965, 9, 5), Person (“李四“, true, Date (1973, 5, 30) ; const int size = sizeof (staff)/sizeof(staff0); int i; cout “按年龄排序“ endl “排

    37、序前:“; for(i=0; isize; i+) staffi. show (); sortByAge (staff, size); cout endl endl “排序后:“; for(i=0; isize; i+) staffi. show (); cout endl; writeToFile (“); return 0; (分数:40.00)_正确答案:(int n=0; /给变量 n赋为 0 n=p.birth_date.getYear()-birth_ date.getYear(); /把参数对象 p的年减当前对象 person年,结果赋值给 n if(n!=0) return n

    38、; /如果 n不等零, 则返回 n n=p.birth_date.getMonth()-birth date.getMonth(); /把参数对象 p的月数减当前对象 person的月数,结果赋值给 n if(n!=0) return n; /如果 n不等于零,则返回 n return p.birth_date.getDay()-birth_date.getDay(); /返回参数对象 p的日减当前对象 person日的结果)解析:考点 主要考查的是 Date类和 Person类,其中涉及构造函数、const 函数和成员函数。 解析 compareAge函数的功能是比较年龄大小并排序,先比较年,再比较月,最后比较日。


    注意事项

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




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

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

    收起
    展开