C++面向对象程序设计模拟试题四Word格式.docx

上传人:b****2 文档编号:6042201 上传时间:2023-05-05 格式:DOCX 页数:17 大小:20.96KB
下载 相关 举报
C++面向对象程序设计模拟试题四Word格式.docx_第1页
第1页 / 共17页
C++面向对象程序设计模拟试题四Word格式.docx_第2页
第2页 / 共17页
C++面向对象程序设计模拟试题四Word格式.docx_第3页
第3页 / 共17页
C++面向对象程序设计模拟试题四Word格式.docx_第4页
第4页 / 共17页
C++面向对象程序设计模拟试题四Word格式.docx_第5页
第5页 / 共17页
C++面向对象程序设计模拟试题四Word格式.docx_第6页
第6页 / 共17页
C++面向对象程序设计模拟试题四Word格式.docx_第7页
第7页 / 共17页
C++面向对象程序设计模拟试题四Word格式.docx_第8页
第8页 / 共17页
C++面向对象程序设计模拟试题四Word格式.docx_第9页
第9页 / 共17页
C++面向对象程序设计模拟试题四Word格式.docx_第10页
第10页 / 共17页
C++面向对象程序设计模拟试题四Word格式.docx_第11页
第11页 / 共17页
C++面向对象程序设计模拟试题四Word格式.docx_第12页
第12页 / 共17页
C++面向对象程序设计模拟试题四Word格式.docx_第13页
第13页 / 共17页
C++面向对象程序设计模拟试题四Word格式.docx_第14页
第14页 / 共17页
C++面向对象程序设计模拟试题四Word格式.docx_第15页
第15页 / 共17页
C++面向对象程序设计模拟试题四Word格式.docx_第16页
第16页 / 共17页
C++面向对象程序设计模拟试题四Word格式.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C++面向对象程序设计模拟试题四Word格式.docx

《C++面向对象程序设计模拟试题四Word格式.docx》由会员分享,可在线阅读,更多相关《C++面向对象程序设计模拟试题四Word格式.docx(17页珍藏版)》请在冰点文库上搜索。

C++面向对象程序设计模拟试题四Word格式.docx

10.由于常对象不能被更新,因此(A)。

A)通过常对象只能调用它的常成员函数

B)通过常对象只能调用静态成员函数

C)常对象的成员都是常成员

D)通过常对象可以调用任何不改变对象值的成员函数

二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确的答案写在每小题的空格内。

错填或不填均无分。

1.对于派生类的构造函数,在定义对象时构造函数的执行顺序为:

先执行调用____基类_______的构造函数,再执行调用子对象类的构造函数,最后执行派生类的构造函数体中的内容。

2.声明类模板应使用关键字(template)。

3.重载的关系运算符和逻辑运算符的返回类型应当是(布尔型)。

4.在面向对象方法中,类的实例称为(对象)。

5.在类的对象被释放时,(析构)函数会被自动调用。

三、完成程序填题(本大题共3个小题,每小题3分,共9分)下面程序都留有空白,请将程序补充完整,

1.请完成下面的程序

#include<

iostream>

//预处理命令

usingnamespacestd;

//使用标准命名空间std

//测试静态成员类

classTest

{

private:

inta;

//数据成员

public:

Test(intx=0):

[1]{}//构造函数

voidShow(){cout<

<

"

a:

"

<

a<

endl;

}//显示数据成员之值

};

intmain(void)//主函数main(void)

Testobj(168);

//定义对象

obj.Show();

//显示数据成员之值

return0;

//返回值0,返回操作系统

}

2.请完成下面的程序

//预处理命令

//使用标准命名空间std

//整数类

classInteger

//数据成员

Integer(intx=0){a=x;

}//构造函数

[2](){returna;

}//类型转换函数(将类类型转换为整型)

intmain(void)//主函数main(void)

Integera=6;

//定义整数对象

cout<

//显示整数

//返回值0,返回操作系统

3.请完成下面的程序

//复数类

classComplex

doublerealPart;

//实部

doubleimagePart;

//虚部

Complex(doublereal=0,doubleimage=0):

realPart(real),imagePart(image){}//构造函数

doubleGetRealPart()const{returnrealPart;

}//返回实部

doubleGetImagePart()const{returnimagePart;

}//返回虚部

Complexoperator+(constComplex&

a)const//重载加法运算符+

{

returnComplex([3]);

//返回和

}

Complexa(1,2),b(2,6),c;

//定义复数对象

c=a+b;

//复数加法运算

a="

a.GetRealPart()<

+"

a.GetImagePart()<

i"

//显示a

b="

b.GetRealPart()<

b.GetImagePart()<

//显示b

c="

c.GetRealPart()<

c.GetImagePart()<

//显示c

四、程序分析题(本大题共4小题,每小题5分,共20分)给出下面各程序的输出结果。

1.阅读下面程序,写出输出结果。

classA

virtualvoidShow()const

{cout<

ClassA"

classB:

publicA

voidShow()const

ClassB"

voidShow(constA&

obj)

{obj.Show();

intmain(void)

Aa;

Bb;

Show(a);

Show(b);

A*p;

p=&

a;

p->

Show();

b;

B*q;

q=&

q->

//返回值0,返回操作系统

上面程序的输出结果为:

2.阅读下面程序,写出输出结果。

template<

classElemType>

voidShow(ElemTypea[],intn)

for(inti=0;

i<

n;

i++)

a[i]<

;

inta[]={1,6,9};

Show(a,sizeof(a)/sizeof(int));

Show(a,2);

//返回值0,返回操作系统

3.阅读下面程序,写出输出结果。

//预处理命令

//使用标准命名空间std

classMyClass

MyClass(){count++;

~MyClass(){count--;

staticintGetCount(){returncount;

staticintcount;

intMyClass:

count=0;

//初始化静态数据成员

MyClassobj1;

MyClass:

GetCount()<

MyClassobj2;

MyClassobj3;

obj1.GetCount()<

MyClass*p=newMyClass;

deletep;

//返回值0,返回操作系统

4.阅读下面程序,写出输出结果。

A(){cout<

A()"

~A(){cout<

~A()"

virtualvoidf(){cout<

A:

f()"

B(){cout<

B()"

~B(){cout<

~B()"

voidf(){cout<

B:

}

intmain(void)

Bobj;

A*p=&

obj;

f();

五、程序改错题(本大题共3小题,每小题5分,共15分)指出下面程序中的错误的行,说明错误原因,并加以改正。

1.下面程序中类的定义中有一处错误,请指出出错的行,说明错误原因,并加以改正。

//预处理命令//1

//使用标准命名空间std//2

//3

classTest//4

{//5

//6

voidTest(){cout<

构造函数"

}//7

~Test(){cout<

析造函数"

}//8

//9

//10

intmain(void)//11

{//12

Testobj;

//13

//14

//返回值0,返回操作系统//15

}//16

2.下面程序中有错误,请指出出错的行,说明错误原因,并加以改正。

//1

//2

classMyClass//4

MyClass(intx=0):

a(x){}//7

//8

voidShow()//9

}//10

//11

//12

//13

//15

intmain(void)//16

{//17

constMyClassoTest(18);

//18

oTest.Show();

//19

//20

//21

}//22

3.下面程序中类的定义中有一处错误,请指出出错的行,说明错误原因,并加以改正。

classA//4

virtualvoidShow()=0;

//7

publicA//10

{//11

B(inta=0):

x(a){}//13

voidShow()//15

{//16

cout<

x<

//17

}//18

//19

//20

intx;

//21

//22

//23

intmain(void)//24

{//25

Aobj(10);

//26

//27

//28

//29

}//30

六、编程题(本大题26分)

编写程序,定义抽象基类Shape(形状),由它派生出3个派生类:

Circle(圆形)、Rectangle(矩形)和Square(正方形),用函数函数ShowArea()分别显示各种图形的面积,最后还要显示所有图形的总面积。

C++面向对象程序设计模拟试题四参考答巡查

1.C2.C3.C4.A5.C

6.A7.B8.D9.A10.A

1.参考答案:

基类

2.参考答案:

template

3.参考答案:

bool或布尔型

4.参考答案:

对象

5.参考答案:

析构函数

[1]a(x)

[2]operatorint

[3]realPart+a.realPart,imagePart+a.imagePart或this->

realPart+a.realPart,this->

imagePart+a.imagePart

ClassA

ClassB

16916

1

2

3

4

A()

B()

f()

~B()

~A()

第7行“voidTest(){cout<

}”有错,构造函数没有返回值类型,应改为,应改为“Test(){cout<

}”。

第9行,第18行与第19行有错,常对象只能调用常成员函数,可将第18行的“constMyClassoTest(18);

”改为“MyClassoTest(18);

”;

或将第9行的“voidShow()”改为“voidShow()const”。

第26行“Aobj(10)”有错,Cbase是抽象类,不能直接生成对象,可改为“Bobj(10)”。

参考程序:

//预处理命令

//使用标准命名空间std

constdoublePI=3.1415926;

//定义常量PI

classShape

Shape(){}//构造函数

virtual~Shape(){}//析构函数

virtualShowArea()=0;

//显示面积

staticdoubletotalArea;

//总面积

staticvoidShowTotalArea(){cout<

总面积:

totalArea<

classCircle:

publicShape

doubleradius;

//半径

Circle(doubler):

radius(r){totalArea+=PI*r*r;

}//构造函数

~Circle(){}//析构函数

virtualShowArea(){cout<

圆面积:

PI*radius*radius<

};

//显示面积

classRectangle:

doublelength;

//长

doublewidth;

//宽

Rectangle(doublel,doublew):

length(l),width(w){totalArea+=l*w;

}//构造函数

~Rectangle(){}//析构函数

矩形面积:

length*width<

classSquare:

//边长

Square(doublel):

length(l){totalArea+=l*l;

}//构造函数

~Square(){}//析构函数

正方形面积:

length*length<

doubleShape:

totalArea=0;

//初始化totalArea

intmain(void)

Circlec

(1);

//定义圆对象

c.ShowArea();

//显示面积

Rectangler(1,2);

//定义矩形对象

r.ShowArea();

Squarez(3);

//定义正方形对象

z.ShowArea();

Sh

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2