南邮面向对象程序设计及C++期末试卷A.doc_第1页
南邮面向对象程序设计及C++期末试卷A.doc_第2页
南邮面向对象程序设计及C++期末试卷A.doc_第3页
南邮面向对象程序设计及C++期末试卷A.doc_第4页
南邮面向对象程序设计及C++期末试卷A.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南京邮电大学 学年第 二 学期面向对象程序设计及C+(期末)试卷1院(系) 班级 学号 姓名 装 订 线 内 不 要 答 题自 觉 遵 守 考 试 规 则,诚 信 考 试,绝 不 作 弊(温馨提醒: 这是试题纸,教师不批改,请将所有最终答案写在答题纸上 请在试题纸和答题纸上均完整填写班级、学号、姓名信息 考试结束时请将答题纸、试题纸及草稿纸一并交来谢谢合作!祝同学们取得好成绩!)得 分一、填空题(共10分,每空1分)1、开发C+程序与开发其他高级语言的程序一样,包括编辑、编译、 和 四个步骤。2、C+语言中的标准输出流对象是 ,在程序中用于代表标准输出设备。3、对于已存在的定义“int *ptr=new int 10 ;”,应该用 语句释放动态内存空间。4、C+语言提供了处理异常的有效机制,通过 抛出异常,通过 检测异常、通过catch捕捉并处理异常。5、类的成员有3种访问属性,其默认的访问属性为 ;访问属性为_ 的成员既可被派生类继承又保持了封装和信息隐藏性。(请填关键字)6、C+支持两种多态性,其中函数重载和运算符重载用于实现 ,而虚函数用于实现 。得 分二、单选题(共20分,每题2分) 1、假设已有定义:const char *name=chen;下面语句中错误的是 。A、name3= a; B、name=lin;C、name=new char5; D、coutname3;2、设有语句void f(int a10,int &x); int y10,*py=y,n=10; 则对函数f的正确调用语句是 。 A、f(py10,n); B、f(py,n); C、f(*py,&n); D、f(py,10);3、下列不正确的重载函数是 。A、int print(int X); 和 void print(float X);B、int disp(int X); 和 char disp(int Y) const;C、void disp(char * str,int Y);和 int disp(char * s,int X);D、int view(int X , int y); 和 int view(int X); 4、有关this指针的描述中,错误的是 。 A、this指针可以在程序中显式使用 B、this指针是在使用对象时由系统自动生成 C、this指针是指向当前对象的指针 D、this指针是指向成员函数的指针5、关于成员函数特征的下列描述中, 是错误的。A、成员函数一定是内联函数 B、成员函数可以重载 C、成员函数可以设置缺省参数值 D、成员函数可以是静态的6、以下关于构造函数的叙述不正确的是 。A、构造函数名必须和类名一致 B、构造函数在定义对象时自动执行C、构造函数无任何函数类型 D、一个类的构造函数有且仅有一个7、下列哪一项不能访问基类的保护成员 。 A、基类的友元函数 B、派生类的对象 C、基类的成员函数 D、公有派生类的成员函数8、下面有关基类与公有派生类的赋值兼容原则,正确的是 。 A、公有派生类对象不能赋给基类对象 B、基类对象能赋给其公有派生类的引用C、基类对象不能赋给公有派生类对象 D、公有派生类对象地址不能赋给基类指针变量9、_是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。A、虚析构函数 B、虚构造函数 C、纯虚函数 D、静态成员函数10、假定要对类AB以友元函数形式重载加号运算符,实现两个AB类对象的加法,并返回相加结果,则该函数的声明语句为: 。A、 friend AB operator+(AB & a , AB & b); B、friend operator+(AB a);C、friend AB operator+(AB & a); D、friend AB & operator+( );得 分三、读程题(共30分,每空2分)1、以下程序运行后的输出结果第一行是 (1) ,第二行是 (2) 。#include using namespace std;int i=0; void main() int i=5; coutiendl; :i=i*20; cout:iendl; 2、以下程序运行后的输出结果第一行是 (3) ,第二行是 (4) ,第三行是 (5) 。#includeusing namespace std;class base int n;public: base(int i)n=i; int getn( ) return n; friend int add(base &s1,base s2);int add(base &s1,base s2) int result= s1.n+s2.n; int t=s1.n; s1.n=s2.n; s2.n=t; return result; void main( ) base A(29),B(11);coutadd(A,B) endl;coutA.getn()endl;coutB.getn()endl;3、以下程序运行后的输出结果第一行是 (6) ,第二行是 _(7)_ 。#include using namespace std;装 订 线 内 不 要 答 题自 觉 遵 守 考 试 规 则,诚 信 考 试,绝 不 作 弊templateT fun(T x,int n)int i;T value=x0;for (i=1;in;i+)if (valuexi)value=xi;return value;void main()int arrayA=5,8,2,9,1,7;double arrayB=3.8,5.8,2.7,9.4,1.6;coutfun(arrayA,6)endl;coutfun(arrayB,5)endl;4、以下程序运行后的输出结果第一行是 (8) ,第二行是 (9) 。 #include using namespace std; class base public: virtual void fun(void) coutbase:funendl; ;class divide:public base public: void fun(void) coutdivide:funendl; ;void main(void)装 订 线 内 不 要 答 题自 觉 遵 守 考 试 规 则,诚 信 考 试,绝 不 作 弊 divide d; base b1; base & b2=d; b2.fun(); b1.fun();5、以下程序运行后有多行输出结果,其中第一行是 (10) ,第二行是 (11) 第三行是 (12) ,第四行是 (13) 。#includeusing namespace std;class Aint n;public:A( )coutconstructing Aendl;A( )coutdestructing Aendl;class B:public Aint n; A a;public:B( )coutconstructing Bendl;B( )coutdestructing Bendl;void main( )B b; 6、以下程序运行后的输出结果第一行是 (14) ,第二行是 (15) 。#includeusing namespace std;const double PI=3.14159;class Shape /定义抽象基类 Shapepublic: virtual void display( ) =0; /声明纯虚函数;class Rectangle:public Shape /定义派生矩形类Rectanglepublic: Rectangle(double h,double w):hight(h),width(w) void display( ) /纯虚函数的实现代码 couthight*widthendl; private:double hight,width;class Circle:public Shape /定义派生圆类Circlepublic:Circle(double r):radius(r) void display( ) /纯虚函数的实现代码 coutPI*radius*radiusdisplay( ); /调用Rectangle类的display函数 ptr1-display( ); /调用Circle类的display函数 delete ptr0; delete ptr1;得 分四、程序填空题(共10分,每空2分)当前文件夹下存在文本文件f1.txt,现将该文件打开并将该文件内容原样复制到同一文件夹下新的文本文件f2.txt中,请完善程序:#include #include using namespace std;void main() ifile(f1.txt);if(!ifile)coutabc.txt cannot be openned!endl;return; ofile(f2.txt);if(!ofile)coutxyz.txt cannot be openned!b;coutbc;b=c+;coutbc;运行程序,输入:1 2后,结果显示如下:1+2i3.2+7.8i3.2+7.8i4.2+8.8i标准答案一、填空题(共10分,每空1分)空号答案链接运行coutdelete ptr;throwtryprivateprotected静态多态性动态多态性 二、单选题(共20分,每题2分)题号12345678910答案ABCDADBCCA三、读程题(共30分,每空2分)题号空格号答案1(1)51(2)1002(3)402(4)112(5)113(6)93(7)9.44(8)divide:fun4(9)base:fun5(10)constructing A5(11)constructing A5(12)constructing B5(13)destructing B6(14)306(15)3.14159四、程序填空题(共10分,每空2分)空格号答案fstreamifstreamofstreamifile.get(ch)ofile.put(ch);五、编程题1 (15分)#include #include using namespace std;class Studentchar *name;int age;public:Student(char *n,int a);Student( );void print( );class Postgrad:public Studentint credit;public:Postgrad(char *n,int a,int c):Student(n,a)credit=c;void print( )Student:print( );coutcredit:creditendl;Student:Student(char *n,int a)name=new charstrlen(n)+1;strcpy(name,n);age=a;Student:Student ( )delete name;void Student:print( )coutname:nameendl;coutage:ageendl;void main() Postgrad pg(ZhangSan, 24, 120); /姓名、年龄、学分 pg.print();六、编程题2 (15分)#include class Complexdouble real,imag;public:Complex(double r=0,double i=0)real=r;imag=i;Complex operator + (int); friend ostream & operator (istream & in, Complex & obj) ;Complex Complex:operator + (int) /以重载单目运算符后缀+Complex temp(*this); /复制当前对象到对象temp中real+;

温馨提示

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

评论

0/150

提交评论