东华理工大学 C++程序设计试题_第1页
东华理工大学 C++程序设计试题_第2页
东华理工大学 C++程序设计试题_第3页
东华理工大学 C++程序设计试题_第4页
东华理工大学 C++程序设计试题_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、专业 班级 学号 姓名 东华理工大学软件学院 20112012学年第二学期试卷A1课程:面向对象程序设计 闭卷 年级及专业:11级软件工程、网络工程、数字媒体题号一二三四五六七八九总 分分数2040101515得分评卷人一、填空题(20分,每空1分)1把对象的属性和行为结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节,这称为 封装 。2在C+中建立参数类型和个数不同的同名函数是可能的,这称为函数 重载 。3函数 重载 能够定义一个在不同数据类型基础上完成同一个任务的函数。4类成员的访问控制属性可以有以下三种: pravate 、 public 和 protected 。5描述y除5余3的表

2、达式是 5 % y = 3 。6int i=2,j=3,k; k=i+j+?i:+j; 则k的值是 5 。 7struct data int i; char s2;g ; 假设int类型占4个字节,则语句coutsizeof(data);的输出结果是 6 。8每个对象都维护了一个指向自身的指针,这个指针称为 this 。如果类A想直接访问类B的私有成员,可以将A设置为B的 友元 类。 9如果一个类包含一个或多个纯虚函数,则称该类为 抽象类 。10标识符的首字符必须是字母或者 下划线 。 C+程序有两种注释符,一种是/*/,另一种是 / 。 二维数组的元素在内存中按 顺序存放。 11. 对象是

3、事件 的实例,对象之间通过发送 行为 进行通信。12. 如果函数的类型是void,表示该函数 返回值的类型为空 。13C+程序的三种基本控制结构是顺序结构、选择和 循环结构 。14. 在运算符重载中,后置单目运算符,重载函数需要有一个整型形参,对于_双目运算符的重载_, 重载函数没有形参。 二、选择题(40分,每题2分)1C+对C语言作了很多改进,下列描述中(D)使得C语言发生了质变,从面向过程变成了面向对象。A、增加了一些新的运算符;B、允许函数重载,并允许设置缺省参数;C、规定函数说明必须用原型;D、引进了类和对象的概念;2下列描述中,( C)是错误的。A、内联函数主要解决程序的运行效率问

4、题;B、内联函数的定义必须出现在内联函数第一次被调用之前;C、内联函数中可以包括各种语句;D、对内联函数不可以进行异常接口声明;3在C+中,关于下列设置缺省参数值的描述中,( B)是正确的。A、不允许设置缺省参数值;B、在指定了缺省值的参数右边,不能出现没有指定缺省值的参数;C、只能在函数的定义性声明中指定参数的缺省值;D、设置缺省参数值时,必须全部都设置;4( D )不是构造函数的特征。 A、构造函数的函数名与类名相同; B、构造函数可以重载; C、构造函数可以设置缺省参数;D、构造函数必须指定类型说明。5( D)是析构函数的特征。 A、析构函数可以有一个或多个参数; B、析构函数名与类名不

5、同; C、析构函数的定义只能在类体内; D、一个类中只能定义一个析构函数;6关于成员函数特征的下列描述中,( A)是错误的。 A、成员函数一定是内联函数; B、成员函数可以重载; C、成员函数可以设置缺省参数值;D、成员函数可以是静态的;7下列静态数据成员的特性中,(B)是错误的。 A、说明静态数据成员时前边要加修饰符static; B、静态数据成员要在类体外进行初始化; C、静态数据成员不是所有对象所共用的; D、引用静态数据成员时,要在其名称前加和作用域运算符;8友元的作用是(A)。 A、提高程序的运用效率; B、加强类的封装性; C、实现数据的隐藏性; D、增加成员函数的种类;9关于ne

6、w运算符的下列描述中,(D)是错误的。 A、它可以用来动态创建对象和对象数组; B、使用它创建的对象或对象数组可以使用运算符delete删除; C、使用它创建对象时要调用构造函数; D、使用它创建对象数组时必须指定初始值;10关于delete运算符的下列描述中,(C)是错误的。 A、它必须用于new返回的指针; B、使用它删除对象时要调用析构函数; C、对一个指针可以使用多次该运算符;D、指针名前只有一对方括号符号,不管所删除数组的维数。11const int *p说明不能修改(A)。 A、p指针; B、p指针指向的变量; C、p指针指向的数据类型;D、上述A、B、C三者;12已知:print

7、()函数是一个类的常成员函数,它无返回值,下列表示中( C)是正确的; A、void print() const; B、const void print(); C、void const print();D、void print(const);13派生类的对象对它的基类成员中(A)是可以访问的。 A、公有继承的公有成员; B、公有继承的私有成员;C、公有继承的保护成员;D、私有继承的公有成员;14设置虚基类的目的是(B)。 A、简化程序; B、消除二义性;C、提高运行效率;D、减少目标代码;15下列描述中,正确的是(C) A、虚函数是一个static 类型的成员函数; B、虚函数是一个非成员函数

8、;C、抽象类是指具有纯虚函数的类;D、抽象类可以说明其对象;16若有以下语句:static char x =”12345”;static char y =1,2,3,4,5;则正确的说法是_C_。Ax数组和y数组的长度相同 Bx数组的长度大于y数组的长度Cx数组的长度小于y数组的长度 Dx数组与y数组等价17以下有关宏替换的叙述中,错误的是_D_。A宏替换不占用运行时间 B宏名无类型C宏替换只是字符替换 D宏名必须用大写字母表示18要判断char型变量m是否是数字,可以使用下列表达式_B_。A0=m & m=9 B0=m & m=9C”0”=”9” D以上都错误19若int i=10;接着执行

9、完下列程序后,变量i的正确结果是_D_。switch ( i ) case 9: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1;A 10 B 11 C 12 D1320数组作为函数的形参时,把数组名作为实参,传递给函数的是_A_。A该数组的首地址 B该数组的元素个数C该数组中的各元素值 D该数组的大小三、程序填空。(每空2分,共10分)1 以下程序是输入二个整数,通过递归函数power调用,求x的y次方。 #includelong power(int x,int y )long f;if(_y=1_)f=x;else_f=power(x,y

10、-1)*x_; return f;void main( )int x,y;long z;cinxy;_z=power(x,y)_; coutz=zendl;2class A int * a; public: A(int aa=0) a=_new class_;/用aa初始化a所指向的动态对象 A()_delete *a_;/释放动态存储空间;四读程题,写出程序的运行结果。(每小题5分,共15分)1#include void main( ) int b=10; int &p=b; coutbendl; p+;coutbendl; 10112#include template T f(T *a,

11、T *b, int n) T s=0; for(int i=0;in;i+) s+=ai*bi; return s; void main() double c5=1.1,2.2,3.3,4.4,5.5,d5=10.0,100.0,1000.0; coutd4endl; coutf(c,d,5)endl; 035313#include#includeclass person int age; char name10;public:person(int i=0, char *str=”Z”)age=i; strcpy(name,str);void display()coutname” is ”ag

12、e” years old.n”; ;void main() person d1; d1.display(); person d2(30,”li-ming”); d2.display();Z is 0 years oldli-ming is 30 years old五、程序设计题(15分)1、设计一个类。属性有初值(整型)、终值(整型)和总和(长整型),行为有get(显示属性值),set(设置属性值)和求和。(6分)#includeClass addInt add;Public:Void getadd()Void setadd();2、编写一个基类building,属性有floors(表示楼房层

13、数)、areas(表示建筑面积)和name(表示建筑名称)。建立派生类house表示居住楼,增加成员ds表示单元数。建立派生类office表示办公楼,增加成员cs表示公司数。为每个类定义一个输出函数print,输出该类的相关信息;为每个类设计一个构造函数,用于初始化数据成员。(9分)#include#includeusing namespace std;class buildingprivate:int floors;float areas; string name;public:building(int Floors = 0, float Areas = 0, string Name = )

14、 floors = Floors; areas = Areas; name = Name; /*int getfloors() return floors; float getareas() return areas; string getname() return name; */ void print() cout 楼层数: floors 面积: areas 楼名: name endl; ;class house :public buildingprivate:int floors,ds;float areas;string name;public:house(int Floors = 0

15、, float Areas = 0, string Name = , int Ds = 0) floors = Floors; areas = Areas; name = Name; ds = Ds; void print() cout楼层数: floors面积: areas楼名: name单元数: ds endl; ;class office :public buildingprivate:int floors, cs;float areas;string name;public:office(int Floors = 0, float Areas = 0, string Name = , int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论