1、一. 单项选择题(每题 2 分,共 10 道,共 20 分)1.下面关于类概念的描述中,_是错误的。类是抽象数据类型的实现类是具有共同行为的若干对象的统一描述体类是创建对象的样板类就是 C 语言中的结构体类型2. 系统在调用重载函数是往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是_。A参数个数 B参数的类型C函数名称D函数的类型3_是给对象取一个别名,它引入了对象的同义词。A指针 B. 引用 C. 枚举 D. 结构4_是析构函数的特征。一个类中只能定义一个析构函数析构函数的作用是为了初始化对象析构函数的定义只能在类体内析构函数可以有一个或多个参数5下列引用的定义中,_是
2、错误的。Aint i; int Bint i; int j=i;Cfloat i; float Dchar d; char 6一个类的友元函数能够访问该类的_。A私有成员 B. 保护成员C公有成员 D. 所有成员7下面关于 new 和 delete 操作符的说法,_是不正确的。A使用 new 操作符,可以动态分配全局堆中的内存资源。B若 p 的类型已由 A*强制转换为 void *,那么执行语句 delete p;时,类A 的析构函数不会被调用。C实现全局函数时,new 和 delete 通常成对地出现在由一对匹配的花括号限定的语句块中。D执行语句 A *p=new A100;时,类 A 的构
3、造函数只会被调用 1 次。8类模板的使用实际上是将类模板实例化成一个具体的_。A类 B. 对象 C. 引用 D. 函数 9在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则_。A完全相同 B. 完全不同 C. 部分相同,部分不同 D. 以上都不对10关于虚函数的描述中,_是正确的。A虚函数是一个 static 类型的成员函数B虚函数是一个非成员函数C基类中说明了虚函数后,派生类中其对应的同原型函数可不必说明为虚函数D派生类的虚函数与基类的虚函数具有不同的参数个数和类型二. 填空题(每空 2 分,共 10 个空,共 20 分)1. 任何类中允许有三种访问权限的数据,这三
4、种访问权限分别是_、_、_。2. _成员函数中不能直接引用类中说明的非静态成员。3. _函数表示编译器一定会将函数体直接插入到调用此函数的地方,这样可以加快程序的运行速度。4. 为了满足运算符“+”的可交换性,必须将其重载为_。5. 在 C+中,可以定义_模板和_模板。6. 如果一个类中至少有一个_,那么就称该类为抽象类。7. 在 C+中,使用_关键字抛出异常。三简答题(共 3 道小题,共 10 分)1.说明类中的 public、protected 和 private 成员函数分别在public、protected 和 private 继承方式下在派生类中的可访问性。 (4 分)2.生存期的含
5、义,在 C+中共有哪些种生存期?(3 分)3.阐述派生类构造函数的调用顺序。 (3 分)四. 程序分析题(每小题 6 分,共 5 道小题,共 30 分)1. 分析下面程序,写出运行结果。#include class CSampleprivate:int n;static int k;public:CSample(int i)n=i; k+;void disp( );void CSample:disp( )coutclass Samplepublic:Sample(int a=0,b=1);disp( );private:int x,y;Sample:Sample(int a=0,int b=1
6、)x=a;y=b;void Sample:disp( )couttemplate class SampleT n;public:Sample( ) Sample(T i)n=i;Sample void disp( )coutSample temp.n=n+s.n;return temp;void main()Sample s1(10),s2(20),s3;s3=s1+s2;s3.disp( );4. 分析下面程序,写出运行结果。#include class Apublic:A( )coutclass Apublic:virtual void fun1( )coutfun1( );p-fun2(
7、 );p-fun3( );p-fun4( );五.编程题(共 3 道小题,共 20 分)1. 以面向对象的概念设计一个类,此类包含三个私有数据:unlead(无铅汽油) 、lead(有铅汽油)以及 total(当天总收入) 。无铅汽油的价格是 17 元/公升,有钱汽油的价格是 16 元/公升。请以构造函数方式建立此值。并编写主函数测试该类,输入某天所加的汽油量,计算出加油站当天的总收入。 (6 分)2.设计一个长方形类(Rectangle),包含两个私有的数据成员 length.width,要求能求其面积;再从 Rectangle 派出一个长方体(Volume),要求能求其体积。请声明并实现这两个类,并在主函数中分别定义这两个类的对象,并打印出相应的面积和体积。(7 分)3.定义一个 Stud 类,含学号、姓名、成绩和班号数据成员,建立若干个Stud 类的对象,并将它们存储到文件 data.dat 中。最后输出该文件的内容。 (7分)