面向对象程序设计考前练习及答案.docx
- 文档编号:30629402
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:39
- 大小:26.02KB
面向对象程序设计考前练习及答案.docx
《面向对象程序设计考前练习及答案.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计考前练习及答案.docx(39页珍藏版)》请在冰豆网上搜索。
面向对象程序设计考前练习及答案
面向对象程序设计考前练习
本试卷有3种题型共120小题,作答时间为90分钟,总分120分。
单选题 判断题 多选题
一、单选题(本部分共89题,每题1分,共89分)
1、
在类定义的外部,可以被访问的成员有()。
·A.所有类成员
·B.private的类成员
·C.public或private的类成员
·D.public的类成员
参考答案:
D
共137人答过,平均正确率55.47%
2、
下列关于C++语言类的描述中错误的是()。
·A.类用于描述事物的属性和对事物的操作
·B.类与类之间通过封装而具有明确的独立性
·C.类与类之间必须是平等的关系,而不能组成层次结构
·D.类与类之间可以通过一些方法进行通信和联络
参考答案:
C
共117人答过,平均正确率70.09%
3、
定义析构函数时,应该注意()。
·A.其名与类名完全相同
·B.返回类型是void类型
·C.无形参,也不可重载
·D.函数体中必须有delete语句
参考答案:
C
共116人答过,平均正确率68.97%
4、
下列函数中,正确的递归函数是()。
·A.intFun(intn){{if(n<1)?
return1;?
?
else?
returnn*Fun(n+1);}}
·B.intFun(intn){{if(abs(n)<1)?
return?
1;?
else?
return?
n*Fun(n/2);}}
·C.intFun(intn){{if(n>1)?
return1;?
else?
returnn*Fun(n*2);}}
·D.intFun(intn){{?
?
if(n>1)?
return1;else?
returnn*Fun(n-1);}}
参考答案:
B
共115人答过,平均正确率73.04%
5、
在C++中编译器所生成的文件的扩展名为()。
·A..cpp
·B..obj
·C..lib
·D..exe
参考答案:
B
共113人答过,平均正确率70.8%
6、
派生类的对象对它的基类成员中的()是可以访问。
·A.公有继承的公有成员
·B.公有继承的私有成员
·C.公有继承的保护成员
·D.私有继承的公有成员
参考答案:
A
共112人答过,平均正确率73.21%
7、
C++设置虚基类的目的是()。
·A.消除二义性
·B.简化程序
·C.提高运行效率
·D.减少目标代码
参考答案:
A
共112人答过,平均正确率71.43%
8、
以下关于this指针的叙述中正确的是()。
·A.任何与类相关的函数都有this指针
·B.类的成员函数都有this指针
·C.类的友员函数都有this指针
·D.类的非静态成员函数才有this指针
参考答案:
D
共107人答过,平均正确率63.55%
9、
实现运行时的多态性采用()。
·A.重载函数
·B.构造函数
·C.析构函数
·D.虚函数
参考答案:
D
共107人答过,平均正确率69.16%
10、
关于类定义格式的描述中,()是错的。
·A.一般类的定义格式分为说明部分和实现部分
·B.一般类中包含有数据成员和成员函数
·C.类中成员有三种访问数据:
公有、私有和保护
·D.成员函数都应是公有的、数据成员都应是私有的
参考答案:
D
共108人答过,平均正确率65.74%
11、
关于new运算符的下列描述中,()是错误的。
·A.它可以用来动态创建对象和对象数组
·B.使用它创建的对象或对象数组可以使用运算符delete删除
·C.使用它创建对象时要调用构造函数
·D.使用它创建对象数组时必须指定初始值
参考答案:
D
共108人答过,平均正确率63.89%
12、
在()情况下适宜采用inline定义内联函数。
·A.函数体含有循环语句
·B.函数体含有递归语句
·C.函数代码小,频繁调用
·D.函数代码多,不常调用
参考答案:
C
共107人答过,平均正确率75.7%
13、
定义析构函数时,应该注意()。
·A.其函数名与类名完全相同
·B.函数返回类型是void类型
·C.无形参,也不可重载
·D.函数体中必须有delete语句
参考答案:
C
共107人答过,平均正确率69.16%
14、
关于成员函数特征的下列描述中,()是错误的。
·A.成员函数一定是内联函数
·B.成员函数可以重载
·C.成员函数可以设置缺省参数值
·D.成员函数可以是私有的
参考答案:
A
共107人答过,平均正确率75.7%
15、
下列有关类的说法不正确的是()。
·A.类是一种用户自定义的数据类型
·B.只有类中的成员函数才能存取类中的私有数据
·C.在类中,如果不作特别说明,所有的数据均为私有类型
·D.在类中,如果不作特别说明,所有的成员函数均为公有类型
参考答案:
D
共107人答过,平均正确率69.16%
16、
在C++程序中,对象之间的相互通信通过()。
·A.继承实现
·B.调用成员函数实现
·C.封装实现
·D.函数重载实现
参考答案:
B
共107人答过,平均正确率72.9%
17、
对于任意一个类,析构函数的个数有()。
·A.0
·B.1
·C.不确定
·D.2
参考答案:
B
共107人答过,平均正确率70.09%
18、
在下列各函数中,不是类的成员函数的是()。
·A.构造函数
·B.析构函数
·C.友元函数
·D.拷贝构造函数
参考答案:
C
共107人答过,平均正确率71.96%
19、
在多基继承的构造函数定义中,几个基类的构造函数之间用()分隔。
·A.:
·B.
·C.,
·D.:
:
参考答案:
C
共107人答过,平均正确率70.09%
20、
若类A和类B的定义如下:
classA
{{
inti,j;
public:
voidget();
//...
}};
classB:
A
{{
intk;
public:
voidmake(int);
//...
}};
voidB:
:
make(intj)
{{
k=i*j;
}}
则上述定义中,非法的表达式是()。
·A.voidget()
·B.intk
·C.voidmake(int)
·D.k=i*j
参考答案:
D
共107人答过,平均正确率66.36%
21、
已知:
print函数是一个类的常成员函数,它无返回值,下列表示中正确的是()。
·A.constvoidprint()
·B.voidconstprint()
·C.voidprint(const)
·D.voidprint()const
参考答案:
D
共106人答过,平均正确率65.09%
22、
下列关于运算符重载的描述中,正确的叙述是()。
·A.运算符重载可以改变运算数的个数
·B.运算符重载可以改变语法结构
·C.运算符重载可以构造新的运算符
·D.运算符重载不可以改变优先级和结合性
参考答案:
D
共107人答过,平均正确率68.22%
23、
在类外部可以用p.a的形式访问派生类对象p的基类成员a,则a应是()。
·A.私有继承的公有成员
·B.公有继承的私有成员
·C.公有继承的保护成员
·D.公有继承的公有成员
参考答案:
D
共107人答过,平均正确率72.9%
24、
下列带缺省值参数的函数说明中,正确的说明是()。
·A.intFun(intx=1,inty=2,intz)
·B.intFun(intx,inty=2,intz=3)
·C.intFun(intx,inty=2,intz)
·D.intFun(intx=1,inty,intz=3)
参考答案:
A
共107人答过,平均正确率71.96%
25、
C++源程序文件的缺省扩展名为()。
·A.cpp
·B.exe
·C.obj
·D.lik
参考答案:
A
共107人答过,平均正确率71.96%
26、
存储以下数据,占用存储字节最多的是()。
·A.0
·B.‘0’
·C.“0”
·D.0.0
参考答案:
D
共107人答过,平均正确率68.22%
27、
字符串”a+b=12\n”的长度为()。
·A.6
·B.7
·C.8
·D.9
参考答案:
B
共107人答过,平均正确率66.36%
28、
switch语句能够改写为()语句。
·A.for
·B.if
·C.do
·D.while
参考答案:
B
共107人答过,平均正确率69.16%
29、
函数重载是指()。
·A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同
·B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同
·C.两个以上的函数名字不同,但形参的个数或类型相同
·D.两个以上的函数取相同的函数名,并且函数的返回类型相同
参考答案:
A
共107人答过,平均正确率76.64%
30、
编写C++程序一般需经过的几个步骤依次是()。
·A.编译、编辑、连接、调试
·B.编辑、编译、连接、调试
·C.编译、调试、编辑、连接
·D.编辑、调试、编辑、连接
参考答案:
B
共107人答过,平均正确率71.03%
31、
设“inta=15,b=26;”,则“cout<<(a,b);”的输出结果是()。
·A.15
·B.26,15
·C.15,26
·D.26
参考答案:
D
共107人答过,平均正确率67.29%
32、
下列的符号常量定义中,错误的定义是()。
·A.constM=10
·B.constintM=20
·C.constcharch
·D.constboolmark=true
参考答案:
C
共107人答过,平均正确率71.96%
33、
在下面循环语句中循环体执行的次数为()。
inti=0,s=0;while(s<20){{i++;s+=i;}}
·A.4
·B.5
·C.6
·D.7
参考答案:
C
共106人答过,平均正确率70.75%
34、
以下说法中正确的是()。
·A.C++程序总是从第一个定义的函数开始执行
·B.C++程序总是从main函数开始执行
·C.C++函数必须有返回值,否则不能使用函数
·D.C++程序中有调用关系的所有函数必须放在同一个程序文件中
参考答案:
B
共106人答过,平均正确率68.87%
35、
假定p是具有double类型的指针变量,则表达式++p使p的值(以字节为单位)增加()。
·A.1
·B.4
·C.sizeof(double)
·D.sizeof(p)
参考答案:
C
共107人答过,平均正确率71.96%
36、
()是析构函数的特征。
·A.一个类中只能定义一个析构函数
·B.析构函数名与类名不同
·C.析构函数的定义只能在类体内
·D.析构函数可以有一个或多个参数
参考答案:
A
共106人答过,平均正确率75.47%
37、
关于delete运算符的下列描述中,()是错误的。
·A.它必须用于new返回的指针
·B.它也适用于空指针
·C.对一个指针可以连续使用多次该运算符
·D.指针名前只有一对方括号符,不管所删除数组的维数
参考答案:
C
共107人答过,平均正确率68.22%
38、
关于类成员函数的描述中,()是错的。
·A.类中可以说明一个或多个成员函数
·B.类中的成员函数只能定义在类体外
·C.定义在类体外的成员函数前加inline可以成为内联函数(内置函数)
·D.在类体外定义成员函数时,在函数名前除了加类名外,还需加作用域符
参考答案:
B
共107人答过,平均正确率69.16%
39、
假定有,则不正确的语句为()。
·A.BOOK*x=newbook
·B.BOOKx={{"C++Programming",27.0}}
·C.BOOK*x=newBOOK
·D.BOOK*x=book
参考答案:
A
共106人答过,平均正确率74.53%
40、
下列对引用的陈述中不正确的是()。
·A.每一个引用都是其所引用对象的别名,因此必须初始化
·B.形式上针对引用的操作实际上作用于它所引用的对象
·C.一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行
·D.不需要单独为引用分配存储空间
参考答案:
C
共107人答过,平均正确率74.77%
41、
面向对象程序设计思想的主要特征不包括()。
·A.继承性
·B.功能分解,逐步求精
·C.封装性和信息隐藏
·D.多态性
参考答案:
B
共107人答过,平均正确率74.77%
42、
类中定义的成员默认访问权限为()。
·A.public
·B.private
·C.protected
·D.friend
参考答案:
B
共107人答过,平均正确率69.16%
43、
构造函数在()时被调用。
·A.程序编译
·B.程序装入内存
·C.创建类
·D.创建对象
参考答案:
D
共106人答过,平均正确率68.87%
44、
关于构造函数,下面说法错误的是()。
·A.对用户来说,是否调用构造函数不可选,它由编译器在对象定义时自动完成
·B.构造函数也是类的一个成员函数,具有一般成员函数的特征,也可以被重载
·C.拷贝构造函数的作用是使用一个已经存在的对象去初始化一个新的同类的对象
·D.构造函数的函数名与类名相同,而且有返回值
参考答案:
D
共107人答过,平均正确率64.49%
45、
关于析构函数,说法错误的是()。
·A.与构造函数几乎正好相反,析构函数用于完成对象被删除前的清理工作
·B.析构函数在对象的生存期即将结束时由系统自动调用。
调用完成后,对象消失,相应的内存单元被释放
·C.是类的一个公有函数成员,它的函数名与类名相同,有返回值,可以接受任何参数
·D.通常,如果没有显式说明定义析构函,系统将自动生成默认析构函数,不做任何事情
参考答案:
C
共107人答过,平均正确率73.83%
46、
下列关于运算符重载的描述中,错误的是()。
·A.可以通过运算符重载在C++种创建新的运算符
·B.赋值运算符只能重载为成员函数
·C.运算符函数重载为类的成员函数时,第一操作数是该类对象
·D.重载类型转换运算符时不需要声明返回类型
参考答案:
A
共107人答过,平均正确率75.7%
47、
以下错误的C++标识符是()。
·A.AXH
·B._80
·C.3C
·D.main
参考答案:
C
共107人答过,平均正确率67.29%
48、
下列代码段声明了3个类
classPerson{{}};
classStudent:
publicPerson{{}};
classUndergraduate:
Student{{}};
下列关于这些类之间的关系的描述中,错误的是()。
·A.类Person是类Undergraduate的基类
·B.类Undergraduate从类Student公有继承
·C.类Student是类Person的派生类
·D.类Undergraduate是类Person的派生类
参考答案:
B
共106人答过,平均正确率71.7%
49、
对于继承,下面说法错误的是()。
·A.派生类会继承基类的全部数据成员和除了构造、析构函数之外的所有函数成员
·B.派生类会继承基类的全部数据成员和除了构造、析构函数之外的所有函数成员
·C.当基类中定义了带有形参表的构造函数时,派生类就应当定义构造函数并传递参数给基类的构造函数
·D.当类的继承方式为私有继承时,基类中公有、保护和私有成员都以私有成员身份出现在派生类中,派生类的其他成员可以直接访问它们
参考答案:
D
共106人答过,平均正确率66.04%
50、
下列字符串中不能作为C++标识符使用的是()。
·A.WHILE
·B.user
·C._lvar
·D.9stars
参考答案:
D
共106人答过,平均正确率65.09%
51、
已知枚举类型定义语句为:
enumToken{{NAME,NUMBER,PLUS=5,MINUS,PRINT=10}};则下列叙述中错误的是()。
·A.枚举常量NAME的值为0
·B.枚举常量NUMBER的值为1
·C.枚举常量MINUS的值为3
·D.枚举常量PRINT的值为10
参考答案:
C
共106人答过,平均正确率69.81%
52、
下列控制格式输入输出的操作符中,能够设置浮点数精度的是()。
·A.setprecision
·B.setw
·C.setfill
·D.showpoint
参考答案:
A
共106人答过,平均正确率75.47%
53、
执行语句序列时,若键盘输入1,则屏幕显示()。
·A.1
·B.2
·C.12
·D.123
参考答案:
C
共106人答过,平均正确率66.04%
54、
已知下列语句中的x和y都是int型变量,其中错误的语句()。
·A.x=y++
·B.x=++y
·C.(x+y)++
·D.++x=y
参考答案:
C
共106人答过,平均正确率74.53%
55、
已知:
intm=10;在下列定义引用的语句中,正确的是()。
·A.int&x=m
·B.inty=&m
·C.int&z
·D.int&t=&m
参考答案:
A
共106人答过,平均正确率72.64%
56、
下列函数原型声明中错误的是()。
·A.voidFun(intx=0,inty=0)
·B.voidFun(intx,inty)
·C.voidFun(intx,inty=0)
·D.voidFun(intx=0,inty)
参考答案:
D
共106人答过,平均正确率70.75%
57、
程序的输出结果是()。
·A.1
·B.11
·C.111
·D.什么也不输出
参考答案:
C
共106人答过,平均正确率69.81%
58、
判断字符型变量ch是否为大写英文字母,应使用逻辑表达式()。
·A.ch>='A'&ch<='Z'
·B.ch<='A'||ch>='Z'
·C.'A'<=ch<='Z'
·D.ch>='A'&&ch<='Z'
参考答案:
D
共106人答过,平均正确率69.81%
59、
下列关于类定义的说法中,正确的是()。
·A.类定义中包括数据成员和函数成员的声明
·B.类成员的缺省访问权限是保护的
·C.数据成员必须被声明为私有的
·D.成员函数只能在类体外进行定义
参考答案:
A
共106人答过,平均正确率76.42%
60、
使用输入输出操作符setw,可以控制()。
·A.输出精度
·B.输出宽度
·C.对齐方式
·D.填充字符
参考答案:
B
共106人答过,平均正确率68.87%
61、
有如下函数定义:
则变量x和y值分别是()。
·A.0和1
·B.1和1
·C.0和2
·D.1和2
参考答案:
C
共106人答过,平均正确率68.87%
62、
有如下程序:
运行时输出的结果是()。
·A.3
·B.constructordestructor
·C.copyconstructor
·D.3destructor
参考答案:
D
共106人答过,平均正确率66.04%
63、
下列选项中不符合良好程序设计风格的是()。
·A.源程序要文档化
·B.数据说明的次序要规范化
·C.避免滥用goto语句
·D.模块设计要保证高耦合、高内聚
参考答案:
D
共105人答过,平均正确率69.52%
64、
在面对对象方法中,实现信息隐蔽是依靠()。
·A.象的继承
·B.对象的多态
·C.对象的封装
·D.对象的分类
参考答案:
C
共106人答过,平均正确率73.58%
65、
已知一程序运行后执行的第一个输出操作是cout< ·A.1234 ·B.******1234 ·C.**********1234 ·D.1234****** 参考答案: B 共106人答过,平均正确率65.09% 66、 有如下程序: 运行时的输出结果是()。 ·A.3 ·B.10 ·C.12 ·D.15 参考答案: D 共105人答过,平均正确率62.86% 67、 若已经声明了函数原型“voidfun(inta,doubleb=0.0);”,则下列重载函数声明中正确的是()。 ·A.voidfun(inta=90,doubleb=0.0) ·B.intfun(inta,doubleB) ·C.voidfun(doublea,intB) ·D.boolfun(inta,doubleb=0.0) 参考答案: C 共105人答过,平均正确率75.24% 68、 有如下语句序列: 执行上面的语句序列输出字符$和*的个数分别是()。 ·A.0和25 ·B.0和26 ·C.1和25 ·D.1和26 参考答案: C 共105人答过,平均正确率73.33% 69、 有如下类声明: classFoo{{intdata}};则Foo类的成员data是()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 考前 练习 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)