福建工程学院C++试卷B.doc

上传人:wj 文档编号:8852007 上传时间:2023-05-15 格式:DOC 页数:5 大小:58.43KB
下载 相关 举报
福建工程学院C++试卷B.doc_第1页
第1页 / 共5页
福建工程学院C++试卷B.doc_第2页
第2页 / 共5页
福建工程学院C++试卷B.doc_第3页
第3页 / 共5页
福建工程学院C++试卷B.doc_第4页
第4页 / 共5页
福建工程学院C++试卷B.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

福建工程学院C++试卷B.doc

《福建工程学院C++试卷B.doc》由会员分享,可在线阅读,更多相关《福建工程学院C++试卷B.doc(5页珍藏版)》请在冰点文库上搜索。

福建工程学院C++试卷B.doc

第1页

班级:

______姓名:

______学号:

______

福建工程学院2009--2010学年第二学期期末考试(B卷)共9页

课程名称:

面向对象程序设计考试方式:

开卷()闭卷(√)

题号

总分

统分人签名

得分

密封线

考生注意事项:

1、本试卷共9页,请查看试卷中是否有缺页。

2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。

教师注意事项:

如果整门课程由一个教师评卷的,只需在累分人栏目签名,题首的评卷人栏目可不签名。

一、单项选择题(每小题2分,共30分)

得分

评卷人

1.重载一个运算符时,其参数表中没有任何参数,这表明该运算符是(B)

A.作为友元函数重载的1元运算符

B.作为成员函数重载的1元运算符

C.作为友元函数重载的2元运算符

D.作为成员函数重载的2元运算符

2.在C++中把不返回任何类型的函数应该说明为(C)。

A.intB.char

C.voidD.double

3.要实现动态联编必须(D)。

A.通过成员名限定来调用虚函数B.通过对象名来调用虚函数

C.通过派生类对象来调用虚函数D.通过对象指针或引用来调用虚函数

4.在C++中,封装是借助(B)达到目的。

A.结构B.类

C.数组D.函数

第2页

5.假定AA是一个类,“AA*abc()const;”是该类中一个成员函数的原型,若该函数返回this值,当用x.abc()调用该成员函数后,x的值(C)

A.已经被改变B.可能被改变

C.不变D.受到函数调用的影响

6.以下关于抽象类的描述,(D)是正确的。

A.不能说明抽象类的指针或引用

B.可以说明抽象类对象

C.抽象类的纯虚函数的实现可以由自身给出,也可以由派生类给出

D.抽象类的纯虚函数的实现由派生类给出

7.以下关于函数模板叙述正确的是(C)

A.函数模板也是一个具体类型的函数

B.函数模板的类型参数与函数的参数是同一个概念

C.通过使用不同的类型参数,函数模板可以生成不同类型的函数

D.用函数模板定义的函数没有类型

8.建立含有类对象成员的派生类对象时,其构造函数的执行顺序为(C)

A.自己所属类、对象成员所属类、基类的构造函数

B.对象成员所属类、基类、自己所属类的构造函数

C.基类、对象成员所属类、自己所属类的构造函数

D.基类、自己所属类、对象成员所属类的构造函数

9.构造函数不具备的特征是(D)

A.构造函数的函数名与类名相同

B.构造函数可以重载

C.构造函数可以设置默认参数

D.构造函数必须指定类型说明

密封线

班级:

______姓名:

______学号:

______

第3页

10.实现两个相同类型数加法的函数模板的声明中(D)是正确的。

A.add(Tx,Ty)B.Tadd(x,y)

C.Tadd(Tx,y)D.Tadd(Tx,Ty)

11.C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是(D)

A.增加了一些新的运算符

B.允许函数重载,并允许设置缺省参数

C.规定函数说明符必须用原型

D.引进了类和对象的概念。

12.若Sample类中的一个成员函数说明为voidset(Sample&a),则Sample&a的含义是(B)。

A.指向类Sample的名为a的指针

B.a是类Sample的对象引用,用来作函数Set()的形参

C.将a的地址赋给变量Set

D.变量Sample与a按位与的结果作为函数Set的参数

13.在(C)情况下适宜采用inline定义内联函数。

A.函数体含有循环语句B.函数体含有递归语句

C.需要加快程序的执行速度D.函数代码多、不常调用

14.this指针存在的目的是(B)。

A.保证基类公有成员在子类中可以被访问

B.保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码

C.保证基类保护成员在子类中可以被访问

D.保证基类私有成员在子类中可以被访问

15.类的析构函数是对一个对象进行(B)操作时自动调用。

A.建立B.撤消

C.赋值D.引用

第4页

二、填空题(每空1分,共20分)

得分

评卷人

1.带有_纯虚函数_的类称为抽象类,它只能作为___基类_____来使用。

2.同一个类的两个对象,其数据成员是不同的,但成员函数是共享的。

3.设在程序中使用如下语句申请了一个对象数组:

Point*ptr=newPoint[2];

则在需要释放ptr指向的动态数组对象时,所使用的语句是__delete[]ptr______。

4.对象传送的消息一般由3部分组成:

接收对象名、调用操作名和_必要的参数_______。

5.类成员的默认访问方式是私有。

6.类完成了面向对象程序设计的封装特性。

7.执行下列代码cout<<″Hex:

″<

ff________。

8.C++的流库预定义了4个流,它们是cin、cout、cerr和clog。

9.类中运算符重载一般采用两种形式:

非静态成员函数和非成员函数。

10.基类的公有成员在私有派生类中是___私有_______成员,基类的保护成员在公有派生类中是__保护________成员。

11.对虚函数使用对象指针或引用,系统使用_动态_________联编,对虚函数使用对象调用时,系统使用____静态______联编。

12.将成员函数放在类外,所使用的作用域运算符为:

13.重载“<<”操作符时,应声明为___非成员_________函数。

14.所谓赋值兼容规则是指在公有派生情况下,一个___派生_____类的对象可以作为___基_____类的对象来使用的地方。

15.若y是x的引用,则对y的操作就是对___x___的操作。

密封线

班级:

______姓名:

______学号:

______

第5页

三、程序分析(每小题4分,共20分)

得分

评卷人

1.阅读程序,写出运行结果:

#include

classaa{public:

virtualintfunc(){return0;}};

运行结果:

58

0

classtest:

publicaa{

public:

intfunc(){return58;}

};

voidmain(){

testd;aa&b=d;

cout<

cout<

:

func()<

}

2.阅读程序,写出运行结果:

#include

运行结果:

S1与S2的数据成员不相等

S1与S2的数据成员相等

template

classSample

{Tn;

public:

Sample(Ti){n=i;}

intoperator==(Sample&);

};

template

intSample:

:

operator==(Sample&s)

{if(n==s.n)return1;

elsereturn0;

}

voidmain()

{Samplesl

(2),s2(3);

cout<<″s1与s2的数据成员″<<(sl==s2?

″相等″:

″不相等″)<

Samples3(2.5),s4(2.5);

cout<<″s3与s4的数据成员″<<(s3==s4?

″相等″:

″不相等″)<

}

3.阅读程序,写出运行结果

#include

classA

{private:

intX,Y;

public:

A(){X=Y=0;

cout<<"DefaultConstructorcalled."<

}

A(intxx,intyy){

X=xx;Y=yy;

cout<<"Constructorcalled."<

}

~A(){cout<<"Destructorcalled."<

运行结果:

DefaultConstructorcalled.

Destructorcalled.

Constructorcalled.

Destructorcalled.

};

voidmain()

{

A*p1=newA;

deletep1;

p1=newA(1,2);

deletep1;

}

密封线

班级:

______姓名:

______学号:

______

第7页

4.下面程序中有一处错误,请用下横线标出错误所在行并提出修改意见。

classMyClass{

intx=20,y;(这一句错,因为类内不能直接对数据成员初始化。

可以将x定义为静态数据成员,再在类外初始化为20)

public:

MyClass(intaa,intbb);

intGetX();

intGetY();

};

5.下面程序中有一处错误,请用下横线标出错误所在行并提出修改意见。

classOne{

protected:

inta;(将protected改为public)

public:

voidsetOne(intx){a=x;}

voidshowOne(){cout<<"a="<

};

classTwo:

privateOne{(将private改为public)

public:

voidsetTwo(intx){a=x;}

};

voidmain()

{Twoobj;

obj.setTwo(10);

cout<<"obj.a="<

修改意见用紫色的修改)}

四、编程题(每题10分,共30分)

得分

评卷人

1.编写复数类Complexnumber,其属性为:

real(实部),img(虚部)。

完成复数的加法运算Add()和减法运算Sub()及对应的+运算符和-运算符重载。

第8页

2.类Point中含有属性坐标x,y,要求能用disp成员函数输出坐标。

设计一个友元函数distance,计算任意两点的距离。

3.编写代码,模拟动物Animal的叫声。

要求用多态技术实现。

动物为Cat,Duck,Dog。

密封线

班级:

______姓名:

______学号:

______

第9页

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 外语学习 > 韩语学习

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2