期末考试试卷及参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、是非题(每小题 1. 5 分,共 15 分) 说明:判断各小题说法的正确性,在下面表格中
对应的题号下填入是非选择, 若正确,则打钩(√);否则,打叉(×)。
返回值类型就可以了。
2. 函数定义中的形参的作用域是该函数的函数体。
3. 用 new 动态申请的内存空间,必须用 delete 来释放。
4. 构造函数和析构函数都可以声明为虚函数。
5. 在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。
6. 类的静态数据成员需要在定义每个类的对象时进行初始化。
7. 使用关键字 class 定义的类中缺省的访问权限是私有(private )的。
8. 在基类中被说明为虚函数的类的成员函数必须在每个派生类中说明为虚函数,才 能具有多态的特征。
9. C++程序中,程序将流对象看作是文件的化身。
10.如果程序中有多处要抛掷异常,应该用不同的操作数类型来相互区别,操作数 的值不能用来区别不同的异常。
二、填空题(每小题 1. 5 分,共 15 分) 1 . 变 量 名是 变 量的 标识 , 由 组 成 , 而 且必 须 以 开头。
2.有了函数原型,函数的作用域就不是从 开始,而是从 开始。 3.获取一个变量的地址所采用的操作符是 。 4.使用 const 语句定义一个标识符常量时,则必须对它同时进行 。 5.假定类 AB 中有一个公用属性的静态数据成员 bb ,在类外不通过对象名访问该成 员 bb 的写法为 。 6.typedef 语句的作用为 。 7.平时所提到的使用 MFC 编程,这里的 MFC 是 的缩写。 8.若要在程序文件中进行标准输入输出操作,则必须在开始的 # include 命令中 使用 头文件。 9.C++中,若将 操作符插入到输出流中,则以十六进制格式输出。 10.C++程序中,异常处理程序的主要任务是 。
三、单选题(在备选答案中选出一个正确答案填入括号内,每小题 2 分,共 20 分) 1.C++对 C 语言作了很多改进,下列描述中使得 C 语言发生质变,从面向过程变成 了面向对象的是( )。
学院 __________ 班级___________ 姓名___________
学号____________
——————————————装——————————订———————————————线—————————
A.增加了一些新的运算符 B. 允许函数重载,并允许设置缺省参数C.规定函数说明必须用原型 D. 引进了类和对象的概念
2.当一个函数无返回值时,定义它的函数的类型是( )。
A. void
B. int
C. 无
D. long 3.下列不是构造函数特征的是()。
A. 构造函数的函数名与类名相同
B. 构造函数可以重载
C. 构造函数可以设置缺省参数
D. 构造函数必须指定返回类型4.关于成员函数特征的下列描述中,错误的是()。
A.成员函数一定是内联函数B.成员函数可以重载
C.成员函数可以设置缺省参数值D.成员函数可以是静态的
5.关于new 运算符的下列描述中,错误的是()。
A. 它可以用来动态创建对象和对象数组
B. 使用它创建的对象或对象数组可以使用运算符delete 删除
C. 使用它创建对象时要调用构造函数
D. 使用它创建对象数组时必须指定初始值 6.派
生类的对象对它的基类成员中可以访问的是()。
A. 公有继承的公有成员
B. 公有继承的私有成员
C. 公有继承的保护成员
D. 私有继承的公有成员
7.下列描述中,正确的是().
A. 虚函数是一个static 类型的成员函数
B. 虚函数是一个非成员函数
C. 抽象类是指具有纯虚函数的类
D. 抽象类可以说明其对象
8.假定要对类AB 定义加号操作符重载成员函数,实现两个AB 类对象的加法,并返回相加结果,则该成员函数的声明语句为 ( )。
A. AB operator+(AB & a, AB & b)
B. AB operator+(AB & a)
C. operator+(AB a)
D. AB & operator+( ) 9.下列不属于VC消息映射内容的是( )。
A. 通过将DECLARE_MESSAGE_MAP 添加到类声明,声明消息映射
B. 改写MFC相关类的虚函数
C. 放置标识消息的宏来执行消息映射
D. 添加成员函数来处理消息 10.下列关
于VC++编程描述中,错误的是()。
A. Windows 是一个基于事件驱动、基于消息的操作系统。
B.Windows 程序始终是程序而不是操作系统决定何时调用哪个函数。
C.对于使用VC 向导生成的程序框架,我们也可以用手工的方式写出。
D.MFC 类库其实是对windows API 函数的封装。
四、根据下面各小题题目要求进行简单回答(第1 小题6 分,第2 小题3 分,第3 小题6 分,共15 分)
(1) 已知类B 和类D,它们的类关系如下。请以类对象b1,d1 和指针pb1 为例
简要说明C++赋值兼容规则。(本小题 6 分)
class B
{ … };
class D :pubic B
{ … };
B b1, * pb1;
D d1;
答:a)
b)
C)
(2) 下列的程序定义了一个交换两个浮点数的函数swap,并在主函数中调用这个函数进行两个浮点数的交换(本小题 3 分)
void swap (float a , float b)
{
float temp=a;
a=b; b=temp;
}
void main( )
{
float a=1,b=2;
swap ( a, b );
}
错误为:
改正方法为:
(3) 写出下面程序运行结果。(本小题 6 分)
#include
class A
{public:
virtual void act1() { cout<<"A::act1() called. "< void act2() { act1(); } }; class B : public A {public: void act1() {cout<<"B::act1() called. "<