福建工程学院C++试卷B.doc
- 文档编号:2606608
- 上传时间:2022-11-03
- 格式:DOC
- 页数:5
- 大小:58.43KB
福建工程学院C++试卷B.doc
《福建工程学院C++试卷B.doc》由会员分享,可在线阅读,更多相关《福建工程学院C++试卷B.doc(5页珍藏版)》请在冰豆网上搜索。
第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() {Sample (2),s2(3); cout<<″s1与s2的数据成员″<<(sl==s2? ″相等″: ″不相等″)< Sample 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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 福建 工程学院 C+ 试卷