C++考试试题答案要点(共13页).doc

上传人:飞****2 文档编号:14379895 上传时间:2022-05-04 格式:DOC 页数:13 大小:59.50KB
返回 下载 相关 举报
C++考试试题答案要点(共13页).doc_第1页
第1页 / 共13页
C++考试试题答案要点(共13页).doc_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《C++考试试题答案要点(共13页).doc》由会员分享,可在线阅读,更多相关《C++考试试题答案要点(共13页).doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上面向对象程序设计考试试题答案一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干后的括号内。每小题1分,共20分)1 面向对象程序设计将数据与_a_放在一起,作为一个相互依存、不可分割的整体来处理。A.对数据的操作 B.信息C.数据隐藏 D.数据抽象2. _a_不是面向对象系统所包含的要素。A.重载 B.对象C.类 D.继承3. 按照标识符的要求,_a_符号不能组成标识符。A.连接符 B.下划线C.大小写字母 D.数字字母4. 已知ch是字符型变量,下面正确的赋值语句是_b_。A.ch=123; B.ch=xff;C.ch=08; D.ch

2、=”;5. 要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用_a_。A.内联函数 B.递归调用C.重载函数 D.嵌套调用6. _c_的功能是对对象进行初始化。A.析构函数 B.数据成员C.构造函数 D.静态成员函数7. 在下列关键字中,用以说明类中公有成员的是_a_。A.public B.privateC.protected D.friend8. _D_无返回类型,但又有return语句。A.虚函数 B.内联函数C.友元函数 D.类型转换函数9. 类模板的使用实际上是将类模板实例化成一个具体的_A_。A.类 B.对象C.函数 D.模板类10. 利用友元函数重载“”运算符,第2个

3、参数必须为_c_。 A.指针 B.对象C.引用 D.无值11. 用成员函数重载二元运算符,则显式调用方式为_C_。A.obj1.operator(obj2) B.operator(obj1,obj2)C.obj1.operator( ) D.obj1obj212. 通常拷贝构造函数的参数是_c_。A.某个对象名 B.某个对象的成员名C.某个对象的引用名 D.某个对象的指针名13. 已知一个类A,_B_是指向类A成员函数的指针。假设类有三个公有成员:void f1(int),void f2(int)和int a。A.A *p B.int A:*pc=&A:aC.void A:*pa D.A *p

4、p14. 用struct定义类,若它的成员缺省段约束符的说明,其成员是_b_的成员。A.私有段 B.公有段C.特殊段 D.保护段15. 下列定义中,_A_是定义指向数组的指针p。A.int *p5 B.int (*p)5C.(int *)p5 D.int *p16. C+中的类有两种用法:一种是类的实例化,即生成类的对象,并参与系 统的运行;另一种是通过_c_,派生出新的类。A.复用 B.单继承C.继承 D.多继承17. 派生类的对象对它的基类成员中_A_是可以访问的。A.公有继承的公有成员 B.公有继承的私有成员C.公有继承的保护成员 D.私有继承的公有成员18. 说明静态成员函数的关键字为

5、_a_。A.static B.virtualC.friend D.void19. 下列运算符中,_c_运算符在C+中不能重载。A.?: B.+C.- D. E.( ) 3. 对一元运算符进行重载后,正确的显式调用方式有_BD_。A.a B.operator(a) C.abD.a.operator( ) E.a4. 关于构造函数,正确的描述有_。A.可以是虚函数 B.可以有参数 C.可以被继承D.可以重载 E.可以显式调用5. C+的模板有_DE_模板。A.运算符 B.数据 C.类型D.类 E.函数三、名词解释(每小题2分,共8分)1. 封装性:封装就是将抽象得到的数据和行为(或功能)相结合,形

6、成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过 外部接口,一特定的访问权限来使用类的成员。2. 类:实际上是对某种类型的对象定义变量和方法的原型。它表示对现实生活中一类具有共同特征的事物的抽象,是面向对象编程的基础。3. 构造函数:是一种特殊的方法 主要用来在创建对象时初始化对象 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 特别的一个类可以有多个构造函数 可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载4. 内联函数:

7、,内联函数(有时称作在线函数或编译时期展开函数)是一种编程语言结构,用来建议编译器对一些特殊函数进行内联扩展(有时称作在线扩展);也就是说建议编译器将指定的函数体插入并取代每一处调用该函数的地方(,从而节省了每次调用函数带来的额外时间开支。四、判断分析题(判断正误,将正确的划上“”,错误的划上“”,并简述理由。每小题3分,共12分)1. 空类就是没有名字的类。错。空类是没有任何成员的类2 引用类型和指针类型作为函数的形式参数时,对调用函数的实际参数的要求是一样的,均是地址。错3. 在派生类中,若基类的一个成员在派生类中也把相同名字定义为一个成员, 则不可调整它的访问。错。因为基类构造函数的调用

8、顺序是按照派生类定义时的顺序,而内嵌对象构造函数调用顺序应该按照成员在类中声明的顺序.两种都可以控制4. 对象数组在创建时要求构造函数不能有任何参数。错。静态数据成员是一个类的多个对象共享的五、读程序、得结果(每小题5分,共20分)1. #include class A int a; public: void seta(int x)a=x; void showa()coutaendl; ; class B int b; public: void setb(int x)b=x; void showb()coutbendl; class C:public A, private B int c: p

9、ublic: void setc(int x,int y,int z)c=z;seta(x);setb(y); void showc()coutcendl;main() C c; c.seta(1); c.showa(); c.setc(1,2,3); c.showc(); 以上程序的执行结果是_3_。2. #include class csample private: int i ; static int k;public: csample();void display();csample:csample()i=0;k+;void csample:display()cout”i=”i”,k=

10、”kendl;int csample:k=0;main() csample a,b;a.display();b.display();以上程序的执行结果是_i=0,k=2I=0,k=2_。_。3. #include class sample int x;public:void setx(int i)x=i;int putx()return x;main() sample *p;sample A3;A0.setx(5); A1.setx(6); A2.setx(7); for(int j=0;j3;j+)p=&Aj;coutputx()” ”;coutendl;以上程序的执行结果是_567_。4.

11、 #include static int dys =31,28,31,30,31,30,31,31,30,31,30,31;class dateint mo,da,yr;public:date(int m,int d,int y)mo=m,da=d;yr=y; date()void disp()coutmo”/”da”/”yrdysdt.mo-1) day-=daysdt.mo-1; if(+dt.mo=13)dt.mo=1;dt.yr+;dt.da=day;return dt; ;main() date d1(2,10,2001),d2;d2=d1+20;d2.disp( );以上程序的执行

12、结果是_3/2/2001_。六、编程题(每小题15分,共30分)1. 用模板设计一个堆栈类,包含判栈、读栈、入栈和出栈功能,要求用成员函数重载“()”实现判栈功能,用友元函数重载“-”实现出栈功能。重载“-”为出栈?“”?判栈有判空和判满。#includeusing namespace std;template class Stack private: int size; int top; T *space; public: Stack(int n); Stack() delete space; void push( T t); friend ostream& operator(ostream

13、& out,Stack &st) while(!(st.operator()() out st.spacest.top+endl; return out; bool operator ()() const return top = size; bool Isfull() const return top = 0; ;template Stack:Stack(int size) this-size = size; top = size; space = new T size;template void Stack:push(T t) if(!Isfull() space-top = t;int

14、main() Stacks(20);/可以指定栈的大小 s.push(1); s.push(2); s.push(3); s.push(4); s.push(5); s.push(6); couts;这个没问题,如果是重载 - 改为:#includeusing namespace std;template class Stack private: int size; int top; T *space; public: Stack(int n); Stack() delete space; void push( T t); friend Stack & operator -(Stack &st

15、) while(!(st.operator()() cout st.spacest.top+endl; bool operator ()() const return top = size; bool Isfull() const return top = 0; ;template Stack:Stack(int size) this-size = size; top = size; space = new T size;template void Stack:push(T t) if(!Isfull() space-top = t;int main() Stacks(20);/可以指定栈的大

16、小 s.push(1); s.push(2); s.push(3); s.push(4); s.push(5); s.push(6); -s;但是这个在VC下不行,在codeblocks下使用mingw32-g+.exe可以正常编译执行,运行截图: 请参考2. 利用基类、派生类和虚函数的概念编写一个程序计算三角形、矩形和圆形的面积。#include const double PI = 3.;using namespace std;struct Point Point() x = y = 0; Point(double X, double Y) :x(X), y(Y); double x; do

17、uble y;class shape public: virtual double GetArea()=0; / 虚函数,纯虚函数,图形不具体的话,无法求面积 virtual void Print()=0; / 虚函数,纯虚函数,图形不具体的话,无法输出面积;/ 三角形类,继承自图形类class trigon : public shape public: trigon(Point &A, Point &B, Point &C) : a(A), b(B), c(C); trigon(); double GetArea() / 自己找公式吧,根据三点计算面积的 area = 0; return a

18、rea; void Print() cout 三角形【( a.x , a.y ):( b.x , b.y ):( c.x , c.y )】的面积是: GetArea() endl; private: trigon(); Point a, b, c; / 三角形三个点 double area; / 面积;/ 矩形类,继承自图形类class rect : public shape public: rect(double &Top, double &Bottom, double &Left, double &Right) : top(Top), bottom(Bottom), left(Left),

19、 right(Right) / 填充四个点的坐标 pa.x = Left; pa.y = Top; pb.x = Left; pb.y = Bottom; pc.x = Right; pc.y = Top; pd.x = Right; pd.y = Bottom; ; rect(); double GetArea() / 计算矩形面积 / return (right - left) * (bottom - top); void Print() cout 矩形【( pa.x , pa.y ):( pb.x , pb.y ):( pc.x , pc.y ):( pd.x , pd.y )】的面积是

20、: GetArea() endl; private: rect(); Point pa, pb, pc, pd; / 矩形左上、左下、右上、右下四个点坐标 double top, bottom, left, right; / 矩形上下左右四个线的坐标线 double area; / 面积;/ 圆形类,继承自图形类class circle : public shape public: circle(Point &C, double &R) : c(C), r(R) ; circle(); double GetArea() / area = PI * r * r; return area; void Print() cout 圆形【 c.x : c.y : r 】的面积是: GetArea() Print(); pS = &Rect; pS-Print(); pS = &Circle; pS-Print(); return 0;专心-专注-专业

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁