}
答案:
5
[解析]do-while循环,前缀先使i减少1后判断是否为零,不为零时再次执行循环,为零退出
循环。
循环值执行3次就退出,所以结果为5。
5.静态成员函数、友元函数、构造函数和析构函数中,不属于成员函数的是___。
答案:
(P109)友元函数
[解析]友元函数不是类成员,但可以访问类成员。
类的封装性保证了数据的安全,但引入友元
,虽然访问类是方便了,但确实破坏类访问的安全性。
6.在用C++进行程序设计时,最好用___代替malloc。
答案:
(P10)new
[解析]new与delete是C++语言特有的运算符,用于动态分配和释放内存。
new用于为各种数据
类型分配内存,并把分配到的内存首地址赋给相应的指针。
new的功能类似于malloc()函数。
使用new的格式为:
<指针变量>new<数据类型>;
其中,<数据类型>可以是基本数据类型,也可以是由基本类型派生出来的类型;<指针变量>取得
分配到的内存首地址。
new有3种使用形式。
(1)给单个对象申请分配内存
int*ip;ip=newint;由const修饰的对象称为___。
答案:
(P113)常对象
[解析]使用const关键字说明的成员函数称为常成员函数,使用const关键字说明的对象称为常
对象。
常成员函数的说明格式如下:
<返回类型说明符><成员函数名>(<参数表>)const;
常成员函数不更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数。
常对象
只能调用它的常成员函数,而不能调用其他成员函数。
const关键字可以用于参与重载函数的区
分。
8.在C++程序设计中,建立继承关系倒挂的树应使用___继承。
答案:
(P138)单
[解析]一个基类可以派生多个子类,一个子类可以再派生出多个子类,这样就形成了一个倒立
的树。
9.基类的公有成员在派生类中的访问权限由___决定。
答案:
(P132)访问控制方式或继承方式
10.不同对象可以调用相同名称的函数,但执行完全不同行为的现象称为___。
答案:
(P167)多态性
[解析]多态性的概念。
虚函数是实现多态的基础,运行过程中的多态需要同时满足3个条件
:
(1)类之间应满足子类型关系。
(2)必须要有声明的虚函数。
(3)调用虚函数操作的是指向对象
的指针或者对象引用;或者是由成员函数调用虚函数(如果是在构造函数或析构函数中调用虚函
数,则采用静态联编)。
11.this指针始终指向调用成员函数的___。
答案:
对象
this指针是隐藏的指针,它指向调用函数的对象。
12.预处理命令以___符号开头。
答案:
(P183)operater
[解析]文件包含、预处理和编译都是以#开头。
13.类模板用来表达具有___的模板类对象集。
答案:
(P145)相同处理方法
[解析]模板特点是不同的数据具有相同的处理方法的抽象。
14.C++程序的源文件扩展名为___。
答案:
(P21)cpp
[解析]源程序*.cpp,目标文件为*.obj,可执行程序*.exe。
15.在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是___的头文件。
答案:
(P7)自定义
[解析]#include装入文件有两种方式<>和“”,一是系统的,一是自定义文件。
16.vector类中向向量尾部插入一个对象的方法是___。
答案:
(P157)push_back
17.C++语言中如果调用函数时,需要改变实参或者返回多个值,应该采取___方式。
答案:
(P51)传地址或引用
[解析]传地址即指针,在函数中通过指针修改它指向的变量的值时,实参也就变化了。
使用引
用,直接修改变量的别名即引用的值,该变量也就随着变化。
18.语句序列
ifstreaminfile;
(“”);
的功能可用一个语句实现,这个语句是___。
答案:
(P199)ifstreaminfile(“”);
[解析]voidifstream:
:
open(constchar*fname,intmode=ios:
:
in,int
access=filebuf:
:
openprot);
ifstream:
:
ifstream(constchar*fname,intmode=ios:
:
in,intaccess=filebuf:
:
openprot);
其中,第一个参数是用来传递文件名的;第二个参数mode的值决定文件将如何被打开;第三个参
数access的值决定文件的访问方式,一般取缺省值filebuf:
:
openprot,表示是普通文件。
mode的取值如下:
(1)ios:
:
in:
打开一个文件进行读操作,而且该文件必须已经存在
;
(2)ios:
:
nocreate:
不建立新的文件。
当文件不存在时,导致open()失败
;(3)ios:
:
noreplace:
不修改原来已经存在的文件。
若文件已经存在,导致open()失败
;(4)ios:
:
binary:
文件以二进制方式打开,缺省时为文本文件。
19.如果要把类B的成员函数voidfun()说明为类A的友元函数,则应在类A中加入语句___。
答案:
(P111)friendvoidB:
:
fun();
[解析]声明成员函数作为另外一个类的友元函数时,使用类作用域运算符:
:
。
20.在编译指令中,宏定义使用___指令。
答案:
(P6、97)#define
[解析]静态成员是所有对象共享的特征,也就是类的特征。
__
1.单目运算符作为类成员函数重载时,形参个数为___个。
答案:
(P189)0
[解析]单目运算符使用成员函数重载可以不用形参,双目运算符使用一个参数。
2.执行下列程序
inta=21,j=16;
(ios:
:
hex);
cout<(ios:
:
hex);
cout<程序的输出结果是___。
答案:
(P196)1516
[解析]a=21以十六进制输出,j=16以十进制输出。
3.为了在对象生存期结束时释放其指针成员所指向的动态存储空间,通常为该类定义___。
答案:
(P80)析构函数
[解析]析构函数用来释放对象所占的空间。
4.复制构造函数使用___作为形式参数。
答案:
(P80)对象的引用
[解析]复制构造函数使用对象的引用来初始化一个新对象,避免临时产生对象。
5.假定用户没有给一个名为AB的类定义构造函数,则系统自动给出的缺省构造函数定义为
___。
答案:
(P75)AB()
[解析]构造函数的名称必须同类名一致,为对象分配空间和初始化。
构造函数不能指定返回类
型,函数体中不允许有返回值。
构造函数可以重载,一个类可以定义多个参数个数不同的构造函
数。
如果一个类没有定义任何构造函数,那么C++就自动建立一个默认的构造函数,没有形参
,仅创建对象而不作任何初始化。
6.为了实现运行时的多态性,派生类需重新定义基类中的___。
答案:
(P165)虚函数
[解析]实现运行时多态性,需要在基类中声明虚函数或纯虚函数。
7.重载函数在参数类型或参数个数上不同,但___必须相同。
答案:
函数名
[解析]函数重载,形参个数、类型不同但函数名必须相同,返回类型可以不同。
8.下面程序运行的结果是___。
#include<>
voidmain()
{(*);
(5);
cout<<"hello"<();
}
答案:
hello
[解析]设置宽度是5但“hello”已经是5个宽度,所以不需要填充。
9.局部对象和全局对象中,在同一程序中___生存期最长。
答案:
全局对象
变量或对象的生命期或者作用域的不同,全局对象生命期长。
10.用___修饰函数称为虚函数。
答案:
(P170)virtual
[解析]虚函数的定义格式:
virtual返回类型函数名(形参列表){}。
11.下列程序段的输出结果是___。
(ios:
:
showpos);
cout<<<答案:
(P193)+
[解析]输入、输出格式ios:
:
showpos用于输出数据的符号位。
12.在C++中,利用向量类模板定义一个具有10个int的向量V,其元素均被置为字符2,实现此
操作的语句是___。
答案:
(P151)vectorV(10,2)
[解析]向量的操作,定义向量列表有多种形式,如
vectorV,vectorV(10),vectorV(10,2)或者vectorV(向量对象)。
13.定义重载函数,应在___上有所不同。
答案:
(P59)参数类型与参数的个数
[解析]重载必须在参数个数或参数类型不同,只有返回类型不同的函数不能构成函数的重载。
14.类是用户定义的类型,具有类类型的变量称作___。
答案:
(P37)对象
[解析]对象是类的一个实例。
类是对象的抽象。
15.在函数体之前加___关键字可以防止覆盖函数改变数据成员的值。
答案:
(P113)cons
[解析]const修饰的对象称为常对象,修饰的引用称为常引用它们的值不允许修改。
16.在构造函数和析构函数中调用虚函数时采用___。
答案:
(P167)静态联编
[解析]在析构或构造函数调用虚函数发生静态多态性。
17.若函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的___语句。
答案:
声明
[解析]函数使用有两部分:
声明和定义。
定义在前,可以无声明;但函数定义在后,调用在前
的话,需要先声明函数的原型。
18.C++提供的预处理语句有3种,文件包含、条件编译和___。
答案:
(P7)宏定义
[解析]预处理的语句有三种,文件包含、条件的编译和宏定义。
19.在C++中有两种参数传递方式:
传值和___。
答案:
(P51)传引用
[解析]
(1)传值调用又分为数据传值调用和地址传值调用。
(2)引用调用是将实参变量值传
递给形参,而形参是实参变量的引用名。
引用是给一个已有变量起的别名,对引用的操作就是对
该引用变量的操作。
20.在保护派生中,基类权限为public的成员在派生类中___。
答案:
(P132)保护类型
[解析]基类是保护或公有的,采用保护继承后,在派生类中都是保护类型。
采用公有继承后,基类是保护或公有的权限在派生类中不变。
采用私有继承后,基类是保护或公有的权限在派生类中为私有。
1.若要使用string类,需要引入的头文件是___。
答案:
(P40)
[解析]编译时要将头文件引入才能使用标准库中的方法或成员。
2.在函数前面用___保留字修饰时,则表示该函数表为内联函数。
答案:
(P59)inline
[解析]内联函数,用来提高程序运行速度。
在类内部定义的函数也是内