C++面向对象程序设计模拟试题一.docx

上传人:b****8 文档编号:29398608 上传时间:2023-07-23 格式:DOCX 页数:18 大小:221.98KB
下载 相关 举报
C++面向对象程序设计模拟试题一.docx_第1页
第1页 / 共18页
C++面向对象程序设计模拟试题一.docx_第2页
第2页 / 共18页
C++面向对象程序设计模拟试题一.docx_第3页
第3页 / 共18页
C++面向对象程序设计模拟试题一.docx_第4页
第4页 / 共18页
C++面向对象程序设计模拟试题一.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C++面向对象程序设计模拟试题一.docx

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

C++面向对象程序设计模拟试题一.docx

C++面向对象程序设计模拟试题一

C++面向对象程序设计模拟试题一

一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项

中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均

无分。

1.说明虚函数的关键字是()。

A.inlineB.virtualC.defineD.static

2•在每个C++程序中都必须包含有这样一个函数,该函数的函数名为()。

A.mainB.MAINC.nameD.function

3.cout是某个类的标准对象的引用,该类是()。

A.ostreamB.istreamC.stdoutD.stdin

4.如果在类外有函数调用CPoint:

:

func();则函数func()是类CPoint的()。

A.私有静态成员函数B.公有非静态成员函数

 

5.

如果class类中的所有成员在定义时都没有使用关键字public、private或protected,

1.

虚函数在基类和派生类之间定义,且要求函数原型完全一致。

 

6.

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

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

错填或不填均无分。

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

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

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

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

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

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

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

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

#includeusingnamespacestd;

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<

}

cout<

return0;

}

上面程序的输出结果为:

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

#includeusingnamespacestd;

template

voidPrint(Typea[],intn)

{

for(inti=0;i

{

cout<

}

}

intmain()

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

doubleb[]={,};

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

Print(b,2);

cout<

return0;

}

上面程序的输出结果为:

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

#includeusingnamespacestd;

classCTest

{

public:

CTest(intiVar):

m_iVar(iVar)

{

m_iCount++;

}

~CTest()

{

}

voidPrint()const;

staticintGetCount()

{

returnm_iCount;

}

private:

intm_iVar;

staticintm_iCount;

};

intCTest:

:

m_iCount=0;

voidCTest:

:

Print()const{

cout<m_iVar<<""<m_iCount<<}

intmain()

{

CTestoTest1(6);

();

CTestoTest2(8);

();

cout<

:

GetCount();

cout<

return0;

面程序的输出结果为:

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

#include

usingnamespacestd;

classCTest

{

public:

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

m_iZ(iZ)

{

m_iX=iX;

m_iY=iY;

}

voidPrint()

{

cout<

cout<

voidPrint()const

{

cout<

private:

intm_iX,m_iY;

constintm_iZ;

};

intmain()

{

CTestoTest1;

();

CTestoTest2(1,6,8);

();

constCTestoTest3(6,0,18);

();

cout<

return0;

}

上面程序的输出结果为:

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

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

//1

#include

classCTest//4

{//5

public:

//6

CTest(intiVar=0):

m_iArr(iVar)

//7

{//8

cout<<"构造函数:

"<

}//10

//11

void~CTest()

//12

{//13

cout<<"析造函数:

"<

//14

}//15

//16

private:

//17

intm_iArr;//18

};//19

//20

//21

intmain()

//22

CTestoTest1,oTest2(8);

//24cout<

//25

//26return0;

//27

}//28

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

#include//1

usingnamespacestd;//2

//3classCTest//4

{//5

public:

//6

CTest(intiA=0,intiB):

m_iA(iA),m_iB(iB)

//7

{//8

}//9

//10voidShow()//11

{//12

cout<

//13

//17

//18

//19

//20

//22

//24

//26

//28

private:

//16

intm_iA,m_iB;

};

intmain()

//21

{

CTestoTest(12,16);

//23

();

cout<

//25

return0;

//27

}

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

//1

#include

 

//4

classCTest

public:

//6

CTest(intiVar=0)//7

{//8

m_iVar=iVar//9

}//10

//11

voidPrint()const

//12

{//13

cout<

//14

}//15

//16

private:

//17

constintm_iVar;

//18

};//19

//20

//21

intmain()

//22

constCTestoTest(16);

cout<

//26

return0;

//28

//29

}

}//17

//18private:

//19

intm_iBase;

//20

};//21

//22classCDerive:

publicCBase

//23

{//24

public:

//25

CDerive(intiBase=0,intiDerive=0):

CBase(iBase)

//26

{//27m_iDerive=iDerive;

//28

}//29

//30

voidShow()//31

{//32

cout<

:

Get()<<","<

//33private:

//36

intm_iDerive;

//37

};//38

//39intmain()//40

{//41

CBaseobj(10);//42

();//43return0;

//44

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

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

函数模板声明如下:

template

TypeAbs(TypetVar)

2.定义一个复数类CComplex,定义带有2个参数(其中一个为缺省参数)的构造函数,显

示复数值的函数Show(),重载“+”运算符(用成员函数实现),并编写测试程序进行测试。

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

、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项

 

无分。

 

二、判断正误题(本大题共

6小题,每小题2分,共12分)判断正误,在题后的括号内,

正确的划上“V”错误的划上“X”。

1参考答案:

2•参考答案:

X

3•参考答案:

X

4•参考答案:

X

5•参考答案:

6.参考答案:

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

错填或不填均无分。

1.参考答案:

new

2.参考答案:

class或typename

3•参考答案:

重载

4•参考答案:

对象

5•参考答案:

静态

6.参考答案:

operator*

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

1参考答案:

97215

2.参考答案:

5683.参考答案:

61822

4.参考答案:

0

0

1

6

18

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

1.参考答案:

出错行:

第12行

原因:

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

改正:

去掉void

2.参考答案:

出错行:

第7行原因:

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

CTest(intiA=0,intiB=0):

m_iA(iA),m_iB(iB)

//7

CTest(intiA,intiB=0):

m_iA(iA),m_iB(iB)

//7

CTest(intiA,intiB):

m_iA(iA),m_iB(iB)

3.参考答案:

出错行:

第9行原因:

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

改正:

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

CTest(intiVar=0):

m_iVar(iVar)

//7

4.参考答案:

出错行:

第42行原因:

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

改正:

将第42行改为:

CDeriveobj(10);

//42

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

1.参考程序:

#include

usingnamespacestd;

template

TypeAbs(TypetVar)

{

if(tVar>=0)returntVar;

elsereturn-tVar;

}

intmain()

cout<

cout<

cout<

cout<

return0;

}

2.参考程序:

#include

usingnamespacestd;

classCComplex

{

public:

CComplex(doubledReal,doubledImage=0){

m_dReal=dReal;

m_dImage=dImage;

}

voidShow()

{

cout<

if(m_dImage>0)

{

cout<<"+"<

elseif(m_dImage<0)

{

cout<<"-"<<-m_dImage<<"i"<

}

}

CComplexoperator+(constCComplex&obj)

{

CComplexobjTemp(m_dReal+,m_dImage+;returnobjTemp;

}

private:

doublem_dReal,m_dImage;

};

intmain()

{

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

();

();

();

obj3=obj1+obj2;

();

return0;

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

当前位置:首页 > 考试认证 > 从业资格考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1