面向对象程序设计复习.doc
文本预览下载声明
面向对象程序设计复习
1.由c++目标文件连接而成的可执行文件的缺省扩展名为( B )。
A.cpp B.exe C.obj D.lik
2.下列哪个是C++语言的有效标识符?( A )。
A._No1 B.No.1 C.12345 D.int
3.有关函数重载的要求哪一个是正确的( D )。
A.必须保证参数类型和返回值类型均不同。 B.必须保证返回值类型不同。
C.必须保证参数的数量不同。 D.必须保证参数类型或数量不同。
4.下列关于析构函数的描述中,错误的是( A )。
A.析构函数名与类名完全相同; B.析构函数无返回类型
C.一个类只有一个析构函数; D.注销对象时,系统自动调用析构函数
5. int x,y,n,k; 下面程序段的功能是备选答案中的( B )。
cinxn;
k=0;
do{
x/=2;
k++;
}while(kn);
y=1+x;
k=0;
do{
y=y*y;
k++;
}while(kn);
coutyendl;
备选答案:
A. B. C. D.
6.下面对于友元函数描述正确的是( C )。
A.友元函数的实现必须在类的内部定义 B.友元函数是类的成员函数
C.友元函数破坏了类的封装性和隐藏性 D.友元函数不能访问类的私有成员。
7.在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是( C )。
A.派生类的对象可以赋给基类的对象; B.派生类的对象可以初始化基类的引用
C.派生类的对象可以直接访问基类中的成员;D.派生类的对象的地址可以赋给指向基类的指针
8.( D )不是构造函数的特征。
A.构造函数的函数名与类名相同; B.构造函数可以重载;
C.构造函数可以设置缺省参数; D.构造函数必须指定类型说明。
9.下列不是类成员访问权限控制属性的是( D )。
A.公有类型 B.私有类型 C.保护类型 D.友元类型
10.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是( C )。
A.友元函数 B.虚函数 C.构造函数 D.析构函数
11.下面有函数同名覆盖的说法中正确的是( D )
A.函数同名覆盖就是函数重载; B.同名覆盖函数的形参个数必须不同;
C.同名覆盖函数必须有不同的形参列表 D.同名覆盖函数存在与有继承关系的类中;
12.如果用p.a的形式访问派生类对象p的基类成员a,其中a可以是( D )
A.私有继承的公有成员 B.公有继承的私有成员
C.公有继承的保护成员 D.公有继承的公有成员
13.应在下列程序划线处填入的正确语句是( C )
#include iostream.h
class Base
{
public:
void fun(){coutBase::funendl;}
};
class Derived:public Base
{
void fun()
{
//显示调用基类的函数fun()
coutDerived::funendl;
}
};
A.fun(); B.Base.fun(); C.Base::fun(); D.Base-fun();
14、在矩形类中重载关系运算符=,采用友元,比较的依据是矩形面积的大小。重载算术运算符+=,采用成员函数,更新矩形对象,其长与宽,分别添上形参矩形的长与宽。重载算术运算符+,利用构造函数,采用友元。
class CRect{
int length,witdth;
public:
CRect(int l,int w){
length=l;
width=w;
}
friend int operator=( CRect r1, CRect r2){
return r1.length*r1.width = r2.length*r2.width ; //比较面积
}
void operator+=( CRect r){
length+=r.length ; //求长
width+=r.length ; //求宽
}
friend operator+( CRect r1, CRect r2){
return CRect( r1.length+r2.
显示全部