}
intmain(){
Bookbook("精彩人生");
showPublication(book);
return0;
}
运行时的输出结果是(____)
A.未知类型:
未知名称
B.未知类型:
精彩人生
C.书:
未知名称
D.书:
精彩人生
正确答案:
【D】 分值:
【1】
10.C++对C语言做了很多改进,即从面向过程变成为面向对象的主要原因是(____)
A.增加了一些新的运算符
B.允许函数重载,并允许设置缺省参数
C.规定函数说明符必须用原型
D.引进了类和对象的概念
正确答案:
【D】 分值:
【1】
11.在下列运算符中,(____)优先级最高。
A.<=
B.*=
C.+
D.*
正确答案:
【D】 分值:
【1】
12.下列关于C++函数的描述中正确的是(____)
A.主函数是程序的入口,它由用户定义的函数调用
B.函数在调用之前必须先被声明
C.每个用户定义的函数只能被其他函数调用一次
D.函数是C++中面向对象程序设计框架的基本组成单元
正确答案:
【B】 分值:
【1】
13.设置虚基类的目的是________,通过________表示虚基类。
正确答案:
【解决二义性问题或用关键字virtual】 分值:
【1】
14.以下不属于对象的基本特点的是(____)
A.分类性
B.多态性
C.继承性
D.封装性
正确答案:
【C】 分值:
【1】
15.关于静态数据成员的描述中正确的是(____)
A.类的静态数据成员不是类的所有对象共享的数据
B.类的静态数据成员不能被类的成员函数调用
C.类的静态数据成员不能被类的构造函数调用
D.类的静态数据成员必须进行初始化
正确答案:
【D】 分值:
【1】
16.C++语言函数中不能由系统自动生成的是(____)
A.析构函数
B.构造函数
C.内联函数
D.拷贝构造函数
正确答案:
【C】 分值:
【1】
17.下列的描述中(____)是错误的。
A.使用全局变量可以从被调用函数中获取多个操作结果
B.局部变量可以初始化,若不初始化,则系统默认它的值为0
C.当函数调用完后,静态局部变量的值不会消失
D.全局变量若不初始化,则系统默认它的值为0
正确答案:
【B】 分值:
【1】
18.以下不能对二维数组a进行正确初始化的语句是(____)
A.inta[2][3]={0};
B.inta[][3]={{0,1},{0}};
C.inta[2][3]={{0,1},{2,3},{4,5}};
D.inta[][3]={0,1,2,3,4,5};
正确答案:
【C】 分值:
【1】
19.若用数组名作为调用函数的实参,则传递给形参的是(____)
A.数组存贮首地址
B.数组的第一个元素值
C.数组中全部元素的值
D.数组元素的个数
正确答案:
【A】 分值:
【1】
20.在类定义的外部,可以被访问的成员有
A.所有类成员
B.private或protected的类成员
C.public的类成员
D.public或private的类成员
正确答案:
【C】 分值:
【1】
21.下面对构造函数的不正确描述是(____)
A.系统提供默认的构造函数
B.构造函数可以有参数,所以也可以有返回值
C.构造函数可以重载
D.构造函数可以设置默认参数
正确答案:
【B】 分值:
【1】
22.下面对友员的错误叙述是(____)
A.关键字friend用于声明友员
B.一个类中的成员函数可以是另一个类的友员
C.友员函数访问对象的成员不受访问特性影响
D.友员函数通过this指针访问对象成员
正确答案:
【D】 分值:
【1】
23.要求用成员函数重载的运算符是(____)
A.=
B.==
C.<=
D.++
正确答案:
【A】 分值:
【1】
24.下面关于类型转换的描述中,错误的是(____)
A.任何形式的构造函数都可以实现数据类型转换。
B.带非默认参数的构造函数可以把基本类型数据转换成类类型对象。
C.类型转换函数可以把类类型对象转换为其他指定类型对象。
D.类型转换函数只能定义为一个类的成员函数,不能定义为类的友员函数。
正确答案:
【A】 分值:
【1】
25.在c++中,类之间的继承关系具有(____)
A.自反性
B.对称性
C.传递性
D.反对称性
正确答案:
【C】 分值:
【1】
26.将以下程序写成三目运算表达式是________。
if(a>b)max=a;
elsemax=b;
正确答案:
【max=(a>b)?
a:
b;】 分值:
【1】
27.不论派生类以何种方式继承基类,都不能直接使用基类的
A.public成员
B.private成员
C.protected成员
D.所有成员
正确答案:
【B】 分值:
【1】
28.下面程序的结果为________。
#include
voidmain()
{inta=1,b=2;
boolc=1;
if((a>b)||c)cout<<″true″<
else
cout<<″false″<
正确答案:
【true】 分值:
【1】
29.以下程序的执行结果为________。
#include
usingnamespacestd;
classbase
{
public:
virtualvoidwho()
{cout<<″baseclass″<
};
classderive1:
publicbase
{
public:
voidwho()
{cout<<″derive1class″<
};
classderive2:
publicbase
{
public:
voidwho()
{cout<<″derive2class″<
};
voidmain()
{
baseobj1,*p;
derive1obj2;
derive2obj3;
p=&obj1;
p->who();
p=&obj2;
p->who();
p=&obj3;
p->who();
}
正确答案:
【baseclassderive1classderive2class】 分值:
【1】
30.下面函数原型中,(____)声明了fun为纯虚函数。
A.voidfun()=0;
B.virtualvoidfun()=0;
C.virtualvoidfun();
D.virtualvoidfun(){};
正确答案:
【B】 分值:
【1】
31.若一个类中含有纯虚函数,则该类称为(____)
A.基类
B.纯基类
C.抽象类
D.派生类
正确答案:
【C】 分值:
【1】
32.下面描述中,正确的是(____)
A.虚函数是没有实现的函数
B.纯虚函数是返回值等于0的函数
C.抽象类是只有纯虚函数的类
D.抽象类指针可以指向不同的派生类
正确答案:
【D】 分值:
【1】
33.下列格式控制符,既可以用于输入,又可以用于输出的是(____)
A.setbase
B.setfill
C.setprecision
D.setw
正确答案:
【A】 分值:
【1】
34.要求打开文件D:
\file.dat,并能够写入数据,正确的语句是(____)
A.ifstreaminfile(“D:
\\file.dat”,ios:
:
in);
B.ifstreaminfile(“D:
\\file.dat”,ios:
:
out);
C.ofstreamoutfile(D:
\\file.dat",ios:
:
in);
D.fstreaminfile(“D:
\\file.dat”,ios:
:
in|ios:
:
out);
正确答案:
【D】 分值:
【1】
35.用于输出表达式值的标准输出流对象是________。
正确答案:
【cout】 分值:
【1】
36.存储字符’a’和字符串”a”分别需要占用________和________个字节。
正确答案:
【1或2】 分值:
【1】
37.在C++语言中,一个函数由函数头和________组成。
正确答案:
【函数体】 分值:
【1】
38.程序的编译是以________为单位进行的。
正确答案:
【文件】 分值:
【1】
39.如果一个派生类只有一个唯一的基类,则这样的继承关系称为________。
正确答案:
【单继承】 分值:
【1】
40.C++支持两种多态性:
________时的多态性和________时的多态性。
正确答案:
【编译或运行】 分值:
【1】
41.类定义中,既包含数据成员,也包含________成员。
正确答案:
【函数】 分值:
【1】
42.类中的数据成员的访问属性通常被指明为________。
正确答案:
【private】 分值:
【1】
43.类中的供外部调用定义的函数成员,其访问属性通常被定义为________。
正确答案:
【public】 分值:
【1】
44.为了使类中的成员不能被类外的函数通过成员操作符访问,则应把该成员的访问权限定义为________。
正确答案:
【private】 分值:
【1】
45.若要把类外定义的成员函数规定为内联函数,则必须把________关键字放到函数原型或函数头的前面。
正确答案:
【inline】 分值:
【1】
46.若采用p->abc(y)表达式调用一个成员函数,在成员函数中使用的________
就代表了类外的p指针。
正确答案:
【this】 分值:
【1】
47.当用户为一个类定义有________时,则系统不会为该类再自动生成一个默认构造函数。
正确答案:
【构造函数】 分值:
【1】
48.对类中常量成员的初始化只能通过在构造函数中给出的________来实现的。
正确答案:
【参数初始化表】 分值:
【1】
49.假定AB类中只包含一个整型数据成员a,并且它是一个引用成员,若利用引用参数aa对其进行初始化,则该类的构造函数的定义为________。
正确答案:
【AB(int&aa):
a(aa){};】 分值:
【1】
50.定指针p指向一个动态分配的类对象,则当执行“deletep;”语句时,在释放p
所指向的动态存储空间之前将自动调用该类的________。
正确答案:
【析构函数】 分值:
【1】
51.定用户为类AB定义了一个构造函数“AB(intaa=0):
a(aa){}”,则定义该类的对象时,可以有________种不同的定义格式。
正确答案:
【2】 分值:
【1】
52.假定用户只为类AB定义了一个构造函数“AB():
a(0),b(0){}”,则定义该类对象x的定义语句“ABx;”是______(正确/错误)的。
正确答案:
【正确】 分值:
【1】
53.假定AB为一个类,该类中含有一个指向动态数组空间的指针成员pa,则在该类的析构函数中应该包含有一条________语句。
正确答案:
【delete[]pa;】 分值:
【1】
54.在一个或若干个类的基础上构造一个新类,被称为________。
正确答案:
【继承】 分值:
【1】
55.派生类的成员函数可以直接访问基类的公有和保护成员,不能直接访问
基类的________成员。
正确答案:
【私有】 分值:
【1】
56.当保护继承时,基类的公有和保护成员在派生类中成为保护成员,派生
类对象不能直接访问基类的________成员。
正确答案:
【任何】 分值:
【1】
57.以下关于C++类的说法中正确的是(____)
A.C++语言的默认访问权限是private
B.C++语言中的类定义,用户一定要自己定义一个构造函数用于实例化类
C.C++语言中的成员函数的实现部分一定要写在类定义外
D.C++语言中的类不能够嵌套定义
正确答案:
【A】 分值:
【1】
58.一个类可以从直接或间接的祖先中继承所有属性和方法。
采用这个方法提高了软件的________。
正确答案:
【可重用性】 分值:
【1】
59.静态成员函数可以直接访问类的________成员,不能直接访问类的________成员。
正确答案:
【静态或非静态】 分值:
【1】
60.在C++语言的结构化程序设计中,________是程序的基本组成单元;在C++语言的面向对象设计框架中,________是程序的基本组成单元。
正确答案:
【函数或类】 分值:
【1】
61.在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是(____)
A.派生类的对象可以赋给基类的对象
B.派生类的对象可以初始化基类的引用
C.派生类的对象可以直接访问基类中的成员
D.派生类的对象的地址可以赋给指向基类的指针
正确答案:
【C】 分值:
【1】
62.类是一个支持集成的抽象数据类型,而对象的类的________。
正确答案:
【实例】 分值:
【1】
63.在C++中,cin是一个(____)
A.类
B.对象
C.模板
D.函数
正确答案:
【B】 分值:
【1】
64.下列描述中错误的是(____)
A.派生类可以作为基类派生其他的子类
B.派生类继承基类的所有数据成员
C.派生类可以有多个基类
D.派生类不能继承一些函数成员
正确答案:
【B】 分值:
【1】
65.以下对C++语言函数的有关描述中,正确的是(____)
A.在C++语言中调用函数,只能把实参的值传给形参,形参的值不能传送给实参
B.C++语言函数既可以嵌套定义又可以递归调用
C.函数必须无返回值,否则不能使用函数
D.函数必须有返回值,返回值类型不定
正确答案:
【A】 分值:
【1】
66.对于模板定义关键字class和typename说法不正确的是(____)
A.程序中的class并不能都替换为typename
B.class和typename都可互相替换
C.程序中的typename都能替换为class
D.程序中的部分class可以替换为typename
正确答案:
【B】 分值:
【1】
67.下面关于数组的描述错误的是(____)
A.在C++语言中数组的名字就是指向该数组第一个元素的指针
B.长度为n的数组,下标的范围是0~n-1
C.数组的大小必须在编译时确定
D.数组只能通过值参数和引用参数两种方式传递给函数
正确答案:
【D】 分值:
【1】
68.下面的(____)选项不能作为函数的返回类型
A.void
B.int
C.new
D.long
正确答案:
【C】 分值:
【1】
69.可以把具有相同属性的一些不同对象归类,称为________。
正确答案:
【对象类】 分值:
【1】
70.下列定义中p指向的地址可更改,但*p不能够更改的是(____)
A.constint*P
B.int*constp;
C.constint*constp;
D.int*p;
正确答案:
【A】 分值:
【1】
71.C++中封装性、继承性和________是面向对象思想的主要特征。
正确答案:
【多态性】 分值:
【1】
72.对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是(____)
A.公有类型
B.私有类型
C.保护类型
D.友元类型
正确答案:
【D】 分值:
【1】
73.下列关于运算符重载的叙述中,正确的是(____)
A.通过运算符重载,可以定义新的运算符
B.有的运算符只能作为成员函数重载
C.若重载运算符+,则相应的运算符函数名是+
D.重载一个二元运算符时,必须声明两个形参
正确答案:
【B】 分值:
【1】
74.下列关于模板的叙述中,错误的是(____)
A.调用模板函数时,在一定条件下可以省略模板实参
B.可以用int、double这样的类型修饰符来声明模板参数
C.模板声明中的关键字class都可以用关键字typename替代
D.模板的形参表中可以有多个参数
正确答案:
【D】 分值:
【1】
75.对类的构造函数和析构函数描述正确的是(____)
A.构造函数可以重载,析构函数不能重载
B.构造函数不能重载,析构函数可以重载
C.构造函数可以重载,析构函数也可以重载
D.构造函数不能重载,析构函数也不能重载
正确答案:
【A】 分值:
【1】
76.通过使用new和delete两个运算符进行的分配为________存储分配。
正确答案:
【动态】 分值:
【1】
77.将x+y中的+运算符用友元函数重载应写为________。
正确答案:
【operator+(x,y)】 分值:
【1】
78.下列描述中(____)是正确的
A.私有派生的子类无法访问父类的成员
B.类A的私有派生子类的派生类C无法初始化其祖先类A对象的属性,因为类A的成员对类C是不可访问的
C.私有派生类不能作为基类派生子类
D.私有派生类的所有子孙类将无法继续继承该类的成员
正确答案:
【B】 分值:
【1】
79.while和do-while循环的主要区别是(____)
A.do-while的循环体至少无条件执行一次
B.while的循环控制条件比do-while的循环控制条件更严格
C.do-while允许从外部转到循环体内
D.do-while的循环体不能是复合语句
正确答案:
【A】 分值:
【1】
80.关于友元的概念错误的是(____)
A.友元函数没有thi