Get清风C面向对象程序设计模拟试题5Word文档格式.docx
- 文档编号:17378647
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:16
- 大小:21.43KB
Get清风C面向对象程序设计模拟试题5Word文档格式.docx
《Get清风C面向对象程序设计模拟试题5Word文档格式.docx》由会员分享,可在线阅读,更多相关《Get清风C面向对象程序设计模拟试题5Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
public:
voidmyclass();
~myclass(value);
}
A)1B)2C)3D)4
8.说明虚函数的关键字是〔〕。
A.inlineB.virtualC.defineD.static
9.cout是某个类的标准对象的引用,该类是〔〕。
A.ostreamB.istreamC.stdoutD.stdin
10.如果class类中的所有成员在定义时都没有使用关键字public、private或protected,那么所有成员缺省定义为〔〕。
A.publicB.protectedC.privateD.static
11.定义类模板时要使用关键字〔〕。
A.constB.newC.deleteD.template
12一个类的所有对象共享的是〔〕。
A.私有数据成员B.公有数据成员
C.保护数据成员D.静态数据成员
13.静态成员函数没有〔〕。
A.返回值B.this指针C.指针参数D.返回类型
14.解决多重继承中二义性问题的方法有〔〕。
A.只能使用作用域分辨操作符
B.使用作用域分辨操作符或赋值兼容规那么
C.使用作用域分辨操作符或虚基类
D.使用虚基类或赋值兼容规那么
15.如果在类CTest的外面的非成员函数中采用CTest:
:
f()形式函数调用;
那么函数f()是类CTest的〔〕。
A.静态成员函数B.非静态成员函数
C.友元函数D.前面都不正确
二、判断正误题〔本大题共5小题,每题2分,共10分〕判断正误,在题后的括号内,正确的划上“√〞错误的划上〞×
〞。
1.构造函数可以设置默认参数
2.类的析构函数的作用是对象的初始化
3.cout的默认输出对象是键盘,cin的默认输入对象是屏幕
4.抽象类可以用来直接创立对象。
5.常对象可以调用任意成员函数。
三、填空题〔本大题共5小题,每题2分,共10分〕不写解题过程,将正确的答案写在每题的空格内,错填或不填均无分。
1.重载运算苻“-〞的函数名为()。
2.C++中类的用途有两种,一种是类的实例化,即生成类的对象,另一种是通过
(),派生出新的类。
3.在下面程序的横线处填上正确的语句,以实现动态多态。
#include<
iostream.h>
classBase
{
virtualvoidFun(){cout<
<
"
Base:
Fun"
<
endl;
}
};
classDerived:
publicBase
voidFun(){cout<
Derived:
intmain()
Basea,*pb;
Derivedb;
;
pb->
Fun();
//调派生类的成员函数Fun(),以实现动态多态
return0;
}
4.编译时多态性可以用〔〕函数实现。
5.使用new建立的动态对象在不用时应该用〔〕删除,以便释放所占用空间。
四、程序分析题〔本大题共8小题,每题3分,共24分〕给出下面各程序的输出结果。
1.假设有以下程序:
classA
inta;
A(intaa=0){a=aa;
~A(){cout<
DestructorA!
a<
classB:
publicA
intb;
B(intaa=0,intbb=0):
A(aa){b=bb;
~B(){cout<
DestructorB!
b<
Bx(5),y(6,7);
上面程序的输出结果为:
2.假设有以下程序:
classPoint
intx,y;
Point(){x=0;
y=0;
}
voidSetPoint(intx1,inty1){x=x1;
y=y1;
voidDisPoint(){cout<
x="
x<
"
"
y="
y<
Point*p=newPoint;
p->
SetPoint(5,12);
DisPoint();
deletep;
3.假设有以下程序:
classSample
intn;
Sample(inti){n=i;
voidAdd(){s+=n;
staticints;
voidDis(){cout<
s<
intSample:
s=0;
Samplea
(2),b(5),c(8);
a.Add();
b.Add();
c.Dis();
4.假设有以下程序:
classBase
1"
publicBase
2"
Deriveda;
Base*p;
p=&
a;
Fun();
a.Fun();
5.假设有以下程序:
#include<
template<
classT1,classT2>
voidFun(T1&
x,T2&
y)
if(sizeof(T1)>
sizeof(T2))x=(T1)y;
elsey=(T2)x;
doubled;
inti;
d=99.99;
i=88;
Fun(d,i);
cout<
d="
d<
i="
i<
endl;
6.阅读下面程序,写出输出结果。
iostream>
usingnamespacestd;
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;
intmain(void)
PointoPoint1;
constPointoPoint2(3,4);
oPoint1.GetX()<
oPoint1.SetX
(1);
oPoint1.SetY
(2);
oPoint1.GetY()<
oPoint2.GetX()<
oPoint2.GetY()<
7.阅读下面程序,写出输出结果。
classSample
inti;
Sample();
voidDisplay();
~Sample();
Sample:
Sample()
constructor"
;
i=0;
voidSample:
Display(){cout<
~Sample(){cout<
destructor"
Samplea;
a.Display();
8.阅读下面程序,写出输出结果。
classA
inta,b;
A(){a=b=0;
A(intaa,intbb)
{
a=aa;
b=bb;
cout<
'
Ax,y(2,3);
五、程序改错题〔本大题共3小题,共3处错,每改一错2分,共6分〕指出下面程序中错误,说明错误原因,并加以改正。
1.下面程序中类的定义中有一处错误,请指出出错的行,说明错误原因,并加以改正。
//1
//2
//3
classA//4
{//5
//6
A(inti=0,intj):
mi(i),mj(j){}//7
voidShow(){cout<
mi<
mj<
}//8
//9
intmi,mj;
//10
//11
//12
intmain()//13
{//14
Aobj(12,16);
//15
obj.Show();
//16
//17
}//18
2.下面程序中类的定义中有一处错误,请指出出错的行,说明错误原因,并加以改正。
//2
A(inta):
m_a=a{}//7
voidShow()//8
{cout<
m_a<
}//9
//10
intm_a;
//11
//13
intmain()//14
{//15
Aobj(8);
//16
//17
//18
}//19
3.下面程序中类的定义中有一处错误,请指出出错的行,说明错误原因,并加以改正。
classTest//4
//6
Test(intiVar=0):
m_iArr(iVar)//7
构造函数:
m_iArr<
}//8
void~Test()//9
析造函数:
}//10
//12
intm_iArr;
//13
//14
//15
intmain()//16
{//17
Testobj1,obj2(8);
//18
//19
//20
}//21
六、编程题〔本大题共2小题,每题10分,共20分〕
1.设计一个类DateInfo,要求其满足下述要求:
〔1〕要求有一个无参的构造函数,其初始的年、月、日分别为:
2021,6,8。
〔2〕要求有一个带参数的构造函数,其参数分别对应年、月、日。
〔3〕要求用一个成员函数实现日期的设置。
〔4〕要求用一个成员函数实现输出日期。
要求用一个成员函数实现日期的获取。
2.定义一个复数类Complex,二个数据成员为double型r,i为private属性。
定义代二个参数的构造函数和一个Show()函数用以输出r,i的值,另外作为成员函数重载的运算苻〞+〞的功能是将此类二个对象的数据成员r和i对应相加。
这些成员函数的属性均为public.请用C++编写此程序,并编写测试程序进行测试。
C++面向对象程序设计模拟试题五参考答案
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)
1.参考答案:
“√〞
2.参考答案:
“×
〞
3.参考答案:
4.参考答案:
5.参考答案:
三、填空题〔本大题共5小题,每题2分,共10分〕不写解题过程,将正确的答案写在每题的空格内,错填或不填均无分
oprator-
继承
pb=&
b
重载
delete
1.输出结果为:
7
6
0
5
2.输出结果为:
x=5,y=12
3.输出结果为:
7
4.输出结果为:
1
2
5.输出结果为:
d=88i=88
6.程序的输出结果为:
1
3
4
7.程序的输出结果为:
constructor,i=0,destructor
8.程序的输出结果为:
23
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(){…}
1.参考程序:
classDateInfo
intyear,month,day;
DateInfo():
year(2021),month(6),day(8){}
DateInfo(inty,intm,intd):
year(y),month(m),day(d){}
voidSet(inty,intm,intd)
year=y;
month=m;
day=d;
year<
年"
month<
月"
day<
日"
DateInfod1,d2(1988,8,18);
d1.Show();
d2.Show();
d2.Set(1999,9,19);
2.参考程序:
iostream>
classComplex
doubler,i;
Complex(doublea,doubleb):
r(a),i(b){}
r<
Complexoperator+(Complexobj)
{returnComplex(r+obj.r,i+obj.i);
Complexc1(3.5,4.5),c2(2.5,5.5),c3(0.0,0.0);
c3=c1+c2;
c3.Show();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Get 清风 面向 对象 程序设计 模拟 试题