国家二级C++机试(操作题)模拟试卷661
基本操作题
1.请打开考生文件夹下的解决方案文件proj1,该工程中包含程序文件mmn.cpp,其中有Salary(“工资”)类和主函数main的定义。程序中位于每个“//ERROR *******found*******”之后的一行语句行有错误,请加以改正。改正后程序的输出结果应为:
应发合计:3500应扣合计:67.5 实发工资:3432.5
注意:只修改每个“//ERROR *******found*******”下的那一行,不要改动程序中的其他内容。
#include<iostream>
using namespace std;
class Salary{
public:
Salary(const char}id,double the base,double the bonus,double the tax)
//ERROR *******found*******
:the base(base),the bonus(bonus),the tax(tax)
{
staff id=new char[strlen(id)+1],
strcpy(staff_id,id);
}
//ERROR *******found*******
~Salary(){delete * staffid;}
double getGrossPay()const{
return base+bonus,)//返回应发项合计
double getNetPay()const{return getGrossPay()-tax;}//返回实发工资额
private:
char * staff id; //职工号
double base;//基本工资
double bonus; //奖金
double tax, //代扣个人所得税
};
int main(){
Salary pay《”888888”,3000.0,500.0,67.50);
cout<<”应发合计:”<<pay.getGrosSPay()<<””;
cout<<”应扣合计:”<<pay.getGrossPay()-pay.getNetPay()<<””;
//ERROR *******found*******
cout<<。’实发工资:”<<pay::getNetPay()<<endl;
return 0;
}
(1):base(the_base), bonus(the_bonus), tax(the_tax)
(2)~Salary(){delete [ ]staff_id;}
(3)cout<<\\
解析:(1)主要考查考生对构造函数的掌握情况,构造函数的成员初始列表要把形参放在括号内。
(2)主要考查考生对析构函数的掌握情况,析构函数使用delete释放指针,delete后要跟标识符’[ ]’。
(3)主要考查考生对成员函数调用的掌握情况,调用类的成员函数使用标识符.,而不是作用域符’::’。
简单应用题
2.请打开考生文件夹下的解决方案文件proj2,此工程中包含一个程序文件main.cpp,其中有“部门”类Department和“职工”类Staff的定义,还有主函数main的定义。在主函数中定义了两个“职工”对象,他们属于同一部门。程序展示,当该部门改换办公室后,这两个人的办公室也同时得到改变。请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:
改换办公室前:
职工号:0789姓名:张三部门:人事处 办公室:521
职工号:0513姓名:李四部门:人事处 办公室:521
改换办公室后:
职工号:0789姓名:张三部 门:人事处 办公室:311
职工号:0513姓名:李四部门:人事处 办公室:311
注意:只在横线处填写适当的代码,不要改动程序中的其他内容。
#include<iostream>
using namespace std;
class Department( //“部门”类
public:
Department(const char * name,const char * office){
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,myname);
}
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<<”职工号:”<<staff.getID()<<””;
cout<<”姓名:”<<staff.getName()<<””;
cout<<”部门:”<<staff.getDepartment().getName()<<””;
cout<<”办公室:”<<staff.getDepartment().getOffice()(<endl;
}
int main(){
Department dept(”人事处”,”521”);
Staff Zhang(”0789”,”张三”,dept),Li(”0513”,”李四
本文档预览:3600字符,共5159字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载