面向对象程序设计C--大一下学期期末试题及答案

上传人:liy****000 文档编号:117249928 上传时间:2019-12-05 格式:DOC 页数:11 大小:74KB
返回 下载 相关 举报
面向对象程序设计C--大一下学期期末试题及答案_第1页
第1页 / 共11页
面向对象程序设计C--大一下学期期末试题及答案_第2页
第2页 / 共11页
面向对象程序设计C--大一下学期期末试题及答案_第3页
第3页 / 共11页
面向对象程序设计C--大一下学期期末试题及答案_第4页
第4页 / 共11页
面向对象程序设计C--大一下学期期末试题及答案_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《面向对象程序设计C--大一下学期期末试题及答案》由会员分享,可在线阅读,更多相关《面向对象程序设计C--大一下学期期末试题及答案(11页珍藏版)》请在金锄头文库上搜索。

1、面向对象程序设计2-2任课教师 学院_系别(班级)_姓名_ 学号_题 号一二三四合计成 绩得 分 一、单项选择(每空1分,共20分)(结果必须填写在题头相应横线上)注意:请将选择题结果写在下面相应位置上:_1、下列关于构造函数说法不正确的是( )。A)构造函数必须与类同名B)构造函数可以省略不写C)构造函数必须有返回值D)在构造函数中可以对类中的成员进行初始化2、任意一个类,析构函数的个数最多是( )。A) 不限个数 (B) 1 (C) 2 (D) 33、友元的作用是( )。A) 增减成员函数的种类 B) 加强类的封装性C) 实现数据的隐藏 D)提高程序的运行效率4、在公有派生情况下,有关派生

2、类对象和基类对象的关系,下列叙述不正确的是( )。A)派生类的对象可以直接访问基类的所有成员B)派生类的对象可以初始化基类的引用C)派生类的对象不可以直接访问基类中的私有成员D)派生类的对象的地址可以赋给指向基类的指针5、下面对静态数据成员的描述中,正确的是( )。A)静态数据成员可以在类体内进行初始化B)静态数据成员不可以被该类的对象调用C)静态数据成员不能受private控制符的作用D)静态数据成员可以直接用类名访问6、在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是( )。A)友元函数B)虚函数C)构造函数D)析构函数7、下列对派生类的描述中错

3、误的是( )。A)派生类至少有一个基类B)派生类可作为另一个派生类的基类C)派生类除了包含它直接定义的成员外,还包含其基类的成员D)派生类对其继承的基类的成员访问权限保持不变8、下列关于this指针的说法,正确的是( )。A)this指针一定指向常量型数据B)this指向的数据不可更改C)静态成员函数中也可以访问this指针D)this指针本身可直接作为成员函数的返回值9、下面关于类的成员函数描述不正确的是( )。A)静态成员函数内可以直接访问类的非静态成员数据B)静态成员函数内可以直接访问类的静态成员数据C)非静态成员函数可以直接访问类的非静态成员数据D)非静态成员函数可以直接访问类的静态成

4、员数据10、下列关于类和对象的叙述中,错误的是( )。A)一个类只能有一个对象B)对象是类的具体实例C)类是某一类对象的抽象D)类和对象的关系是一种数据类型与变量的关系11、有如下类声明:class Sample int x; ;则Sample类成员x是Sample类的( )。A)公有数据成员B)保护数据成员C)私有数据成员D)以上选项都不正确12、在表达式x+y*z中,+ 是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是( )。A)operator+有两个参数,operator*有两个参数B)operator+有两个参数,operator*有一个参数C)oper

5、ator+有一个参数,operator*有两个参数D)operator+有一个参数,operator*有一个参数13、下列关于虚函数的说明中,正确的是( )。A)从虚基类继承的函数都是虚函数B)虚函数不得是静态成员函数C)只能通过指针或引用调用虚函数D)抽象类中的成员函数都是虚函数14、类模板的模板参数( )。A) 只可作为数据成员的类型 B) 只可作为成员的返回类型C) 只可作为成员函数的参数类型 D) 以上3项均可以15、下列关于运算符重载的描述中,正确的是( )。A)运算符重载可以改变操作数的个数B)运算符重载可以改变运算符的优先级C)运算符重载可以改变运算符的结合性D)运算符重载可以使

6、运算符实现特殊功能17、下面描述中,错误的是( )。A)公有继承时,基类中的public成员在派生类中仍是public的B)公有继承时,基类中的private成员在派生类中仍是private的 C)公有继承时,基类中的protected成员在派生类中仍是protected的 D)私有继承时,基类中的public成员在派生类中是private的18、派生类构造函数的调用顺序是先调用( )。A) 派生类的构造函数B) 基类的构造函数C) 派生类的析构函数D) 基类的析构函数19、对于拷贝构造函数,正确的描述是()。A) 在C+语言中,如果不自定义类的拷贝构造函数,则每个类都有默认的拷贝构造函数B)

7、 必须为每个类定义拷贝构造函数C) 如果要使用拷贝构造函数,则必须在类中先定义D) 当定义了类的构造函数时,如果要使用拷贝构造函数,则必须定义拷贝构造函数得 分 二、判断题(每空1分,共10分)(注意把答案写在题头相应横线上!答案T表示正确,F表示错误)注意:请将判断题结果(正确为T,错误为F)写在下面相应位置上:_1、在C+中,允许从一个类派生出任意多个类,但不允许某个类同时从多个类派生。(F)2、抽象类虽然也是一种数据类型,但它不能建立对象,只能作为基类被其他类继承。(T)3、一个类模板可以先建立对象,再实例化为相应的模板类,然后使用这个模板类。(F)4、一个类的静态数据成员被该类的所有对

8、象共享。(T)5、基类类型的指针可以指向其派生类对象。(F)6、任何类都要有不必提供参数的构造函数(默认缺省构造函数)。( F )7、私有继承中,对于基类中的所有成员,派生类的成员函数都不可直接访问。(F)8、在C+中,可以声明虚构造函数和虚析构函数。( F )9、类中所提供的成员函数可以直接访问该类的私有成员。(T)10、抽象类不能定义对象,但可以声明抽象类的指针或引用。( T )得 分 三、读程序写结果(共36分)(注意将结果写在题头相应的横线上!)注意:请将程序运行的结果写在下面相应位置上:_ _ _ _ _ _ _1、写出下面程序的运行结果。(本题12分,每空3分)#includecl

9、ass Sample int x,y;public: Sample() x=y=0; Sample(int a,int b) x=a;y=b; Sample() if(x=y) coutx=yendl; else coutx!=yendl; void disp() coutx=x,y=ydisp();delete ps2;_x=0,y=0x=2,y=3x!=yx=y2、写出下面程序的运行结果。(本题6分,每空3分)#includeclass Samplepublic: Sample() Sample(int i)n=i; friend Sample operator-(Sample &,Sam

10、ple &); friend Sample operator+(Sample &,Sample &); void disp()coutn=nendl;private: int n;Sample operator-(Sample &s1,Sample &s2) int m=s1.n-s2.n;Sample tmp(m);return tmp;Sample operator+(Sample &s1,Sample &s2) int m=s1.n+s2.n;Sample tmp(m);return tmp;void main() Sample s1(10),s2(20),s3; s3=s2-s1; s3.disp(); s3=s2+s1; s3.disp();_n=10n=303、写出下面程序的运行结果。(本题12分,每空3分)#include template Type f(Type x, int n) int i,s=0;Type tmp=x0;for(i=1; in; i+)if(xix0)s+; couts=sendl;return tmp;void main() int a=1, 3, -6, 9, 2, 25, 44, -1, 51,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 其它考试类文档

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