};
[4]0;//为静态数据成员赋初值
intmain()
{
Testobj1,obj2,obj3;
Test:
:
Show();
return0;
}
五、编程题(本大题共2小题,第1小题12分,第2小题16分,共28分)
1.试使用函数模板实现求一个数组各元素的最小值,要求编写测试程序。
函数模板声明如下:
template
TypeMin(Typea[],intn);//求数组a各元素的最小值
2.编写程序,定义抽象基类Shape(形状),由它派生出3个派生类:
Circle(圆形)、Rectangle(矩形)和Square(正方形),用函数函数ShowArea()分别显示各种图形的面积,最后还要显示所有图形的总面积。
C++面向对象程序设计模拟试题四参考答巡查
一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.C)2.C)3.C)4.A)5.C)
6.A)7.B)8.D)9.A)10.A)
二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确的答案写在每小题的空格内。
错填或不填均无分。
1.参考答案:
基类
2.参考答案:
template
3.参考答案:
operator[]
4.参考答案:
对象
5.参考答案:
析构函数
三、程序分析题(本大题共6小题,每小题5分,共30分)给出下面各程序的输出结果。
1.参考答案:
ClassA
ClassB
ClassA
ClassB
ClassB
2.参考答案:
16916
3.参考答案:
1
2
3
4
3
4.参考答案:
A()
B()
B:
:
f()
~B()
~A()
5.参考答案:
constructor,i=0,destructor
6.参考答案:
00
23
四、完成程序填题(本大题共4个小题,每小题3分,共12分)下面程序都留有空白,请将程序补充完整。
1.参考答案:
[1]a(x)
2.参考答案:
[2]operatorint
3.参考答案:
[3]realPart+a.realPart,imagePart+a.imagePart或this->realPart+a.realPart,this->imagePart+a.imagePart
4.参考答案:
intTest:
:
count=
五、编程题(本大题共2小题,第1小题12分,第2小题16分,共28分)
1.参考程序:
#include
usingnamespacestd;
template
TypeMin(Typea[],intn)
{
Typem=a[0];
for(inti=1;iif(a[i]returnm;
}
intmain()
{
inta[]={1,2,3,4,5,6,7,8,9};
cout<return0;
}
2.参考程序:
#include
usingnamespacestd;
constdoublePI=3.1415926;
classShape
{
public:
Shape(){}
virtual~Shape(){}
virtualvoidShowArea()const=0;
staticdoubletotalArea;
staticvoidShowTotalArea(){cout<<"总面积:
"<};
classCircle:
publicShape
{
private:
doubleradius;
public:
Circle(doubler):
radius(r){totalArea+=PI*r*r;}
~Circle(){}
virtualvoidShowArea()const{cout<<"圆面积:
"<};
classRectangle:
publicShape
{
private:
doublelength;
doublewidth;
public:
Rectangle(doublel,doublew):
length(l),width(w){totalArea+=l*w;}
~Rectangle(){}
virtualvoidShowArea()const{cout<<"矩形面积:
"<};
classSquare:
publicShape
{
private:
doublelength;
public:
Square(doublel):
length(l){totalArea+=l*l;}
~Square(){}
virtualvoidShowArea()const{cout<<"正方形面积:
"<};
doubleShape:
:
totalArea=0;
intmain()
{
Circlec
(1);
c.ShowArea();
Rectangler(1,2);
r.ShowArea();
Squarez(3);
z.ShowArea();
Shape:
:
ShowTotalArea();
return0;
}