C++部分: 一、选择题:(共10小题,每题3分)
1.类的构造函数被自动调用执行的情况是在定义该类的( C) A)成员函数时 B)数据成员时 C)对象时
D)友元函数时
2.说明友元函数使用关键字( A ) A)friend B)static C)const D)colatile
3.已知类X中的一个成员函数说明如下: Void Set(x &a); 其中,X&a的含义是(C ) A)指向类X的指针为a B)将a的地址赋给变量Sst
C)a是类X的对象引用,用来做为Set()的形参 D)变量X是a按位相与作为函数Set()的参数 4.关于new运算符的下列描述中(?C )是错误的. A)?它可以用来动态创建对象和对象数组
B)?使用它创建对象或对象数组,可以使用运算符DELETE删除 C)?使用它创建对象时要调用构造函数
D)?使用它调用对象数组时不E)?许指F)?定初始值
5.允许访问类的所有对象的私有成员,公有成员和保护成员的是( A ) A)友元函数 B)成员函数 C)内联函数 D)重载函数 6.局部变量可以隐藏全局变量,那么在有同名全局变量和局部变量的情形时,可以用( A ) 提供对全局变量的访问 A) 域运算符 B) 类运算符 C) 重载 D) 引用
7.缺省析构函数的函数体是( C) A)不存在 B)随机产生的 C)空的
D)无法确定的、
8.通常拷贝构造函数的参数表是( C )
A)某个对象名
B)某个对象的成员名 C)某个对象的引用名 D)某个对象的指针名
9.对定义重载函数的下列要求中,( D) 是错误的 A)要求参数的个数不同????
B)要求参数中至少有一个类型不同
C)要求参数个数相同时,参数类型不同? D)要求函数的返回值不同 10.对于多重继承,有( D ) A.一个派生类只能有一个基类 B.一个基类只能产生一个派生类 C.一个基类必须产生多个派生类 D.一个派生类可有多个基类 二、简答题:(共8小题, 总分:30) 1.C和C++有什么不同?(3分)
C是面向过程的语言,c++是面向对象的语言。 C源程序文件扩展名为.c , 而C++为 .cpp。
C++可重用性、可扩充性、可维护性、可靠性要强些。 2.面向对象的三个基本特征及各自的作用(4分) 封装性:对象将私有元素和实现操作的内部细节的结果隐藏起来,并能管理自己的内部状态。 作用:外部只能从对象所表示的具体概念、对象提供的服务和对象提供的外部接口来认识对象。
继承:类间具有共享特征,具有新增部分,具有层次结构。
作用:避免公用代码的重复开发,减少代码和数据冗余。通过增强一致性来减少模块间的接口和界面。
多态性:类中具有相似功能的不同函数使用同一个名称来实现的现象。实现了动态联编,使程序运行效率更高,更容易维护和操作。 3.c和c++中的struct有什么不同(4分)
C 中定义结构体变量要加struct,而C++不用,如下例: struct STRING{ char *prt; int length; }
在C中: 在C++中: struct STRING str; STRING str; 4.const符号的作用有哪些(4分) Const修饰符定义常量。
(1)欲阻止一个变量被改变,可以使用const关键字。
(2)对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const;
(3)在一个函数声明中,const可以修饰形参,表明它是一个输入参数,在函数内部不能改变其值;
(4)对于类的成员函数,若指定其为const类型,则表明其是一个常函数,不能修改类的
成员变量;
5.引用与指针有什么区别(3分)
引用就是给变量一个别名,使指针运算更加方便。 指针是一个实体,而引用仅是个别名;
引用只能在定义时被初始化一次,之后不可变;指针可变;引用“从一而终”,指针可以“见异思迁”;
引用不能为空,指针可以为空;
引用是类型安全的,而指针不是(引用比指针多了类型检查)
6.重载(overload)和重写(overried,有的书也叫做“覆盖”)的区别(3分)
1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关 系,是水平关系。
2、覆盖要求参数列表相同;重载要求参数列表不同。
3、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的。
7.static 在类内修饰成员的作用是什么,如何引用这些成员(4分)
表明该成员是静态成员,有点类似于全局变量。可以通过“类名::\和“对象名.”两种方法来访问。
8.虚析构函数的作用是什么(5分)
在于使用delete运算符删除一个对象时,能确保析构函数被正确的执行。 三、编程题:(共3小题 每小题6分)
1.编写一个字符串处理的类,MyString,实现拷贝构造,‘=’号重载 等基本函数。 #include