《面向对象程序设计C++》期末试卷(A)10-11

上传人:zw****58 文档编号:42311846 上传时间:2018-06-01 格式:DOC 页数:9 大小:94KB
返回 下载 相关 举报
《面向对象程序设计C++》期末试卷(A)10-11_第1页
第1页 / 共9页
《面向对象程序设计C++》期末试卷(A)10-11_第2页
第2页 / 共9页
《面向对象程序设计C++》期末试卷(A)10-11_第3页
第3页 / 共9页
《面向对象程序设计C++》期末试卷(A)10-11_第4页
第4页 / 共9页
《面向对象程序设计C++》期末试卷(A)10-11_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《《面向对象程序设计C++》期末试卷(A)10-11》由会员分享,可在线阅读,更多相关《《面向对象程序设计C++》期末试卷(A)10-11(9页珍藏版)》请在金锄头文库上搜索。

1、第 1 页北京化工大学北方学院北京化工大学北方学院 20102011 学年第一学期学年第一学期面向对象程序设计面向对象程序设计 C+期末考试试卷(期末考试试卷(A)班班级级: : 姓名:姓名: 学号:学号: 分数:分数: 题号一二三四总分得分试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方无效。试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方无效。(答题纸在本套试卷的第(答题纸在本套试卷的第 9 页上)页上)一、选择题(每小题一、选择题(每小题 2 分,共分,共 40 分)分)1、下列描述中,不属于面向对象思想主要特征的是( ) 。A. 封装性 B. 多态性

2、 C. 继承性 D. 跨平台2、若定义:string str; 当语句cinstr; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=( ) 。A. Microsoft Visual Studio 6.0! B. MicrosoftC. Microsoft Visual D. Microsoft Visual Studio 6.03、考虑下面的函数原型声明:void test (int a,int b=7,char z=*);下面函数调用中,不合法的是( ) 。A. test (5); B. test (5,8); C. test (5,#);

3、D. test (0,0,*);4、已知函数fun的原型为int fun(int, int, int);下列重载函数原型中错误的是( ) 。A. char fun(int, int); B. double fun(int, int, double);C. int fun(int, char*); D. float fun(int, int, int);5、下列表示引用的方法中, ( )是正确的。第 2 页已知:int a=1000;A. int B. char C. int D. float 6、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用( ) 。A. 内联

4、函数 B. 重载函数 C. 递归调用 D. 嵌套调用7、下列有关C+类的说法中,不正确的是( ) 。A. 类是一种用户自定义的数据类型B. 只有类中的成员函数或类的友元函数才能存取类中的私有成员C. 在类中,如果不做特别说明,所有成员的访问权限均为私有的D. 在类中,如果不做特别说明,所有成员的访问权限均为公用的8、Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是( ) 。 Sample a2, *P = new Sample;A. 0 B. 1 C. 2 D. 39、下面说法中,正确的是( ) 。A. 一个类只能定义一个构造函数,但可以定义多个析构函数B. 一个类只

5、能定义一个析构函数,但可以定义多个构造函数C. 构造函数与析构函数同名,只要名字前加了一个求反符号()D. 构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以10、已知:print( )函数是一个类的常成员函数,它无返回值,下列表示中, ( )是正确的。A. const void print( ); B. void print( ) const;C. void const print( ); D. void print(const);11、通过派生类的对象可直接访问其( ) A. 公用继承基类的公用成员 B. 公用继承基类的私有成员C. 私有继承基类的公用成员

6、 D. 私有继承基类的私有成员第 3 页12、下列关于虚基类的描述中,错误的是( ) 。 A. 使用虚基类可以消除由多继承产生的二义性 B. 构造派生类对象时,虚基类的构造函数只被调用一次 C. 声明“class B : virtual public A”说明类B为虚基类D. 建立派生类对象时,首先调用虚基类的构造函数13、下面( )的叙述不符合赋值兼容规则。A. 派生类的对象可以赋值给基类的对象B. 基类的对象可以赋值给派生类的对象C. 派生类的对象可以初始化基类的对象D. 派生类的对象的地址可以赋值给指向基类的指针14、建立一个含有成员对象的派生类对象时,各构造函数的执行次序为( ) 。A

7、. 派生类 成员对象类 基类 B. 成员对象类 基类 派生类C. 基类 成员对象类 派生类 D. 基类 派生类 成员对象类15、关于虚函数的描述中, ( )是正确的。A. 虚函数是一个static类型的成员函数B. 虚函数是一个非成员函数C. 基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数D. 派生类的虚函数与基类的虚函数具有不同的参数个数和类型16、下面关于友元的描述中,错误的是( ) 。A. 友元函数可以访问该类的私有数据成员B. 一个类的友元类中的成员函数都是这个类的友元函数C. 友元可以提高程序的运行效率D. 类与类之间的友元关系可以继承17、有如下类定义:class

8、Pointprivate:static int how_many;第 4 页how_many=0;要初始化Point类的静态成员how_many,下划线处应填入的内容是( ) 。A. int B. static int C. int Point: D. static int Point:18、已知表达式+i中的“+”是作为成员函数重载的运算符,则与+i等效的运算符函数调用形式为( ) 。A. i.operator+() B. operator+(i) C. operator+(i,1) D. i.operator+(1)19、有如下模板声明:template class A; 下列声明中,与上

9、述声明不等价的是( ) 。 A. template class A; B. template class A; C. template class A; D. template class A;20、下列的各类函数中, ( )不是类的成员函数A. 构造函数 B. 析构函数 C. 友元函数 D. 复制构造函数二、填空题二、填空题(前前14个空,每空个空,每空1分分,后后3个空,每空个空,每空2分分,共共20分分)1、类和对象的关系可表述为:类是对象的 ,而对象则是类的 。2、C+中的函数参数传递方式有三种,它们是:值传递,地址传递和 。3、静态成员函数没有隐含的 ,所以,在C+程序中,静态成员函

10、数主要用来访问静态数据成员,而不访问非静态成员。4、在图1中,A,B,C,D,E,F均是类,其中属于单继承的派生类有 ,属于多继承的派生类有 ,类F的基类有 ,类A的派生类有 。第 5 页ABCDEF图 1 类的继承层次图ABCD图 2 多重继承5、在图2所示的继承层次结构中,如果只想在公共派生类D中保留公共基类A的成员一份,就必须使用关键字virtual把这个公共基类A声明为 。6、如果一个类包含一个或多个纯虚函数,则该类称为 。7、从实现的角度来讲,多态性可以划分为两类: 和 。8、列出C+中的两种代码复用方式: 和 。9、假定A是一个类名,则该类的复制构造函数的原型声明语句为: 。10、

11、若要把void fun()定义为类A的友元函数,则应在类A的定义中加入语句 。11、后置自减运算符“- -”重载为类的成员函数(设类名为A)的形式为: 。三、阅读下面三、阅读下面3个程序,写出程序运行时输出的结果。个程序,写出程序运行时输出的结果。 (共(共15分)分)(注意:此题的答案要写在答题纸上,作答时请写清题号)(注意:此题的答案要写在答题纸上,作答时请写清题号)1、#include using namespace std; void fun(int p=a; a=b; b=p; void exchange(int class A public: A()cout using names

12、pace std; class Toy 第 7 页public: Toy() strcpy(name, “ “); count+;Toy(char* _n) strcpy(name, _n); count+; Toy() count-; char* GetName() return name; static int getCount() return count; private: char name10; static int count; ; int Toy:count=0; int main() Toy t1,t2(“Snoopy“); coutusing namespace std;c

13、lass Datepublic: Date(int y,int m,int d) void print() const; private: / date members ; void Date:print() const int main() Date national_day(1949,10,1); 第 9 页 national_day.print(); return 0; 2、 (9分)下列Shape类是一个表示形状的抽象类,area( )为求图形面积的函数,total( )则是一个用以求不同形状的图形面积总和的普通函数。class Shape public: virtual double

14、 area()=0; ; double total(Shape *s , int n) double sum=0.0;for(int i=0; iarea( ); return sum; 要求:(1)从 Shape 类派生圆类(Circle),圆类新增数据成员半径(radius) ,圆类的成员函数根据题目需要自定。(2)写出 main()函数,计算半径分别为 1.1,2.2,3.3 的 3 个圆面积之和(必须通过调用 total 函数计算) 。3、 (8 分)设计一个函数模板,实现从 int、double、char、string 类型的数组中找出最大值。要求写出完整的 C+源程序。第 10 页北京化工大学北方学院北京化工大学北方学院 201020011 学年第一学期学年第一学期面向对象程序设计面向对象程序设计 C+期末考试试卷(期末

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号