国家二级C++机试(操作题)模拟试卷499
基本操作题
1.使用VC6打开考生文件夹proj1下的工程proj1,其中定义了一个CD类。程序中位于每个//ERROR***********found***********下的语句行有错误,请加以更正,不得修改程序的其他部分。更正后程序的输出应该是:
歌唱祖国30
义勇军进行曲95
注意:只能修改每个//ERROR***********found***********下的那一行,不要改动程序中的其他内容。
#include
#include
using namespace std;
class CD
{
char name[20];
int number;
public:
void init(char*aa,int bb)
{
//ERROR*****found*****
name=aa;
number=bb;
}
char*getName(){
//ERROR*****found*****
return*name;
}
int getNumber(){return number;}
void output(){
//ERROR*****found*****
cout<<name[20]<<’’<<number<<endl;
}
};
void main()
{
CD dx,dy;
dx.init(\\
(1)strcpy(name,aa);
(2)return name;
(3)cout<<name<<’’<<number<<endl:
解析:程序定义CD类,它包含两个数据成员:字符数组name和整型变量number;还包含四个公有成员函数,init()函数接收两个参数,用参数对数据成员进行赋值;getName()函数返回数据成员name;getNum.ber()函数返回数据成员number;output()函数将数据成员name和number输出。CD类的定义体中,有三个错误:
(1)init()函数将形参aa赋给name,由于name是字符数组,所以不能通过简单的赋值运算符进行赋值,应该使用strcpy()函数将形参aa指向的字符串拷贝到name中。
(2)getName()函数的返回值为char*类型,所以函数体的return语句应该返回name,而不是name指向的字符串。
(3)output()函数需要输出两个数据成员,输出字符数组时,只需要给出数组名name即可。
简单应用题
2.请使用VC6或使用【答题】菜单打开考生文件夹prog2下的工程prog2。此工程中包含一个程序文件main.cpp,其中有“部门”类Department和“职工”类Staff的定义,还有主函数main的定义。在主函数中定义了两个“职工”对象,他们属于同一部门。程序展示,当该部门改换办公室后,这两个人的办公室也同时得到改变。请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:
改换办公室前:
职工号:0789 姓 名:张三 部 门:人事处 办公室:521
职工号:0513 姓 名:李四 部 门:人事处 办公室:521
改换办公室后:
职工号:0789 姓 名:张三 部 门:人事处
办公室:311
职工号:0513 姓 名:李四 部 门:人事处 办公室:311
注意:只在横线处填写适当的代码,不要改动程序中的其他内容。
#include
using namespace std;
class Department{ //“部门”类
public:
Department(const char *
strcpy(this->name,name);
//**********found**********
}
const char*getName()const{return name;} //返回部门名称
//**********found**********
const char*getOffice()
const{_________) //返回办公室房号
void changeOfficeTo (const char*office){//改换为指定房号的另一个办公室
strcpy(this->office,office);
}
private:
char name[20]; //部门名称
char office[20]; //部门所在办公室房号
};
class Staff{ //“职工”类
public:
//**********found**********
Staff(const char*my id,const char*my_name,Department&my dept):_________{
strcpy(this->staff_id,my id);
strcpy(this->name,my_name);
}
const char*getID()const{return staff id;}
const char*getName()const{return name;}
Department getDepartment()const{return dept;}
private:
char staff id[10]; //职工号
char name[20];//姓名
Department&dept; //所在部门
};
void showStaff(Staff&staff){
cout<<\\
(1)strcpy(this->office,office);
(2)return office;
(3)dept(my_dept)
(4)dept.changeOfficeTo(\\
解析:(1)主要考查考生对strcpy函数的掌握情况,根据上一条语句:strcpy(this->name,name);可知,这条语句复制的是office,即strcpy(this->office,office);。
(2)主要考查考生对成员函数的掌握情况,根据语句的注释:返回办公室房号可知,要填写的是一条return语句。在私有成员里:char office[20];//部门所在办公室房号,表
本文档预览:3600字符,共4982字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载