C++期末复习题.docx
- 文档编号:6246869
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:16
- 大小:20.99KB
C++期末复习题.docx
《C++期末复习题.docx》由会员分享,可在线阅读,更多相关《C++期末复习题.docx(16页珍藏版)》请在冰豆网上搜索。
C++期末复习题
2012年《面向对象程序设计》复习题
一、填空(试卷中该题,共10分,每空1分)
1、类的()只能被该类的成员函数或友元函数访问。
2、类的数据成员不能在定义是时候初始化,而应该通过()初始化。
3、类成员默认的访问方式是()。
4、C++中语句()p=”hello”;所定义的指针p和它所指的内容都不能被改变。
5、设p使指向一个类动态对象的指针变量,则执行deletep;语句时,将自动调用该类的()。
6、含有()的类叫做抽象类。
7、在类的继承中,原有的类称为父类或(),产生的新类称为子类或()。
8、带inline关键字定义的函数为(),在()时将函数体展开到所有调用处。
9、函数名相同,但对应形参表不同的一组函数称为(),参数表不同是指()。
10、绑定工作在程序编译阶段完成的情况称为()。
绑定工作在程序运行阶段完成的情况称为()。
11、每个对象都有一个指向自身的指针,称为(),通过使用它来确定其自身的地址。
12、()是一种特殊类型的变量,可以被认为是另一个变量的别名。
13、在C++中,三种派生方式的说明符号为()、()、(),如果不加说明,则默认的派生方式为()。
14、当私有派生时,基类的公有成员称为派生类的();保护成员成为派生类的();私有成员成为派生类的()。
15、在派生类中不能直接访问基类的(),否则破坏了基类的封装性。
16、定义名字空间的关键字()。
17、()是一种抽象,它负责在数据的生产者和数据的消费者之间建立联系,并管理数据的流动。
18、在C++的异常处理中,用于抛掷异常的关键字是(throw),用于异常处理程序的子句是(catch)。
二、单项选择(试卷中该题,共30分,每小题2分)
1、数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这一实体也就是()。
A.类B.对象C.函数体D.数据块
2、类的实例化是指()。
A.定义类B.创建类的对象C.指明具体类D.调用类的成员
3、下面说法正确的是()。
A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C.类的内联函数必须在类体内定义
D.类的内联函数必须在类体外通过加关键字inline定义
4、下列说法中正确的是()
A.类定义中只能说明函数成员的函数头,不能定义函数体
B.类中的函数成员可以在类体中定义,也可以在类体之外定义
C.类中的函数成员在类体之外定义时必须要与类声明在同一文件中
D.在类体之外定义的函数成员不能操作该类是私有数据成员
5、在建立类的对象时()
A.只为每个对象分配用于保存数据成员的内存
B.只为每个对象分配用于保存函数成员的内存
C.为所有的对象的数据成员和函数成员分配一个共享的内存
D.为每个对象的数据成员和函数成员同时分配不同内存
6.定义析构函数时,应该注意()。
A.其名与类名完全相同
B.返回类型是void类型
C.无形参,也不可重载
D.函数体中必须有delete语句
7.()是析构函数的特征。
A.一个类中只能定义一个析构函数
B.析构函数名与类名不同
C.析构函数的定义只能在类体内
D.析构函数可以有一个或多个参数
8.有关构造函数的说法不正确的是()。
A.构造函数名字和类的名字一样
B.构造函数在声明类变量时自动执行
C.构造函数无任何函数类型
D.构造函数有且只有一个
9.下列()不是构造函数的特征。
A.构造函数的函数名和类名相同
B.构造函数可以重载
C.构造函数可以设置缺省参数
D.构造函数必须指定类型说明
10、不属于成员函数的是()。
A.静态成员函数
B.友元函数
C.构造函数
D.析构函数
11、已知类A是类B的友元,类B是类C的友元,则()。
A.类A一定是类C的友元
B.类C一定是类A的友元
C.类C的成员函数可以访问类B的对象的任何成员
D.类A的成员函数可以访问类B的对象的任何成员
12.下面有关重载函数的说法中正确的是()。
A.重载函数必须具有不同的返回值类型;
B.重载函数形参个数必须不同;
C.重载函数必须有不同的形参列表
D.重载函数名可以不同;
13.下列关于构造函数的描述中,错误的是()。
A.构造函数可以设置默认参数;
B.构造函数在定义类对象时自动执行
C.构造函数可以是内联函数;
D.构造函数不可以重载
14.下面描述中,表达错误的是()。
A.公有继承时基类中的public成员在派生类中仍是public的
B.公有继承时基类中的private成员在派生类内部可以直接访问的
C.公有继承时基类中的protected成员在派生类中仍是protected的
D.私有继承时基类中的public成员在派生类中是private的
15.有如下的对类“CSample”的说明,其中()是错误的。
classCS{
A.intx=3;
B.CS();
public:
C.CS(intval);
D.~CS();
}
16.对于在类中定义的静态数据成员,下面正确的说法是()。
A.该类的每个对象中都有一个静态数据成员
B.对象创建时产生
C.在类外进行初始化
D.既可以在类外初始化,也可以在类内初始化
17、静态成员函数没有()。
A.返回值
B.this指针
C.指针参数
D.返回类型
18.下面关于友元的描述中,错误的是()。
A.友元函数可以访问该类的私有数据成员
B.一个类的友元类中的成员函数都是这个类的友元函数
C.友元不是必须使用,则尽可能少用。
D.类与类之间的友元关系可以继承
19、C++中,关于默认形参值,正确的描述是()。
A.设置默认形参值时,形参名不能缺省
B.只能在函数定义时设置默认形参值
C.应该先从右边的形参开始向左边依次设置
D.应该全部设置
20、系统在调用重载函数时,根据一些条件确定调用哪个重载函数,下列条件中,不能作为依据的是()。
A.参数个数
B.实参类型
C.函数名称
D.函数类型
21、下列函数原型声明中错误的是()。
A.voidFun(intx=0,inty=0);
B.voidFun(intx,inty);
C.voidFun(intx,inty=0);
D.voidFun(intx=0,inty);
22、为了取代C中带参数的宏,在C++中使用()。
A.重载函数
B.内联函数
C.递归函数
D.友元函数
23.已知:
inty=5;下列表示引用的方法中,()是正确的。
A.int&x=y;
B.int&x=5;
C.int&x;
D.float&x=&y;
24、下面叙述不正确的是()。
A.基类的保护成员在派生仍然是保护的
B.基类的保护成员在公有派生类中仍然是保护的
C.基类的保护成员在私有派生中仍然是私有的
D.对基类成员的访问必须是无二义性的
25、在公有派生情况下,派生类中定义的成员函数只能访问原基类的()。
A.公有成员和私有成员
B.私有成员和保护成员
C.公有成员和保护成员
D.私有成员、保护成员和公有成员
26.在一个派生类对象结束其生命周期时()
A.先调用派生类的析构函数后调用基类的析构函数
B.先调用基类的析构函数后调用派生类的析构函数
C.如果基类没有定义析构函数,则只调用派生类的析构函数
D.如果派生类没有定义析构函数,则只调用基类的析构函数
27、当保护继承时,基类()在派生类中成为保护成员,不能通过派生类的对象来直接访问。
A.任何成员
B.公有成员和保护成员
C.公有成员和私有成员
D.私有成员
28、若派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的().
A.私有成员
B.公有成员
C.保护成员
D.保护成员或私有成员
29.在C++中,用于实现动态多态性的是()。
A.内联函数B.重载函数C.模板函数D.虚函数
30、()是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。
A.虚析构函数
B.虚构造函数
C.纯虚函数
D.静态成员函数
31、以下基类中的成员函数,哪个表示纯虚函数()。
A.virtualvoidvf(int);
B.voidvf(int)=0;
C.virtualvoidvf()=0;
D.virtualvoidyf(int){}
32、如果一个类至少有一个纯虚函数,那么就称该类为()。
A.抽象类
B.虚基类
C.派生类
D.以上都不对
33、关于纯虚函数和抽象类的描述中,()是错误的。
A.纯虚函数是一种特殊的虚函数,它没有具体的定义
B.抽象类是指具有纯虚函数的类
C.一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类
D.抽象类只能作为基类来使用,其纯虚函数的定义由派生类给出
34、下列描述中,()是抽象类的特征。
A.可以说明虚函数
B.可以进行构造函数重载
C.可以定义友元函数
D.不能定义其对象
35.设置虚基类的目的是()。
A.简化程序
B.消除二义性
C.提高运行效率
D.减少目标代码
三、判断题(试卷中该题,共10分,每小题1分)
四、程序填空(试卷中该题,共10分,每空2分)
1、#include
#include
usingnamespacestd;
classA
{private:
charname[80];
public:
A(__________)
(1){__________}
(2)
voidPrint(){cout<<”name:
”< }; intmain() { Aa(“xiaoLi”); a.Print(); return0; }//执行结果: name: xiaoLi 2、#include usingnamespacestd; classA { ____________ (1) intx; public: A(__________) (2){__________}(3) }; classB____________(4) { public: B(constintx)____________{}(5) voidPrint(){cout<<”x: ”< }; intmain() { Bb(36); b.Print(); return0; }//执行结果: x: 36 3、#include usingnamespacestd; classA {int*a; public: A(intaa=0) {a=; (1)}//用aa初始化a所指向的动态对象 ~A(){; (2)}//释放动态存储空间 } 4、 #include usingnamespacestd; classA {public: A(){a=0;} A(inti){a=i;}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 期末 复习题