国家二级C++机试(操作题)模拟试卷497
基本操作题
1.请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:Name:Smith Age:21 ID:99999 Coure-Num:12 Record:970
注意:只修改每个“//ERROR****found****”下的那一行,不要改动程序中的其他内容。
#include
using namespace std;
class StudentInfo
{
protected:
//ERROR ********found********
char Name;
int Age;
int ID;
int CourseNum;
float Record;
public:
StudentInfo(char*name,intAge , int IDf int courseNum ,float record);
//ERROR********found********
void~StudentInfo(){)
float AVerageRecord(){
return Record/CourseNum;
}
void show()const{
cout<<\\
(1)char*Name:
(2)~StudentInfo(){}
(3)StudentInfo::StudentInfo(char*name,int age,int ID,int courseNum,float record)
解析:(1)主要考查考生对动态数组的掌握,由题目可知Name应该指向一个动态数组,而不是一个有效char型字符,因此要定义成char型指针。
(2)主要考查考生对析构函数的掌握,析构函数不需要函数返回类型,应把void去掉。
(3)主要考查考生对构造函数定义的掌握,构造函数也要使用作用域符号“::”。
简单应用题
2.请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,该工程中包含一个程序文件main.cpp,其中有类AutoMobile(“汽车”)及其派生类Car(“小轿车”)、Truck(“卡车”)的定义,还有主函数main的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:
车牌号:冀 ABC1234 品牌:ForLand 类别:卡车 当前档位:0 最大载重量:12
车牌号:冀 ABC1234 品牌: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<<\\
(1)strcpy(brand,the_brand)
(2)number=new char[strlen(the_number)+1]
(3)theBrand()
(4)const{return\\
解析:(1)主要考查考生对strcpy函数的掌握情况,在上一条语句程序给brand指针分配了空间,在这里要复制字符串the_brand,即strcpy(brand,the_brand);。
(2)主要考查考生对动态分配的掌握情况,参考brand指针的复制过程完成该语句,先给指针number分配空间,通过new来完成:number=new char[aden(the_number)+1];。
(3)主要考查考生对成员函数的掌握,由程序可知这里要输出的是品牌,因此调用成员函数theBrand()来输出品牌。
(4)主要考查考生对纯虚函数的掌握,根据纯虚函数的定义:virtual const char*category()const=0;,可知在这里要填写:const{return\\
综合应用题
3.请使用VC6或使用【答题】菜单打开考生目录proj3下的工程文件proj3,该文件中定义了用于表示日期的类Date、表示人员的类Person和表示职员的类Staff;程序应当显示:
张小丽123456789012345
但程序中有缺失部分,请按以下提示把缺失部分补充完整:
(1)在“//**1** ****found****”的下方是析构函数定义中的语句,它释放两个指针成员所指向的动态空间。
(2)在“//**2** ****found****”的下方是rename函数中的一个语句,它使指针name指向申请到的足够容纳字符串new—name的空间。
(3
本文档预览:3600字符,共6357字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载