}
A.1,2,2,5B.4,7,5,8C.1,5,3,10D.8,8,8,8
14.下列结构体定义,正确的是。
C
A.record{B.structrecord{
intno;intno;
charnum[16];charnum[16];
floatscore;floatscore;
};}
C.structrecord{D.structrecord{
intno;intno
charnum[16];charnum[16]
floatscore;floatscore
};}
15.下列是构造函数的特点,(C)是错误的。
A.构造函数是一种成员函数,它具有一般成员函数的特点
B.构造函数的名称与其类名相同
C.构造函数必须指明其类型
D.一个类中可定义一个或多个构造函数
16.关于友元函数的描述中,(A)是错的。
A.A.友元函数是成员函数,它被说明在类体内
B.B.友元函数可直接访问类中的私有成员
C.C.友元函数破坏封装性,使用时尽量少用
D.D.友元类中的所有成员函数都是友元函数
17.下列对派生类的描述中,(C)是错误的。
A.A.一个派生类可以作为另一个派生类的基类
B.B.派生类至少应有一个基类
C.C.基类中成员访问权限继承到派生类中都保持不变
D.D.派生类的成员除了自已定义的成员外,还包含了它的基类成员
18.C++类体系中,能被派生类继承的有(B)。
A.构造函数B.虚函数C.友元函数D.析构函数
19.关于下列虚函数的描述中,(C)是正确的。
A.虚函数是一个static存储类的成员函数
B.虚函数是一个非成员函数
C.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数
D.派生类的虚函数与基类的虚函数应具有不同的类型或个数
20.以下有关静态数据成员函数的叙述不正确的是(B)。
A.静态成员函数属于整个类
B.对静态成员函数的引用不允许使用对象名
C.在静态成员函数中不能直接引用类的非静态成员
D.使用类名可以直接调用其静态成员函数
21.下列有关运算符重载的描述中,(B)是正确的。
A.运算符重载可改变其优先级B.运算符重载不改变其语法结构
C.运算符重载可改变其结合性D.运算符重载可改变其操作数的个数
22.对new运算符的下列描述中,(B)是错误的。
A.它可以动态创建对象和对象数组
B.用它创建对象数组时必须指定初始值
C.用它创建对象时要调用构造函数
D.用它创建的对象可以使用运算符delete来释放
23.下列是为字符数组赋字符串的语句组,其中错误是(A)。
A.chars[10];s=”program”;B.chars[]=”program”;
C.chars[10]=”Hello!
”;D.chars[10];strcpy(s,”hello!
”);
24.当调用函数时,实参是一个一维数组名a,则向函数传送的是(D)。
A.数组的长度B.数组所有元素的值
C.数组元素a[0]的值D.数组元素a[0]的地址
25.下列有关类的说法不正确的是(C)。
A.A.对象是类的一个实例
B.B.任何一个对象只能属于一个具体的类
C.C.一个类只能有一个对象
D.D.类与对象的关系和数据类型与变量的关系相似
26、下面关于类概念的描述中,(D)是错误的。
A)类是抽象数据类型的实现B)类是具有共同行为的若干对象的统一描述体
C)类是创建对象的样板D)类就是C语言中的结构体类型
27、面向对象程序设计思想的主要特征中不包括(D)。
A)封装性B)多态性C)继承性D)功能分解,逐步求精
28、在C++中,函数原型不能标识(D)。
A)函数的返回类型B)函数参数的个数C)函数参数类型D)函数的功能
29、有关析构函数的说法不正确的是(B)。
A)析构函数有且仅有一个B)析构函数和构造函数一样可以有形参
C)析构函数的功能是用来释放一个对象D)析构函数无任何函数类型
30、已知X类.则当程序执行到语句,X array[3];时,调用了(D)次构造函数。
A)0B)1C)2D)3
31、类定义的内容允许被其他对象无限制地存取是(C)。
A)private部分B)protected部分C)public部分D)以上都不对
32、关于new运算符的下列描述中,(D)是错误的.。
A)它可以用来动态创建对象和对象数组
B)使用它创建对象或对象数组,可以使用运算符DELETE删除
C)使用它创建对象时要调用构造函数
D)使用它调用对象数组时不许指定初始值
33、对于下面程序段,表达式正确的是(B)。
classBase{public:
intb;};
classBase1:
publicbase{};
classBase2:
publicbase{};
classDerived:
publicbase1,publicbase2{public:
intfun();};
Derivedd;
A)d.Base1:
:
bB)d.Base:
:
bC)d.bD)d.Base:
:
fun()
34、可以用p.a的形式访问派生类对象p的基类成员a其中a是(D)。
A)私有继承的公有成员B)公有继承的私有成员
C)公有继承的保护成员D)公有继承的公有成员
35、下列关于C++类的描述中错误的是(C)。
A)类与类之间可以通过一些手段进行通信和联络
B)类用于描述事物的属性和对事物的操作
C)类与类之间必须是平等的关系,
D)类与类之间可以通过封装而具有明确的独立性
36、下列描述中哪个是正确的(B)。
A)私有派生的子类无法访问父类的成员
B)类A的私有派生子类的派生类C无法初始化其祖先类A对象的属性,因为类A的成员对类C是不可访问的
C)私有派生类不能作为基类派生子类
D)私有派生类的所有子孙类将无法继续继承该类的成员
37、下列关于构造函数说法不正确的是(C)。
A)构造函数必须与类同名B)构造函数可以省略不写
C)构造函数必须有返回值D)在构造函数中可以对类中的成员进行初始化
38、如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是(D)。
A)一元运算符B)二元运算符
C)选项A)和选项B)都可能D)重载错误
39、在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是(D)。
A)一元成员运算符B)二元成员运算符
C)一元友元运算符D)选项B)和选项C)都可能
40、一个类的友元函数能够访问该类的(D)。
A)私有成员B)保护成员C)公有成员D)所有成员
41、下列关于类定义的说法中,正确的是(A)。
A)类定义中包括数据成员和函数成员的声明
B)类成员的缺省访问权限是保护的
C)数据成员必须被声明为私有的
D)成员函数只能在类体外进行定义
42、^通过运算符重载,可以改变运算符原有的(A)。
A)操作数类型 B)操作数个数 C)优先级 D)结合性
43、在C++语言中,数据封装要解决的问题是(D)。
A)数据的规范化B)便于数据转换C)避免数据丢失
D)防止不同模块之间数据的非法访问
44、对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是(D)。
A)公有类型B)私有类型C)保护类型D)友元类型
45、在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是(C)。
A)友元函数B)虚函数C)构造函数D)析构函数
46、类的析构函数的作用是(D)。
A)一般成员函数的初始化B)类的初始化
C)对象的初始化D)删除类创建的对象
47、下列说法正确的是(B)。
A)内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B)内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C)类的内联函数必须在类体内定义
D)类的内联函数必须在类体外通过加关键字inline定义
48、下列对派生类的描述中,错误的是(D)。
A)一个派生类可以作为另一个派生类的基类
B)派生类至少有一个基类
C)派生类的成员除了自己的成员外,还包含了它的基类的成员
D)派生类中继承的基类成员的访问权限到派生类保持不变
49、运算符的重载是对已有的运算符