《《C程序设计(高起专)》离线考核》由会员分享,可在线阅读,更多相关《《C程序设计(高起专)》离线考核(9页珍藏版)》请在金锄头文库上搜索。
1、离线考核C+程序设计(高起专) 满分100分一、简答题(每小题10分,共40分。)1.什么是类?什么是对象?对象与类的关系是什么?答:(1) 类是一组具有共同的属性特征和行为特征的对象的抽象;(2) 对象就是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和一组行为构成。(3) 类和对象之间的关系是抽象和具体的关系,类是对多个对象进行抽象的结果,对象是类的具体实现。2.什么是多态性?请举例说明。答:多态性是面向对象程序的重要特征,它是指不同的对象收到相同的消息时产生不同的行为方式。例如我们同样双击windows系统桌面上的图标时,有的是打开媒体播放器,有的是打开D盘,而
2、有的是关机。3.虚函数是否一定要有virtual关键字?什么叫纯虚函数和抽象类?多态调用需要满足怎样的条件?答:不一定,派生类覆盖基类的成员函数时,没有virtual关键字,也是虚函数;纯虚函数没有实现,它供派生类覆盖,纯虚函数的一般定义形式为:virtual 返回类型 函数名(参数表) = 0;至少含有一个纯虚函数的类称为抽象类,抽象类不能定义对象,只能作为基类;多态调用需要满足的条件:(1)被调用的成员函数是虚函数;(2)用指针或引用调用虚函数。4.简述结构化的程序设计、面向对象的程序设计的基本思想。答:结构化的程序设计将数据和对数据的操作分离,程序是由一个个的函数组成的,面向对象的程序设
3、计将数据和操作封装在一起,程序是由一个个对象组成的,对象之间通过接口进行通信,它能够较好地支持程序代码的复用。二、程序分析题(每小题10分,共40分。)1. 指出下列程序中的1处错误,并说明为什么。class Location int X,Y=20;protected: int zeroX,zeroY; int SetZero(int ZeroX,int ZeroY);private: int length,height;public: void init(int initX,int initY); int GetX( ); int GetY( );答:错误语句:int X,Y=20;错误原因
4、:数据成员不能在类定义中初始化2指出下列程序中的1处错误,并说明为什么。#include#includeclass CTestpublic: const int y2; CTest(int i1, int i2,int i3):y1(i1),y2(i2) x=i3; int show() constcouty1=y1ny2=y2nx=xendl; /private: int x; const int y1;void main() CTest c(1,2,3); c.show(); c.y2 = -2; c.show();答: 错误位置:c.y2=-2;错误原因:y2是常数据成员,而常数据成员的
5、值是不能被改变的。3写出下面程序的输出结果。#include class B int b; public: B(int i) b=i; virtual void virfun() cout B:b: b , ;class D: public B public: D(int i,int j): B(i) d=j; void virfun() B:virfun(); coutD:d: dvirfun(); void main() D *pd=new D(3,5) ; fun(pd);答:程序输出结果为:B:b: 3 , D:d: 54. 写出下面程序的运行结果。#includeclass exam
6、plepublic: example(int n) i=n; coutConstructingn; example() coutDestructingn; int get_i() return i; private : int i;int sqr_it(example o) return o.get_i()*o.get_i(); main () example x(10); coutx.get_i()endl; coutsqr_it(x)endl; return 0;答:程序输出结果为:Constructing10Destructing100Destructing三、完成程序题(每小题10分,
7、共20分。)1请在下面程序的横线处填上适当内容,以使程序完整,并使程序的输出为5。#includeclass Integerint x;public:Integer(int a=0)x=a;void display( )coutxb.x )return a;return b;void main( )Integer a(3),b(5),c;c=Max(a,b);c.display( );2. 设计一个三角形类Triangle,包含三角形三条边长的私有数据成员,另有一个重载运算符“+”,以实现求两个三角形对象的面积之和。 答:#include #include class Triangle int
8、 x,y,z; double area; public: Triangle(int i,int j,int k) double s; x=i;y=j;z=k; s=(x+y+z)/2.0; area=sqrt(s*(s-x)*(s-y)*(s-z); void disparea() coutArea=areaendl; friend double operator+(Triangle t1,Triangle t2) return t1.area+t2.area; ; void main() Triangle t1(3,4,5),t2(4,5,6); double s; coutt1:; t1.disparea(); coutt2:; t2.disparea(); s=t1+t2; cout总面积=sendl;