《C++期末考试试卷题库含答案.pdf》由会员分享,可在线阅读,更多相关《C++期末考试试卷题库含答案.pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C+期末考试试卷题库(含答案)一、填空题1、C+控制台应用程序的上机步骤是,先通过编辑操作得到扩展名为.CPP的源程序,再通过 编译 操作得到扩展名为.O B J的目标程序,最后通过连接操作得到扩展名为EXE 的可执行程序。2、C+程序的三种基本结构分别是顺序结构、选择结构和 循环 结构。3、在C+中,sw itch语句只能用于 整型、常量 和 字符型类型数据。4、当定义的C+函数 无返回值 时,则 函 数 类 型 用v o id关键字声明。在C+程序中函数直接或间接地调用该函数自身的过程,被称为 递归函数。5、面向对象程序设计中的抽象的作用是 表示同一类事物的本质_ _ _ _ _ _ _
2、_ _ _ _。6、为了使类中的成员不能被类外的函数通过成员操作符访问,则应把该成员的访问权限定义为 私有的。7、类可以体现数据的 封装性 和 信息隐蔽。8、类拥有两类成员,即 数据成员 和 成员函数。9、如 果 类A继承自类B,则 类A称为 派生类,类B称为 基类。10、面向对象程序设计有四个主要特点:封装性、抽 象 性、继承性和多态性。11、构造函数不需要用户来调用它,而是 建立对象时自动执行 o12、析构函数的作用并不是删除对象,而是撤销对象占用的内存之前完成一些清理工作,使这部分内存可以被程序分配给新对象使用 o1 3,静态数据成员的初始化形式为 数 据 类 型 类 名:静态数据成员名
3、=初值;。14、在继承中由基类派生新类的过程经历了 从基类接收成员、调整从基类接收的成员、在声明派生类时增加成员三个步骤。15、在一个类中以另一个类的对象作为数据成员的,称为 Q16、设置虚基类的目的是 解决动态多态问题,可通过关键字virtual标识虚基类。17、从系统实现的角度看,多态性可分为两类:动态多态性 和 静态多态性。-1 -二、单项选择0、th is 指针知识点。1、面向对象程序设计的英文缩写为(D)。A、OOA B、OOD C、OOT D、OOP2、在面向对象程序设计框架中,(D)是程序的基本单位。A、对 象 B、函数 C、块 D、类3、一 个 C+控制台应用程序的执行是从(D
4、).A、本程序的主函数开始,到本程序的最后一个函数结束。B、本程序的第一个函数开始,到本程序的最后一个函数结束。C、本程序的第一个函数开始,到本程序的主函数结束。D、本程序的主函数开始,到本程序的主函数结束。4、下 列 C+数据类型所需存储空间最大的是(D)A、long B、float C、intD、double5、在 C+语言中,char型数据在内存中的存储形式是(D)。A、原码 B、反码 C、补码 D、ASCII码6、在 C+语言中,所有的编译预处理命令均以(D)开头。A、B、&C、*D、#7、C+是通过引用运算符(D)来定义一个引用的。A、*B、C、-D、&8、(D)是给对象取了一个别名
5、,它引入对象的同义词。A、枚 举 B、结 构 C、指 针 D、引用9、c in 是 C+中的标准(D)。A、输 出 流 对 象 B、控 制 台 C、输 入 函 数 D、输入流对象10、cout是 C+中的标准(D)A、输 入 流 对 象 B、控 制 台 C、输 出 函 数 D、输出流对象11、下列有关C+函数的叙述错误的是(D)。A、缺省函数类型为in t类 型 B、同一个函数允许多次调用C、函数允许直接或间接的调用自身D、允许在主函数中定义其它函数12、C+中,将实参的值传送给形参,形参是实参的一个拷贝,这种方式称为(D)。A、递归方式调用 B、嵌套方式调用C、引 用 方 式 调 用 D、传
6、值方式调用-2-13、函数的值通过return语句返回,下面关于return语句的形式描述错误的是(D)。A return(表达式);B、一 个 return语句只能返回一个函数值;C、return表达式D、一 个 return语句可以返回多个函数值14、下列有关C+数组的叙述错误的是(DA、数组元素下标从0 开 始 B、数组中的元素类型必须相同C、数组名表示数组的首地址D、不能对数组元素初始化15、C+允许在同一作用域中用同一函数名定义多个函数,这些函数的参数个数和参数类型不相同,这些同名的函数用来实现不同的功能,这 就 是(D)。A、函数的重复定义 B、函数的同名覆盖C、函数的重新定义 D
7、、函数的重载16、系统在调用重教函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是(DA、参 数 个 数 B、参 数 的 类 型 C、函 数 的 名 称 D、函数的类型17、在 C+中,关于下列设置默认参数值的描述中,(D)是正确的。A、默认参数不会导致副作用B、设置默认参数值时,必须全部都设置C、只能在函数的定义性声明中指定参数的默认值D、在指定了默认值的参数右边,不能出现没有指定默认值的参数18、在面向对象方法中,(D)描述的是具有相似属性与操作的一组对象。A、对 象 B、代码 C、函数 D、类19在类定义中,说明成员的访问控制规则的private protect
8、ed、public可以出现的次数(D)。A、出 现 public至多一次 B、每种至少一次C、每 种 至 多 一 次 D、没有具体限定20、在关键字public后面定义的成员为类的(DA、函 数 成 员 B、私 有 成 员 C、受 保 护 成 员 D、公有成员21、在类外给出成员函数定义时,需在函数名前加(D)。A、什 么 都 不 加 B、类 名 C、对象名::D、类名::22、关于成员函数特征的下述描述中,错误的是(D)。A、成员函数可以是静态的B、成员函数可以设置默认参数C、成员函数可以重载 D、成员函数一定是内联函数23、在 C+中声明的具有类类型的数据称为(D)。-3-A、局 部 变
9、量B、全 局 变 量C、类D、对象24、下列访问对象中的成员的方法中,错误的是(D)。A、通过对象名和成员运算符访问对象中的成员B、通过指向对象的指针访问对象中的成员C、通过对象的引用变量访问对象中成员D、通过成员名直接访问对象中的成员25、对象的指针,其含义是指对象空间的(D)。A、一 个 标 志B、值 C、名 D、起始地址26、关于构造函数的说法,错误的是(D)。A、构造函数可以有形参B、构造函数无函数类型C、构造函数的功能是用来完成对象初始化D、一个类只能有一个构造函数27、非成员函数应声明为类的(D)才能访问这个类的private成员。A、构 造 函 数B、析 构 函 数C、拷贝构造函
10、数 D、友元函数28、一个类的友元函数或友元类能够通过成员操作符访问该类的(D)。A、私 有 成 员B、公有成员C、保 护 成 员D、公有成员、保护成员和私有成员29、通 过C+的(D)机制,可以从现存类中构建新的类。A、信 息 隐 藏B、数 据 封 装C、数 据 抽 象D、继承与派生30、C+中,若希望基类的公有成员在派生类中仍为公有成员,应 采 用(D)。A、单继承 B、私有继承 C、受保护继承 D、公有继承31、通过派生类对象对它的基类成员中(D)是可以访问的。A、私有继承的公有成员B、公有继承的私有成员C、公有继承的保护成员D、公有继承的公有成员32、C+允许一个派生类同时继承多个基类
11、,这种行为称为(DA、重 复 继 承B、多 层 派 生C、单 继 承D、多重继承33、重复继承是指(C)。A、只有一个直接基类B、有两个直接基类C、有两个以上直接基类D、间接继承一个基类多次34、建立含有对象成员的派生类对象时,自动调用构造函数的执行顺序依次为(D)。A、派生类、对象成员所属类、基类的构造函数B、基类、派生类、对象成员所属类的构造函数C、对象成员所属类、基类、派生类的构造函数D、基类、对象成员所属类、派生类的构造函数-4-35、在C+程序中,(D)主要用来访问静态数据成员,而不能直接访问非静态成员。A、构 造 函 数B、析 构 函 数C、虚函数 D、静态成员函数36、设置虚基类
12、的目的是(C)A、简 化 程 序B、提高运行效率C、减 少 目 标 代 码D、消除二义性37、编译时的多态性通常使用(D)获得。A、继 承B、虚 函 数C、析构函数 D、重载函数38、许多情况下,在基类中不能为虚函数给出一个有意义的定义,这时可将其说明为(D)oA、虚 基 类B、友 元 函 数C、成员函数 D、纯虚函数三、综合应用1、仔细分析下列C+程序,写出执行结果:#includeint fiddle(int x,int&y)x=x+y;y=x-y;coutx=,x ,y=,y e n d l;/(分)return x+y;)int main()int x,y,z;z=fiddle(x,y
13、);coutx=n x y=y;cou tn,z=H z e n d l;/(分)return 0;)结果:X=10,Y=3X=3,Y=3,Z=132、仔细分析下列C+程序,按要求填空:#includeint fun(int);int fun(int,int);声明函数 fun。(分)int main()coutfun(2,4)endl;程序输出显示为(分)return 0;-5-int fun(int n)return n*n;)int fun(int m,int n)return m*n;)3、仔细分析下列C+程序,按要求填空:#includeclass Aprotected:int x;
14、public:void set(int X)x=X;);class B protected:int y;声明整型数据成员y(分)public:void set(int Y)y=Y;);class C:public A,public B);void main()C e l;cl.A:set(7);设 置c l对 象 的x为7(分)cl.B:set(9);设 置c l对 象 的y为9(分)4、仔细分析下列C+程序,按要求填空:#includeclass Aprotected:int x;);class Bprotected:int x;);class C:public A,public Bpubl
15、ic:-6-void set(int XA,int XB)A:x=XA;继 承 自 A 的 x 获 取 X A 的 值(分)B:x=XB;继 承 自 B 的 x 获 取 X B 的 值(分)void show()coutA:B:xendl;/fy HjSW x 的 值(分);int main()C el;cl.set(2,3);cl.show();return 0;5、仔细分析以下程序后,在空白处补上必要的部分使程序完整:#includeclass PILLAR protected:float wid;float hei;float len;public:PILLAR()(分);/(2 分)f
16、loat vol();/(分)class PIPE private:PILLAR in_Pill;PILLAR out.Pill;public:PIPE()/(分)float vol()return out_Pill.vol()-in_Pill.vol(););int main()PIPE pl(2.0f,3.0f,4.0f,5.0f,lO.Of);-7-coutpl.vol()endl;return 0;)6、仔细分析下列C+程序,在空白处补上必要的部分使程序完整:#includeclass A public:void show()cout ”基类函数 show1 endl;virtual
17、disp()cout ”基类虚函数 disp endl;/(分);class B:public Apublic:void show()cout ”派生类函数 show endl;void disp()cout 派生类函数 disp endl;(分);int main()A*pa;pa=new B;pa-show();/此处执行后显示:基类函数showpa-disp();/此处执行后显示:派生类函数dispdelete pa;return 0;)四、问答题1、在哪些情况下程序会执行析构函数?(分)答:当对象的生命期结束时,会自动执行析构函数。如果在一个函数中定义了一个对象(假设是自动局部对象),
18、当这个函数调用结束时,对象应该释放,在对象释放前自动执行析构函数静态局部对象在main函数结束或调用exit函数结束程序时,调 用 static局部对象的析构函数定义了一个全局的对象,在程序的流程离开其作用域时,调用该全局的对象的析构函数 用 new 运算符动态建立一个对象,当 用 delete运算符释放该对象时,先调用该对象的析构函数2、在 C+的派生类中,成员可以按访问属性划分为哪几种类型?(分)答:划分为私有派生类,公用派生类,保护派生类3、虚函数的作用是什么?其使用方法是什么?(分)答:作用:允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基-8-类和派生类中的
19、同名函数使用方法在基类中用virtual声明成员函数为虚函数在派生类中重新定义此函数,函数名,函数类型,函数参数个数和类型必须与基类的虚函数相同,根据派生类的需要重新定义函数体定义一个指向基类对象的指针变量,并使它指向同一类族中需要调用该函数的对象通过该指针变量调用此虚函数,此时调用的就是指针变量指向的对象的同名函数五、程 序 设 计 题1、设计一个圆(CIRCLE)类,有数据成员R adius,要求:(1)设计构造函数完成圆类对象的初始化(默认值为1.0);(2)设计成员函数Get A rea,用于计算并返回圆的面积;(3)编 写 m ain函数用于程序运行实现。(共 5 分)#includ
20、eusing namespace std;class CIRCLE(public:CIRCLEO(Radius=1.0;float GetArea();void show();private:float Radius;);void CIRCLE:show()(cout”请输入圆的半径:w idth,要求:(1)设计构造函数完成矩形类对象的初始化(默认长、宽 为 1.0);(2)设计成员函数GetArea,用于计算并返回矩形的面积;(3)编 写 m ain函数用于程序运行实现。(共 5 分)#includeusing namespace std;class RECT(public:RECTO(l
21、ength=1.0;width=1.0;)void display();float GetArea();private:float length;float width;);void RECT:display()(cout”请输入矩形的长和宽:cinlengthwidth;)float RECT:GetArea()(return(length*width);)int main()(RECTc;c.displayO;coutc.GetArea()endl;return 0;)-10-3、设计一个平面点(Point)类,有数据成员x,y,要求:(1)设计构造函数完成点类对象初始化(默认值为0,0)
22、;设计成员函数show 完成点坐标位置的显示:(3 分)(2)重载减法运算符为点类的成员函数(或点类的友元函数),实现计算并返回任意两点之间的距离;(3 分)(3)设 计 m ain函数用于程序运行实现。(2 分)#include#includeusing namespace std;class Point(public:Point()x=0;y=0;Point(double xx,double yy)x=xx;y=yy;double operator-(Point&c);void show();private:double x;double y;);double Point:operator-(Point&c)(return sqrt(x-c.x)*(x-c.x)+(y-c.y)*(y-c.y);)void Point:show()(cout,x,u y ,),endl;)int main()(double xl,x2,yl,y2;c in x l y l;cinx2y2;Point al(xl,yl),a2(x2,y2);al.show();a2.show();cout”两点之间的距离=a2alendl;return 0;-11-