程序的输出结果是___.
答案:
1516
[解析]a=21以十六进制输出,j=16以十进制输出.
57.在单继承和多重继承方式中,面向对象的程序设计应尽量使用___继承.
答案:
单
[解析]多重继承是单继承的扩展,且多重继承易产生二义性等问题.
58.在用class定义一个类时,数据成员和成员函数的默认访问权限是___.
答案:
private
[解析]定义类时的成员默认为私有,而结构体则是公有.
59.所有模板都是以___关键字和一个形参表开头的.
答案:
template
[解析]类模板,函数模板都要使用template这一关键字.
60.在C++语言中,访问一个对象的成员所用的成员运算符是___.
答案:
.
[解析]成员运算符".〞,如果是指针可以使用"->〞.
61.开发一个C++语言程序的步骤通常包括编辑、___、连接、运行和调试.
答案:
编译
[解析]vc开发过程,要经过编辑、编译、连接和运行四个步骤,与其它高级语言相同.
62.执行下列代码
stringstr<"HelloC++">;
cout<;
程序的输出结果是___.
答案:
C++
[解析]substr取子字符串,第1个参数表示要截取子串在字符串中的位置,第2个表示取多少个
字符.
63.定义___函数时,应在参数个数或参数类型上有所不同.
答案:
重载
[解析]重载函数要求同名函数具有相同的功能,而只能是函数类型、参数个数或参数顺序不同
.系统将根据同名函数的这些不同之处来选择其对应的实现.
64.设A为test类的对象且赋有初值,则语句testB;表示.
答案:
将对象A复制给对象B.
分析:
执行testB;语句相当于调用了默认复制构造函数,将A对象的属性复制给B对象.
65.利用"对象名.成员变量〞形式访问的对象成员仅限于被声明为<1>的成员;若要访问其他成员变量,需要通过<2>函数或<3>函数.
答案:
<1>public<2>成员函数<3>友元函数
分析:
类体内的数据成员可声明为公有的、私有的和保护的,公有的数据成员可利用"对象名.成员变量〞形式来进行访问;私有的数据成员能被类中的其他成员函数或友元函数所调用;保护的数据成员可以在类体中使用,也可以在派生类中使用,但不能在其他类外通过对象使用.
66.纯虚函数是一种特别的虚函数,它没有函数的函数体部分,也没有为函数的功能提供实现的代码,它的实现版本必须由派生类给出,因此纯虚函数不能是友元函数.拥有纯虚函数的类就是抽象类类,这种类不能实例化.如果纯虚函数没有被重载,则派生类将继承此纯虚函数,即该派生类也是抽象.
67.对一个类中的数据成员的初始化,可以通过构造函数来实现,也可以通过该类的成员函数来实现.
68.类成员的三种访问控制属性是:
公有〔public〕、保护〔protected〕、私有〔private〕.
69.在类内部定义的公有〔public〕数据可以在类外进行存取,但保护〔protected〕数据和私有〔private〕数据不能在类外直接存取.
70.在OOP中,当类的继承方式为公有继承时,基类的公有成员和保护成员的访问属性在派生类中不变,基类的私有成员不可访问.
71.在一个类中可以定义多个构造函数,1个析构函数.
72.在删除一个动态对象时,将自动调用该动态对象所属类的析构函数.
73.为了在对象生存期结束时释放其指针成员所指向的动态存储空间,通常需要为该类定义析构函数.
74.当建立一个新对象时,程序自动调用构造函数.
75.类的私有成员只能被它的成员函数和友元函数访问.
76.假定用户没有给一个名为AB的类定义析构函数,则系统自动给出的缺省析构函数定义为~AB<>{}.
77.一个抽象类的派生类可以实例化的必要条件是实现了所有的纯虚函数.
78.在C++中,虚函数帮助实现了类的多态性.
79.通过C++语言中类的继承〔派生〕机制,可以扩充和完善已有类以适应新的需求.
80.C++类族中,不能被派生类继承的有构造函数、析构函数.
81.定义重载函数时,应保证参数个数或参数类型有所不同.
82.在OOP中多态是指同样的消息被不同对象接收时可产生不同的行为;它通过重载虚函数等技术来实现.
83.定义模板的关键字是template.
84.模板定义中标识类型的参数必须用关键字class<或typename>修饰.
85.类模板可以使用两种形式的参数,分别是:
类型参数和普通参数.
86.函数模板既可以与函数模板重载,也可以与普通函数重载.
87.C++的I/O系统通过流的机制实现文件和控制台的输入输出操作.
88.cin是输入流istream的一个对象,处理标准输入;cout是输出流ostream的一个对象,处理标准输出.
89.设要把一个文件输出流对象myFile与文件"f:
\myText.txt〞相关联,所用的C++语句是:
__ifstreammyFile<"f:
\\myText.txt〞>;_.
90.设在程序中使用如下语句申请了一个对象数组:
Point*ptr=newPoint[2];
当要释放ptr指向的动态数组对象时,所使用的语句是__delete[]ptr;_.
91.在保护派生中,基类权限为Private的成员在派生类中___不可访问_____.
92.类A有如下成员函数:
intA:
:
fun{returnx/2;}
intA:
:
fun{returnx*2;}
设a为类A的对象,在主函数中执行语句ints=a.fun<6.0>+a.fun<2>后的s值为_7__.
93.类A有如下成员函数:
intA:
:
fun{returnx/2;}
intA:
:
fun{returnx*2;}
设a为类A的对象,在主函数中执行语句ints=a.fun<6>+a.fun<2.0>后的s值为__13__.
94.完成下面类中的成员函数的定义.
classpoint{
intm,n;
public:
point;
point;
};
point:
:
point{//此构造函数分别将两个参数值赋给数据成员m和n.
m=a;
___n=b;
}
point:
:
point<___point&t___>{//此构造函数通过对象t赋值给两个数据成员m和n.
m=t.m;
n=t.n;
}
95.下面是一个输入半径,输出其面积和周长的C++程序,在下划线处填上正确的语句.
#include
usingnamespacestd;
constfloatpi=3.14159;//定义pi为浮点型常量
voidmain<>{
doubler,l,s;
cout<<″r=″;
___cin>>r;______//输入圆半径值给变量r
l=2.0*pi*r;//计算圆周长值给变量l
s=pi*r*r;//计算圆面积值给变量s
cout<<″\nThelongis:
″<cout<<″Theareais:
″<
}
96.在下划线处填上缺少的部分.
#include
#include
usingnamespacestd;
classcomplex{
public:
intreal;
intimag;
complex{
real=r;
imag=i;
}
};
complexoperator+<__complex&a___,complex&b>{
intr=a.real+b.real;
inti=a.imag+b.imag;
return__complex;//将结果以对象方式返回
}
voidmain<>{
complexx<1,2>,y<3,4>,z;
z=x+y;
cout<}
97.程序的输出结果如下:
1,9
50,30
请根据输出数据在下面程序中的下划线处填写正确的语句.源程序如下:
#include
usingnamespacestd;
classbase{
private:
intm;
public:
base<>{};
base:
m{}
intget<>{returnm;}
voidset{m=a;}
};
voidmain<>{
base*ptr=newbase[2];
ptr->set<30>;
ptr=____ptr+1;_____
ptr->set<50>;
bas