大学C++期末考试题库及答案道客巴巴1Word格式文档下载.docx
《大学C++期末考试题库及答案道客巴巴1Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《大学C++期末考试题库及答案道客巴巴1Word格式文档下载.docx(101页珍藏版)》请在冰豆网上搜索。
18•假设已经定义好了类student,现在要定义类derived,它是从student私有派生的,则
定义类derived的正确写法是(D)
A.classderived:
:
studentprivate{//・}
B.classderived:
studentpublic{//・}
C・classderived:
publicstudent{//・}
D.classderived:
privatestudent{//・}
19•派生类的对象对它的基类成员中(C)是可以访问的。
A.公有继承的公有成员;
B.公有继承的私有成员:
C.公有继承的保护成员;
D.私有继承的公有成员。
20.类中定义的成员默认为(A)访问属性。
A.publicB.privateC.protectedD.friend
21•下列存储类标识符中,要求通过函数來实现一种不太复杂的功能,并且要求加快执行速度,选用(A)合适。
A.内联函数;
B.重载函数;
C.递归调用;
D.嵌套调用。
22.C++对C语言作了很多改进,下列描述中(D)使得C语言发生了质变,从面向过程变成了面向对象。
A.增加了一些新的运算符;
B.允许函数重载,并允许设置缺省参数;
C.规定函数说明必须用原型;
D.引进了类和对象的概念;
26•下列(A)是正确的语句。
A;
Ba二17Cx+yDcout〈〈〃\n〃
27•不能作为函数重载判断的依据的是(B)
A.返回类型B.const
28•通常,拷贝构造函数的参数是(C)
C.某个对象的引用名D.某个对象的指针名
29•下面对静态数据成员的描述中,正确的是(C)
A类的不同对象有不同的静态数据成员值
B类的每个对象都有自己的静态数据成员
C静态数据成员是类的所有对象共享的数据
D静态数据成员不能通过类的对象调用
30•假定AB为一个类,则执行ABx;
语句时将自动调用该类的(B)
A.
D.赋值构造函数
有参构造函数B.无参构造函数C.拷贝构造函数
31.C++程序从上机到得到结果的儿个操作步骤依次是(B)o
A.编译、编辑、连接、运行B.编辑、编译、连接、运行
C.编译、运行、编辑、连接D.编辑、运行、编辑、连接
32•假定一条定义语句为“inta[10],x,*p=a;
”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为(A)o
A.x=p[3];
B.x二*(a+3);
C.x=a[3]:
D.x=*p+3;
33•关于封装,下列说法屮不正确的是(D)。
A.通过封装,
B.通过封装,
C.通过封装,
D.通过封装,
对象的全部属性和操作结合在一起,形成一个整体一个对象的实现细节被尽可能地隐藏起来(不可见)每个对象都成为相对独立的实休
对象的属性都是不可见的
34•预处理命令在程序中都是以(B)符号开头的。
A.*B.#C・&
I).@
35•存储以下数据,占用存储字节最少的是(B)o
A.0B.©
C.“0”D.0.0
38•下面的哪个保留字不能作为函数的返回类型?
C
D.long
D•使用方便,提高可读性
A.voidB.intC・new
39•采用重载函数的目的是(B)o
A.实现共享B.减少空间C.提高速度
40•假定AB为一个类,贝叽C)为该类的拷贝构造函数的原型说明。
A.AB(ABx);
B.AB(intx);
C.AB(AB&
x);
D.voidAB(AB&
x):
41、C++对C语言作了很多改进,下列描述中(D)使得C语言发生了质变,从面向过程变成了面向对象。
A、增加了一些新的运算符;
B、允许函数重载,并允许设置缺省参数;
C、规定函数说明必须用原型;
D、引进了类和对象的概念;
42、所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是(A)。
A.类B.对象C.函数体D.数据块
43、关于new运算符的下列描述中,(C)是错误的。
A、它可以用来动态创建对象和对象数组;
B、使用它创建的对象或对象数组可以使用运算符delete删除;
c、使用它创建对象时耍调用构造函数;
D、使用它创建对象数组时必须指定初始值;
44、(D)不是构造函数的特征。
A、构造函数的函数名与类名相同;
B、构造函数可以重载;
C、构造函数可以设置缺省参数;
D、构造函数必须指定类型说明。
45、假定一个类的构造函数为B(intx,inty){a=x—;
b=a*y—则执行Bx(3,5):
语句后,x.a和x.b的值分别为(C)
A、3和5B、5和3C、3和15D、20和5
46、关于成员函数特征的下列描述中,(A)是错误的。
A、成员函数一定是内联函数;
B、成员函数可以重载;
C、成员函数可以设置缺省参数值;
D、成员函数可以是静态的;
47、在公有继承的情况下,基类成员在派生类中的访问权限(B)o
A、受限制B.保持不变C、受保护D、不受保护
48、友元的作用是(A)o
A、提高程序的运用效率;
B、加强类的封装性;
C、实现数据的隐藏性;
D、增加成员函数的种类;
49、在C++中,关于下列设置缺省参数值的描述中,(B)是正确的。
A、不允许设置缺省参数值;
B、在指定了缺省值的参数右边,不能出现没有指定缺省值的参数;
C、只能在函数的定义性声明中指定参数的缺省值;
D、设置缺省参数值时,必须全部都设置;
50、关于delete运算符的下列描述中,(C)是错误的。
A、它必须用于new返回的指针;
B、使用它删除对象时要调用析构函数;
C、对一个指针可以使用多次该运算符;
D、指针名前只有一对方括号符号,不管所删除数组的维数。
51、constint*p说明不能修改(C)。
A、p指针;
B、p指针指向的变量;
C、p指针指向的数据类型;
D、上述A、B、C三者;
52、当需要打开A盘上的以xxk.dat文件用于输入时,则定义文件流对象的语句为(B)o
A、fstreamfin(“A:
xxk・da,t”,1)B>
ifstreamfin(“A:
xxk・dat”,ios:
:
nocreate)C、ofstreomfin(“A:
xxk・dat”)D、ifstreamfin(“A:
xxk・dat"
ios:
app)
53、派生类的对象对它的基类成员中(A)是可以访问的。
A、公有继承的公有成员;
B、公有继承的私有成员;
C、公有继承的保护成员;
D、私有继承的公有成员;
54、假定一个字符串的长度为n,则定义存储该字符串的字符数组的长度至少为(C)o
55、在inta=3;
*p=&
a;
中,*p的值是(D)o
58、以下4个选项中,不能看作一条语句的是(B)。
A)
C)if(a>
0):
if(b==0)m=l;
n=2;
B)a=0,b=0,c=0;
59、(D)不是构造函数的特征。
A)构造函数的函数名与类名相同C)构造函数可以设置缺省参数
60、以下程序段中与语句k=a>
b?
A)if(a>
b)k=l:
b)k二1;
67、有以下程序段
inta[10]={l,2,3,4,5,6,7,8,9,10},*p=a,b;
b=p[5];
b中的值是(B)o
A)5B)6
68、有以下程序
ttinclude<
iostream・h>
voidmain()
{char*p[10]二{〃abc〃,“aabdfg"
"
dcdbe〃,“abbd〃,“cd〃};
cout<
<
p[3]<
endl;
}
执行后输出结果是B
A)dcdbeB)abbdC)abcD)abb
69、下列静态数据成员的特性中,(C)是错误的。
A)说明静态数据成员时前边要加修饰符static
B)静态数据成员要在类体外进行初始化
C)静态数据成员不是所有对象所共用的
D)引用静态数据成员时,要在其名称前加〈类名〉和作用域运算符
70、有以下语句structS{intg;
charh;
}T;
则下面叙述中不正确的是(C)o
A)S是结构体名B)该结构体包含2个成员
C)S是struct类型的变量D)T是structS类型的变量
71.派生类的对象对它的基类成员中(A)是可以访问的。
A)公有继承的公有成员
B)公有继承的私有成员
C)公有继承的保护成员
D)私有继承的公有成员
72.实现运行时的多态性用。
D
A、重载函数B、构造函数C、析构函数D、虚函数
73.下列变量名中,(A)是合法的。
A.CHINAB.byte-sizeC.doubleD.A+a
74.在intb[][3]={{l},{3,2},{4,5,6},{0}};
b[2][2]的值是(D)。
A.0B・2C・5D・6
75.下列各运算符中,(B)优先级最高。
A.+(双冃)B.*(单冃)C.〈二D.*二
76.下列for循环的次数为(B)0
for(inti(0),x二0;
!
x&
&
i〈二5;
i++)
A.5B・6C・1D・无限
77.下述关于break语句的描述中,(C)是正确的。
A.break语句可用于循环体内,它将退出该重循环。
B.break语句可用于开关语句中,它将退出开关语句。
C.break语句可用于if体内,它将退出if语句。
D.break语句在一个循环体内可以出现多次。
78.在一个被调用函数中,关于return语句使用的描述,(D)是错误的。
A.被调用函数中可以不用return语句。
B.被调用函数中口J以使用多个return语句。
C.被调用函数中,如果有返回值,就一定要有return语句。
D.被调用函数中,一个return语句可返回多个值给调用函数。
79.在C++中,关于下列设置参数默认的描述中,(C)是正确的。
A.不允许设置参数的默认值。
B.设置参数默认值只能在定义函数时设置。
C.设置参数默认值吋,应该是先设置右边的再设置左边的。
D.设置参数默认值吋,应该全部参数都设置。
80.下列存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用(A)合适。
81.
下列的各类函数中,(C)不是类的成员函数。
84.下列定义中,(A)是定义指向数组的指针p。
int*p[5]B.
int
(*p):
5]
C.
(int*)p[5]D.int*p[
85.
循环while(inti=0)
i__;
执行次数是(
A
)o
0B1
C・
5
D.
.无限
86.
设intx;
,则经过(
C
)后,
语句*px二0;
可将x值置为0。
int*px;
B・
intconst
*px=&
x;
int*constpx=&
const
87.
设voidfl(int*m,
long&
n)
;
inta;
longb;
则以下调用合法的是(B)
fl(a,b);
fl(&
a,
b);
fl(a,&
b)
88.
关于对象概念的描述中,(
A)是错误的c
1
A.对象就是C语言中的结构变量;
B.对象代表着正在创建的系统中的一个实体;
C.对象是一个状态和操作(或方法)的封装体;
D.对象之间的信息传递是通过消息进行的;
89.在下列double型常量表示中,(A)是错误的。
A.E15;
B..35;
C.3E5;
D.3E-5
90.下列给字符数组进行初始化中,(A)是正确的。
A.charsi[]二〃12345abcd"
;
B.chars2[3]=〃xyz〃;
C.chars3[][3]二{'
x‘,'
y‘};
D.chars4[2[3]二{〃xyz〃,;
91.对于int*pa[5];
的描述,(D)是正确的。
A.pa是一个指向数组的指针,所指向的数组是5个int型元素;
B.pa是一个指向某个数组中第5个元素的指针,该元素是int型变量;
C.pa[5]表示某个数组的第5个元素的值;
D.pa是一个具有5个元素的指针数组,每个元素是一个int型指针;
92.下列各运算符中,(A)优先级最低。
A.?
B.|C.||D・!
二
93.下列for循环的循环体执行次数为(D)。
for(inti(0),j(10);
i=j=4;
i++,j--)
A.0;
B1;
C.4;
D.无限;
94.下述关于开关语句的描述中,(A)是正确的。
A.开关语句中default子句可以没有,也可以有一个;
B.开关语句中每个语句序列中必须有break语句;
C.开关语句中default子句只能放在最后;
D.开关语句中case子句后面的表达式可以是整形表达式。
95.下列存储类标识符中,(C)的可见性与存在性不一值。
A.外部类;
B.自动类;
C.内部静态类;
D.寄存器类。
96.下述静态数据成员的特征中,(D)是错误的。
A.说明静态数据成员时前边要加修饰符static;
B.静态数据成员要在类体外进行初始化;
C.引用静态数据成员时,要在静态数据成员名前加〈类名〉和作用域运算符;
D.静态数据成员不是所有对象所共用的。
97.(A)是析构函数的特征。
A.一个类中只能定义一个析构函数;
B.析构函数与类名不同;
C.析构函数的定义只能在类体内;
D.析构函数可以有各个或多个参数。
98.已知:
p是一个指向类A数据成员m的指针,A1是类A的一个对象。
如果要给m赋值为
5,(C)是正确的。
A.Al.p=5;
B.Al->
p=5;
C.A.*p二5;
D.*Al.p二5;
99.关于new运算符的下列描述中,(D)是错的。
A.它可以用来动态创建对象和对象数组;
B.使用它创建的对象或对象数组可以使用运算符delete删除;
C.使用它创建对象时耍调用构造函数;
D.使用它创建对象数组时必须指定初始值。
100.派生类的构造函数的成员初始化列中,不能包含(C)o
A.基类的构造函数;
B.派生类中子对象的初始化;
C.基类的子对象初始化;
D.派生类中一般数据成员的初始化
101.派生类的对象对它的基类成员中(A)是可以访问的。
B.公有继承的私有成员;
D.私有继承的公有成员。
102.C++类体系中,不能被派生类继承的有(A)o
A.构造函数B.虚函数C.静态成员函数D.赋值操作函数
103.下面标识符中正确的是(A)o
A._abcB.3abC.intD.+ab
104.下列哪项(D)不是面向对象程序设计的主要特征?
a.封装b.继承c.多态d.结构
105.已知i二5,j二0,下列各式中运算结果为j二6的表达式是(A)o
A.j二i+(++j)B.j二j+i++C.j二++i+jD.j二j+++i
106.若整型变量a、b、c、d中的值依次为:
1、4、3、2o则条件表达式a<
a:
c<
d?
c:
d的值A
A.1B・2C・3D・4
107.以下不止确的是(C)o
A・语句for(i=0;
;
i++)表示无限循环B・for(;
)表示无限循环
C.for()也表示无限循环D.while
(1)表示无限循环
108.有如下程序:
intx二3;
do{
X-=2;
cout<
}while(!
(--x));
执行这个程序的输出结果是(C)o
A.1B.30C.1-2D.死循环
109.若有以下定义,则说法错误的是(D)o
int3二100,*p=&
a;
A.声明变量p,其中*表示p是一个指针变量
B.变量p经初始化,获得变量Q的地址
C.变量p只可以指向一个整形变量
D.变量p的值为100
110.下面关于数组的初始化正确的是(A)o
A.charstr[]={'
a\'
,b\'
\,c"
B.charstr[2]={\‘a\'
\'
b\'
c'
}
C・charstr[2][3]={{\‘a\'
b'
},{'
e'
d'
'
f\'
}}
D・charstr[]={\,a\J,\'
111.若已定义:
inta[]={0,1,2,3,4,5,6,7,8,9},*P=a,i:
其中0WiW9,则对a数组元素不正确的引用是(D)o
A.a[p~a]B.*(&
a[i])C.p[i]D.a[10]
112.存在定义inta[10],x,*pa;
若pa=&
a[0],下列的哪个选项和其他3个选项不是等价的?
(A)o
A.x=*pa;
B・x=*(a+l);
C・x=*(pa+l);
D・x=a[l]:
113.对数组名作函数的参数,下面描述正确的是(B)o
A.数组名作函数的参数,调用时将实参数组复制给形参数组。
B.数组名作函数的参数,主调函数和被调函数共用一段存储单元。
C.数组名作参数吋,形参定义的数组长度不能省略。
D.数组名作参数,不能改变主调函数中的数据。
114.关于静态成员的描述中,(B)是错误的。
A.静态成员可分为静态数据成员和静态成员函数。
B.静态数据成员定义后必须在类体内进行初始化。
C.静态数据成员初始化不使用其构造函数。
D.静态数据成员函数中不能直接引用非静态成员。
115.下列关于构造函数的描述中,错误的是(D)o
A.构造函数可以设置默认的参数B.构造函数在定义类对象的自动执行
C.构造函数可以是内联函数D.构造函数不可以重载
116•假设OneClass为一个类,则该类的拷贝初始化构造函数的声明语句为(C)。
A.OneClass(OneClassp):
B・OneClass&
(OneClassp):
C.OneClass(OneClass&
p);
D・OneClass(OneClass*p);
117.如果类A被说明成类B的友元,贝I」(D)o
A・类A的成员即类B的成员。
B.类B的成员即类A的成员。
C.类A的成员函数不得访问类B的成员。
D・类B不一定是类A的友元。
118、关于对象和类的关系,说法正确的是(C)o
A)同属于一类的对象,具有相同的数据成员和成员函数。
B)对象是具休,是类的对象,同其他变量一样,先定义后使用。
0同一类的不同对象,其具有的操作可不同,具体的操作也不同。
D)不同类的对象,可有相同的操作。
119、双精度浮点型的字节数是(D)o
A)4B)1C)0D)8
120、下列关于C++函数的说明中正确的是(D)o
A)内联函数就是定义在另一函数体内部的函数。
B)函数体的最后一条语句必须是RETURN语句。
0标准C++要求在调用一个函数Z前,必须先声明其原型。
D)编译器会根据函数的返冋值类型和参数表来区分函数的不同重载形式。
121、下列关于虚函数的说明中,正确的是(B)o
A)从虚基类继承的函数都是虚函数。
B)虚函数不得是静态成员函数。
0只能通过指针和引用调用虚函数。
D)抽象类中的成员函数都是虚函数。
122、下列符号中可以用作C++标识符的是(A)o
A)_radiusB)toolbarC)elseD)3room
123、结构化程序设计所规定的三种基木控制结构是(C)o
A)输入、处理、输出B)树形、网形、环形
C)顺序、选择、循环D)主程序、子程序、函数
124、下列语句中错误的是(B)o
A)constintbuffer二256;
B)constintin