面向对象程序设计试题A卷-答案.doc

上传人:marr****208 文档编号:141318774 上传时间:2020-08-06 格式:DOC 页数:8 大小:33.62KB
返回 下载 相关 举报
面向对象程序设计试题A卷-答案.doc_第1页
第1页 / 共8页
面向对象程序设计试题A卷-答案.doc_第2页
第2页 / 共8页
面向对象程序设计试题A卷-答案.doc_第3页
第3页 / 共8页
面向对象程序设计试题A卷-答案.doc_第4页
第4页 / 共8页
面向对象程序设计试题A卷-答案.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《面向对象程序设计试题A卷-答案.doc》由会员分享,可在线阅读,更多相关《面向对象程序设计试题A卷-答案.doc(8页珍藏版)》请在金锄头文库上搜索。

1、课程 面向对象程序设计 考试形式(闭卷,考试)一. 判断题(正确的叙述打“”,错误的叙述打“”,每题1分共10分)1. 在C+中,所有运算符均可重载。( )2. 面向对象程序设计的三大特征是:封装、继承和多态。( )3. 函数原型:f(int *&p);中的形参p是对指针变量的引用。()4. 一个类的常数据成员对该类的所有对象来说,其值都是相同的。( )5. 类的友元函数、构造函数和析构函数均属于类的成员函数。( )6. 类的静态成员函数只能直接引用该类中说明的静态成员。( )7. 子类的对象可以赋值给基类对象,通过这个基类对象可访问到子类新增加的成员。()8. C+ 类族中,构造函数和析构函

2、数不能被派生类继承。( )9. 在一个类族中,构造函数不能定义为虚函数,但析构函数可以定义为虚函数。( )10. 若类A是类B的友元,类B是类C的友元,则类A是类C的友元。( )二. 填空题(每格1分共14 分)1. C+中的数据类型bool型的值域是:false,true。2. 在已经定义了整型指针变量ip后,为了动态得到一个存储20个int型数的存储空间并由ip所指向,应使用语句: ip=new int20 ;释放这些存储空间应使用语句:delete ip; 。3. 假定classA为一个类,则执行“classA a115,a225;”语句时,系统自动调用该类的构造函数的总次数为:40。

3、4. 在C+中不使用宏替换去定义符号常量Pai的值为3.14159可使用语句:const float Pai=3.14159;5. 已知fun()的函数原型为:int fun(float);现要定义一个指向该函数的指针变量pf,则pf的定义语句为:int(*pf)(float)=&fun;6. 设函数 max 是由函数模板实现的,并且 max(3.5,5,8) 和 max(10,14.3,5) 都是正确的函数调用,则该函数模板具有 3 个类型参数。7. 在一个链表中,最后一个节点的指针域的值通常是:0(或NULL)。8. 对于long类型的数据256873存储为文本文件占用 6 个字节。9.

4、含有 纯虚函数 的类叫抽象类。它的一个重要特点是不能实例化,它的主要作用是作为一个类族的 接口 。10. 一个类的常成员函数,通常作为常对象的对外接口。11. C+的I/O系统通过 流 的机制实现文件和控制台的输入输出操作。12. 在OOP中多态是指 同样的消息被不同对象接收时可产生不同的行为 。三. 单项选择题(把答案填在下表内,否则不得分。每题2分共20分)题号12345678910答案ADCABBDCAB1. 在 C+中不能实现对属性与操作封装的是: ( A )A) 枚举 B) 类 C) 结构体 D) 共用体2. 在下面的字符数组定义中,哪一个有语法错误? (D) A) char a10

5、= ”abcdefg”; B) char a=”x+y=55.”; C) char a15; D) char a20= A;3. 在 C+中,下列关键词中不是运算符的是: (C)A) sizeof B) new C) volatile D) delete4. 关于构造函数的说法,正确的是(A) A) 它在对象被创建时由系统自动调用 B) 可返回值 C) 其名可由用户命名,可与类名无关D) 没有定义构造函数时,系统将不会作任何处理。 5. 对于int (*pa)5;的描述中,(B)是正确的。A) pa是一个指向某数组中第5个元素的指针,该元素是int型变量B) pa是一个指向数组的指针,所指向的

6、数组包含5个int型元素C) pa5表示数组的第5个元素的值,是int型的值D) pa是一个具有5个元素的指针数组,每个元素是一个int型指针6. 有如下类声明:则A类的成员x的访问属性是:(B) class Aint x; ;A) 公有数据成员 B) 私有数据成员 C) 保护数据成员 D) 不能确定7. 不属于多态技术的是: (D)A) 模板技术 B) 重载技术 C) 虚函数技术 D) 内联函数技术 8. 在类的外部,通过该类对象,可以被访问的成员有:(C )A) 所有类成员 B) private的类成员 C) public的类成员 D) public或protected的类成员9. 已知:

7、display()函数是一个类的常成员函数,它无返回值并无参,下列表示中, 能正确表示其函数原型的是(A)A) void display () const; B) const void display (); C) void const display (); D) void display (const);10. 下面描述中,表达错误的是(B)A) 公有继承时基类中的public成员在派生类中仍是public的B) 公有继承时基类中的private成员在派生类中仍是private的C) 公有继承时基类中的protected成员在派生类中仍是protected的D) 私有继承时基类中的publ

8、ic成员在派生类中是private的四. 写出程序的运行结果(每题5分共20分,不是全对时,可按正确数的占比酌情给分 )注意:必须严格按程序中输出语句设置的输出格式写出运行结果。1#include using namespace std;int g=100;void f(int g,int x)static int y=150;:g+=10;y+=10;coutg=g,x=x,y=y,:g=:gendl;void main()int a=200;coutFirst:;f(g,a);a+=20;g+=20;coutSecond:;f(g,a);运行结果:First:g=100,x=200,y=1

9、60,:g=110Second:g=130,x=220,y=170,:g=1402.#include using namespace std;void swap(int& a, int& b, int *c, int *d,int e,int f) int tmp;tmp=a; a=b; b=tmp; tmp=e; e=f; f=tmp;tmp=*c; *c=*d; *d=tmp;couta,b,c,d,e,f=a,b,*c,*d,e,f endl; void main() int i=10, j=20, k=30, m=40,n=50,p=60;swap( i, j, &k, &m, n,

10、p ); couti,j,k,m,n,p=i,j,k,m,n,pendl;运行结果:a,b,c,d,e,f=20,10,40,30,60,50i,j,k,m,n,p=20,10,40,30,50,603.#include using namespace std;class CB public: int a; CB(int x)a=x; void showa()coutClass CB - a=aendl;class CD:public CB public: int a; CD(int x, int y):CB(x)a=y; void showa()coutClass CD - a=aendl;

11、 void print2a() couta=aendl; coutCB:a=CB:aendl; ;void main() CB CBobj(100); CBobj.showa(); CD CDobj(300, 600); CDobj.showa(); CDobj.CB:showa(); CDobj.print2a();运行结果:Class CB - a=100Class CD - a=600Class CB - a=300a=600CB:a=3004.#include #include using namespace std;class Pointpublic:Point(float xx=0

12、, float yy=0) X=xx;Y=yy; void print() cout(X,Y); friend float fDist(Point &a, Point &b);Point operator +(Point &p) Point temp;temp.X=(X+p.X)/2;temp.Y=(Y+p.Y)/2;return temp; private:float X,Y; ;float fDist(Point &p1, Point &p2)double x=double(p1.X-p2.X);double y=double(p1.Y-p2.Y);return float(sqrt(x*

13、x+y*y); class Circle:public Pointpublic:Circle(float x=0,float y=0,float r=0):Point(x,y)R=r; float area()return 3.14*R*R; void print()cout;Point:print();cout,Rendl; private:float R; void main()Point p1(1,1), p2(4,5),midp;coutThe distance is: fDist(p1, p2)endl;midp=p1+p2;midp.print();coutendl;Circle myc(2,3,10);myc.print();coutArea=myc.area()endl; 运行结果:The distance is

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

当前位置:首页 > 高等教育 > 其它相关文档

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