c++复习题答案讲课稿Word下载.docx
《c++复习题答案讲课稿Word下载.docx》由会员分享,可在线阅读,更多相关《c++复习题答案讲课稿Word下载.docx(19页珍藏版)》请在冰豆网上搜索。
6.下面有关静态成员函数的描述中,正确的是(B)
A.在静态成员函数中可以使用this指针
B.在建立对象前,就可以为静态数据成员赋值
C.静态成员函数在类外定义是,要用static前缀
D.静态成员函数只能在类外定义
7.下面有关友员函数的描述中,真确的说法是(A
A.友员函数是独立于当前类的外部函数
)
B.一个友员函数不可以同时定义为两个类的友员函数
C.友员函数必须在类的外部进行定义
D.在类的外部定义友员函数时必须加上friend关键字
1
C.C++函数必须有返回值,否则不能使用函数
D.C++程序中有调用关系的所有函数必须放在同一个程序文件中
8.友员的作用之一(A)
A.提高程序的运行效率
B.加强类的封装
C.实现数据的隐蔽性
D.增加成员函数的种类
9.使用派生类的主要原因是(A
A.提高代码的可重用性
C.加强类的封装性
B.提高程序的运行效率
D.实现数据的隐藏
10.在C++中继承方式有几中(C
A.1
B.2
C.3
D.4
11.派生类的对象对它的基类成员中(A)是可以访问的。
A.公有继承的公有成员;
C.公有继承的保护成员;
B.公有继承的私有成员;
D.私有继承的公有成员。
12.类中定义的成员默认为(B)访问属性。
A.public
B.private
C.protectedD.friend
13.下列存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速
度,选用(A
)合适。
A.内联函数;
B.重载函数;
C.递归调用;
D.嵌套调用。
14.C++对C语言作了很多改进,下列描述中(D)使得C语言发生了质变,从面向过程变成
了面向对象。
A.增加了一些新的运算符;
C.规定函数说明必须用原型;
B.允许函数重载,并允许设置缺省参数;
D.引进了类和对象的概念;
15.按照标识符的要求,(A)符号不能组成标识符。
A.连接符
B.下划线
C.大小写字母
D.数字字符
16.下列变量名中,(A
ACHINA
)是合法的。
Bbyte-size
Cdouble
DA+a
17.下列各种函数中,(C
)不是类的成员函数。
A构造函数B析构函数
C友元函数
D拷贝构造函数
18.下列(A
)是正确的语句。
A;
Ba=17
Cx+y
Dcout<
<
"
\n"
2
19.不能作为函数重载判断的依据的是(B)
A.返回类型B.const
C.参数个数
D.参数类型
20.通常,拷贝构造函数的参数是(C)
A.某个对象名
B.某个对象的成员名
D.某个对象的指针名
C.某个对象的引用名
21.下面对静态数据成员的描述中,正确的是(C)
A类的不同对象有不同的静态数据成员值
B类的每个对象都有自己的静态数据成员
C静态数据成员是类的所有对象共享的数据
D静态数据成员不能通过类的对象调用
22.假定AB为一个类,则执行ABx;
语句时将自动调用该类的(B)
A.有参构造函数
B.无参构造函数C.拷贝构造函数D.赋值构造函数
23.C++程序从上机到得到结果的几个操作步骤依次是(B
24.假定一条定义语句为“inta[10],x,*p=a;
”,若要把数组a中下标为3的元素值赋给
x,则不正确的语句为(D)。
A.x=p[3];
B.x=*(a+3);
C.x=a[3];
D.x=*p+3;
25.关于封装,下列说法中不正确的是(D)。
A.通过封装,对象的全部属性和操作结合在一起,形成一个整体
B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)
C.通过封装,每个对象都成为相对独立的实体
D.通过封装,对象的属性都是不可见的
26.预处理命令在程序中都是以(B
)符号开头的。
A.*
B.#
C.&
D.@
27.存储以下数据,占用存储字节最少的是(B
A.0
B.‘0’
C.“0”
D.0.0
28.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用(D
)符号作为分隔
3
A.编译、编辑、连接、运行
C.编译、运行、编辑、连接
B.编辑、编译、连接、运行
D.编辑、运行、编辑、连接
符。
A.空格或逗号
B.逗号或回车
C.逗号或分号
D.空格或回车
D.int*p=m;
29.假定变量m定义为“intm=7;
”,则定义变量p的正确语句为(B)。
A.intp=&
m;
B.int*p=&
C.int&
p=*m;
30.下面的哪个保留字不能作为函数的返回类型?
(C)
A.void
B.int
C.new
31.采用重载函数的目的是(D
A.实现共享
B.减少空间
C.提高速度
D.使用方便,提高可读性
32.假定AB为一个类,则(C
A.AB(ABx);
)为该类的拷贝构造函数的原型说明。
B.AB(intx);
C.AB(AB&
x);
D.voidAB(AB&
33、C++对C语言作了很多改进,下列描述中(D)使得C语言发生了质变,从面向过程变
成了面向对象。
34、所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这
实体也就是(A)。
A.类
B.对象
C.函数体
D.数据块
35、关于new运算符的下列描述中,(C)是错误的。
A、它可以用来动态创建对象和对象数组;
B、使用它创建的对象或对象数组可以使用运算符delete删除;
C、使用它创建对象时要调用构造函数;
D、使用它创建对象数组时必须指定初始值;
36、(D)不是构造函数的特征。
A、构造函数的函数名与类名相同;
B、构造函数可以重载;
C、构造函数可以设置缺省参数;
D、构造函数必须指定类型说明。
37、假定一个类的构造函数为B(intx,inty){a=x--;
b=a*y--;
},则执行Bx(3,5);
语句
后,x.a和x.b的值分别为(C)
A、3和5
B、5和3
C、3和15
D、20和5
4
A、增加了一些新的运算符;
B、允许函数重载,并允许设置缺省参数;
C、规定函数说明必须用原型;
D、引进了类和对象的概念;
38、关于成员函数特征的下列描述中,(A)是错误的。
A、成员函数一定是内联函数;
B、成员函数可以重载;
C、成员函数可以设置缺省参数值;
D、成员函数可以是静态的;
39、在公有继承的情况下,基类成员在派生类中的访问权限(B)。
A、受限制
B、保持不变
C、受保护
D、不受保护
40、友元的作用是(A)。
A、提高程序的运用效率;
B、加强类的封装性;
C、实现数据的隐藏性;
D、增加成员函数的种类;
41、在C++中,关于下列设置缺省参数值的描述中,(B)是正确的。
A、不允许设置缺省参数值;
B、在指定了缺省值的参数右边,不能出现没有指定缺省值的参数;
C、只能在函数的定义性声明中指定参数的缺省值;
D、设置缺省参数值时,必须全部都设置;
42、关于delete运算符的下列描述中,(C)是错误的。
A、它必须用于new返回的指针;
B、使用它删除对象时要调用析构函数;
C、对一个指针可以使用多次该运算符;
D、指针名前只有一对方括号符号,不管所删除数组的维数。
43、constint*p说明不能修改(C)。
A、p指针;
B、p指针指向的变量;
C、p指针指向的数据类型;
D、上述A、B、C三者;
44、当需要打开A盘上的以xxk.dat文件用于输入时,则定义文件流对象的语句为(B)。
A、fstreamfin(“A:
xxk.dat”,1)B、ifstreamfin(“A:
xxk.dat”,ios:
:
nocreate)
C、ofstreamfin(“A:
xxk.dat”)D、ifstreamfin(“A:
app)
45、派生类的对象对它的基类成员中(A)是可以访问的。
A、公有继承的公有成员;
B、公有继承的私有成员;
C、公有继承的保护成员;
D、私有继承的公有成员;
46、在inta=3;
*p=&
a;
中,*p的值是(D)。
5
A、变量a的地址值
B、无意义
C、变量p的地址值
D、3
47.下述静态数据成员的特征中,(D)是错误的。
A.说明静态数据成员时前边要加修饰符static;
B.静态数据成员要在类体外进行初始化;
C.引用静态数据成员时,要在静态数据成员名前加<
类名>
和作用域运算符;
D.静态数据成员不是所有对象所共用的。
48.(A)是析构函数的特征。
A.一个类中只能定义一个析构函数;
C.析构函数的定义只能在类体内;
B.析构函数与类名没有关系;
D.析构函数可以有各个或多个参数。
;
49.已知:
p是一个指向类A数据成员m的指针,A1是类A的一个对象。
如果要给m赋值为
5,(C)是正确的。
A.A1.p=5;
C.A.*p=5;
B.A1->
p=5;
D.*A1.p=5;
50.派生类的构造函数的成员初始化列中,不能包含(C)。
A.基类的构造函数;
B.派生类中子对象的初始化;
C.基类的子对象初始化;
D.派生类中一般数据成员的初始化
51.派生类的对象对它的基类成员中(A)是可以访问的。
A.公有继承的公有成员;
B.公有继承的私有成员;
C.公有继承的保护成员;
D.私有继承的公有成员。
52.C++类体系中,不能被派生类继承的有(A)。
A.构造函数
B.虚函数
C.静态成员函数
D.赋值操作函数
53.下面标识符中正确的是(A)。
A._abcB.3abC.int
D.+ab
54.下列哪项(D)不是面向对象程序设计的主要特征?
a.封装
b.继承