C程序设计语言(第2次)资料_第1页
C程序设计语言(第2次)资料_第2页
C程序设计语言(第2次)资料_第3页
C程序设计语言(第2次)资料_第4页
C程序设计语言(第2次)资料_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、第2次作业一、单项选择题(本大题共40分,共20小题,每小题2分)1. 下列代码中,()能够正确第将类A申明为类B的友元类。A.class B friend class A;B.class B frie nd A;C.class A frie nd class B;D.class A friend B;2. 类A使用虚基类的方式,从类B派生而来。下面()准确定义了这种继承 方式。A.virtual class B; virtual class A : public B ;B.virtual class B; class A : virtual public B ;C.class B; clas

2、s A : virtual public B ;D.virtual class B; class A : public B ;3. 下面代码执行结束后的输出是()#include using namespace std;class A private: int x; public: A(i nt a)x=a; A(A &a)x=a.x; voidshow()cout “x: ” x fu n();B.B b; B & br=b; br.fun ();C.B b; b.A:fu n();D.B b; b.fu n();6. 有类的定义如下: class A private: int x,y; p

3、ublic: A(int m,intn )x=m ;y=n; ; Class B private: int z; A a; public: B(i nt m); ;下列()是正确的B类构造函数实现代码。A.B:B(int m) : a(m), z(m) B.B:B(int m) : a(),z() C.B:B(int m) : a(m,m), z(m) D.B:B(i nt m) : a=(m,m), z=m 7. 使用类模板,就必须显式指定模板()。A.变量B.实参C.形参D.类型8. 下列()能够正确地申明友元函数,让函数 fun能够访问类A的私有成 员。A.void fun() frie

4、nd class A;B.Frie nd class Aprivate: int i; void fun();C.class Aprivate: int i; friend fun();D.class Aprivate: int i; friend void fun();9. 下列关于类的定义中正确的是()A.class C int a,b;B.class C int a; int b;C.class C int a=10; int b;D.class C int a; int b;10. 下列代码中,()能够通过一个对象数组元素访问成员函数A.(arr2)-show();B.(*arr2).

5、show();C.(&arr2).show();D.(*(ar 叶2).show();11. 下列关于虚函数的说法中,()项是错误的。A.构造函数不能申明为虚函数B.析构函数不能申明为虚函数C.如果要使用虚函数来实现多态,必须满足类型兼容原则D.通常将需要派生类重写的函数申明为虚函数12. 下面()项能够正确地申明重载“ +”运算符的后缀形式为类 A的成员函 数。A.A operator +(int );B.A operator +();C.A operator +(0);D.A operator +(A,int );13. 下列关于静态成员函数的说法中,错误的是()。A.静态成员函数只能访问

6、类的静态数据成员B.静态成员函数也可以通过形参的方式操作类的对象,但最好不要这样处理,因为静态成员 函数只处理与类属性有关的操作更加容易理解。C.静态成员函数可以访问类的非静态成员函数D.虽然可以采用“对象静态成员函数”的方式访问静态成员函数,但是仍然推荐使用“类名 静态成员函数”的方式。14. 下面()种多态形式是由动态联编来实现的。A. 重载多态B.强制多态C.参数多态D.包含多态15. 使用文件流对象从指定文件中读取数据时,表达式形式为()。A. B. C. D. 16. 下列的代码运行时不会发生拷贝构造函数调用的是()。A.Poi nt p1(1,2); Poi nt p2(p1)B.

7、Point p1(1,2); Point p2; p2=p1;C.void prin tPo in t(Po int p)D.Point createPoint()Point p; return p;能够正确地给17. 有类 A 的定义如下:class A public: A(int x,int y); private: intx; const int y; ;下列关于类A的构造函数的代码中,()成员变量x,y赋初值。A.A:A(i nt x,int y):y(y)x=x;B.A:A(i nt x,i nt y):x(x)y=y;C.A:A(i nt x,i nt y):y(y)this-x=

8、x;D.A:A(i nt x,i nt y):x(x)this-y=y;18. 下列语句中,能够正确定义一个对象引用的是()A.Point p(1,2); Point &r; r=p;B.Point p(1,2); Point &r=p;C.Point &r=p(1,2);D.Point &r; Point p(1,2); r=p;19. 浅拷贝与深拷贝的区别在于()。A.深拷贝在对非指针成员变量赋值的同时,也对指针成员变量赋值,从而达到所 有的成员变量都被赋值的效果B.深拷贝会在为成员变量赋值时,将指针成员变量所指向的内存空间也复制一份,让现有对 象的指针变量指向这个空间,并且会对对象成员进

9、行上述递归赋值操作C.深拷贝会将已有对象的对象成员,逐一递归进行赋值D.深拷贝会使已有对象和现有对象的指针成员变量指向同一块内存空间20. 下列语句中,能够正确初始化一个对象数据的是()A.Point arr3=(Pont(1,2),Point(3,4),Point(5,6);B.Point arr3=(1,2), (3,4), (5,6);C.Point arr=Point(1,2),Point(3,4),Point(5,6);D.Point arr3=Point(1,2);Point(3,4);Point(5,6);二、判断题(本大题共60分,共20小题,每小题3分)1. 函数重载只会发生

10、在相同作用域范围内,而基类的成员和派生类成员属于不 同的作用域范围,所以派生类重写的同名函数不会重载基类的同名函数。2. 无论采用何种方式来生成派生类,基类的私有成员都不能被访问。3. C+语言支持多重继承,派生类将继承多个父类中共有的同名属性和方法。4. STL算法中,可变序列算法是对容器内容进行数值计算。5. 虚基类、直接派生类和间接派生类的析构函数调用顺序完全与它们的构造函 数调用顺序相反。6. 定义对象数组时,对于没有给定初始值的数组元素,系统将通过调用默认构 造函数的方式进行初始化。7. 当以非成员函数形式重载运算符时,有时需要访问参与运算的对象的私有成 员,那么我们可以将这个成员函

11、数设置为类的友元函数。8. 使用私有继承来生成派生类时,基类的公有和保护成员可以被访问,但是私 有成员不能被访问。9. 类模板的参数的默认参数值声明时,如果有多个参数,第一个默认参数后的 所有参数必须具有默认参数。10. 封装是指将一个事物对外联系的属性和行为暴露出来,同时隐藏内部运行 机制有关的属性和行为的方法。11. 只有私有继承方式中,派生类的自定义成员函数才能访问基类的私有成 员,其它任何一种派生方式都不允许派生类自定义成员函数访问基类的私有成 员。12. 基类的同名函数会被派生类的同名函数屏蔽,它不会出现在派生类中,当 然也不可能使用派生类对象访问基类的同名函数。13. C语言米用面

12、向对象的思想来进行程序设计;而 C+语言米用面向过程的思 想来进行程序设计。14. 无论运算符被重载为类的成员函数还是非成员函数,在函数中都可以访问 参与运算的对象的私有成员。15. 抽象类主要用来进行系统的设计,它的定义往往出现在某一簇类的定义之 前,提前描述其它几个类的共同公有成员函数,它是这一簇类的基类。16. 成员函数全部都是纯虚函数的类,被称为抽象类,不能够被实例化。如果 具有非纯虚成员函数,那么这个类就是具体类,可以被实例化。17. 运算符的重载从本质上来看仍然是函数重载,编译器会将使用运算符的表 达式翻译成函数调用。18. 抽象类是在类的基础上进一步抽象,它定义了某一簇类的共有方法,描述 了这一簇类的公有接口。19. this 指针被隐含地传递到每一个成员函数中,包括静态成员函数。20. 无论虚基类是否定义了默认构造函数,派生类都必须在自己的构造函数 中,使用初始化列表去调用虚基类的构造函数。答案:一、单项选择题(40分,共20题,每小题2分)1. A 2. C 3. A 4. C 5. C 6. C 7. B 8. D 9

温馨提示

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

评论

0/150

提交评论