c++面向对象的程序Word格式文档下载.docx
《c++面向对象的程序Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c++面向对象的程序Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
chars[]="
c++"
;
以下调用合法的是()。
Af1(&
m,&
s)Bf1(&
m,s)Cf1(m,s)Df1(m,&
s)
5.数组定义为"
inta[2][3]={{1,2,3},{4,5,6}};
"
则表达式*(a[1]+2)值为()。
A、3B、4C、5D、6
6、假定Person为一个类,则执行Personp1,p2(“tom”),*p3;
语句时,自动调用该类构造函数_________次。
A2B3C4D5
7.对类的构造函数和析构函数描述正确的是_________。
A构造函数可以重载,析构函数不能重载B构造函数不能重载,析构函数可以重载
C构造函数可以重载,析构函数也可以重载D构造函数不能重载,析构函数也不能重载
8.关于抽象描述不正确的是_________。
A数据抽象描述某类对象的属性或状态。
B代码抽象描述某类对象的共有的行为特征或具有的功能。
C抽象说明OOP方法更注重问题的实现过程而不注重问题的本质描述。
D抽象最终通过类的声明来实现
9.不能实现函数之间数据传递的是_________。
A全局变量B局部变量C静态变量D函数返回值
10.假定Cat为一个类,则该类的拷贝初始化构造函数的声明语句为_________。
ACat&
(Catx);
BCat(Cat&
x)CCat(Catx);
DCat(Cat*x)
11.为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为_________。
ApublicBprotectedCprivateDstatic
12.类的析构函数的作用是_________。
A一般成员函数B类的初始化C对象的初始化D对象被删除时的清理工作
13.对于常数据成员,下面描述正确的是_________。
A常数据成员可以不初始化,并且不能更新B常数据成员必须被初始化,并且不能更新
C常数据成员可以不初始化,并且可以被更新D常数据成员必须被初始化,并且可以被更新
14.对于下面定义的类Point,在函数f()中将对象成员x,y的值修改为5,6的语句应该是_________。
ClassPoint
{
public:
Point(intx1=0,inty1=0){x=x1;
y=y1}
voidSetPosition(intx1,inty1){x=x1;
private:
intx;
inty
;
}
voidf()
Point*ptr=newPoint(4,5);
__________________
}
APoint(5,6)Bptr->
Point(5,6)Cptr->
SetPosition(5,6)DABC都可以。
15.对下列语句正确的描述是_________。
Constint*x;
___//①
int*constx;
___//②
A语句①的含义是指针变量x不能更改B语句②的含义是指针变量x所指向的值不能更改
C语句②的含义是指针变量x不能更改D语句①和②是相同含义的不同定义方式
16.对于常成员函数,下面描述正确的是_________。
A类的成员函数可以操作常对象B类的成员函数不能操作常对象
C只有常成员函数可以操作常对象D在常成员函数中,常对象可以被更新
17.关于new运算符的错误的描述是_________。
A)使用运算符new创建对象数组时必须定义初始值
B)使用运算符new创建对象时,会调用类的构造函数
C)运算符new可以用来动态创建对象和对象数组
D)使用new运算符创建的对象可以使用运算符delete删除
18.下面_________的叙述不符合赋值兼容规则。
A)派生类的对象可以赋值给基类的对象B)基类的对象可以赋值给派生类的对象
C)派生类的对象可以初始化基类的引用D)派生类的对象的地址可以赋值给指向基类的指针
19.一个类的友元函数或友元类能够通过成员操作符访问该类的_________。
A)私有成员B)保护成员C)公用成员D)所有成员
20.下列关于友元的描述中,错误的是_________
A.友元函数可以访问该类的私有数据成员B.一个类的友元类的成员函数都是这个类的友元函数
C.友元可以提高程序的运行效率D.类与类之间的友元关系可以继承
21.下面对静态数据成员的描述中,正确的是_________。
A)静态数据成员可以在类体内进行初始化B)静态数据成员不可以被类的对象调用
C)静态数据成员不能受private控制符的作用D)静态数据成员可以直接用类名调用
22.使用指针动态申请数组float[10][25][9]语句应是
A.float(*fp)[10][25]=newfloat[25][9];
B.float*fp=newfloat[10][25][9];
C.float(*fp)[25][9]=newfloat[10][25][9];
D.float*fp=newfloat[25][9];
23.下列说法中错误的是_________。
A.公有继承时基类中的public成员在派生类中仍是public的
B.公有继承时基类中的private成员在派生类中仍是private的
C.私有继承时基类中的public成员在派生类中是private的
D.保护继承时基类中的public成员在派生类中是protected的
24.下列运算中,_________运算符在C++中不能重载。
A.?
:
B.+C.-D.<
=
25.派生类的构造函数的成员初始化列表中,不能包含_________。
A.基类的构造函数B.派生类中子对象的初始化C.基类中子对象的初始化D.派生类中一般数据成员的初始化
26.C++类体系中,不能被派生类继承的有_________。
A.构造函数B.虚函数C.静态成员函数D.赋值操作函数
27._________是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。
A.虚析构函数B.虚构造函数C.纯虚函数D.静态成员函数
28.在C++中,对虚基类构造函数的调用_________普通基类的构造函数.
A.总是先于B.总是后于C.按自然顺序D.按对象声明顺序
29.以下哪个基类中的成员函数表示纯虚函数_________
A.virtualvoidvf(int) B.voidvf(int)=0C.virtualvoidvf()=0 D.virtualvoidyf(int{}
30.在下列说法中,正确的是_________。
A.静态成员函数不能利用this指针
B.只有非静态成员才可以使用this关键字,因为静态成员没有this指针
C.构造函数和析构函数不接受任何参数,也不带有任何类型的返回值
D.虚机制在析构函数中仍然可以很好地工作,以实现多态性
﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉答案及评分标准﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉﹉
一、选择题(每题1分,共35分)
评分标准:
总分35分。
每答对1题,得1分;
答错或不答均不得分。
1.D2.B3.B4.C5.D6.A7.A8.C9.B10.B11.A12.D13.B14.C15.C
16.C17.A18.B19.D20.D21.D22.C23.B24.A25.C26.A27.C28.A29.C30.D
二、填空题(每空1分,共20分)
总分20分。
每答对1空,得1分;
1.OOD,OOP,OOT
2.指针P指针p指向的对象
3.块作用域类作用域
4.封装继承
5.数据成员函数成员
6.友元函数
7.参数类型参数个数函数名
8.publicprivateprotected或者公有私有保护
9.this当前对象
三、判断题(每题1分,共10分)
1.对2.对3.对4.错5.对6.错7.错8.对9.错10.对
四、读程题(每题3分共6分)
答案不完全,酌情扣分;
1.
B0:
display()
B1:
D1:
2.
ConstructorA!
5
ConstructorB!
0
6
7
DestructorB!
DestructorA!
五、简答题(每题4分,共8分)
答错或不答均不得分
1.多态性指是同样的消息被不同类型的对象接收产生不同的行为;
运行时的多态通过定义虚函数来实现。
2.浅拷贝只是简单的复制,而深拷贝则是复制资源。
六编程题
1.评分标准:
答案不完全未实现题目全部要求,以及存在错误酌情扣分;
满足题目全部要求给满分。
#include<
iostream.h>
#include"
string.h"
classstudent
student(char*sno1="
000"
char*sname1="
NoName"
intsage1=0)//形参不对扣一分,没有默认形参值扣一分
{
sno=newchar[8];
sname=newchar[8];
strcpy(sno,sno1);
strcpy(sname,sname1);
sno=sno1;
sname=sname1;
sage=sage1;
SNum++;
//没有SNum++;
扣一分
}
student(student&
s)//拷贝构造函数格式不正确扣一分
sno=newchar[];
//没有实现深拷贝扣两分
sname=newchar[];
strcpy(sno,s.sno);
strcpy(sname,s.sname);
sage=s.sage;
//没有