};
class C:public A{ public:
C(){cout<<\;} };
void main(){C cobj;}
A) AC B) CA C) A D) C
40.有如下程序:执行后的输出结果应该是:( D ) #include
~BASE(){cout<<\;} };
class DERIVED: public BASE{ public:
~DERIVED(){cout<<\;} };
void main(){DERIVED x;}
A)BASE B)DERIVED C)BASEDERIVED D)DERIVEDBASE
41.类TM和类TN是两个独立的类,那么类TM中哪种形式的数据成员一定是不允许的:( C ) A)TM * a B)TN & a C)TM a D)TN a;
42.通过下述哪一项调用虚函数时,采用动态联编。( A )
A)对象指针 B)对象名 C)成员名限定 D)派生类名
43.在下述哪种情况下适宜采用inline定义内联函数。( C ) A)函数体含有循环语句 B)函数体含有递归语句
C)函数代码少、频繁调用 D)函数体含有switch语句
44.创建动态对象,需要使用操作符( A ) A) new B) delete C) . D) * 45.删除动态对象,需要使用操作符( B )
A) new B) delete C) . D) *
46.在C++中不能被重载的一组运算符是:( A )
A):: ?: . sizeof B)?: . sizeof ++ ->
C):: ?: new delete D)++ -- ?: sizeof
47.如果类A被说明成类B的友元,则( C ) A)类A的成员即是类B的成员 B)类B的成员即是类A的成员
C)类A的成员函数可以访问类B的所有成员
D)类B的成员函数可以访问类A的所有成员
48.下面关于友元的描述中,错误的是:( D ) A)友元函数可以直接访问该类的私有成员。
B)一个类的友元类中的所有成员函数都是这个类的友元函数。 C)利用友元可以提高程序的运行效率,但却破坏了封装性。
D)友元关系不能被继承,是双向可交换的。
49.下列虚基类的声明中,正确的是:( B )
A)class virtual B: public A B)class B: virtual public A
C)class B: public A virtual D)virtual class B: public A
50.C++设置虚基类的目的是( A )
A)消除二义性 B)简化程序 C)提高运行效率 D)减少目标代码
51.有如下模板定义:
template
A)fun(2,8) B)fun(2.0,8.2) C)fun(2.3,8) D)fun
52.通常情况下,函数模板中的类型参数个数不能是( A )
A)0个 B)1个 C)2个 D)3个
53.以下关于this指针的叙述中正确的是:( D )
A)任何与类相关的函数都有this指针; B)类的成员函数都有this指针;
C)类的友员函数都有this指针; D)类的非静态成员函数才有this指针;
54.当一个类的某个函数被说明为virtual时,在该类的所有派生类中的同原型函数( A ) A)都是虚函数 B)只有被重新说明时才是虚函数
C)都不是虚函数 D)只有被重新说明为virtual时才是虚函数
55.在派生类中重新定义虚函数时,必须在下列哪方面与基类保持一致。( A )
A)参数类型 B)参数名字 C)操作内容 D)赋值
56.关于const关键字说法错误的是( D )
A)const关键字可以修饰对象和成员函数 B)const对象不能被修改
C)const成员函数不能修改类数据成员 D)const可以用于说明类
57.执行如下程序后的输出结果是:( B ) #include
static int count; public:
test(){count++;} ~test(){count--;}
static int getCount(){return count;} };
int test::count=0; int main() {
test * p=new test; test * q=new test; delete p;
cout<<\; return 0; }
A)count=0 B)count=1 C)count=2 D)count=3
58.关于类模板的说法正确的是:( B ) A)类模板的主要作用是生成抽象类
B)类模板实例化时,编译器将根据给出的模板实参生成一个类 C)在类模板中的数据成员具有同样类型
D)类模板中的成员函数没有返回值
59.有如下说明语句int a[10]={1,2,3,4,5,6,7,8,9,10};int *p=a;则数值为9的表达式是:( B )。
A)*p+9 B)*(p+8) C)*p+=9 D)p+7
60.以下关键字不能用来声明类的访问权限的是:( C )
A)public B)private C)static D)protected
61.实现运行时的多态性采用( D )
A)重载函数 B)构造函数 C)析构函数 D)虚函数
62.下列说明语句中正确的是:( D )
A)int a,&ra=a,&&ref=ra; B)int &refa[10];
C)int a,&ra=a,&*refp=&ra; D)int *pi, *&pref=pi;
63.进行文件操作时需要包含头文件( C )
A)iostream.h B)stdio.h C)fstream.h D)stdlib.h
64.使用如setw()的格式操纵符时需要包含头文件( C )
A)iostream.h B)fstream.h C)iomanip.h D)stdlib.h
65.对C++语言和C语言的兼容性,描述正确的是:( A )
A)C++兼容C B)C++部分兼容C C)C++不兼容C D)C兼容C++ 66.在C++中使用流进行输入输出,其中用于屏幕输出的对象是:( C ) A)cerr B)cin C)cout D)cfile
67.对使用关键字new所开辟的动态存储空间,释放时必须使用( C ) A)free B)create C)delete D)realse
68.如没有使用private关键字定义类的数据成员,则默认为( A ) A)private B)public C)protected D)friend
69.使用值传递方式将实参传给形参,下列说法正确的是:( A ) A)形参是实参的备份 B)实参是形参的备份 C)形参和实参是同一对象 D)形参和实参无联系
70.在函数调用时,如某一默认参数要指明一个特定值,则有( A ) A)其之前所有参数都必须赋值 B)其之后所有参数都必须赋值 C)其前、后所有参数都必须赋值 D)其前、后所有参数都不必赋值
71.设存在函数int max(int,int)返回两参数中较大值,若求22,59,70三者中最大值,下列表达式不正确的是:( C )
A)int m = max(22,max(59,70)); B)int m = max(max(22,59),70); C)int m = max(22,59,70); D)int m = max(59,max(22,70)); 72.下列哪个类型函数不适合声明为内联函数( A )
A)函数体语句较多 B)函数体语句较少 C)函数执行时间较短 D)函数执行时间过长 73.int Func(int,int);不可与下列哪个函数构成重载( B ) A)int Func(int,int,int); B)double Func(int,int); C)double Func(double,double); D)double Func(int,double); 74.类的私有成员可在何处访问( D )
A)通过子类的对象访问 B)本类及子类的成员函数中 C)通过该类对象访问 D)本类的成员函数中
75.如果没有为一个类定义任何构造函数的情况下,下列描述正确的是:( A ) A)编译器总是自动创建一个不带参数的构造函数 B)这个类没有构造函数 C)这个类不需要构造函数 D)该类不能通过编译 76.一个类可包含析构函数的个数是:( B ) A)0个 B)1个 C)0个或1个 D)0个或多个 77.一个类可包含构造函数的个数是:( D )
A)0个 B)0个或1个 C)0个或多个 D)1个或多个 78.this指针存在的目的是:( B ) A)保证基类公有成员在子类中可以被访问
B)保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码 C)保证基类保护成员在子类中可以被访问 D)保证基类私有成员在子类中可以被访问
79.下列关于类的权限的描述错误的是:( A ) A)类本身的成员函数只能访问自身的私有成员 B)类的对象只能访问该类的公有成员
C)普通函数不能直接访问类的公有成员,必须通过对象访问 D)一个类可以将另一个类的对象作为成员
80.在编译指令中,宏定义使用哪个指令( B ) A)#include B)#define C)#if D)#else
81.设类A将其它类对象作为成员,则建立A类对象时,下列描述正确的是:(A)A类构造函数先执行 B)成员构造函数先执行 C)两者并行执行 D)不能确定 82.下列描述错误的是:( A )
A)在创建对象前,静态成员不存在 B)静态成员是类的成员
C)静态成员不能是虚函数 D)静态成员函数不能直接访问非静态成员83.对于友元描述正确的是:( B )
A)友元是本类的成员函数 B)友元不是本类的成员函数 C)友元不是函数 D)友元不能访问本类私有成员
84.在哪种派生方式中,派生类可以访问基类中的protected成员( B ) A)public和private B)public和protected
) B
C)protected和private D)仅protected
85.在每个C++程序中都必须包含的一个函数是( B ) A)main() B)MAIN() C)name() D)function() 86.设x和y均为bool量,则x&&y为真的条件是( A )
A)它们均为真 B)其中一个为真 C)它们均为假 D)其中一个为假 87.下面的哪个保留字不能作为函数的返回类型( C ) A)void B)int C)new D)long
88.假定a为一个整型数组名,则元素a[4]的字节地址为( C ) A)a+4 B)a+8 C)a+16 D)a+32
89.假定有类AB,有相应的构造函数定义,能正确执行“AB a(4),b(5), c[3] , *p[2]={&a,&b};”语句,请问执行完此语句后共调用该类构造函数的次数为( C ) A)3 B)4 C)5 D)6
90.假定有类AB,有相应的构造函数定义,能正确执行 “AB a(4),b(5), c[3] , *p[2]={&a,&b};”语句,请问执行完此语句后共调用该类析构函数的次数为( C ) A)3 B)4 C)5 D)6
91.对类中声明的变量,下列描述中正确的是:( B )
A)属于全局变量 B)属于该类,某些情况下也可被该类不同实例所共享 C)只属于该类 D)任何情况下都可被该类所有实例共享
92.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为( ? )
A)AB operator+(AB & A , AB & B); B)AB & operator+(AB A); C)AB operator+(AB & A); D)AB * operator+(AB A);