C++面向对象程序设计模拟试题一Word文件下载.docx

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

C++面向对象程序设计模拟试题一Word文件下载.docx

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

C++面向对象程序设计模拟试题一Word文件下载.docx

2.抽象类可以用来直接创建对象。

()

3.内联函数中可以出现递归语句。

4.模板类与类模板的意义完全相同。

()

5.常对象只能调用常成员函数。

6.重载函数要求函数有相同的函数名,但具有不同的参数序列。

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

错填或不填均无分。

1.在用C++进行程序设计时,最好用()代替malloc。

2.函数模板中紧随template之后尖括号内的类型参数都要寇以保留字()。

3.编译时多态性可以用()函数实现。

4.拷贝构造函数用它所在类的()作为参数。

5.用关键字static修饰的类的成员称为()成员。

6.重载运算符“+”的函数名为()。

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

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

#include<

iostream>

usingnamespacestd;

classCArray

{

public:

CArray(intiArray[],intiSize):

m_pArray(iArray),m_iSize(iSize)

{

}

intGetSize()

returnm_iSize;

int&

operator[](intiIndex)

returnm_pArray[iIndex-1];

private:

int*m_pArray;

//指向一个数组空间

intm_iSize;

//数组元素个数

};

intmain()

ints[]={3,7,2,1,5};

CArrayoArray(s,5);

oArray[1]=9;

for(inti=1;

i<

=5;

i++)

cout<

<

oArray[i]<

"

;

cout<

endl;

return0;

}

上面程序的输出结果为:

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

template<

classType>

voidPrint(Typea[],intn)

for(inti=0;

n;

a[i]<

inta[]={5,6,8};

doubleb[]={6.8,9.6};

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

Print(b,2);

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

classCTest

CTest(intiVar):

m_iVar(iVar)

m_iCount++;

~CTest()

voidPrint()const;

staticintGetCount()

returnm_iCount;

intm_iVar;

staticintm_iCount;

intCTest:

m_iCount=0;

voidCTest:

Print()const

this->

m_iVar<

<

m_iCount<

CTestoTest1(6);

oTest1.Print();

CTestoTest2(8);

oTest2.Print();

CTest:

GetCount();

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

CTest(intiX=0,intiY=0,intiZ=0):

m_iZ(iZ)

m_iX=iX;

m_iY=iY;

voidPrint()

m_iX<

m_iY<

voidPrint()const

m_iZ<

intm_iX,m_iY;

constintm_iZ;

CTestoTest1;

CTestoTest2(1,6,8);

constCTestoTest3(6,0,18);

oTest3.Print();

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

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

//1

//2

//3

classCTest//4

{//5

//6

CTest(intiVar=0):

m_iArr(iVar)//7

{//8

构造函数:

"

m_iArr<

//9

}//10

//11

void~CTest()//12

{//13

析造函数:

//14

}//15

//16

//17

intm_iArr;

//18

//19

//20

//21

intmain()//22

{//23

CTestoTest1,oTest2(8);

//24

//25

//26

//27

}//28

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

CTest(intiA=0,intiB):

m_iA(iA),m_iB(iB)//7

}//9

//10

voidShow()//11

{//12

m_iA<

"

m_iB<

//13

}//14

//15

//16

intm_iA,m_iB;

//17

//18

//19

//20

intmain()//21

{//22

CTestoTest(12,16);

//23

oTest.Show();

//24

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

CTest(intiVar=0)//7

m_iVar=iVar//9

voidPrint()const//12

m_iVar<

//14

constintm_iVar;

//18

constCTestoTest(16);

oTest.Print();

//26

//27

//28

}//29

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

classCBase//4

CBase(intiBase=0):

m_iBase(iBase)//7

virtualvoidShow()=0;

//12

//13

intGet()const//14

{//15

returnm_iBase;

//16

}//17

//19

intm_iBase;

//20

//22

classCDerive:

publicCBase//23

{//24

//25

CDerive(intiBase=0,intiDerive=0):

CBase(iBase)//26

{//27

m_iDerive=iDerive;

//28

}//29

//30

voidShow()//31

{//32

CBase:

Get()<

m_iDerive<

//33

}//34

//35

//36

intm_iDerive;

//37

//38

//39

intmain()//40

{//41

CBaseobj(10);

//42

obj.Show();

//43

//44

}//45

六、编程题(本大题共2个小题,每小题8分,共16分)

1.编写一个函数模板,用于求参数的绝对值,并编写测试程序进行测试。

函数模板声明如下:

TypeAbs(TypetVar)

2.定义一个复数类CComplex,定义带有2个参数(其中一个为缺省参数)的构造函数,显示复数值的函数Show(),重载“+”运算符(用成员函数实现),并编写测试程序进行测试。

C++面向对象程序设计模拟试题一参考答案

1.B2.A3.A4.C5.C

6.D7.D8.D9.A10.A

1.参考答案:

2.参考答案:

×

3.参考答案:

4.参考答案:

5.参考答案:

6.参考答案:

new

class或typename

重载

对象

静态

operator+

97215

5686.89.6

61822

1

6

18

出错行:

第12行

原因:

析造函数不能有返回值类型

改正:

去掉void

第7行

带缺省值的参数应放在参数表的尾部,其后不允许出现不带缺省值的参数

CTest(intiA=0,intiB=0):

CTest(intiA,intiB=0):

CTest(intiA,intiB):

m_iA(iA),m_iB(iB)//7

第9行

常数据成员只能通过初始化表方式进行初始化。

去掉第9行,在第7行后加初始化表,即第9行改为:

m_iVar(iVar)//7

第42行

抽象类不能用来直接创建对象。

将第42行改为:

CDeriveobj(10);

1.参考程序:

if(tVar>

=0)returntVar;

elsereturn-tVar;

Abs(5)<

Abs(-5)<

Abs(2.5)<

Abs(-2.5)<

2.参考程序:

classCComplex

CComplex(doubledReal,doubledImage=0)

m_dReal=dReal;

m_dImage=dImage;

voidShow()

m_dReal;

if(m_dImage>

0)

{

cout<

+"

m_dImage<

i"

}

elseif(m_dImage<

-"

-m_dImage<

CComplexoperator+(constCComplex&

obj)

CComplexobjTemp(m_dReal+obj.m_dReal,m_dImage+obj.m_dImage);

returnobjTemp;

doublem_dReal,m_dImage;

CComplexobj1(2,6),obj2(3,8),obj3(0);

obj1.Show();

obj2.Show();

obj3.Show();

obj3=obj1+obj2;

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

当前位置:首页 > 幼儿教育 > 育儿知识

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

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