国家二级C++机试(操作题)模拟试卷356
基本操作题
1.使用VC6打开考生文件夹projl下的工程pmjl,其中有“沙发”类Sofa和主函数main的定义。程序中位于每个,/ERROR**********found**********下的语句行有错误,请加以更正。更正后程序的输出应该是:
座位数:3
颜色:红色
注意:只能修改每爪//ERROR**********found**********下的那一行,不要改动程序中的其他内容。
#include
us ing namespace std;
class Sofa{ //“沙发”类
int seats; //座位数
char color[10];//颜色
public:
//ERROR**********found**********
Sofa(int S,const char*CO){
//ERROR**********found**********
if(CO=NULL)
color[0]=’\0’;
elSe
strcpy(color,CO);
}
//ERROR******found******
const char*getSeats()const{return seats;)
const chars getColor()const{return color;)
};
int main(){
Sofa safa(3);
cout<<“座位数:”<<safa.getSeats
()<<endl;
cout<<“颜色:”<<safa.getColor
()<<end1;
return 0,
}
(1)Sofa(int s,const char*co=“红色”):seats(s){
(2)if(co==NULL)
(3)int qetSeats()const{return seats; )
解析:程序定义Sofa类,它包含两个数据成员:字符数组color和整型变量seats;还包含一个构造函数,两个公有成员函数,getSeats()函数返回成员seats的值,getColor()函数返回字符数组color的地址
Sofa类的定义体中,有三个错误:
(1)Sofa类的构造函数错误:由main()函数中定义Sofa类对象时可知:构造函数虽然有两个参数,但是可以只传人一个整型变量,所以另一个参数co需要提供一个默认值,由题意可知程序运行结果输出颜色是红色,所以co的默认字符串值为“红色”;另外程序需要输出座位数:3,所以成员seats需要使用形参s完成初始化,构造函数体中并未对seats进行赋值。
(2)sofa类的构造函数中,需要根据形参co的值是否为空,完成color的赋值,此处的if判断需要使用相等关系运算符,而不是赋值运算符。
(3)成员函数getSeats()返回的是seats的值,所以返回值应该是int类型,而不是const char*类型。
简单应用题
2.请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,该工程中包含一个程序文件main.cpp,其中有类AutoMobile(“汽车”)及其派生类Car(“小轿车”)、Truck(“卡车”)的定义,还有主函数main的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:
车牌号:冀ABCl234 品牌:ForLand类别:卡车 当前档位:0最大载重量:12
车牌号:冀ABCl234 品牌:ForLand类别:卡车 当前档位:2最大载重量:12
车牌号:沪XYZ5678品牌:QQ类别:小轿车 当前档位:0座位数:5
车牌号:沪XYZ5678品牌:QQ类别:小轿车 当前档位:一1座位数:5
注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
#include
#include
#include
using namespace std;
class AutoMobile{ //“汽车”类
char*brand; //汽车品牌
char*number; //车牌号
int speed; //档位:1、2、3、4、5,空档:0,
倒档:一1
public:
AutoMobile(const char*the brand,
const char*the_number):speed(0){
brand=new char[strlen(the
brand)+1 ];
//**********found**********
_________;
//**********found**********
_________;
strcpy(number,the number);
}
~AutoMobile(){delete[]brand;
delete[]number;)
const char*theBrand()const{return brand;} //返回品牌名称
const char*theNumber()const{return number;) //返回车牌号
int currentSpeed()const{ return
speed;} //返回当前档位
void changeGearTo(int the_speed)
{ //换到指定档位
if(speed>=一1&&speed<=5)
speed=the_speed;
}
virtual const char*category()
const=0, //类别:卡车、小轿车等
virtual void show()const{
cout<<”车牌号:”<<theNumber()
//********** found**********
<<”品牌:”<<________
<<”类别:”<<category()
<<”当前档位:”<<currentSpeed();
}
},
class Car:public AutoMobile{
int seats;//座位数
public:
Car(const char*the_brand,const
char*the_number,int the_seats):
Au
本文档预览:3600字符,共7198字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载