文档详情

C++面向对象程序设计复习题.doc

发布:2017-08-30约5.79千字共7页下载文档
文本预览下载声明
一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,每小题1分,共15分。) 1.C++语言是从早期的C语言逐渐发展演变而来的。与C语言相比,它在求解问题方法上进行的最大改进是( B ) (A)面向过程  (B)面向对象  (C)安全性  (C)复用性 2.说明内联函数的关键字为( D ) (A)virtual (B)static (C)enum (D)inline 3.下列运算符中,不可以重载的运算符是( B ) (A) [] (B) :: (C)() (D)= 4.下列关于类与对象的说法中,不正确的是 ( C ) ( A ) 对象是类的一个实例 ( B ) 任何一个对象只能属于一个具体的类 ( C ) 一个类只能有一个对象 ( D ) 类与对象的关系和数据类型与变量的关系相似 5. 下面有关重载函数的说法中正确的是( C ) ( A )重载函数必须具有不同的返回值类型    ( B )重载函数形参个数必须不同    ( C )重载函数必须有不同的形参列表   ( D )重载函数名可以不同 6. 下列关于构造函数的描述中,错误的是( D ) ( A )构造函数可以设置默认参数   ( B )构造函数在定义类对象时自动执行   ( C )构造函数可以是内联函数    ( D )构造函数不可以重载 7.有关析构函数的说法不正确的是( C ) (A)一个类中析构函数有且只有一个 (B)析构函数无任何函数返回类型 (C)析构函数和构造函数一样可以有形参 (D)析构函数作用是在对象被撤消时收回先前分配的内存 8.对于重载X类的前缀方式++的友元函数为( A ) (A) X operator++(X) (B) X X::operator++( ) (C) X operator++(X, int) (D) X X::operator++(int i) 9.关于派生类中的构造函数和析构函数,以下说法正确的是( C ) ( A ) 派生类的构造函数必须显式调用基类的构造函数 ( B ) 派生类的析构函数必须显式调用基类的析构函数 ( C ) 构造函数按基类到派生类的次序执行 ( D ) 析构函数按基类到派生类的次序执行 10.考虑函数原型void testfunc ( float x,int y = 7, char z = ‘*’ ), 下面的函数调用中,属于不合法调用的是 ( C ) ( A ) testfunc (5.31) ( B ) testfunc (5.31,8) ( C ) testfunc (5.31,’#’) ( D ) testfunc (5.31,0,’*’) 11.TestClass为一个类,执行“TestClass x[3],*p[2];”语句会自动调用该类的构造函数( B )次 ( A ) 2 ( B ) 3 ( C ) 4 ( D ) 5 12.以下关于指针和引用的说法正确的是( D ) ( A ) 指针和引用都必须在声明时对其进行初始化 ( B ) 指针和引用完全一样 ( C ) 指针和引用本身都是数据类型 ( D ) 指针和引用都可以作为参数传递 13.若在类X外有函数调用X ::func( ),则函数func( )是类X的( C )函数 (A)私有静态成员函数 (B)公有非静态成员函数 (C)公有静态成员函数 (D)友元函数 14.关于this指针,以下( B )不正确 (A)this指针是指向对象的指针 (B)this 指针不可以指向常量 (C)this指针不能作为赋值运算的目标对象 (D)this指针是指向对象的常指针 15.以下说法错误的是( D ) ( A ) 无论建立多少个该类的对象,都只有一个静态数据的存储空间。 ( B ) 静态数据成员属于类,而不属于对象。 ( C ) 静态成员函数没有this指针。 ( D ) 静态数据成员的存储空间由构造函数来分配。 1. # include iostream.h class XX { protected: int k; public: XX ( int n = 5 ) : k (n) { } ~XX ( ) { cout “XX”;} virtual void f ( ) ; }; void XX :: f ( ) { cout k +3;} class YY
显示全部
相似文档