《程序设计基础二》理论复习题
一、单选题
1、下列关于类和对象的叙述中,错误的是   
A一个类只能有一个对象    B对象是类的具体实例
C类是对某一类对象的抽象    D、类和对象的关系是一种数据类型与变量的关系
2、 C++中,用于实现运行时多态性的是   
A、内联函数    B重载函数    C模板函数    D虚函数
3下列关于运算符重载的叙述中,正确的是   
A、通过运算符重载,可以定义新的运算符    B有的运算符只能作为成员函数重载
C、若重载运算符  +,则相应的运算符函数名是+    D重载二元运算符时,必须声明两个形参
4、对于语句cout<<x<<endl;    错误的是描述是   
Acout ”是一个输出流对象    Bendl ”的作用是输出回车换行
Cx”是一个变量    D<<”称作提取运算符
5、有如下类声明,则类MyDERIVED中保护的数据成员和成员函数的一共有几个?   
class MyBASE
{
private: 
int k;
public: 
void set(int n){ k=n;}
int get( )const{ return k;}   
};
class MyDERIVED: protected MyBASE
{
protected:
int j;
public: 
void set(int m, int n){ MyBASE::set(m); j=n;}
int get( ) const { return MyBASE::get( )+j; }   
};
A4    B3    C2      D1
6、执行如下的程序段后,输出结果是   
cout.fill('*'); cout.width(6); cout.fill('#'); cout << 123 << endl;
A###123  B123###  C***123  D123***
7、在下列函数原型中,可以作为类AA构造函数的是   
Avoid AA(int);    Bint AA();    CAA(int)const;    DAA(int);
8、下面四个选项中,    是用来声明虚函数的。
Avirtual  Bpublic  Cinclude  Dusing namespace
9、实现运行时的多态性要使用   
A、重载函数    B构造函数    C析构函数  D虚函数
10、要实现动态联编,必须通过    调用虚函数。
A、对象指针    B成员名限定  C对象名   D派生类名
11、以下    成员函数表示纯虚函数。
Avirtual int vf(int);    Bvoid vf(int)=0;
Cvirtual void vf()=0;    Dvirtual void vf(int){}
12、有如下类声明:    class XA
{ private: int x;
public: XA(int n){ x=n;} };
class XB: public XA
{ private: int y;
public: XB(int a,int b); };
在构造函数    XB的下列定义中,正确的是   
AXB::XB(int a,int b): x(a),y(b){ }    BXB::XB(int a,int b): XA(a),y(b){ }
CXB::XB(int a,int b): x(a),XB(b){ }  DXB::XB(int a,int b): XA(a),XB(b){ }
13、在表达式    x+y*z中, +是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。则 operator+    个参数, operator*        参数。    
A22    B21    C1    D11
14、类的析构函数的作用是   
A作为类的一般成员函数 B类的初始化   C对象的初始化   D多态性与虚函数对象的删除
15、一个类的友元函数或友元类可以访问该类的   
A私有成员          B保护成员          C公有成员        D所有成员
16、下列对派生类的描述中,    是错误的。
A一个派生类可以作为另一个派生类的基类                     B派生类至少有一个基类
C派生类的成员除了它自己的成员外, 还包含了它的基类的成员   D派生类中继承的基类
成员的访问权限到派生类中保持不变
17、下列的描述中,    是错误的。
A 公有继承时基类中的public成员在派生类中仍是public      B公有继承时基类中的private成员在派生类中仍是private
C公有继承时基类中的protected成员在派生类中仍是protected  D私有继承时基类中的public成员在派生类中仍是private
18、下列虚基类的声明中正确的是   
Aclass virtual B: public  A        Bvirtual class B: public  A
C class B: public  A  virtual    Dclass B: virtual  public  A
19、若类A和类B的定义如下:
class A
{
int i, j;
public:
A(int m, int n): i(m), j(n) {}
int Geti() { return i;}
};
class B: public A
{
int k;
public:
B(int m, int n, int u): A(m, n), k(u) {}
void Make() { k = i * j; }
};
int main()
{
B b(1, 2, 3);
return 0;
}
则上述定义中,    是非法的表达式.
A k=i*j;      Bint k;    Creturn i;      Dvoid Make( )
20、若有以下程序:
#include <iostream>
using  namespace  std;
class  A
{
public:
int a;
A() { a =10; }
};
class  A1: public  A1
{
public:
A1() { a = a + 1; } \
};
class  A2: public A
{
public:
A2() { a = a + 2; }
};
class B: public A1, public A2
{
public:
B() {}
void Print() { cout << a << endl; }
};
int main()
{
B obj;
obj.Print();
return 0;
}
则程序运行后的输出结果为:   
A产生语法错误    B13      C12    D10
21、在下面的4个关键字中,    是用来说明虚函数的。
Avirtual      Bpublic    Cprotected        Dprivate
22、如果一个类至少有一个纯虚函数, 那么该类称为   
A抽象类    B虚基类      C派生类    D以上都不对
23cin是某个类的标准对象,该类是   
Aostream        Bistream        Cstdout            Dstdin
24、调用一个成员函数时,使用动态联编的情况是   
A通过对象调用一虚函数          B通过指针或引用调用一虚函数
C通过对象调用一静态函数        D通过指针或引用调用一静态函数
25、假定CTest为一个类,并且有一无默认值的有参构造函数和一无参构造函数,则执行“CTest objTest;”语句时将自动调用该类的   
A有参构造函数 B无参构造函数   C拷贝构造函数    D赋值重载函数
26、下列对类的构造函数和析构函数描述正确的是   
A构造函数可以重载,析构函数不能重载   B构造函数不能重载,析构函数可以重载
C构造函数可以重载,析构函数可以重载   D构造函数不能重载,析构函数不能重载
27、下面有关重载函数的说明中,    是正确的。
A重载函数必须具有不同的返回值类型     B重载函数形参个数必须不同
C重载函数一般具有不同的形参列表       D重载函数名可以不同
28、下列有关类与对象的说法中,    是不正确的。
A对象是类的一个实列         B任何一个对象只能属于一个具体的类
C一个类只能有一个对象       D类和对象的关糸和数椐类型与变量的关糸类似
29、已知: Print( )函数是一个类的常成员函数,它无返回值,下列表示中,正确的是   
Avoid Print( ) const      Bconst void Print( )    Cvoid const Print( )        Dvoid
Print(const)
30、假定Myclass为一个类,那么下列的函数说明中    为该类的析构函数。
Avoid Myclass( );        BMyclass( int n)        CMyclass( );        DMyclass( )
31、下面类的定义中有    处错误。

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