[计算机类试卷]国家二级C++机试(操作题)模拟试卷219及答案与解析.doc

上传人:Iclinic170 文档编号:497287 上传时间:2018-11-28 格式:DOC 页数:9 大小:40KB
下载 相关 举报
[计算机类试卷]国家二级C++机试(操作题)模拟试卷219及答案与解析.doc_第1页
第1页 / 共9页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷219及答案与解析.doc_第2页
第2页 / 共9页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷219及答案与解析.doc_第3页
第3页 / 共9页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷219及答案与解析.doc_第4页
第4页 / 共9页
[计算机类试卷]国家二级C++机试(操作题)模拟试卷219及答案与解析.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、国家二级 C+机试(操作题)模拟试卷 219及答案与解析 一、基本操作题 1 请使用 VC6或使用【答题】菜单打开考生文件夹 proj1下的工程 proj1,其中有枚举 DOGCOLOR、狗类 Dog和主函数 main的定义。程序中位于每个 “ERROR*found*”下的语句行有错误,请加以改正。改正后程序的输出结果应该是: There is a white dog named Hoho There is a black dog named Haha There is a motley dog named Hihi 注意:只修改每个 “ ERROR*found*”下的那一行,不要改动程序中的

2、其他内容。 1 #include 2 using namespace std; 3 狗的颜色:黑、白、黄、褐、花、其他 4 enum DOGCOLORBLACK, WHITE, YELLOW, BROWN, PIEBALD, OTHER); 5 class Dog狗类 6 DOGCOLOR color ; 7 char name2 0; 8 static int count; 9 public: 10 Dog(char name, DOGCOLOR color) 1l strcpy(this-name, name); 12 ERROR *found* 13 strcpy(this-color,

3、 color); 14 15 DOGCOLOR getColor()constreturncolor; 16 ERROR *found* 17 const char*getName()constre- turn*name; 18 const char* getColrString() const 19 switch(color) 20 case BLACK: return“black“; 21 case WHITE: return“white“; 22 case YELLOW: return“yellow“; 23 case BROWN: return“brown“; 24 case PIEB

4、ALD: return“piebald“; 25 26 return”motley”; 27 28 void show()const 29 cout 4 double length(Point p1, Point p2) 5 6 return sqrt(p1 getX()-p2 getX()*(p1 getX()-p2 getX()+(p1 getY()-p2 getY()*(p1 getY()-p2 getY(); 7 8 double Triangle: perimeter()const 9 一个 return语句,它利用 length函数计算并 返回三角形的周长 10 *found* 1

5、1 _; 12 13 14 double Triangle: area()const 15 16 double s=perimeter() 2 0; 17 return sqrt(s*(s-length(point1, point2)* 18 (s-length(point2, point3), * 19 (s-length(point3, point1); 20 1 proj2 cpp 2 #include“shape h“ 3 #include 4 using namespace std; 5 6 *found* 7 _ show函数的函数头 (函数体以前的部分 ) 8 9 cout 3

6、#include 4 using namespace std; 5 6 class MyString 7 public: 8 HyString(const char*s) 9 10 str =new charstrlen(s) +1; 11 strcpy(sir, s); 12 13 14 NyString()deletestr; 15 16 voLd reverse(); 17 friend ostream&operator 4 5 void MyString: reVerse() 6 7 *333* 8 9 10 *666* 11 12 13 int main() 14 15 char i

7、nname128, pathname80; 16 strcpy(pathname, “ “); 17 sprintf(inname, “in dat“, path-name); 18 coutcolor=color; (2)const char getName()constretilrn*name; (3)Dog dog1(“Hoho“, WHITE), dog2(“Haha“, BLACK), dog3(“Hihi“,OTHER); 【试题解析】 (1)主要考查考生对 strcpy函数的掌握,如果看到上一条语句strcpy(this-name, name);,就以为本条语句也 要用 strc

8、py函数来赋值,这是错误的。 Strcpy函数只能复制字符串,根据类的私有成员声明可知, color是DOGCOLOR型的,这里直接使用赋值语句 “=”即可。 (2)主要考查考生对函数返回值的掌握,先解读语句 const char*getName()constreturn*name; ,要返回的是一个 const的字符指针,同时函数内的值不能改变, name在类的私有成员声明中是个字符数组, *name代表字符数组而不是字符指针,问题就出来了,需要修改返回类型: constchar getName()constreturn*name; 。 (3)语法错误,定义变量时,变量之间应使用 “, ”分

9、开。 二、简单应用题 2 【正确答案】 (1)X(x0), y(y0) (2)Point point1, point2, point3 (3)retum length(point1, point2)+length(point1, point3)+length(point2, point3) (4)void show(Shape&shape) 【试题解析】 (1)主要考查考生对构造函数的掌握,题目要 求用 x0、 y0初始化数据成员 x、 y,因此在这里使用成员列表初始化,即 Point(double x0, double y0):x(x0), y(y0)。 (2)主要考查考生对构造函数的掌握,

10、题目要求定义 3个私有数据成员。由构造函数可知 3个私有数据成员的类型都是 Point,名称分别为 point1、 point2和point3,因此空格处填写: Point point1, point2, point3。 (3)主要考查考生对成员函数的掌握,题目要求使用 retum语句,利用 length函数计算并返回三角形的 周长。 length函数返回的是两点间的距离,因此 return语句只要返回三角形三条边的距离和,即为三角形的周长。 (4)主要考查考生对成员函数的掌握,这里要定义 show函数的函数头 (函数体以前的部分 )。由主函数 main中 show函数的使用情况 show(s

11、)和 show(tri)可知, s是Shape类, tri是 Triangle类,因为 Triangle是 Shape类的派生类,所以可知 show函数的参数是 Shape类型,无返回值,得出语句 voidshow(Shape&shape)。 三、综合应用 题 3 【正确答案】 1 int length=strlen(str);把字符串 Str的长度赋值给 lenth 2 for(int i=0, j=lengthl; ij; i+, j-)从 i=0, j=length-1, ij为条件开始遍历,并把 Stri和 Strj交换 3 4 char temp=stri;给定义的临时变量 temp赋值为 stri 5 stri=strjj给 Stri赋值 StrJ 6 strj=temp;给 Strh赋值为 temp 7 【试题解析】 主要考查考生对动态数组的掌握,先看题目要求:成员函数reverse的功能是将字符串进行 “反转 ”。再由类的定义可知,字符串存放在动态数组 str中,由 strlen函数得出字符串的长度,最后一个字符的下标为 length-1,第一个字符的下标为 0,将这两个字符交换,然后 j依次减 1同时 i依次加 1,继续交换,直到 i大于 j时停止循环即可。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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