第一章测试
1.下列说法错误的是( )。
A:每一个C++程序都必须有一个main函数
B:一般编译系统给出的错误信息有两种,一种是错误,一种是警告
C:“#include”,这是C++中的语句
D:若一行中出现“//”,则从它开始到本行末尾的全部内容都作为注释
答案:C
2.若要建立良好的程序设计风格,下面描述正确的是( )。
A:程序应简单、清晰、可读性好
B:充分考虑程序的执行效率
C:符号名的命名只要符合语法就可以
D:必要的注释
答案:ABD
c++trunc函数
3.编写C++程序一般需经过的几个步骤依次是编辑、编译、连接、调试。( )
A:错
B:对
答案:B
4.C++对C语言进行了改进,不仅对C的功能进行了扩充,还增加了面向对象的机制。( )
A:对
B:错
答案:A
5.C++只在编译阶段给出错误信息,而在连接阶段不会。( )
A:对
B:错
答案:B
第二章测试
6.作用域运算符的功能是( )。
A:给出的范围
B:标识某个成员属于哪一个类
C:标识作用域的级别
D:指出的大小
答案:B
7.为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为( )。
A:public
B:static
C:protected
D:private
答案:A
8.下面关于类的描述中错误的是( )。
A:类是具有共同行为的若干对象的统一描述体
B:类是抽象数据类型的实现
C:类数据成员必须声明为私有
D:类是创建对象的样板
答案:C
9.在C++的面向对象程序设计中,类与类之间的独立性是通过封装实现的。( )
A:对
B:错
答案:A
10.如果class类中的所有成员在定义时都没有使用关键字pubilc,private和protected,则所有成员缺省定义为public。( )
A:对
B:错
答案:B
第三章测试
11.( )的功能是对对象进行初始化。
A:构造函数
B:析构函数
C:数据成员
D:静态成员函数
答案:A
12.下面对构造函数和析构函数的写法形式上正确的是( )。
A:max::max (参数), max::~ max (参数)
B:max::max (参数), max::~ max ()
C:void max:: max (参数), void max::~ max (参数)
D:void max::max(), void max::~ max ()
答案:B
13.假设getData()函数是一个类的常成员函数,且没有返回值,则应表示为( )。
A:const void getData ();
B:void getData () const;
C:getData () const;
D:void const getData ();
答案:B
14.若有如下类的定义:class Time{ int hour;int minute;int sec;public:void getTime();}Time *pt;则以下用法中正确的是:( )。
A:pt.hour;
B:pt->minute;
Time();
D:pt->getTime();
答案:D
15.关于友元的说法,正确的是( )。
A:若A是B的友元类,B是C的友元类,则A是C的友元类
B:若声明了A是B的友元类,则B类的成员函数可以访问A类的私有成员
C:若想要将A类声明为B类的友元,则应在A类中添加语句:friend B;
D:被声明为A类友元的成员函数内可以修改A类的私有数据成员
答案:D
第四章测试
16.若重载运算符的参数表中没有任何参数,则表明该运算符是( )。
A:作为成员函数重载的单目运算符
B:作为友元函数重载的单目运算符
C:作为成员函数重载的双目运算符
D:作为友元函数重载的双目运算符
答案:A
17.运算符重载函数是一种特殊的友元函数或( )。
A:构造函数
B:普通函数
C:析构函数
D:成员函数
答案:D
18.重载流提取运算符>>的原型为( )。
A:istream&operator>>(istream,&);
B:ostream&operator>>(ostream&,);
C:ostream&operator>>(ostream,&);
D:istream&operator>>(istream&,&);
答案:D
19.下列运算符不能重载为友元函数的是( )。
A:()
B:-
C:++
D:>=
答案:A
20.通过运算符重载可以改变运算符原有的( )。
A:优先级
B:操作数个数
C:结合性
D:操作数类型
答案:D
第五章测试
21.释放派生类对象时执行析构函数的顺序是( )
A:基类、子对象、派生类
B:派生类、子对象、基类
C:基类、派生类、子对象
D:派生类、基类、子对象
答案:B
22.关于派生的说法错误的是( )。
A:派生类的成员包括从基类继承的成员和自己新添加的成员两部分
B:派生类的构造函数需要调用基类构造函数完成初始化
C:无论采用哪种继承方式,基类的私有成员都无法被派生类访问
D:派生类不能访问基类的保护成员
答案:D
23.当采用保护继承时,基类中的公有和保护成员变为派生类中的( )。
A:公有成员
B:私有成员
C:保护成员
D:公有和保护成员
答案:C
24.关于赋值兼容规则错误的是( )。
A:派生类对象的地址可以赋值给基类指针变量
B:派生类对象可以给基类对象赋值
C:基类对象可以赋值给派生类对象
D:派生类对象可以赋值给基类对象的引用
答案:C
25.无法被派生类继承的函数为( )。
A:成员函数
B:静态成员函数
C:析构函数
D:构造函数
答案:CD
第六章测试
26.纯虚函数可以定义为( )。
A:void func(int)=0
B:virtual void func()=0
C:virtual void func(int){}
D:virtual int func(int)
答案:B
27.可以实现动态多态性的是( )。
A:重载函数
B:虚函数
C:友元函数
D:构造函数
答案:B
28.关于抽象类的说法错误的是( )。
A:定义抽象类的唯一目的是用作基类产生派生类
B:可以定义指向抽象类的指针变量
C:包含纯虚函数的类无法创建对象
D:一个派生层次中最多能有一个抽象类
答案:D
29.声明如下几个类:class person{};class Birthdate{};class teacher:public person{};class professor: teacher{Birthdate birthday;}则关于类之间关系描述错误的是( )。
A:类teacher继承自类person
B:类person是类professor的间接基类
C:类professor是类teacher的公有派生类
D:类professor与类Birthdate的关系是组合
答案:C

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。