2015年-福建工程-C++期中练习卷_第1页
2015年-福建工程-C++期中练习卷_第2页
2015年-福建工程-C++期中练习卷_第3页
2015年-福建工程-C++期中练习卷_第4页
2015年-福建工程-C++期中练习卷_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象程序设计期中练习卷说明:1、可看书、讨论、上网查资料; 2、在作业纸上写出答案(标好题号),下课前交。一、 选择题:(24分)1、 若有以下类W说明,则函数fConst的正确定义是()Class W int a; Public: Void fConst(int) const;A void W:fConst(int k) const k=a;B void W:fConst(int k) const k=a+;C void W:fConst(int k) const cin>>a;D void W:fConst(int k) const a=k;2、 若有以下类T说明,则函数f

2、Friend的错误定义是()class T int i;Friend void fFriend(T&,int);A, void fFriend(T &objT,int k)objT.i=k;B, void fFriend(T &objT,int k) k=objT.i;C, void T:fFriend(T &objT,int k) k+=objT.i;D, void fFriend(T &objT,int k)objT.i+=k;3、关于this指针的说法正确的是() A,this指针必须显式说明 B,定义一个类后,this指针就指向该类 C,成员函数

3、拥有this指针 D,静态成员函数拥有this指针4、关于静态成员的不正确的描述是() A,静态成员不属于对象,是类的共享成员; B,静态数据成员在类外定义和初始化 C,静态成员函数不拥有this指针,需要通过类参数访问对象成员; D,只有静态成员函数可以操作静态数据成员5、当一个派生类共有继承一个基类时,基类中的所有公有成员成为派生类的 A Public成员 B private成员 C protected成员 D 友元6、下列说法不正确的是( )A 在类中,成员的默认访问特性是私有的。B类封装了数据和操作。C类实质上是一种数据类型。D在类的定义中,必须包含private,public,pro

4、tected三种存取方式对应的部分。7,下列说法不正确的是( )A对象是类的一个实例。B任何一个对象对象只能属于一个类。C一个类只能有一个对象。D类与对象间的关系和数据类型与变量间关系相似。8下列说法不正确的是( )A同一个类的两个对象占用相同的内存空间。B在类外部直接使用类中的私有成员是错误的。C一个对象数组中的所有数组元素属于同一个类。D在类外部定义成员函数时,必须使用作用域运算符:。9下列说法不正确的是( )A在类中不能对所定义的数据成员进行初始化。B类的公有函数成员是类与外界的接口。C在类中,private,public,protected在类体中出现的次序是一定的,且只能出现一次。D

5、类的实现机制实现了数据隐藏。10,下列语句中,错误的是 ( )。A const int buffer=256; B const double*point; C int const buffer=256; D double * const point;11下列有关内联函数的叙述中,正确的是()A)、内联函数在调用时发生控制转移 B)、内联函数必须通过关键字 inline 来定义 C)、内联函数是通过编译器来实现的 D)、内联函数体的最后一条语句必须是 return 语句12下列情况中,不会调用拷贝构造函数的是()A)、用一个对象去初始化同一类的另一个新对象时 B)、将类的一个对象赋予该类的另一个

6、对象时C)、函数的形参是类的对象,调用函数进行形参和实参结合时 D)、函数的返回值是类的对象,函数执行返回调用时二、 填空:(14分)1.类的成员分为 和 2.运算符 与类的对象一起使用,运算符 与指向类的对象的指针一起使用,可访问类的成员。3.类成员的默认访问方式是 4.将成员函数放在类外,所使用的作用域运算符为 。5.类有2种用法:一是类的实例化,即生成类的对象;另一种是通过 ,派生出新类。三判断 (20分)1.在派生类的构造函数的初始化表中不能对包含基类的子对象初始化。 ( )2.一个派生类可以作为另一个类的派生类。( )3.派生类至少有一个基类。( )4.派生类中继承的基类成员的访问权

7、限到派生类保持不变。( )5.派生类的对象可以对它的基类成员中公有继承的保护成员进行访问。( )6.设置虚基类的目的是为了减少程序中的代码。( )7.派生类的构造函数执行顺序是:对象成员的构造函数,基类的构造函数,派生类本身的构造函数。( )8.基类的私有成员不能为派生类的成员所访问。( )9.基类的公有成员在私有继承时成为派生类的私有成员,而在保护继承是则成为派生类的保护成员。( )10.在公有和保护继承方式下,派生类的成员可以对基类的保护成员进行访问。( )四、程序填空 1、创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给出数组元素的初值,则调用缺省构造函数,下列程序

8、涉及到对象数组的创建和单个对象的创 建,其输出结果是_。(8分)#include<iostream> using namespace std; class Foopublic:Foo(int X)cout <<A” Foo(); int main() Foo f3,g(3);return 0;2.写出程序输出结果 (14分) #include<iostream.h> class Base private:int a,b; public: Base(int i,int j)a=i;b=j; void move(int x,int y)a+=x;b+=y; vo

9、id show()cout<<"a="<<a<<",b="<<b<<endl; ; class Derive:private Base private: int x,y; public: Derive(int i,int j,int k,int l):Base(i,j)x=k;y=l; void show()cout<<"x="<<x<<",y="<<y<<endl; void fun()move

10、(3,5); void showbase()Base:show(); ; void main() Base b(1,2); b.show(); Derive d(3,4,5,6); d.fun(); d.show(); d.showbase(); 3. 有一个Furniture类,Bed类和Sofa类是其公有继承的派生类,Sleepersofa类是Bed和Sofa的公有派生类,为使程序中的多重继承关系不出现模糊性,将正确内容填在线上。(6分)#include <iostream.h> class Furniture public:Furniture() void setweight

11、(int i)weight=i; int getweight( )return weight; protected: int weight; ; class Bed public:Bed ( ) void sleep()cout<<”sleeping”<<endl;;class Sofa public: Sofa() void watchtv()cout<<”watching TV”<<endl;class Sleepersofa public: Sleepersofa() void Foldout()cout<<Fold out t

12、he sofa.”<<endl; ;void main()Sleepersofa ss;ss.setweight(20);cout<<ss.getweight()<<endl;五、 改错(14分)1. #include <iostream.h> class pointprivate: int x,y;public: void setvalue(int xx,int yy) x=xx;y=yy;void main()point p; p.setvalue(10,20);cout<<”x=”<<x<<”,y=”<<y&l

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论