C考试试题答案

上传人:z**** 文档编号:85686225 上传时间:2022-05-06 格式:DOC 页数:14 大小:136KB
收藏 版权申诉 举报 下载
C考试试题答案_第1页
第1页 / 共14页
C考试试题答案_第2页
第2页 / 共14页
C考试试题答案_第3页
第3页 / 共14页
资源描述:

《C考试试题答案》由会员分享,可在线阅读,更多相关《C考试试题答案(14页珍藏版)》请在装配图网上搜索。

1、C+面向对象程序设计考试试题答案、单项选择题(在每小题的四个备选答案中,选出一个正确的答案并将其号码填在题干后的括号内。每小题1分,共20分)1.面向对象程序设计将数据与_a_放在一起,作为一个相互依存、不可分割的整体来处理。A.对细的操作C.数据隐藏B.信息D.数据抽象2.a 不是面向对象系统所包含的要素。A.重载B.对象C.类D.继承3.按照脚符的要求,a符号不能组成杭只符。A.连接符B.下划线C.大小写字母D.数字字母4.已知ch是字符型变量,下面正确的赋佰语句是b。A. ch=,123,;B. ch=,xff,;C. ch=,08z ;D. ch= ;5.要求通过函数来实现一种不太复杂

2、的功能,并且要求加快执行速度,选用aoA.内联函数B.递归调用C.重载函数D.嵌套调用6.c 的功能是对对象进行初始化。A.析构函数B.数据成员C.构造函数D.静态成员函数7.在下列关键字中,用以说明类中公有成员的是a。A. publicB. privateC. protectedD. frie nd1. 试题字迹务必清晰,书写工整。2. 题间不留空,一般应题卷分开3. 务必用A4纸打印本题6页,本页为第1页试题编号:8. D回类型,但又有return语句。A.虚函数 B.内联函数C.友元函数D,类型转换函数9. 类模板的使用实际上是将类模板实例化成一个具体的A。A.类B,对象C.函数D.模板

3、类10,利用友元函数重载”运算符,第2个参数必须为_cA,指针B,对象C.引用D.无值13: 用成一个数重载二元运算符是指向类显式成员方数为指针。假设类有三个公有成 员 obVodff(iatOr?c(df2(int)和 int a。B.operatoiobjl, obj2) C:观。呻沥?()&.的弊跳A:aC.void A: :*pa12.通常拷贝构造函数的参数是一D. A *pp_coC4某用员对象象名类,I若它名成员缺省昭某的对指针名髓b的A,私有段B,公有段特殊段D.段15.下列定义中,AA. int *p5C. (int *)p5是定义指向数组的指针p。B. i nt (*p) 5

4、D. i nt *p16. C+中的类有两种用法:一种是类的实例化,即生成类的对象,并参与系 统的运行;另一种c ,派生岀新的类。A,复用B,单解C.继承D.多继承17.派生类的对象对它的基类成员中A.公有继承的公有成员C.公有继承的保护成员A是可以访问的。B.公有继承的私有成员D.私有继承的公有成员18,说明静态成员函数的关键字为A_a_oA. staticB. virtualC. friend D.void下列运算符中,c运算符在C+中不官瞳课程名称:面向对象的技术与方法任课教师:唐宁九学号:A.?:B.+C. -D. E.()3. 对一 7A算醐行重祈正确的显式调用方式有_BD oA.

5、aB.operator? (a)C. abD. a. operator? ( ) E. a?4. 关于构造函数,正确的描述有_B D oA,可以是虚函数 B.可以有参数C,可以被继承D,可以重载E.可以显式调用5. C+的模板有_DE_模板。A.运算符B.数据C.类型D,类E.函数三、名词解释(每小题2分,共8分)1. 封装性:封装就是将抽象得到的数据和行为 (或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类,其中数据和函数都是类的成员。封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的访问权限来使用类的成员

6、。课程名称:面向对象的技术与方法任课教师:唐宁九学号:姓名:2. 类:实际上是对某种类型的对象定义变量和方法的原型。它表示对现实生活中一类具有共同特征的事物的抽象,是面向对象编程的基础。3. 构造函数:是一利特殊的方法主要用来在创建对象时初始化对象即为对象成员变量赋初始值,总与 new运算符一起使 用在创建对象的语句中特别的一个类可以有多个构造函数可根据其参数个数的不同或参数类型的不同来区分它 们即构造函 数的重载4. 内联函数:,内联函数(有时称作在线函数或编译时期展开函数)是一种编程语言结构,用来建议编译器对一些特殊 函 数进行内联扩展(有时称作在线扩展);也就是说建议编译器将指定的函数体

7、插入并取代每一处调用该函数的地方(, 从 而节省了每次调用函数带来的额外时间开支。四、判断分析题(判断正误,将正确的划上“J;错误的划上“X”,并简述理由。每小题 3分,共12分)1. 空类就是没有名字的类。错。空类是没有任何成员的类2. 弓I用类型和指针类型作为函数的形式参数时,对调用函数的实际参数的要 求是一样的,均是地址。错3. 在派生类中,若基类的一个成员在派生类中也把相同名字定义为一个成员,则不可调整它的访问。错。因为基类构造函数的调用顺序是按照派生类定义时的顺序,而内嵌对象构造函数调用顺序 应该按照成员在类中声明的顺序.两种者阿以控制4. 对象数组在创建时要求构造函数不能有任何参数

8、。错。静态数据成员是一个类的多个对象共享的五、读程序、得结果(每小题5分,共20分)1. tt in elude viostream. hclass A int a;public:void seta(int x)a 二 x;void showa () (cout?a?e ndl;;class B int b;public:void setb(i nt x)b=x;void showb () (cout?b?endl;课程名称:面向对象的技术与方法任课教师:唐宁九学号:class C:public A, private B(int c:public:void setc(i nt x, int y

9、, int z) c-z;seta(x);setb(y);void showc () (cout? c?e ndl;;mai n() C c;c. seta(l);c. showa ();c. setc(l, 2, 3);c. showc ();以上程序的执行结果是3 o2. ttinclude iostream. hclass csample(private:int i ;static int k;public:csample ();void display ();;csample:csample() i=0;k+;void csample:display () cout? i=? i, k

10、=? k?endl; int csample:k=0;mai n() csample a, b;a. display ();b. display ();以上人的执行结果是i=0, k=2二 0, k 二 2_。3. tt in clude class sample(int x;public:void setx(i nt i)(x=i; int putx() return x;;main () sample *p; sample A 3;A0. setx (5);Al. setx(6);A 2. setx(7);for(int j=0; jputx() static int dys =(31,

11、28, 31, 30, 31,30, 31, 31,30, 31, 30, 31);class date(int mo, da, yr;public:date (int m, int d, int y) (mo=m, da=d;yr=y;dateO )void disp0 cout? niodys dt. moT)(day-=daysdt. mol;if (+dt. mo=13) (dt. mo=l; dt. yr+;dt. da=day;return dt;;mai n()(date dl (2,10, 2001), d2;d2=dl+20;d2. disp();以上程序的执行1结果是_3/

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

13、while(! (st.operatorO()out? st.spacest.top-H-?endl;return out;bool operator 0() constreturn 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(!IsfuU()space top = t;int main()学号:课程名称:面向对象的技术与方

14、法 任课教师:唐宁九Stackvints(20); 可以指定栈的大小s.push(l);s.push(2);s.push(3);s.push(4);s.push(5);s.push(6);cout?s;这个没问题,如果是重载 - 改为:#includeusing namespace std; template class Stackprivate:int size;int top;T*space;public:Stack(int n);? Stack。delete space;void push( T t);friend Stack & operator -(Stack &st)(while(

15、 !(st.operator()()cout? st.spacest.top+?endl;bool operator 0() const(return top = size;bool Isfull() constreturn top = 0;);课程名称:面向对象的技术与方法 任课教师:唐template Stack:Stack(int size) this-size = size;top = size;space = new T size;)template void Stack:push(T t)if(!IsfuU()spacetop = t;int main()(Stacks(20);/

16、nJ 以指定栈的大小 s.push(l);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.1415926;using namespace std;struct PointPoint()x = y = 0;课程名称:面向对象的技术与方法Point(double X, doubl

17、e Y)任课教师:唐宁九学号:姓名::x(X), y(Y) ;double x;double y;;class shapepublic:virtual double GetArea()=0; / 虚函数,纯虚函数,图形不具体的话,无法求面积virtual void Print()=O; / 虚函数,纯虚函数,图形不具体的话,无法输出面积;三角形类,继承自图形类class trigon : public shapepublic:trigon(Point &A, Point &B, Point &C) :a(A), b(B), c(C);-trigon ();double GetArea()/ 自

18、己找公式吧,根据三点计算面积的area = 0;return area;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 shapepublic:rect(double &Top, double &Bottom, double &L

19、eft, double & Right) :top(Top), bottom(Bottom), left(Left), right(Right)/ 填充四个点的坐标pa.x = Left;pa.yTop;pb.xLeft;pb.yBottopc.xRight;pc.y =Top;pd.xRight;pd.y = Bottom;;rect();double GetArea() / 计算矩形面积/return (right - left) * (bottom - top);void Print()cout? 矩形【 (? pa.x ? pa.y ? pb.x ? ? pb.y 姓名:课程名称:面向

20、对象的技术与方法 任课教师:唐宁九 学号:? pc.x ? ? pc.y ? pd.x ? ? pd.y ? ) 的面积是: ? GetArea()? endl;private:rect();Point pa, pb, pc, pd; / 矩形左上、左下、右上、右下四个点坐标double top, bottom, left, right; / 矩形上下左右四个线的坐标线double area; / 面积;/ 圆形类,继承自图形类class circle : public shapepublic:circle(Point &C, double &R):c(C),r(R) ; circle();double GetArea()/area = PI* r* r;return area;void Print()cout Print();pS = &Rect;pS-Print();pS = &Circle;pS-Print();return 0;

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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