大学C++期末考试题库Word下载.docx
《大学C++期末考试题库Word下载.docx》由会员分享,可在线阅读,更多相关《大学C++期末考试题库Word下载.docx(73页珍藏版)》请在冰豆网上搜索。
D.在类的外部定义友员函数时必须加上friend关键字
15.友员的作用之一是()
A.提高程序的运行效率B.加强类的封装
C.实现数据的隐蔽性D.增加成员函数的种类
16.使用派生类的主要原因是()
A.提高代码的可重用性B.提高程序的运行效率
C.加强类的封装性D.实现数据的隐藏
17.在C++中继承方式有几中()
A.1B.2C.3D.4
18.假设已经定义好了类student,现在要定义类derived,它是从student私有派生的,则定义类derived的正确写法是()
A.classderived:
:
studentprivate{//………….}
B.classderived:
studentpublic{//………….}
C.classderived:
publicstudent{//………….}
D.classderived:
privatestudent{//………….}
19.派生类的对象对它的基类成员中()是可以访问的。
A.公有继承的公有成员;
B.公有继承的私有成员;
C.公有继承的保护成员;
D.私有继承的公有成员。
20.类中定义的成员默认为()访问属性。
A.publicB.privateC.protectedD.friend
21.下列存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()合适。
A.内联函数;
B.重载函数;
C.递归调用;
D.嵌套调用。
22.C++对C语言作了很多改进,下列描述中( )使得C语言发生了质变,从面向过程变成了面向对象。
A.增加了一些新的运算符;
B.允许函数重载,并允许设置缺省参数;
C.规定函数说明必须用原型;
D.引进了类和对象的概念;
23.按照标识符的要求,()符号不能组成标识符。
A.连接符B.下划线C.大小写字母D.数字字符
24.下列变量名中,()是合法的。
ACHINABbyte-sizeCdoubleDA+a
25.下列各种函数中,()不是类的成员函数。
A构造函数B析构函数C友元函数D拷贝构造函数
26.下列()是正确的语句。
A;
Ba=17Cx+yDcout<
<
"
\n"
27.不能作为函数重载判断的依据的是()
A.返回类型B.constC.参数个数D.参数类型
28.通常,拷贝构造函数的参数是()
A.某个对象名B.某个对象的成员名
C.某个对象的引用名D.某个对象的指针名
29.下面对静态数据成员的描述中,正确的是()
A类的不同对象有不同的静态数据成员值
B类的每个对象都有自己的静态数据成员
C静态数据成员是类的所有对象共享的数据
D静态数据成员不能通过类的对象调用
30.假定AB为一个类,则执行ABx;
语句时将自动调用该类的()
A.有参构造函数B.无参构造函数C.拷贝构造函数D.赋值构造函数
31.C++程序从上机到得到结果的几个操作步骤依次是()。
A.编译、编辑、连接、运行B.编辑、编译、连接、运行
C.编译、运行、编辑、连接D.编辑、运行、编辑、连接
32.假定一条定义语句为“inta[10],x,*p=a;
”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为()。
A.x=p[3];
B.x=*(a+3);
C.x=a[3];
D.x=*p+3;
33.关于封装,下列说法中不正确的是()。
A.通过封装,对象的全部属性和操作结合在一起,形成一个整体
B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)
C.通过封装,每个对象都成为相对独立的实体
D.通过封装,对象的属性都是不可见的
34.预处理命令在程序中都是以()符号开头的。
A.*B.#C.&
D.@
35.存储以下数据,占用存储字节最少的是()。
36.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用()符号作为分隔符。
A.空格或逗号B.逗号或回车C.逗号或分号D.空格或回车
37.假定变量m定义为“intm=7;
”,则定义变量p的正确语句为()。
A.intp=&
m;
B.int*p=&
C.int&
p=*m;
D.int*p=m;
38.下面的哪个保留字不能作为函数的返回类型?
。
A.voidB.intC.newD.long
39.采用重载函数的目的是()。
A.实现共享B.减少空间C.提高速度D.使用方便,提高可读性
40.假定AB为一个类,则()为该类的拷贝构造函数的原型说明。
A.AB(ABx);
B.AB(intx);
C.AB(AB&
x);
D.voidAB(AB&
41、C++对C语言作了很多改进,下列描述中( )使得C语言发生了质变,从面向过程变成了面向对象。
A、增加了一些新的运算符;
B、允许函数重载,并允许设置缺省参数;
C、规定函数说明必须用原型;
D、引进了类和对象的概念;
42、所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是()。
A.类B.对象C.函数体D.数据块
43、关于new运算符的下列描述中,( )是错误的。
A、它可以用来动态创建对象和对象数组;
B、使用它创建的对象或对象数组可以使用运算符delete删除;
C、使用它创建对象时要调用构造函数;
D、使用它创建对象数组时必须指定初始值;
44、( )不是构造函数的特征。
A、构造函数的函数名与类名相同;
B、构造函数可以重载;
C、构造函数可以设置缺省参数;
D、构造函数必须指定类型说明。
45、假定一个类的构造函数为B(intx,inty){a=x--;
b=a*y--;
},则执行Bx(3,5);
语句后,x.a和x.b的值分别为()
A、3和5B、5和3C、3和15D、20和5
46、关于成员函数特征的下列描述中,( )是错误的。
A、成员函数一定是内联函数;
B、成员函数可以重载;
C、成员函数可以设置缺省参数值;
D、成员函数可以是静态的;
47、在公有继承的情况下,基类成员在派生类中的访问权限( )。
A、受限制B、保持不变C、受保护D、不受保护
48、友元的作用是( )。
A、提高程序的运用效率;
B、加强类的封装性;
C、实现数据的隐藏性;
D、增加成员函数的种类;
49、在C++中,关于下列设置缺省参数值的描述中,( )是正确的。
A、不允许设置缺省参数值;
B、在指定了缺省值的参数右边,不能出现没有指定缺省值的参数;
C、只能在函数的定义性声明中指定参数的缺省值;
D、设置缺省参数值时,必须全部都设置;
50、关于delete运算符的下列描述中,( )是错误的。
A、它必须用于new返回的指针;
B、使用它删除对象时要调用析构函数;
C、对一个指针可以使用多次该运算符;
D、指针名前只有一对方括号符号,不管所删除数组的维数。
51、constint*p说明不能修改( )。
A、p指针;
B、p指针指向的变量;
C、p指针指向的数据类型;
D、上述A、B、C三者;
52、当需要打开A盘上的以xxk.dat文件用于输入时,则定义文件流对象的语句为()。
A、fstreamfin(“A:
xxk.dat”,1)B、ifstreamfin(“A:
xxk.dat”,ios:
:
nocreate)
C、ofstreamfin(“A:
xxk.dat”)D、ifstreamfin(“A:
app)
53、派生类的对象对它的基类成员中( )是可以访问的。
A、公有继承的公有成员;
B、公有继承的私有成员;
C、公有继承的保护成员;
D、私有继承的公有成员;
54、假定一个字符串的长度为n,则定义存储该字符串的字符数组的长度至少为()。
A、n-1B、nC、n+1D、n+2
55、在inta=3;
*p=&
a;
中,*p的值是( )。
A、变量a的地址值B、无意义C、变量p的地址值D、3
56、下列常量中,()不是字符常量。
A、’\005’B、’\n’C、’c’D、“a”
57、在inta=3,*p=&
A)变量a的地址值B)无意义C)变量p的地址值D)3
58、以下4个选项中,不能看作一条语句的是()。
A)if(b==0)m=1;
n=2;
B)a=0,b=0,c=0;
C)if(a>
0);
D){;
}
59、( )不是构造函数的特征。
A)构造函数的函数名与类名相同 B)构造函数可以重载
C)构造函数可以设置缺省参数 D)构造函数必须指定类型说明
60、以下程序段中与语句k=a>
b?
1:
0;
功能等价的是()。
A)if(a>
b)k=1;
B)if(a>
b)k=0
C)if(a>
D)if(a<
b)k=0;
elsek=0;
elsek=1;
61、下列常量中,()不是字符常量。
A)’\005’B)’\n’C)’c’D)"
a"
62、表示“x大于1而小于10”的逻辑表达式是()。
A)1<
x<
10B)x>
1&
&
10C)!
(x<
=1||x>
=10)D)x>
1||x<
10
63、关于成员函数特征的下列描述中,( )是错误的。
A)成员函数一定是内联函数 B)成员函数可以重载
C)成员函数可以设置缺省参数值 D)成员函数可以是静态的
64、有以下程序
#include<
iostream.h>
voidmain()
{inti,s=0;
for(i=1;
i<
10;
i+=2)s+=i;
cout<
s;
程序执行后的输出结果是()。
A)自然数1~9的累加和B)自然数1~10的累加和
C)自然数1~9中的奇数之和D)自然数1~10中的偶数之和
65、设有定义:
intn=0,*p=&
n,**q=&
p;
则以下选项中,正确的赋值语句是()。
A)p=1;
B)*q=2;
C)q=p;
D)*p=5;
66、()能正确输出结果:
C++。
A)chars[]="
C++"
;
s<
endl;
B)chars[3]="
C)chars[3]={'
C'
'
+'
\0'
};
D)chars[3]={'
67、有以下程序段
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a,b;
b=p[5];
b中的值是()。
A)5B)6C)8D)9
68、有以下程序
{char*p[10]={"
abc"
"
aabdfg"
dcdbe"
abbd"
cd"
p[3]<
执行后输出结果是
A)dcdbeB)abbdC)abcD)abb
69、下列静态数据成员的特性中,( )是错误的。
A)说明静态数据成员时前边要加修饰符static
B)静态数据成员要在类体外进行初始化
C)静态数据成员不是所有对象所共用的
D)引用静态数据成员时,要在其名称前加<
类名>
和作用域运算符
70、有以下语句
structS
{intg;
charh;
}T;
则下面叙述中不正确的是()。
A)S是结构体名B)该结构体包含2个成员
C)S是struct类型的变量D)T是structS类型的变量
71、派生类的对象对它的基类成员中( )是可以访问的。
A)公有继承的公有成员
B)公有继承的私有成员
C)公有继承的保护成员
D)私有继承的公有成员
72、实现运行时的多态性用。
A、重载函数B、构造函数C、析构函数D、虚函数
73.下列变量名中,()是合法的。
A.CHINAB.byte-sizeC.doubleD.A+a
74.在intb[][3]={{1},{3,2},{4,5,6},{0}};
b[2][2]的值是()。
A.0B.2C.5D.6
75.下列各运算符中,()优先级最高。
A.+(双目)B.*(单目)C.<
=D.*=
76.下列for循环的次数为()。
for(inti(0),x=0;
!
x&
=5;
i++)
A.5B.6C.1D.无限
77.下述关于break语句的描述中,()是正确的。
A.break语句可用于循环体内,它将退出该重循环。
B.break语句可用于开关语句中,它将退出开关语句。
C.break语句可用于if体内,它将退出if语句。
D.break语句在一个循环体内可以出现多次。
78.在一个被调用函数中,关于return语句使用的描述,()是错误的。
A.被调用函数中可以不用return语句。
B.被调用函数中可以使用多个return语句。
C.被调用函数中,如果有返回值,就一定要有return语句。
D.被调用函数中,一个return语句可返回多个值给调用函数。
79.在C++中,关于下列设置参数默认的描述中,()是正确的。
A.不允许设置参数的默认值。
B.设置参数默认值只能在定义函数时设置。
C.设置参数默认值时,应该是先设置右边的再设置左边的。
D.设置参数默认值时,应该全部参数都设置。
80.下列存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()合适。
A.内联函数B.重载函数C.递归调用D.嵌套调用
81.下列的各类函数中,()不是类的成员函数。
A.构造函数B.析构函数C.友元函数D.拷贝初始化构造函数
82.()不是构造函数的特征
A.构造函数的函数名与类名相同B.构造函数可以重载
C.构造函数可以设置缺省参数D.构造函数必须指定类型说明
83.f1(int)是类A的公有成员函数,p是指向成员函数f1()的指针,采用()是正确的。
A.p=f1B.p=A:
f1C.p=A:
f1()D.p=f1()
84.下列定义中,()是定义指向数组的指针p。
A.int*p[5]B.int(*p)[5]C.(int*)p[5]D.int*p[]
85.循环while(inti=0)i--;
执行次数是()。
A.0B.1C.5D.无限
86.设intx;
,则经过()后,语句*px=0;
可将x值置为0。
A.int*px;
B.intconst*px=&
x;
C.int*constpx=&
D.constint*px=&
87.设voidf1(int*m,long&
n);
inta;
longb;
则以下调用合法的是()。
A.f1(a,b);
B.f1(&
a,b);
C.f1(a,&
b);
D.f1(&
a,&
b)
88.关于对象概念的描述中,()是错误的。
A.对象就是C语言中的结构变量;
B.对象代表着正在创建的系统中的一个实体;
C.对象是一个状态和操作(或方法)的封装体;
D.对象之间的信息传递是通过消息进行的;
89.在下列double型常量表示中,()是错误的。
A.E15;
B..35;
C.3E5;
D.3E-5
90.下列给字符数组进行初始化中,()是正确的。
A.chars1[]="
12345abcd"
B.chars2[3]="
xyz"
C.chars3[][3]={‘a’,’x’,’y’};
D.chars4[2[3]={"
mnp"
91.对于int*pa[5];
的描述,()是正确的。
A.pa是一个指向数组的指针,所指向的数组是5个int型元素;
B.pa是一个指向某个数组中第5个元素的指针,该元素是int型变量;
C.pa[5]表示某个数组的第5个元素的值;
D.pa是一个具有5个元素的指针数组,每个元素是一个int型指针;
92.下列各运算符中,()优先级最低。
A.?
B.|C.||D.!
=
93.下列for循环的循环体执行次数为()。
for(inti(0),j(10);
i=j=4;
i++,j--)
A.0;
B.1;
C.4;
D.无限;
94.下述关于开关语句的描述中,()是正确的。
A.开关语句中default子句可以没有,也可以有一个;
B.开关语句中每个语句序列中必须有break语句;
C.开关语句中default子句只能放在最后;
D.开关语句中case子句后面的表达式可以是整形表达式。
95.下列存储类标识符中,()的可见性与存在性不一值。
A.外部类;
B.自动类;
C.内部静态类;
D.寄存器类。
96.下述静态数据成员的特征中,()是错误的。
A.说明静态数据成员时前边要加修饰符static;
B.静态数据成员要在类体外进行初始化;
C.引用静态数据成员时,要在静态数据成员名前加<
和作用域运算符;
D.静态数据成员不是所有对象所共用的。
97.()是析构函数的特征。
A.一个类中只能定义一个析构函数;
B.析构函数与类名不同;
C.析构函数的定义只能在类体内;
D.析构函数可以有各个或多个参数。
98.已知:
p是一个指向类A数据成员m的指针,A1是类A的一个对象。
如果要给m赋值为5,()是正确的。
A.A1.p=5;
B.A1->
p=5;
C.A.*p=5;
D.*A1.p=5;
99.关于new运算符的下列描述中,()是错的。
A.它可以用来动态创建对象和对象数组;
B.使用它创建的对象或对象数组可以使用运算符delete删除;
C.使用它创建对象时要调用构造函数;
D.使用它创建对象数组时必须指定初始值。
100.派生类的构造函数的成员初始化列中,不能包含()。
A.基类的构造函数;
B.派生类中子对象的初始化;
C.基类的子对象初始化;
D.派生类中一般数据成员的初始化
101.派生类的对象对它的基类成员中()是可以访问的。
A.公有继承的公有成员;
B.公有继承的私有成员;
C.公有继承的保护成员;
D.私有继承的公有成员。
102.C++类体系中,不能被派生类继承的有()。
A.构造函数B.虚函数C.静态成员函数D.赋值操作函数
103.下面标识符中正确的是()。
A._abcB.3abC.intD.+ab
104.下列哪项()不是面向对象程序设计的主要特征?
a.封装b.继承c.多态d.结构
105.已知i=5,j=0,下列各式中运算结果为j=6的表达式是()。
A.j=i+(++j)B.j=j+i++C.j=++i+jD.j=j+++i
106.若整型变量a、b、c、d中的值依次为:
1、4、3、2。
则条件表达式a<
a:
c<
d?
c:
d的值
A.1 B.2 C.3 D.4
107.以下不正确的是()。
A.语句for(i=0;
;
i++)表示无限循环B.for(;
)表示无限循环
C.for()也表示无限循环D.whil