2017年9月计算机二级考试C上机操作题2_第1页
2017年9月计算机二级考试C上机操作题2_第2页
2017年9月计算机二级考试C上机操作题2_第3页
2017年9月计算机二级考试C上机操作题2_第4页
2017年9月计算机二级考试C上机操作题2_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基本操作题1简答题请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,此工程中含有一个源程序文件proj1.cpp。其中位于每个注释“/ ERROR *found *”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:NUM=0Value=1注意:只修改注释“/ ERROR *found *”的下一行语句,不要改动程序中的其他内容。参考解析:【参考答案】 (1)MyClass(int i=0):NUM(0)(2)void Increment(MyClass&f)f._i+;(3)Increment(obj);【考点分析】本题考查的是MyClass类,其中涉及友元函数、构造函数、常量数据成员、成员函数和友元函数的调用。友元函数的定义要与函数声明相呼应,即返回值、参数类型、参数个数要一致。友元函数的调用不需要使用类名和作用域。【解题思路】(1)主要考查考生对常量数据成员初始化方法的掌握,常量数据成员的初始化只能通过构造函数的成员初始化列表进行,并且要使用关键字const修饰。该题的前一条语句const int NUM;,说明NUM是常量数据成员。(2)主要考查考生对友元函数的掌握,友元函数的定义与声明要一致,先看该友元函数的声明部分:friend void Increment(MyClass& f);,返回类型为void,函数参数为MyClass& f;再比较出错的语句:void Increment()f._i+;,错误在于该函数没有参数,应把MyClass & f填在括号内。(3)主要考查友元函数的调用,友元函数并不属于类,因此调用友元函数时不需要添加类名及作用域,只需要像调用普通函数一样即可。【解题宝典】类的常量数据成员初始化必须使用成员初始化列表进行,否则必然出错。友元函数与普通函数的区别在于,友元函数可以通过对象名调用类的全部成员,包括私有成员。所有函数的声明和定义必须一致,包括函数返回值、参数类型、参数个数及有无const关键字。简单应用题2简答题请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,该工程中包含一个程序文件main.cpp,其中有日期类Date、人员类Person及排序函数sortByName和主函数main的定义。请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义和函数定义。此程序的正确输出结果应为:按姓名排序排序前张三男 出生日期:1978年4月20日王五女出生日期:1965年8月3日杨六女出生日期:1965年9月5日李四男 出生日期:1973年5月30日排序后:李四男出生日期:1973年5月30日王五女出生日期:1965年8月3日杨六女出生日期:1965年9月5日张三男出生日期:1978年4月20日注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“/ *found *”。参考解析:【参考答案】 (1)is_male(is_male),birth_date(birth_date)(2)return strcmp(name,p.getName();(3) name,name);可知,要使用成员列表初始化的成员为is_male和birth_date。(2)主要考查考生对strcmp()函数的掌握,先看程序对该函数的功能要求:利用strcmp()函数比较姓名,返回一个正数、0或负数,分别表示大于、等于、小于。因为strcmp()函数的功能是比较字符串大小,因此可以直接被return语句调用:return strcmp(name,p.getName();。(3)主要考查考生对成员函数的掌握,程序的注释为:显示出生月,由此可以知道这里要输出出生月份,直接调用函数getMonth()即可。【解题宝典】strcmp()函数、strcpy()函数、strlen()函数等是经常会用到的系统函数,要了解各个函数的功能:strait(连接)、strcly(复制)、strump(比较)、strlen(求长度)。综合应用题3简答题请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程文件proj3,此工程中包含一个源程序文件proj3.cpp,其中定义了用于表示平面坐标系中的点的类MyPoint和表示矩形的类MyRectangle;程序应当显示:(0,2)(2,2)(2,0)(0,0)4但程序中有缺失部分,请按照以下提示,把缺失部分补充完整:(1)在 “/* 1 * * found *”的下方是构造函数的定义,它用参数提供的左上角和右下角的坐标对upjeft和down_right进行初始化。(2)在 “/* 2 * * found *”的下方是成员函数getDownLeft的定义中的一条语句。函数getDownLefit返回用MyPoint对象表示的矩形的左下角。(3)在 “/* 3 * * found *”的下方是成员函数area的定义,它返回矩形的面积。注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“* found *”。参考解析:【参考答案】 (1)MyPoint pl,MyPoint p2(2)up_left.getX(),down-right.getY()(3)double MyRectangle:【考点分析】本题考查表示平面坐标系中的点的类MyPoint、表示矩形的类MyRectangle、构造函数和成员函数。【解题思路】(1)考查构造函数,构造函数中的参数要给私有成员赋值,在下句中up_left(p1),down_right(p2)指出私有成员赋值要使用形参p1和p2,因此这里参数要定义为MyPoint p1,MyPoint p2。(2)主要考查成员函数的返回语句,MyPoint MyRectangle:getDownLeft()const函数要求返回一个左下角的点坐标,因此使用语句MyPoint(up_left.getX(),down_right.getY();。(3)主要考查成员函数的定义,在MyRectangle类中已经声明double are

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论