1、C+程序设计第 1 页 共 12 页一 选择题(每题 1 分,共 10 分)1、类 CStudent 的拷贝构造函数的声明语句为 。ACStudent 则输出该字符串正确的语句是_ _。Acoutclass Array .;对该类模板实例化正确的是 。AArray x; BArray x;Ctemplate x; DArray x;上 海 交 通 大 学 试 卷(A)参考答案( 2009 至 2010 学年 第_二_学期)班级号_ 学号_ 姓名 课程名称 C+程序设计 成绩 C+程序设计第 2 页 共 12 页8、公有成员提供了类对外部的接口,私有成员是类的内部实现,而 不许外界访问,但允许派
2、生类的成员访问,这样既有一定的隐藏能力,也提供了开放的接口。A公有成员 B.私有成员 C.私有成员函数 D.保护成员9、假定 AB 为一个类,则执行 AB a(2), b3, *p; 语句时共调用该类构造函数的次数为 。 A. 1 B. 3 C. 4 D. 5 10、如果 A 是已经定义好的一个类,函数 f 的原型为 A f(). r2 是 A 类的一个对象,在函数f 中执行 return r2 时,系统将自动调用 。A.缺省的构造函数 B.拷贝构造函数 C.赋值运算符重载函数 D.不调用任何函数二 看程序,写结果(每题 5 分,共 35 分)1、请写出下列程序运行结果class ADD fr
3、iend ADD operator+(ADD op);friend ADD operator+(ADD public:ADD(int i = 0, int j = 0) a = i; b = j;void Show() const cout ”;pBase-Fly();DragonFly *pDragon = new DragonFly();pBase = pDragon;oBase = *pDragon;pBase-Fly();pBird-Fly();pDragon-Fly();oBase.Fly();C+程序设计第 6 页 共 12 页5、写出下列程序执行结果class Point fri
4、end bool operator!=(const Point private:int x, y; public: Point(int a = 1, int b = 1) x = a; y = b; cout 0; i /= 3)try func(i);cout class Sample protected:T n; public: Sample(T i) n = i; cout class model: public Sample T m;public:model(T t1, T t2): Sample(t1) m = t2; cout s (20, 30); s.disp(); cout
5、using namespace std;int main() container *bptr; /定义抽象类指针 bptrsphere s_obj(4); /创建球体对象 s_obj,半径为 4;sector c_obj(2 ,270); /创建圆柱体对象 c_obj,半径为 2,角度为 270 度bptr = cout area() area() endl;得到的屏幕输出应为:球体表面积:201.062扇形面积:9.423评分标准:正确定义基类(2 分):一个全局共享的常量 PI 和纯虚函数 area正确定义扇形类(2 分)正确定义球类(2 分)正确实现各成员函数:每个成员函数 1 分C+程
6、序设计第 12 页 共 12 页3、整型数组 int a10中随机地存放有数字 09(数字可以重复) 。现请设计一个类,它的功能是在数组 a 中顺序地抽取 5 个数字,使这 5 个数字组成的5 位数为最大(注意:这 5 个数字的先后顺序必须同其在原数组 a10中的先后顺序相同) ,返回这个五位数。 (5 分)类的定义如下:class max int data10;public:max(int *a);int result();如果数组 a10 = 4, 7, 8, 0, 8, 6, 2, 4, 9, 1 ,定义对象 max m(a),并执行语句 a.result(),则返回值为 88691。请补充构造函数和 result 函数。评分标准:构造函数的实现 1 分result 函数的实现 4 分