《C++程序设计基础》题库
一、选择题
1.下面不属于面向对象语言的特征的是___B___。
A.继承性 B.兼容性 C.多态性 D.封装性
2. C++语言是从早期的C语言发展演变而来的,与C语言相比,它在求解问题上进行的最大改进是___B___。
A、面向过程
B、面向对象
C、安全性
D、复用性
3.C++的基本数据类型中,用来判断真假的数据类型为 B 。
A、int
B、bool
C、char
D、float
4.关于字符常量的写法,错误的是__A____。
A、'/'
B、"a"
C、'\t'
D、'\0'
5. 下面C++标识符命名正确的是:___D___。
A、class
B、@mail
C、1var
D、_inline
6. 下面基本数据类型初始化表达式错误的是___C___。
A、int i(5);
B、float f=3.56f;
C、char c='ab'
D、double f=3.56;
7. C++对C语言作了很多改进,下列描述中___D___使得C语言发生了质变,从面向过程变成了面向对象。
A、增加了一些新的运算符;
B、允许函数重载,并允许设置缺省参数;
C、规定函数说明必须用原型;
D、引进了类和对象的概念;
8. 在C++中,关于下列函数参数的描述中,__B ____是正确的。
A、C++语言中,实参是按照自左至右的顺序求值的;
B、若一个参数设置了默认值,则其右边的所有参数都具有默认值;
C、函数参数的默认值不允许是表达式;
D、设置参数默认值时,应该全部参数都设置;
9. 重载函数在调用时选择的依据中,___D___是错误的。
A、参数个数;
B、参数的类型;
C、函数名字;
D、函数的类型。
10. 已知程序中已经定义了函数test,其原型是int test(int,int,double);,则下列重载形式中不正确的是____A__。
A、char test(int,int,int);
B、double test(int,int,double);
C、int test(int,int,float);
D、int test(int,double) ;
11. 关于类的概念下列说法正确的是___C___。
A、类和结构体是同一个概念
B、类的数据成员外界都不可访问
C、类可以没有显式的构造函数
D、类一定要有显式的析构函数
12. 关于类和对象的说法正确的是______。
A、面向对象程序设计方法通过数据抽象和行为抽象,封装形成了“类”
B、类具有的
行为由变量表示。
C、类的属性一般由函数表示,且定义为public的
D、类是具
体的,对象是抽象的
13. 关于类和对象不正确的说法是___C___。
A、类是一种类型,它封装了数据和操作
B、对象是类的实例
C、一个类的对象只有一个
D、一个对象必属于某个类14.已知A是一个类,则执行语句“A a; ”时,将自动调用该类的__A____。
A、构造函数
B、拷贝构造函数
C、析构函数
D、数据成员
15. 在下列关键字中,用于说明类中公有成员的是__A____。
A.public; B.private; C.protected; D.friend
16. __D____是析构函数的特征。
A、析构函数可以有一个或多个参数;
B、析构函数名与类名不同;
C、析构函数的定义只能在类体内;
D、一个类中只能定义一个析构函数;
17. 如果类的成员在定义时使用关键字public来设置访问权限,则该成员是__A____。
A.公有类型 B. 私有类型 C. 受保护类型 D. 任意类型
18. 关于成员函数特征的下列描述中,___A___是错误的。
A、成员函数一定是内联函数;
B、成员函数可以重载;
C、成员函数可以设置缺省参数值;
D、成员函数可以是静态的;
19. 下列描述中,___D___是不正确的。
A、面向对象程序设计可重用性较好;
B、对象之间通过消息进行信息传递;
C、多态性体现了行为共享;
D、面向对象方法的核心是继承;
20.派生类的对象对它的基类成员中 A 是可以访问的。
A、公有继承的公有成员;
B、公有继承的私有成员;
C、公有继承的保护成员;
D、私有继承的公有成员;
21.下列标识符的定义中合法的是( A/C )。
A.-abc
B. for
C. intl
D.”how”
22.执行下列语言后,i和j的值分别为( C )。
int i=5,j=8,t;
int &ri=i;
int &rj=j;
t=ri;ri=rj;rj=t;
A. 5和5
B. 5和8
C. 8和5
D.8和8
23.下列关于C++函数的叙述中正确的是( D )。
A. 函数在调用之前必须先声明
B. 每个函数都必须返回一个值
C. 每个函数至少要有一个参数
D. 函数可以自己调用自己
24.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是(B)。
A. 地址传递
B. 单向值传递
C. 双向值传递
D.不确定
25.系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中不能被作为依据的是(D)。
A. 参数个数
B. 参数类型
C. 函数名称
D.函数类型
26.标志着C++从面相过程变成面相对象的主要措施是(D)。
A.增加了新的运算符
B.允许函数重载,设置默认参数
C.规定函数声明必须用原型
D.引用了类和对象的概念
27.有关类和对象的说法错误的是(C )。
A.对象是类的一个实例
B.任何一个对象只能属于一个具体的类
C.一个类只能有一个对象
D.类与对象的关系和数据类型与变量的关系相似
28.对任意一个类,析构函数的个数最多为(B )个。
A.0 .
B.1
C.2
D.4
29.已知A是一个类,则执行语句A a;时,将自动调用该类的(B)。
A.有参构造函数
B.无参构造函数
C.拷贝构造函数
D.赋值构造函数
30.下述静态数据成员的特性中,(D)是错误的。
A.说明数据成员时前边要加修饰符static
B.静态数据成员要在类体外进行初始化
C.引用静态数据成员时,要在静态数据成员名前加“类名”和作用域运算符
D.静态数据成员不是所有对象所共有的。
31. 下面有关C++构造函数和析构函数说法正确的是 D 。
A、如果不声明任何构造函数,系统会赋给一个默认(无参)的构造函数。如果自定义了构造函数,系统也会赋给默认的构造函数。
B、析构函数是用来完成对象被删除前的清理工作,它可以接受参数。
C、构造函数和析构函数都可以是虚函数。
D、构造方法是与类同名的方法,它可以重载。
32.已知类D继承类B,且有声明语句B b,*p; D d; 下面赋值语句错误的是___C___。
A、d=b;
B、p=&d;
C、b=d;
D、p=&b;
33.下列有关继承和派生的叙述中,正确的是______。
A、如果一个派生类私有继承其基类,则该派生类中的成员不能访问基类的保护成员
B、派生类的成员函数可以访问基类的所有成员
C、在创建派生类对象时,先调用派生类构造函数,再调用基类的构造函数。
D、在销毁派生类对象时,先调用派生类析构函数,再调用基类的析构函数。
34.C++语言的跳转语句中,对于break和continue说法正确的是_B
A、break语句只应用与循环体中
B、continue语句只应用于循环体中
C、break是无条件跳转语句,continue不是
D、break和continue都可以用于跳出if条件分支。
35.下面是关于派生类声明的开始部分,其中正确的是___D___。
A、class virtual B:public A
B、virtual class B:public A
C、class B:public A virtual
D、class B: virtual public A
36. 对基类和派生类的关系描述中, B 是错的。
A、派生类是基类的具体化;
B、派生类是基类的子集;
C、派生类是基类定义的延续;
D、派生类是基类的组合。
37.下列运算符中,不能被重载的是 C。
A.&& B.- C. .* D.++
38.静态数据成员的初始化必须在B。
A、类内
B、类外
C、在构造函数内
D、静态成员函数内continue语句执行过程
39.关于虚函数与抽象类,下列表述正确的是__D____。
A、虚函数声明可以同时出现在类定义中的函数原型声明中,和成员函数的实现的时候。
B、虚函数不能声明为静态函数。
C、抽象类可以实例化。
D、派生类必须重新定义基类的虚函数。
40. 设置虚基类的目的是 B。
A.简化程序; B. 消除二义性; C. 提高运行效率; D. 减少目标代码。
41.执行语句:int a=5,*pa;pa=&a; 后,下面描述错误的是( A)。
A.pa的值为5 B. pa指向整形变量a
C. *pa表示变量a的值
D. pa的值是变量a的地址
42.假设 a=5,执行下列语句后,a 的值为(D)。
switch(a)
{ case 4: a++;
case 5: a- -;
case 6: ++a: break;
case 7: - - a;
default: a++; }
A. 2
B. 3
C. 4
D. 5
43.有函数原型声明语句如下:
void fun(int x,int y=10,char z=’# ’);下面调用语句中不合法的是(C)。
A.fun(5)
B.fun(5,8)
C.fun(6,’*’)
D.fun(10,10,’*’)
44.调用函数时,如果实参是一个数组名,则向函数传递的是(B)。
A. 数组的长度
B. 数组的首地址
C. 数组中每个元素的地址
D. 数组中每个元素的值
45.在C++中,关于下列设置参数默认值的描述中,正确的是(C)。
A. 不允许设置参数的默认值
B.设置参数默认值只能在定义函数时设置
C. 设置参数默认值时,应该是先设置右边的,再设置左边的
D. 设置参数默认值时,应该全部参数都设置
46.有关类的说法错误的是(D)。
A.类是一种用户自定义的数据类型
B.只有类中的成员函数才能存取类中的私有数据
C.在类中如果不作特殊说明,所指的数据均为私有类型
D. 在类中如果不作特殊说明,所指的成员函数均为公有类型
47.下列关于构造函数的描述中,错误的是(D)。
A.构造函数的函数名与类名相同
B.构造函数可以重载
C.构造函数可以设置默认参数
D.构造函数必须指定类型说明
48.通常拷贝构造函数的参数是(D)。
A.某个对象名
B.某个对象的成员名
C.某个对象的指针名
D.某个对象的引用名
49.已知A是一个类,则执行语句A a;时,将自动调用该类的(B)。
A.有参构造函数
B.无参构造函数
C.拷贝构造函数
D.赋值构造函数
50.关于友元,下面说法中正确的是(A )。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论