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

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

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

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

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

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

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

一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中,只有一个是苻合题目要求的。

请将其代码填写在题后的括号内。

错选,多选或未选均无分。

1.下列对类的构造函数和析构函数描述正确的是(a)。

A)构造函数可以重载,析构函数不能重载

B)构造函数不能重载,析构函数可以重载

C)构造函数可以重载,析构函数可以重载

D)构造函数不能重载,析构函数不能重载

2.在函数定义前加上关键字“inline”,表示该函数被定义为(b)。

A)重载函数B)内联函数

C)成员函数D)普通函数

3.下面有关重载函数的说明中,(c)是正确的。

A)重载函数必须具有不同的返回值类型

B)重载函数形参个数必须不同

C)重载函数必须具有不同的形参列表

D)重载函数名可以不同

4.下列有关类与对象的说法中,(c)是不正确的。

A)对象是类的一个实列

B)任何一个对象只能属于一个具体的类

C)一个类只能有一个对象

D)类和对象的关糸和数椐类型与变量的关糸类似

5.已知:

Print()函数是一个类的常成员函数,它无返回值,下列表示中,正确的是(a)。

A)voidPrint()const;B)constvoidPrint();

C)voidconstPrint();D)voidPrint(const)

6.假定Myclass为一个类,那么下列的函数说明中(d)为该类的析构函数。

A)void~Myclass();B)~Myclass(intn);

C)Myclass();D)~Myclass()

7.下面类的定义中有(c)处错误。

classmyclass

{

inti=0;

public:

voidmyclass(){};

~myclass(value);

};

A)1B)2C)3D)4

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

A.inlineB.virtualC.defineD.static

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

A.ostreamB.istreamC.stdoutD.stdin

10.如果class类中的所有成员在定义时都没有使用关键字public、private或protected,则所有成员缺省定义为(c)。

A.publicB.protectedC.privateD.static

11.定义类模板时要使用关键字(d)。

A.constB.newC.deleteD.template

12一个类的所有对象共享的是(d)。

A.私有数据成员B.公有数据成员

C.保护数据成员D.静态数据成员

13.静态成员函数没有(b)。

A.返回值B.this指针C.指针参数D.返回类型

14.解决多重继承中二义性问题的方法有(c)。

A.只能使用作用域分辨操作符

B.使用作用域分辨操作符或赋值兼容规则

C.使用作用域分辨操作符或虚基类

D.使用虚基类或赋值兼容规则

15.如果在类CTest的外面函数调用CTest:

:

f();则函数f()是类CTest的(a)。

A.静态成员函数B.非静态成员函数

C.友元函数D.前面都不正确

二、判断正误题(本大题共5小题,每小题2分,共10分)判断正误,在题后的括号内,正确的划上“√”错误的划上”×”。

1.构造函数可以设置默认参数a

2.类的析构函数的作用是对象的初始化b

3.cout的默认输出对象是键盘,cin的默认输入对象是屏幕b

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

b

5.常对象可以调用任意成员函数。

b

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

1.重载运算苻”-”的函数名为(operator-)。

2.C++中类的用途有两种,一种是类的实例化,即生成类的对象,另一种是通过

(继承),派生出新的类。

3.在下面程序的横线处填上正确的语句,以实现动态多态。

#include

classBase

{

public:

virtualvoidFun(){cout<<"Base:

:

Fun"<

};

classDerived:

publicBase

{

public:

voidFun(){cout<<"Derived:

:

Fun"<

};

intmain()

{

Basea,*pb;

Derivedb;

;

pb->Fun();//调派生类的成员函数Fun(),以实现动态多态

return0;

}

4.编译时多态性可以用(虚基类)函数实现。

5.使用new建立的动态对象在不用时必须用(delete)删除,以便释放所占用空间。

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

1.若有以下程序:

#include

classA

{

inta;

public:

A(intaa=0){a=aa;}

~A(){cout<<"DestructorA!

"<

};

classB:

publicA

{

intb;

public:

B(intaa=0,intbb=0):

A(aa){b=bb;}

~B(){cout<<"DestructorB!

"<

};

intmain()

{

Bx(5),y(6,7);

return0;

}

上面程序的输出结果为:

2.若有以下程序:

#include

classPoint

{

intx,y;

public:

Point(){x=0;y=0;}

voidSetPoint(intx1,inty1){x=x1;y=y1;}

voidDisPoint(){cout<<"x="<

};

intmain()

{

Point*p=newPoint;

p->SetPoint(5,12);

p->DisPoint();

deletep;

return0;

}

上面程序的输出结果为:

 

3.若有以下程序:

#include

classSample

{

intn;

public:

Sample(inti){n=i;}

voidAdd(){s+=n;}

staticints;

voidDis(){cout<

};

intSample:

:

s=0;

intmain()

{

Samplea

(2),b(5),c(8);

a.Add();

b.Add();

c.Dis();

return0;

}

上面程序的输出结果为:

4.若有以下程序:

#include

classBase

{

public:

voidFun(){cout<<"1"<

};

classDerived:

publicBase

{

public:

voidFun(){cout<<"2"<

};

intmain()

{

Deriveda;

Base*p;

p=&a;

p->Fun();

a.Fun();

return0;

}

上面程序的输出结果为:

5.若有以下程序:

#include

template

voidFun(T1&x,T2&y)

{

if(sizeof(T1)>sizeof(T2))x=(T1)y;

elsey=(T2)x;

}

intmain()

{

doubled;

inti;

d=99.99;

i=88;

Fun(d,i);

cout<<"d="<

return0;

}

上面程序的输出结果为:

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

#include

usingnamespacestd;

classPoint

{

public:

Point(intx=0,inty=0):

m_x(x),m_y(y){}

intGetX()const{returnm_x;}

intGetY()const{returnm_y;}

voidSetX(intx){m_x=x;}

voidSetY(inty){m_y=y;}

private:

intm_x;//X坐标

intm_y;//X坐标

};

intmain(void)

{

PointoPoint1;

constPointoPoint2(3,4);

cout<

oPoint1.SetX

(1);

cout<

oPoint1.SetY

(2);

cout<

cout<

cout<

return0;

}

上面程序的输出结果为:

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

#include

classSample

{

inti;

public:

Sample();

voidDisplay();

~Sample();

};

Sample:

:

Sample()

{

cout<<"constructor"<<",";

i=0;

}

voidSample:

:

Display(){cout<<"i="<

Sample:

:

~Sample(){cout<<"destructor"<

intmain()

{

Samplea;

a.Display();

return0;

}

上面程序的输出结果为:

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

#include

usingnamespacestd;

classA

{

inta,b;

public:

A(){a=b=0;}

A(intaa,intbb)

{

a=aa;

b=bb;

cout<

}

};

intmain()

{

Ax,y(2,3);

return0;

}

上面程序的输出结果为:

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

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

#include//1

usingnamespacestd;//2

//3

classA//4

{//5

public:

//6

A(inti=0,intj):

mi(i),mj(j){}//7

voidShow(){cout<

private:

//9

intmi,mj;//10

};//11

//12

intmain()//13

{//14

Aobj(12,16);//15

obj.Show();//16

return0;//17

}//18

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

#include//1

usingnamespacestd;//2

//3

classA//4

{//5

public:

//6

A(inta):

m_a=a{}//7

voidShow()//8

{cout<

private:

//10

intm_a;//11

};//12

//13

intmain()//14

{//15

Aobj(8);//16

obj.Show();//17

return0;//18

}//19

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

#include//1

usingnamespacestd;//2

//3

classTest//4

{//5

public:

//6

Test(intiVar=0):

m_iArr(iVar)//7

{cout<<"构造函数:

"<

void~Test()//9

{cout<<"析造函数:

"<

//11

private:

//12

intm_iArr;//13

};//14

//15

intmain()//16

{//17

Testobj1,obj2(8);//18

cout<

return0;//20

}//21

六、编程题(本大题共2小题,每小题10分,共20分)

1.设计一个类DateInfo,要求其满足下述要求:

(1)要求有一个无参的构造函数,其初始的年、月、日分别为:

2010,6,8。

(2)要求有一个带参数的构造函数,其参数分别对应年、月、日。

(3)要求用一个成员函数实现日期的设置。

(4)要求用一个成员函数实现输出日期。

要求用一个成员函数实现日期的获取。

2.定义一个复数类Complex,二个数据成员为double型r,i为private属性。

定义代二个参数的构造函数和一个Show()函数用以输出r,i的值,另外作为成员函数重载的运算苻”+”的功能是将此类二个对象的数据成员r和i对应相加。

这些成员函数的属性均为public.请用C++编写此程序,并编写测试程序进行测试。

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

一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中,只有一个是苻合题目要求的。

请将其代码填写在题后的括号内。

错选,多选或未选均无分。

1.A)2.B)3.C)4.C)5.A)

6.D)7.C)8.B)9.A)10.C)

11.D)12.D)13.B)14.C)15.A)

二、判断正误题(本大题共5小题,每小题2分,共10分)判断正误,在题后的括号内,正确的划上“√”错误的划上”×”。

1.参考答案:

“√”

2.参考答案:

“×”

3.参考答案:

“×”

4.参考答案:

“×”

5.参考答案:

“×”

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

1.参考答案:

oprator-

2.参考答案:

继承

3.参考答案:

pb=&b

4.参考答案:

重载

5.参考答案:

delete

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

1.输出结果为:

DestructorB!

7

DestructorA!

6

DestructorB!

0

DestructorA!

5

2.输出结果为:

x=5,y=12

3.输出结果为:

7

4.输出结果为:

1

2

5.输出结果为:

d=88i=88

6.程序的输出结果为:

0

1

2

3

4

7.程序的输出结果为:

constructor,i=0,destructor

8.程序的输出结果为:

23

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

1.参考答案:

第7行应从右自左默认,应改为

A(inti,intj=0):

mi(i),mj(j){}

或改为

A(inti=0,intj=0):

mi(i),mj(j){}

2.参考答案:

第7行,改为A(inta):

m_a(a){}

3.参考答案:

第9行,析构函数无返回值类型(void类型也不行),应改为~CTest(){…}

六、编程题(本大题共2小题,每小题10分,共20分)

1.参考程序:

#include

usingnamespacestd;

classDateInfo

{

private:

intyear,month,day;

public:

DateInfo():

year(2010),month(6),day(8){}

DateInfo(inty,intm,intd):

year(y),month(m),day(d){}

voidSet(inty,intm,intd)

{

year=y;

month=m;

day=d;

}

voidShow(){cout<

};

intmain()

{

DateInfod1,d2(1988,8,18);

d1.Show();

d2.Show();

d2.Set(1999,9,19);

d2.Show();

return0;

}

2.参考程序:

#include

usingnamespacestd;

classComplex

{

private:

doubler,i;

public:

Complex(doublea,doubleb):

r(a),i(b){}

voidShow(){cout<

Complexoperator+(Complexobj)

{returnComplex(r+obj.r,i+obj.i);}

};

intmain()

{

Complexc1(3.5,4.5),c2(2.5,5.5),c3(0.0,0.0);

c3=c1+c2;

c3.Show();

return0;

}

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

当前位置:首页 > 求职职场 > 简历

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

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