题库 题库

【简答题】

(1)应添加“BA(intm){a=m;}”。
(2)应添加“PAl(intm,intn):BA(n){b=m;}”。
(3)应添力Ⅱ“PA2(intm,intn,intk):PAl(n,k){C=m;)”。
(4)应添加“cout<<geta()<<""<<getb()<<""<<c<

参考答案

使用VC++6.0打开考生文件夹下的源程序文件3.Cpp,其中定义了类BA、PA1和PA2,其中PA1类由BA类公有派生,PA2类由PA1类公有派生。上述3个类的定义并不完整,请按要求完成下列操作,将程序补充完整。 程序输出结果如下:
1O
5
1057
(1)定义类BA的构造函数,该构造函数有一个整型的参数m,在构造函数中将m赋值给数据成员A。请在注释1之后添加适当的语句。(2)定义类PA1的构造函数,该构造函数有两个整型的参数m和n,在构造函数中将m赋值给数据成员B,将n作为基类BA构造函数的参数值传人。请在注释2之后添加适当的语句。 (3)定义类PA2的构造函数,该构造函数有3个整型的参数m、n和k,在构造函数中请将m赋值给数据成员C,将n和k分别赋值给基类PA1构造函数的参数m和n。请在注释3之后添加适当的语句。(4)完成类PA2的成员函数show的定义,该函数调用基类成员函数,输出基类私有成员A、B及类PA2自身的数据成员C的值,上述3个值在输出时用空格隔开。请在注释4之后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
试题程序:
#inCluDE(iostrEAm.h>
ClAssBA
{
intA;
puBliC:
//********1********
intGEtA(){rEturnA;}
};
ClAssPAl:puBliCBA
{
intB;
puBliC:
//********2********
intGEtB(){rEturnB;}
};
ClAssPA2:puBliCPAl
{
intC;
puBliC:
//********3********
voiDshow()
{
//********4********
}
};
voiDmAin()
{
PA2A(7,5,10);
Cout<<A.GEtA()<<EnDl;
Cout<<A.GEtB()<<EnDl;
A.show();
}

相关试题

单选题 以下程序的输出结果是(  )。
#include
longfun(intn)
{longs;
if(n=-1‖n==2)s=2;
elses=n-fun(n-l):
returns;
}
voidmain(  ){cout<<fun(3);}
查看答案
单选题 下列关于成员函数特征的描述中,错误的是(  )。 查看答案
单选题 当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是(  )。 查看答案
单选题 下列关于模板形参的描述中,错误的是(  )。 查看答案
单选题 有如下类模板定义:
template
classBigNumber{
longn;
public;
BigNumber(Ti):n(i){}
BigNumberoperator+(BigNumberb){
returnBigNumber(n+b.n):
}
};
已知b1、b2是BigNumber的两个对象,则下列表达式中错误的是(  )。
查看答案
单选题 下列结构体类型说明和变量定义中正确的是(  )。 查看答案
单选题 下列选项中,不是C++关键字的是(  )。 查看答案
单选题 在下列字符中,不允许作为C++标识符的是(  )。 查看答案
单选题 数据库应用系统中的核心问题是(  )。 查看答案
单选题 下列关于模板的说法正确的是(  )。 查看答案
单选题 有下列程序:
#include
voidmain()
{char*a[]={"abcd","ef","gh","ijk");inti;
for(i=0;i<4;i++)printf("%C",*a[i]);
}
程序运行后的输出结果是(  )。
查看答案
单选题 以下类定义中可能会引起错误的语句是(  )。
classA
{
public:
~A(  ){}//1
inti;//2
private:
intj;//3
A(inti){i++;}//4
};
查看答案
单选题 以下程序不用第3个变量实现将两个数进行对调的操作,画线处应为(  )。
voidmain(  )
{inta,b;
scanf("%d%d",&a,&b);
cin>>a>>b;
cout<<"a="<<a<<"b="<
a=a+b;b=a-b;a=_____;
cout<<"a="<}
查看答案
单选题 关于函数中的<返回类型>。下列表述中错误的是(  )。 查看答案
单选题 需求分析阶段的任务是确定(  )。 查看答案
单选题 有如下程序:
#include
usingnamespacestd;
classXA{
inta;
public:
staticintb;
XA(intaa):a(aa){b++;}
~XA(){}
intget(){returna;}
};
intXA::b=0
intmain(){
XAdl(1),d2(3);
cout<<dl.get{}+d2.get{}+xa::b<
return0;
}
运行时的输出结果是(  )。
查看答案
单选题 有下列程序:
#include
intb=2;
intfun(int*k)
{b=*k+b;return(b);)
voidmain(  )
{inta[10]={1,2,3,4,5,6,7,8},i;
for(i=2;i<4;i++){b=fun(&a[i])+b;printf
("%d",b);}
printf("\n");
}
程序运行后的输出结果是(  )。
查看答案
单选题 计算斐波那契数列第n项的函数定义如下:
intfib(intn){
if(n==0)returnl;
elseif(n==l)return2:
elsereturnfib(n-1)+fib(n-2);
}
若执行函数调用表达式fib(2),函数fib被调用的次数是(  )。
查看答案
单选题 在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送(  )来实现。 查看答案
单选题 下列是软件调试技术的是(  )。 查看答案