A)“cout”是一个输出流对象B)“endl”的作用是输出回车换行
C)“<<”称作流提取运算符D)“x”是一个变量
56.下列关于this指针的叙述中,正确的是__________________。
A)任何与类相关的函数都有this指针B)类的非静态成员函数才有this指针
C)类的友元函数都有this指针D)类的成员函数都有this指针
57.下列运算符中,在C++语言中不能重载的是_______________
A)*B)>=C):
:
D)/
58.函数调用语句fun(a+b,3,max(n-1,b));中,实参的个数为_____________
A)3B)4C)5D)6
59.若有说明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;,则数值为9的表达式是_______。
A)*p+9B)*(p+8)C)*p+=9D)p+7
60.有关虚函数的说法不正确的是_______________。
A)只有类的成员函数才能说明为虚函数B)静态成员函数可以是虚函数
C)构造函数不能是虚函数D)析构函数可以是虚函数
61.逗号表达式a=4,b=6,a--,b--,a+b的值为_______________。
A)9B)8C)10D)6
62.下列运算符,不能重载为友元函数的是_______________。
A)=、()、[]、->B)+、-、++、--C)<、>、<=、>=D)+=、-=、*=、/=
63.表达式strcmp("box","boss")的值是_______________。
A)0B)正整数C)负整数D)不确定的数
64.编译预处理命令以_______________结尾。
A);B).C)\D)回车键
65.使用派生类的主要原因是_________。
A.提高程序的运行效率B.提高代码的可重用性C.加强类的封装性D.实现数据的隐藏
66.有关析构函数的说法不正确的是_________
A.析构函数有且只有一个B.析构函数无任何函数类型C.析构函数没有形参
D.析构函数的作用是在对象被撤消时收回先前分配的内存空间
67.友元的作用之一是__________。
A.提高程序的运行效率B.加强类的封装性C.实现数据的隐藏性D.增加成员函数的种类
68.通常拷贝构造函数的参数是__________。
A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名
69.如果在基类中将show声明为不带返回值的纯虚函数,正确的写法是________。
A.virtualshow()=0;B.virtualvoidshow();
C.virtualvoidshow()=0;D.voidshow=0virtual;
70.下面关于友元的描述中,错误的是_________。
A.友元函数可以访问该类的私有数据成员
B.一个类的友元类中的成员函数都是这个类的友元函数
C.友元可以提高程序的运行效率
D.类与类之间的友元关系可以继承
71.在C++中,_________运算符不能重载。
A.+B.?
:
C.-D.<=
72.下列关于运算符重载的描述中,________是正确的。
A.运算符重载可以改变操作数的个数B.运算符重载可以改变优先级
C.运算符重载可以改变结合性D.运算符重载不可以改变语法结构
73.能用友元函数重载的运算符是__________。
A.+B.=C.[]D.->
74.在声明类时,下面的说法正确的是_________。
A.可以在类的声明中给数据成员赋初值
B.数据成员的数据类型可以是register
C.private,public,protected可以按任意顺序出现
D.没有用private,public,protected定义的数据成员是公有成员
75.继承具有________,即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。
A.规律性B.传递性C.重复性D.多样性
76.在多重继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则___________。
A.完全相同B.完全不同C.部分相同,部分不同D.以上都不对
77.对虚函数的调用__________。
A.一定使用动态联编B.不一定使用动态联编C.一定使用静态联编D.必须使用动态联编
78.关于成员函数特征的下述描述中,_______是错误的。
A.成员函数一定是内置函数B.成员函数可以重载
C.成员函数可以设置参数的默认值D.成员函数可以是静态的
79.在C++中,打开一个文件就是将这个文件与一个________建立关联;关闭一个文件就取消这种关联。
A.类B.流C.对象D.结构
80.下列的各类函数中,_______不是类的成员函数。
A.构造函数B.析构函数C.友元函数D.拷贝构造函数
81.模板的使用是为了_________。
A.加强类的封装性B.提高代码的运行效率C.提高代码的可重用性D.实现多态性
82.下列表示引用的方法中,__________是正确的。
已知:
intm=10;
A.float&t=&m;B.int&y=10;C.int&z;D.int&x=m;
83.设置虚基类的目的是________。
A.简化程序B.消除二义性C.提高运行效率D.减少目标代码
84.对于类中定义的成员,其隐含访问权限为______________
A)publicB)privateC)staticD)protected
85.关于类和对象不正确的说法是__________
A)类是一种类型,它封装了数据和操作B)一个类的对象只有一个
C)对象是类的实例D)一个对象必属于某个类
86.声明一个类的对象时,系统自动调用一个函数;撤消对象之前,系统自动调用一个函数;该函数为______
A)成员函数;构造函数B)复制构造函数;析构函数
C)构造函数;析构函数D)析构函数;复制构造函数
87.当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的__________
A)private成员B)protected成员C)public成员D)友元
88.在C++中,要实现动态联编,必须使用_____________调用虚函数
A)类名B)派生类指针C)对象名D)基类指针
46.若一个类中含有纯虚函数,则该类称为__________________
A)抽象类B)纯基类C)派生类D)基类
89.当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式_______________
A)ios:
:
outB)ios:
:
inC)ios:
:
in|ios:
:
outD)ios:
:
binary
90.C++语言是从早期的C语言逐渐发展演变而来的,与C语言相比,它在求解问题方法上进行的最大改进是_______________
A)面向过程B)复用性C)安全性D)面向对象
91.下面有关重载函数的说法中正确的是_______________
A)重载函数必须具有不同的返回值类型;B)重载函数形参个数必须不同;
C)重载函数必须有不同的形参列表;D)重载函数名可以不同;
92.设置虚函数的目的是________________。
A)消除二义性B)简化代码C)提高运行效率D)减少目标代码
93.在C++语言程序中,对象之间的相互通信通过__________________
A)继承实现B)调用成员函数实现C)封装实现D)函数重载实现
94.考虑函数原型voidtest(inta,intb=7,charc=’*’),下面的函数调用中,属于不合法调用的是_______________
A)test(5)B)test(5,8)C)test(6,"#")D)test(0,0,’*’);
95.下面对友元函数描述正确的是_______________
A)友元函数的实现必须在类的内部定义B)友元函数是类的成员函数
C)友元函数破坏了类的封装性和隐藏性D)友元函数不能访问类的私有成员
96.下面叙述不正确的是________________
A)基类的保护成员在派生类中仍然是保护成员
B)基类的保护成员在公有派生类中仍然是保护成员
C)基类的保护成员在私有派生类中是私有成员
D)对基类成员的访问必须是无二义性
97.下面对静态数据成员的描述中,正确的是_______________
A)静态数据成员可以在类体内进行初始化B)静态数据成员不可以被类的对象调用
C)静态数据成员不能受private控制符的作用D)静态数据成员可以直接用类名调用
98.继承机制的作用是_______________
A)信息隐藏B)数据封装C)定义新类D)数据抽象
99.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是_______________
A)友元函数B)虚函数C)构造函数D)析构函数
100.下列关于虚基类的描述中,错误的是_______________
A)设置虚基类的目的是为了消除二义性;B)虚基类的构造函数在非虚基类之后调用;
C)若同一层包含多个虚基类,这些基类的构造函数按照它们的次序调用;
D)若虚基类由非基类派生而来,则仍然先调用基类构造函数,再用派生类的构造函数;
二、判断题
1.C++语言中,既允许单继承,又允许多重继承。
√
2.派生类是从基类派生出来,它还可以生成新的派生类。
3.派生类中至少包含了它的所有基类的成员(不包括构造函数和析构函数),在这些成员中可能有的是不可访问的。
4.虚函数是用virtual关键字说明的成员函数。
5.预处理过程是编译过程之前进行的。
6.共用体的所有成员共占同一段内存地址空间。
7.C++语言是一种以编译方式实现的高级语言。
8.运算符的优先级和结合性可以确定表达式的计算顺序。
9.switch语句可以嵌套,在switch语句的语句序列中还可以再有switch语句。
10.while循环语句的循环体可能一次也不执行
11.如果一个函数没有返回值,定义时需用void说明。
12.在设置了参数默认值后,调用函数的对应实参就可以省略。
13.C++语言中模板分为函数模板和类模板两种。
14.析构函数是一种没有返回值也没有参数的成员函数。
15.constchar*p;说明了p是指向字符串常量的指针变量。
16.C++语言规定对所有用到的变量要“先定义,后使用”。
17.向不同的对象发送同一个消息,不同的对象在接收时会产生不同的行为(即方法),这种现象称为多态性。
18.使用内联函数是以增大空间开销为代价的。
19.使几个不同的变量共占同一段内存的结构称为共用体。
20.指针变量一经赋值就指向了一个变量。
21.自增运算符(++)和自减运算符(--)只能用于变量。
22.派生类中继承的基类成员的访问权限取决于继承方式。
23.C++语言中模板分为函数模板和类模板两种。
24.构造函数和析构函数都不可以被继承。
25.将单目运算符重载为成员函数时,不需说明形参;将双目运算符重载为成员函数时,只能说明一个形参。
26.在对程序进行编译的过程中,不会发现注释中的拼写错误。
27.C++语言中的标识符严格区分大小写字母。
28.如果对静态存储类别的数值型变量未赋初值,则默认值为0。
29.break语句可以出现在任何一种循环语句中。
30.预处理过程是编译过程之前进行的。
31.C++程序中的静态存储类别变量和全局变量的初始化是在编译阶段完成的。
32.C++语言中规定:
函数返回值的数据类型是由定义函数时规定的数据类型所决定的。
33.在C++中,编译时的多态性是通过函数和运算符的重载实现的。
34.在C++语言中