C++期末考试试卷及参考答案

  • 格式:docx
  • 大小:902.13 KB
  • 文档页数:13

WORD格式

专业资料整理 _ _ _ _ _ _ _ _ _ _ _ _ 号

学 —

— 考试科目面向对象程序(C++)考试

考试对象XX计本1、2、3班

成绩

一、是非题〔每题1.5分,共15分〕说明:判断各小题说法的正确性,在下面表格中对

应的题号下填入是非选择,

假设正确,那么打钩〔√〕;否那么,打叉〔×〕。

线

— 题号12345678910

是/否

_

_

_

_

_

_

_

_

_

_

_

_ _ _ _ _ _ _ _ _ _ _

班 —

装 1.说明函数原型时不需要指明每个函数参数的名字,只需要说明每个参数的类型和

返回值类型就可以了。

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++ . 程序中,异常处理程序的主要任务是 。

WORD格式

专业资料整理

— 三、单项选择题〔在备选答案中选出一个正确答案填入括号内,每题2分,共

20分〕

1.C++对C语言作了很多改良,以下描述中使得C语言发生质变,从面向过程变成

了面向对象的是〔〕。

本试卷共8页本页为第1页WORD格式

专业资料整理 A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数

C.规定函数说明必型D.引进了类和对念2.当一个函数无返回值时,定义它的函数的类型是()。 A.voidB.intC.无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.ABoperator+(AB&a,AB&b)B.ABoperator+(AB&a)

C.operator+(ABa)D.AB

&operator+()9.以下不属于VC消息映射内容的是()。

A.通过将DECLARE_MESSAGE_M添A加P到类声明,声明消息映射

B.改写MFC相关类的虚函数

C.放置标识消息的宏来执行消息映射

D.添加成员函数来处理消息10.以下关于

VC++编程描述中,错误的选项是〔〕。

A.Windows是一个基于事件驱动、基于消息的操作系统。B.Windows

程序始终是程序而不是操作系统决定何时调用哪个函数。

C.对于使用VC向导生成的程序框架,我们也可以用手工的方式写出。

D.MFC类库其实是对windowsAPI函数的封装。

四、根据下面各小题题目要求进展简单答复〔第1小题6分,第2小题3分,第3小

题6分,共15分〕

(1)类B和类D,它们的类关系如下。请以类对象b1,d1和指针pb1为例

简要说明C++赋值兼容规那么。〔本小题6分〕

classB

{⋯};

classD:pubicB

本试卷共8页本页为第2页WORD格式

专业资料整理 {⋯};

Bb1,*pb1;D

d1;

答:a)

b)

C)

(2)以下的程序定义了一个交换两个浮点数的函数swap,并在主函数中个 函数进展两个浮点数的交换〔3分〕 voidswap(floata,floatb){

floattemp=a;a=b;b=temp;

}

voidmain(){

floata=1,b=2;swap(a,b);

}

为:

改正方法为:

(3)写出下面程序运行〔6分〕 #include

classA

{public:

virtualvoidact1(){cout<<"A::act1()

called."<

};

classB:publicA

{public:

voidact1(){cout<<"B::act1()called."<

本8页本3页WORD格式

专业资料整理 };

voidmain()

{

Aa,*p;

Bb;

p=&b;

b.act1();

p->act1();

p->act2();

}

答:

五、下面的程序共有17行,程序的每行前面加上了行号。程序中变量num、i、temp、对象cout和函数func()的作用域X围分别是什么?在程序的下面用行号来答复。〔每题

1分,共10分〕

1.#include

2.intnum;

3.voidfunc();

4.voidmain()

5.{

6.charname[20];

7.inti;

8.for(i=0;i<20;i++)

9.{

10.chartemp;

11.temp=name[i];

本试卷共8页本页为第4页WORD格式

专业资料整理 12.cout<

13.}

14.}

15.voidfunc()

16.{

17.cout<<〞Afunction!〞;

18.}

答复:

num的作用域为从第行到第行。

i的作用域为从第行到第行。

temp的作用域为从第行到第行。

cout的作用域为从第行到第行。

func的作用域为从第行到第行。

六、程序答复题〔每题1分,共5分〕说明:读懂程序,为便于提问,程序每行前

面加有行号,请对所提的问题做出准

确解答。

1.#include

2.intCircleArea()

3.{

4.double*pd=newdouble;5.

if(!pd)

6.{

7.

cout<<"ErrorMemoryAllocation!"<

8.return1;9.}

10.double&rd=*pd;

11.cout<<"The

radiusis:";12.cin>>rd;

13.cout<<"TheAreaofCircleis:"<

14.delete&rd;

15.

return0;

16.}

17.voidmain()

18.{

19.if(CircleArea())

20.

cout<<"Theprogramnfailed!"<

else

22.cout<<"Theprogramnsuccessed!"<

23.}

本试卷共8页本页为第5页