收藏 分销(赏)

面向对象程序设计期末试卷A.doc

上传人:仙人****88 文档编号:9452431 上传时间:2025-03-26 格式:DOC 页数:5 大小:98KB 下载积分:10 金币
下载 相关 举报
面向对象程序设计期末试卷A.doc_第1页
第1页 / 共5页
面向对象程序设计期末试卷A.doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
班级: 姓名: 学号: . O…………O…………O…………O…………O装………O订………O线…………O…………O…………O…………O……………O 绍兴文理学院 2011 学年 01学期 信计 专业 09 级《面向对象程序设计》试卷(答题卷) (A) 题 号(型) 一 二 三 四 五 核分人 得 分 总分 评卷人 (考试形式:闭卷 ) 一、选择题 (共15分,每小题1分) 1. 下面的函数声明中, 哪一个是” void BC(int a, int b);”的重载函数? (  ) A、int  BC(int a, int b)       B、void BC(int a, char b) C、float BC(int a, int b, int c = 0)    D、void BC(int a, int b=0) 2.C++源程序文件的缺省扩展名为( ) A、cpp B、exe C、obj D、lik 3.假定AA为一个类,a为该类的公有数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为( ) A、px(a) B、px[a] C、px.a D、px->a 4.类中定义的数据成员默认为( )访问属性 A、private B、public C、protected D、friend 5.假定AB为一个类,执行“AB R1=R2;”语句时,将自动调用该类的( ) A、无参构造函数 B、带参构造函数 C、赋值重载函数 D、拷贝构造函数 6.引入友元的主要目的是为了( ) A、增强数据的安全性 B、提高程序的可靠性C、提高程序的效率和灵活性 D、保证类的封装性 7. 下列关于构造函数的描述中,错误的是()    A、 构造函数可以设置默认参数; B、 构造函数在定义类对象时自动执行     C、 构造函数可以是内联函数;  D、 构造函数不可以重载  8. 派生类的对象对它的基类成员中(  )是可访问的   A、公有继承的公有成员       B、公有继承的私有成员   C、公有继承的保护成员       D、私有继承的公有成员 9.关于插入运算符<<的重载,下列说法错误的是( )   A、其返回值类型是ostream &       B、此运算符重载必须为类的成员函数   C、运算符的第一个参数类型是ostream &  D、运算符函数有两个参数 10.下列虚基类的声明中正确的是( ) A、class virtual B:public A    B、class B:virtual public A   C、class B:public A virtual    D、class B:public virtual A 11.下列语句中错误的是( ) A、int *p=new int(100);  B、int *p=new int[100];   C、int *p=new int;     D、int *p=new int[40](0);  12. 不能作为函数重载判断依据的是:(  ) A、参数个数   B、参数类型   C、函数名字   D、返回类型 13. 对于类定义 class A{ public: virtual void func1( ){ } void func2( ){ } }; class B:public A{ public: void func1( ){cout<<〃class B func 1〃<<end1;} virtual void func2( ){cout<<〃class B func 2〃<<end1;} }; 下面正确的叙述是( ) A、A::func2( )和B::func1( )都是虚函数 B、A::func2( )和B::func1( )都不是虚函数 C、B::func1( )是虚函数,而A::func2( )不是虚函数 D、B::func1( )不是虚函数,而A::func2( )是虚函数 14. 要让一个类中的所有对象具有共同的数据,可以使用__________________。 A、常数成员变量 B、私有数据成员 C、静态数据成员 D、 以上都是 15. 下面函数模板定义中不正确的是( ) A、template<class Q> B、template<class Q> QF(Q x){ QF(Q x){ return Q+x; return x+x; } } C、template<class T> D、template<class T> TF(T x){ TF(T x){ return x*x; return x>1; } } 二、填空题 (共20分,每小题2分) 1.无论是什么继承方式,派生类的成员不能访问基类____________属性的成员 2. C++支持的两种多态性分别是_________多态性和___________多态性 3. 含有纯虚函数的类为__________,为克服多重继承的二义性,用__________声明的基类称为虚基类 4.当建立一个新对象时,程序自动调用_________________函数 5.C++标准库中的异常层次的根类为__________________类,MFC类库中绝大多数类都来源自根类___________ 6.面向程序设计的特性为:抽象性、______________、_______________、多态性 三、程序阅读题(共30分) 1. (5分)写出下列程序运行后的结果 class test{ private: int num; public: test(); ~test(); }; test::test(){num=0;} test::~test(){cout<<”deructor is active”<endl;} void main() { test x[3]; cout<<”exiting main”<<endl; } 2. (5分)写出下列程序运行的结果 #include <iostream > using namespace std; class BASE { O…………O…………O…………O…………O线………O订………O装…………O…………O…………O…………O……………O char c; public: BASE(char n):c(n){} virtual ~BASE(){cout<<c;} }; class DERIVED:public BASE{ char c; public: DERIVED(char n):BASE(n+1),c(n){} ~DERIVED(){cout<<c;} }; int main(void) { DERIVED('X'); return 0; } 3. (6分)当输入0和!时,给出下列程序运行的结果 #include <iostream> using namespace std; void mian() { int i; char ch; cout<<”请输入一个整数和一个字符\n”; try { cin>>i>>ch; if(i==0) throw 0; if(ch==’!’)throw ‘!’; } cath (int ) { cout<<”输入为 0\n”; } catch(char) { cout<<’”输入为 !”<<endl; } cout<<“程序结束“<<endl; } 4. (6分) #include<iostream.h>    class A 班级: 姓名: 学号: . O…………O…………O…………O…………O装………O订………O线…………O…………O…………O…………O……………O {     public:     A() {cout<<”constructor class A”;} } class B {     public:     B() {cout<<”constructor class B”;} } Class C {     public:     C() {cout<<”constructor class C”;} } Class D {     public:     D() {cout<<”constructor class D”;} }    Class E:public A,virtual public B,public C {    D d; E() { cout<<”constructor class E”; }  void main()    { E e; } 5. (8分) 写出下列程序运行的结果 #include<iostream.h>    class FATHER{     public:      virtual void answer( )      {cout<<I am father\n";       return;       }      }    class DAUGHTER:public FATHER{     public:      virtual void answer( )       {cout<<"I am daughter\n";        return;        }       }    class SON:public FATHER{     public:      void answer()        {cout<<"I am son\n";        return;        }       }    int main()    { FATHER father;     DAUGHTER daughter;     SON son;     FATHER *who;     who=&father;     who->answer();     who=&daughter;     who->answer();     who=&son;     who->answer();     return 0;    } 四、程序填空题(共21分,每空3分) 1.class A{ int * a; public: A(int aa=0) { ________(1)________//用aa初始化a所指向的动态对象 } ~A(){_delete a_;}//释放动态存储空间 }; 2. #include<iostream> using namespace std; class myclass { int x,y; public: myclass(int vx,int vy); ________________(2)_______________ ________________(3)_______________ }; myclass::myclass(int vx,int vy) { x=vx; y=vy; } int sum(myclass c1) { return c1.x+c1.y; } void print(myclass c1) { cout<<"x="<<c1.x<<"y="<<c1.y<<endl; } void main() { myclass c(120,23); cout<<"the sum is"<<sum(c)<<endl; print(c); } 3. #include <iostream> using namespace std; class A { Private: char name[80]; public: A( ____(4)______ ) {____(5)______ } O…………O…………O…………O…………O线………O订………O装…………O…………O…………O…………O……………O }; class B_____(6)_______ { public: B(const char*n)_____(7)_______{} void PrintName( ) {cout<<”name:”<<name<<endl;}; }; void main( ) { B b1(“Ling Li”); b1.PrintName( ) ; } // 执行结果: name: Ling Li 五、程序设计题(共14分) 1.定义一个抽象类SHAPE,在此基础上派生出RECTANGLE类和CIRCILE类,二者都由getarea()函数计算对象的面积,getperim()函数计算对象的周长。(对象的数据通过构造函数初始化) 4 绍兴文理学院 2011 学年 01学期 信计 专业 09 级《面向对象程序设计)》期末试卷(A) 参考答案及评分标准 一、选择(共15 分,每小题 1分) BADAD CDABB DDCCA 二、填空(共 20 分,每空 2 分) 1.私有 2 动态, 静态 3.抽象类, virtual 4. 构造 5.exception,CObject 6.封装性,封闭性 三、程序阅读 (共30分) 1. exiting main deructor is active deructor is active deructor is active (5分) 2.XY (5分) 3. 输入为 0 程序结束 (6分) 4. constructor class B constructor class A constructor class C constructor class D constructor class E (6分) 5. I am father I am daughter I am son (8分) 四、程序填空(共21分,每空2分) (1)a=_new int(aa) (2)Myclass(int xx){x=xx;} (3) GetNum(){return x;} (4). const char *n (5)strcpy(name,n); (6)public A或:protected A (7)A(n) 五、程序设计题(共14分) #include <iostream.h> class shape { public: virtual float getarea()=0; virtual float getpreim()=0; }; (3分) class rectangle:public shape { private: float h,w; public: rectangle(float hh=1.folat ww=1) { h=hh; w=ww; } float getarea() { return h*w;} float getprim() {return 2*(h+w);} }; (6分) class circle:public shape { private: float radius; public: circle(float r=1) {radius=r;} float gerarea() {return radius*radius*3.14;} float gerprim() {return 2*3.14*radius;} }; (9分) void main() { shape *s[3]; s[1]=new rectangle(2,4); s[2]=new circle(5) (11分) for(int i=1;i<3;i++) { if(i==1) cout<<”矩形面积:“; else cout<<”圆面积:” cout<<s[i]->getarea()<<’\t’; if(i==1) cout<<”矩形周长:” else cout<<”圆周长:” cout<<s[i]->getprim()<<’\t’; cout<<endl; } (14分) 5
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服