C++面向对象程序设期末试题.docx
《C++面向对象程序设期末试题.docx》由会员分享,可在线阅读,更多相关《C++面向对象程序设期末试题.docx(8页珍藏版)》请在冰豆网上搜索。
![C++面向对象程序设期末试题.docx](https://file1.bdocx.com/fileroot1/2023-7/5/9bec8349-b308-454d-8787-cd585fe12726/9bec8349-b308-454d-8787-cd585fe127261.gif)
C++面向对象程序设期末试题
C++面向对象程序设计模拟试题五
一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中,只有一个是苻合题目要求的。
请将其代码填写在题后的括号内。
错选,多选或未选均无分。
1.下列对类的构造函数和析构函数描述正确的是()。
A)构造函数可以重载,析构函数不能重载
B)构造函数不能重载,析构函数可以重载
C)构造函数可以重载,析构函数可以重载
D)构造函数不能重载,析构函数不能重载
2.在函数定义前加上关键字“inline”,表示该函数被定义为()。
A)重载函数B)内联函数
C)成员函数D)普通函数
3.下面有关重载函数的说明中,()是正确的。
A)重载函数必须具有不同的返回值类型
B)重载函数形参个数必须不同
C)重载函数一般具有不同的形参列表
D)重载函数名可以不同
4.下列有关类与对象的说法中,()是不正确的。
A)对象是类的一个实列
B)任何一个对象只能属于一个具体的类
C)一个类只能有一个对象
D)类和对象的关糸和数椐类型与变量的关糸类似
5.已知:
Print()函数是一个类的常成员函数,它无返回值,下列表示中,正确的是()。
A)voidPrint()const;B)constvoidPrint();
C)voidconstPrint();D)voidPrint(const)
6.假定Myclass为一个类,那么下列的函数说明中()为该类的析构函数。
A)void~Myclass();B)~Myclass(intn);
C)Myclass();D)~Myclass()
7.下面类的定义中有()处错误。
classmyclass
{
inti=0;
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
classBase
{
public:
virtualvoidFun(){cout<<"Base:
:
Fun"<};
classDerived:
publicBase
{
public:
voidFun(){cout<<"Derived:
:
Fun"<};
intmain()
{
Basea,*pb;
Derivedb;
;
pb->Fun();//调派生类的成员函数Fun(),以实现动态多态
return0;
}
4.编译时多态性可以用()函数实现。
5.使用new建立的动态对象在不用时应该用()删除,以便释放所占用空间。
//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
六、编程题(本大题共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;
}