考试吧

计算机等级

考试吧>等级考试>计算机二级考试>C加加>模拟试题>正文
2017年9月计算机二级考试C++上机操作题(2)
考试吧 2017-07-27 18:20:39 评论(0)条

  基本操作题

  1[简答题]

  请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,此工程中含有一个源程序文件proj1.cpp。其中位于每个注释“// ERROR **********found **********”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:

  NUM=0

  Value=1

  注意:只修改注释“// ERROR ****found ****”的下一行语句,不要改动程序中的其他内容。

  

2017年9月计算机二级考试C  上机操作题(2)

  参考解析:【参考答案】 (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关键字。

扫描/长按二维码帮助考试通关
2017等考考试报名信息
2017等考各科通关技巧
2017各科最新预测试卷
2017等考各科真题答案

微信搜索"考试吧"了解更多考试资讯、下载备考资料

  简单应用题

  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 ****”。

2017年9月计算机二级考试C  上机操作题(2)

2017年9月计算机二级考试C  上机操作题(2)

2017年9月计算机二级考试C  上机操作题(2)

  参考解析:【参考答案】 (1)is_male(is_male),birth_date(birth_date)

  (2)return strcmp(name,p.getName());

  (3) <

  【考点分析】

  本题考查Date类和Person类,其中涉及构造函数、const函数、bool型私有成员及成员函数,以及strcmp()函数。

  【解题思路】

  (1)主要考查考生对构造函数的掌握,由函数体内strcpy(this- >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(求长度)。

扫描/长按二维码帮助考试通关
2017等考考试报名信息
2017等考各科通关技巧
2017各科最新预测试卷
2017等考各科真题答案

微信搜索"考试吧"了解更多考试资讯、下载备考资料

  综合应用题

  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 ****”。

  

2017年9月计算机二级考试C  上机操作题(2)

2017年9月计算机二级考试C  上机操作题(2)

  参考解析:【参考答案】 (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 My

  Rectangle::getDownLeft()const函数要求返回一个左下角的点坐标,因此使用语句MyPoint(up_left.getX(),down_right.getY());。

  (3)主要考查成员函数的定义,在MyRectangle类中已经声明double area()const,因此此处只要添加double MyRectangle::即可。

  【解题宝典】

  构造函数的参数定义时要注意在赋值语句中使用的参数。考查构造函数一般都会考查到形参,应注意联系上下文。类的成员函数在类外定义时要在函数名前面加上:返回值类型+类名+作用域(::)。

扫描/长按二维码帮助考试通关
2017等考考试报名信息
2017等考各科通关技巧
2017各科最新预测试卷
2017等考各科真题答案

微信搜索"考试吧"了解更多考试资讯、下载备考资料

展开全文
评论(0条) 发表
Copyright © 2004-
考试吧(m.566.com)北京美满明天科技有限公司
社会统一信用代码:91110108MA01WU311X
帮助中心