试卷详情
-
二级C++机试-62
-
[填空题]使用VC6打开考生文件夹下的工程test10_1,此工程包含一个源程序文件test10_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果为;
class Base
class D1
class D2
class D3
fin Base
源程序文件test10_1.cpp清单如下:
#include<iostream.h>
class Base
public:
Base( )cout<<"class Base"<<endl;
void f( )cout<<"f in Base"<<endl;
;
class D1:virtual public Base
public:
D1( )cout<<"class D1"<<endl;
void f( )cout<<"f in D1"<<endl;
;
/*********found**********/
class D2:public Base
public:
D2( )cout<<"class D2"<<endl;
;
/**********found**********/
class D3::public D1,public D2
public:
D3( )cout<<"class D3"<<endl;
;
void main( )
D3 d;
/**********found************/
d.f( );
-
[简答题]使用VC6打开考生文件夹下的工程test10_3,此工程包含一个源程序文件test10_3.cpp,其中定义了用于表示雇员信息的CEmployee类与表示公司信息的Company类,但这两个类的定义并不完整。请按要求完成下列操作。
(1)定义Cemployee类的私有数据成员name(大小为50的字符数组)和pay(double型数据),分别用于记录雇员姓名和月薪。请在注释“//**1**”之后添加适当的语句。
(2)完成Company类默认构造函数的定义,该构造函数将n值赋值给私有成员nam,并完成指针emp所指的n个 Cemployee对象空间的申请,请在注释“//**2**”之后添加适当的语句。
(3)完成Company类成员函数void Company::add(int code,charname[50],doublepay)的定义,该函数将某一雇员的编号 code、姓名name及月薪pay输入到公司信息中。请在注释“//**3**”之后添加适当的语句。
(4)完成Company类成员函数void Company::print( )的定义,使其以“_is paid_RMB for oue month”的格式输出公司内所有员工的月薪信息。请在注释“//**4**”之后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件test10_3.cpp清单如下:
#include<iostream.h>
#include<string.h>
class CEmployee
public:
void putname(char n[50])strcpy(name,n);)
void getname(char n[501)strcpy(n,name);)
void putpay(double d)pay=d;)
double getpay( )return pay;)
private:
//**1**
;
class Company
private:
-
[简答题]请编写一个函数inline long sum(int n),用递归函数完成运算:sum(n)=1*1+2*2+…n*n,递归表达式为 sum(n)=sum(n-1)+n2。
注意:部分源程序已存在文件test10_2.cpp中。
请勿修改主函数main和其他函数中的任何内容,仅在函数sum的花括号中填写若干语句。
文件test10_2.cpp的内容如下:
#include<iostream.h>
inline long sum(int n)
void main( )
int n;
cout<<"输入n:";
cin>>n;
cout<<"结果为:"<<sum(n)<<endl;