面向对象程序设计(c 语言描述),《面向对象程序设计C》期末试卷(A)

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

1、北京化工大学北方学院2010 2011 学年第一学期面向对象程序设计C+ 期末考试试卷(A)班级:姓名:学号:分数:题号一二三四总分得分试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方无效。(答题纸在本套试卷的第 9 页上)一、选择题(每小题2 分,共 40 分)1、下列描述中,不属于面向对象思想主要特征的是()。A. 封装性B. 多态性C. 继承性D. 跨平台2、若定义: string str;当语句 cinstr; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是 str=()。A. Microsoft Visual Studio 。

2、6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.0 版权文档,请勿用做商业用途版权文档,请勿用做商业用途3、考虑下面的函数原型声明:void test (int a,int b=7,char z=*); 版权文档,请勿用做商业用途版权文档,请勿用做商业用途下面函数调用中,不合法的是()。A. test (5);B. test (5,8);C. test (5,#);D. test (0,0,*);版权文档,请勿用做商业用途版权文档,请勿用做商业用途4、已知函数 fun的原型为int fun(int, int, in。

3、t);下列重载函数原型中错误的是()。A. char fun(int, int);B. double fun(int, int, double);版权文档,请勿用做商业用途1/11版权文档,请勿用做商业用途C. int fun(int, char*);D. float fun(int, int, int); 版权文档,请勿用做商业用途版权文档,请勿用做商业用途5、下列表示引用的方法中, ()是正确的。已知: int a=1000;A. int &x=a;B. char &y;C. int &z=1000;D. float &t=&a; 版权文档,请勿用做商业用途版权文档,请勿用做商业用途6、在。

4、一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。A. 内联函数B. 重载函数C. 递归调用D. 嵌套调用7、下列有关 C+ 类的说法中,不正确的是()。A. 类是一种用户自定义的数据类型B. 只有类中的成员函数或类的友元函数才能存取类中的私有成员C. 在类中,如果不做特别说明,所有成员的访问权限均为私有的D. 在类中,如果不做特别说明,所有成员的访问权限均为公用的8、Sample是一个类,执行下面语句后, 调用 Sample类的构造函数的次数是 ()。Sample a2, *P = new Sample;A. 0B. 1C. 2D. 3版权文档,请勿用做商业用。

5、途版权文档,请勿用做商业用途9、下面说法中,正确的是()。A. 一个类只能定义一个构造函数,但可以定义多个析构函数B. 一个类只能定义一个析构函数,但可以定义多个构造函数C. 构造函数与析构函数同名,只要名字前加了一个求反符号()D. 构造函数可以指定返回类型, 而析构函数不能指定任何返回类型, 即使是 void类型也不可以10、已知: print( ) 函数是一个类的常成员函数,它无返回值,下列表示中,()是正确的。2/11A. const void print( );B. void print( ) const;版权文档,请勿用做商业用途版权文档,请勿用做商业用途C. void const。

6、 print( );D. void print(const); 版权文档,请勿用做商业用途版权文档,请勿用做商业用途11、通过派生类的对象可直接访问其()A. 公用继承基类的公用成员B. 公用继承基类的私有成员C. 私有继承基类的公用成员D. 私有继承基类的私有成员12、下列关于虚基类的描述中,错误的是()。A. 使用虚基类可以消除由多继承产生的二义性B. 构造派生类对象时,虚基类的构造函数只被调用一次C. 声明“ class B : virtual public A ”说明类 B为虚基类D. 建立派生类对象时,首先调用虚基类的构造函数13、下面()的叙述不符合赋值兼容规则。A. 派生类的对象。

7、可以赋值给基类的对象B. 基类的对象可以赋值给派生类的对象C. 派生类的对象可以初始化基类的对象D. 派生类的对象的地址可以赋值给指向基类的指针14、建立一个含有成员对象的派生类对象时,各构造函数的执行次序为()。A. 派生类成员对象类基类B. 成员对象类基类 派生类C. 基类 成员对象类派生类D. 基类 派生类 成员对象类15、关于虚函数的描述中, ()是正确的。A. 虚函数是一个 static类型的成员函数B. 虚函数是一个非成员函数C. 基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数D. 派生类的虚函数与基类的虚函数具有不同的参数个数和类型16、下面关于友元的描述中,错误。

8、的是()。A. 友元函数可以访问该类的私有数据成员3/11B. 一个类的友元类中的成员函数都是这个类的友元函数C. 友元可以提高程序的运行效率D. 类与类之间的友元关系可以继承17、有如下类定义:class Pointprivate:static int how_many;how_many=0;要初始化 Point类的静态成员 how_many,下划线处应填入的内容是()。A. intB. static intC. int Point:D. static int Point:版权文档,请勿用做商业用途版权文档,请勿用做商业用途18、已知表达式 +i 中的“ + ”是作为成员函数重载的运算符,则。

9、与+i 等效的运算符函数调用形式为()。版权文档,请勿用做商业用途版权文档,请勿用做商业用途A. i.operator+()B. operator+(i)C. operator+(i,1)D. i.operator+(1)版权文档,请勿用做商业用途版权文档,请勿用做商业用途19、有如下模板声明:template class A;下列声明中,与上述声明不等价的是()。A. template class A;B. template class A;C. template class A;D. template class A;20、下列的各类函数中,()不是类的成员函数A. 构造函数B. 析构函数。

10、C. 友元函数D. 复制构造函数二、填空题(前 14个空,每空 1分,后 3个空,每空 2分,共 20分)1、类和对象的关系可表述为:类是对象的,而对象则是类的。2、C+中的函数参数传递方式有三种,它们是:值传递,地址传递和。4/113、静态成员函数没有隐含的,所以,在 C+程序中,静态成员函数主要用来访问静态数据成员,而不访问非静态成员。版权文档,请勿用做商业用途版权文档,请勿用做商业用途4、在图 1中, A ,B,C, D,E,F均是类,其中属于单继承的派生类有,属于多继承的派生类有,类 F的基类有,类 A 的派生类有。版权文档,请勿用做商业用途版权文档,请勿用做商业用途ABCADEBCF。

11、D图 1 类的继承层次图图 2 多重继承5、在图 2所示的继承层次结构中,如果只想在公共派生类D 中保留公共基类 A 的成员一份,就必须使用关键字virtual 把这个公共基类 A 声明为。版权文档,请勿用做商业用途版权文档,请勿用做商业用途6、如果一个类包含一个或多个纯虚函数,则该类称为。7、从实现的角度来讲,多态性可以划分为两类:和。8、列出 C+中的两种代码复用方式:和。版权文档,请勿用做商业用途版权文档,请勿用做商业用途9、假定 A 是一个类名,则该类的复制构造函数的原型声明语句为:。10 、若 要把 voidfun() 定义 为类 A 的友 元函 数, 则应 在类 A 的定义中加入语。

12、句。版权文档,请勿用做商业用途版权文档,请勿用做商业用途11、后置自减运算符 “- -”重载为类的成员函数 (设类名为 A )的形式为:。三、阅读下面 3个程序,写出程序运行时输出的结果。 (共 15分)(注意:此题的答案要写在答题纸上,作答时请写清题号)1、#includeusing namespace std;void fun(int &a, int &b)5/11int p;p=a; a=b; b=p;void exchange(int &a, int &b, int &c)if( ausing namespace std;class Apublic:A()coutusing names。

13、pace std;class Toy 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;class Datepublic:Date(i。

14、nt y,int m,int d)void print() const;private:/ date members;void Date:print() constint main()Date national_day(1949,10,1); national_day.print();return 0;2、( 9分)下列 Shape类是一个表示形状的抽象类, area( )为求图形面积的函数, total( )则是一个用以求不同形状的图形面积总和的普通函数。版权文档,请勿用做商业用途版权文档,请勿用做商业用途class Shapepublic:8/11virtual double area()。

15、=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。

16、、string 类型的数组中找出最大值。要求写出完整的C+源程序。 版权文档,请勿用做商业用途版权文档,请勿用做商业用途9/11北京化工大学北方学院2010 20011 学年第一学期面向对象程序设计C+ 期末考试试卷(A)答题纸班级:姓名:学号:分数:题号一二三四总分得分一、单项选择题(每小题2 分,共 40 分)12345_版权文档,请勿用做商业用途版权文档,请勿用做商业用途678910_档,请勿用做商业用途版权文档,请勿用做商业用途1112131415___档,请勿用做商业用途版权文档,请勿用做商业用途版权文版权文1617181920___版权文档,请勿用做商业用途版权文档,请勿用做商业用途二、填空题(前14 个空,每空 1 分,后 3 个空,每空 2 分,共 20 分)123版权文档,请勿用做商业用途版权文档,请勿用做商业用途4567.8.10/119.10.11.三、阅读程序( 15 分)(答题时注意写清每个小题的题号)11/11。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值