国家二级C++机试(操作题)模拟试卷651
基本操作题
1.请打开考生文件夹下的解决方案文件proj1,其中有枚举DOCCOLOR、狗类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*******”下的那一行,不要改动程序中的其他内容。
#include<iostream>
using rlamespace std;
//狗的颜色:黑、白、黄、褐、花、其他
enum DOGCOLOR {BLACK, WHITE,YELLON,BROWN,PIEBALD,OTHER);
class Dogf//狗类
DOGCOLOR color:
char name[20];
static int count ;
public:
Dog(char name[ ],DOGCOI,OR color){
strcpy(this一>frame,name);
//ERROR *******found*******
strcpy(this一>color,color);
}
DOGCOLOR get.Color()const {return color,}
//ERROR *******found*******
const char * get;Name()
const {return*name;}
const char* get.Color-String()const{
switch(color){
case BLACK: return”black”;
Case WHITE: return ”white”:
case YELLOW: return”yellow”;
Case BROWN: return”brown”;
case PIEBALD: return”piebald”;
}
return”motley”;
}
void show()const{
cout<<’’There is a”<<get ColorString()<<”dog named”<<name<<’.’<<endl;
}
};
int main(){
//ERROR *******found*******
Dog dog1(”Hoho”,WHITE),dog2(”Haha”,BLACK);clog3(”Hibi”,OTHER);
dog1.show();
dog2.show();
dog3.show();
return 0;
}
(1)this->color =color;
(2)const char* getName()const{return name; }
(3)Dog dog1(\\
解析:(1)主要考查考生对strcpy函数的掌握,如果看到上一条语句strcpy(this->name,name),就以为本条语句也要用strcpy函数来赋值,这是错误的。Strcpy函数只能复制字符串,根据类的私有成员声明可知.color是DOGCOLOR型的,这里直接使用赋值语句’=’即可。
(2)主要考查考生对函数返回值的掌握,先解读语句const char* getName()const{return *name; },要返回的是一个const的字符指针,name在类的私有成员声明中是个字符数组.name为字符数组名即为此数组的首地址,改为:const char* getName() const {return name; }。
(3)语法错误,定义变量时,变量之间应使用“,”分开。
简单应用题
2.请打开考生文件夹下的解决方案文件proj2,该工程中包含一个程序文件main.cpp,其中有坐标点类point、线段类Line和三角形类Triangle的定义,还有main函数的定义。程序中两点间距离的计算是按公式d=实现的,三角形面积的计算是按公式f=
实现的,其中s=
(1)const Point& p
(2)p1(p1), p2(p2)
(3)Point p1, Point p2,Point p3
(4)(length1()+ length20+length3())/2
解析:(1)主要考查考生对函数形参的掌握,由函数的注释可知有本标点到达某个标点类的距离,再根据函数体return sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)),可知该标点类名为p,因此可以知道形参为Point&p.为了不改变该标点的值,前面要加上const。
(2)主要考查考生对构造函数的掌握,对于常变量型私有成员const Point p1.p2.只能用成员初始化列表进行赋值。
(3)主要考查考生对构造函数的掌握,由空格后面的语句:p1(p1),p2(p2),p3(p3){ },可知该构造函数需要进行成员列表初始化,再看类的私有成员const Point p1.p2,p3,可知p1,p2,p3是Point类型,因此形参为Point p1,Point p2, Point p3。
(4)主要考查考生对成员函数的掌握,根据函数注释,可知本函数要求计算三角形面积,再看题目的提示:s=(a+b+c)/2。可知空格处要填的是三角形的三条边之和除以2.而求边长的函数已经给出.这里直接调用即可。
综合应用题
3.请打开考生文件夹下的解决方案文件proj3,其中声明的DataList类,是一个用于表示数据表的类。sort成员函数的功能是将当前数据表中的元素升序排列。请编写这个sort函数。程序的正确输出应为:
排序前:7,1,3,11,6,9,12,10,8,4,5,2
排序后:1,2,3,4,5,6,7,8,9,10,11,12
要求:
补充编制的内容写在“//*******333*******”与“//*******666*******”两行之间。不得修改程序的其他部分。
注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序调用。
//DataList.h
#
本文档预览:3600字符,共5129字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载