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

下载本文档

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

文档简介

上海应用技术学院20112012学年第一学期 面向对象程序设计 期(终)(A)试卷课程代码: B2042211 学分: 3 考试时间: 100 分钟课程序号: 1126045 1126046 1126047 1126048 班级: 学号: 姓名: 我已阅读了有关的考试规定和纪律要求,愿意在考试中遵守考场规则,如有违反将愿接受相应的处理。题 号一二三四五六七八九十总 分应得分303040100实得分 试卷共 页,请先查看试卷有无缺页,然后答题。一、选择题(每题2分,共30分)1下列各项中不符合函数重载必须满足的条件的是( D )A 必须有不同的参数个数B 对应的参数类型必须不相同C. A和B必须同时满足D A和B只要满足一个即可2下列带缺省值参数的函数说明中,正确的说明是( A )Aint Fun(int x,int y=2,int z=3);Bint Fun(int x=1,int y,int z=3);C. int Fun(int x,int y=2,int z);Dint Fun(int x=1,int y,int z=3);3. (A )是给变量取一个别名,它引入了变量的同意词。(A)指针 (B)引用 (C)枚举 (D)结构4. 下面对于友元函数描述正确的是 ( C )A) 友元函数的实现必须在类的内部定义 B) 友元函数是类的成员函数C) 友元函数破坏了类的封装性和隐藏性 D) 友元函数不能访问类的私有成员5. 类成员的访问权限中,(C )只能被本类的成员函数和其友元函数访问。(A)share (B)public (C)private (D)protected 6.下列关于运算符重载的描述中,错误的是( B )(A)运算符重载不可以改变操作数的个数(B)运算符重载不可以改变运算符的功能(C)运算符重载不可以改变结合方向(D)运算符重载不可以改变运算优先级7. 在下面有关析构函数特征的描述中,正确的是:( B )A) 一个类中可以定义多个析构函数B) 析构函数名与类名完全相同C) 析构函数不能指定返回类型D) 析构函数可以有一个或多个参数8. 使用派生类的主要原因是:( A )A) 提高代码的可重用性B) 提高程序的运行效率C) 加强类的封装性D) 实现数据的隐藏9. 下列对虚基类声明正确的是:( B )A.classvirtualB:publicA B.classB:virtualpublicAC.classB:publicAvirtual D.virtualclassB:publicA10.已知类A中的一个成员函数的说明如下:void Set(A &a);则该函数的参数“A &a”的含义是参考答案为( C )A指向A的指针为aB将变量a的地址赋给类AC类A对象引用a用作函数的形参D变量A与a按位与后作函数参数11.若一个类中含有纯虚函数,则该类称为( D )A) 基类B) 纯基类C) 派生类D) 抽象类12.下列关于类的继承描述中,(A )是错误的A)派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数B)派生类也是基类,但基类不一定具有派生类的全部属性和方法C)继承描述类的层次关系,派生类可以具有与基类相同的属性和方法D)一个基类可以有多个派生类,一个派生类可以有多个基类13.在C+中,要实现动态联编,必须使用(D )调用虚函数A) 类名 B) 派生类指针C) 对象名D) 基类指针14.当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的( B )A) public成员B) private成员C) protected成员D) 友元15.在C+中,类与类之间的继承关系具有( C )A) 自反性B) 对称性C) 传递性D) 反对称性二、写出程序运行结果(每题 6分,共 30 分)1、写出下列程序的运行结果。#include using namespace std;int a8=1,2,3,4,5,6,7;void fun(int b ,int n);/void main( ) int m=8; fun(a,m); / couta7endl; void fun(int b ,int n)for (int i=0;in-1;i+) b7+=bi;0 1 1 3 2 6 3 10 4 15 5 21 6 28282、写出下列程序的运行结果。#includeusing namespace std;class complex int real; int imag;public:complex(int r=0,int i=0):real(r),imag(i) void show()coutreal(imag0 ? :+)imagiendl;complex& operator +=(complex &c) real+=c.real; imag+=c.imag; return c;complex& operator -=(complex &c) real-=c.real; imag-=c.imag; return c;friend complex& operator -(complex &);friend complex& operator +(complex &);complex& operator -(complex &c) -c.real; -c.imag; return c;complex& operator +(complex &c) +c.real; +c.imag; return c;void main() int i=10,j=3,m=2,n=-6; complex test1(i,j); test1.show(); -test1; 9 , 2 complex test2(m,n); test2.show(); +test2; 3, -5 test1+=test2; 12,-3 test1.show(); test2-=test1; -6,-7 -9,-2 test2.show();10+3i2-6i12-3i-6-7i3、写出下列程序的运行结果。#include using namespace std;int f(int);void main( )int a=3,i;for (i=0;i3;i+) /cout f(a) ;cout endl; int f(int a) int b=0;int c=3; b+; c+;return(a+b+c); /8 8 8 4写出下列程序的运行结果。#include using namespace std;class Sample int y; public: Sample() ; / Sample(int b) y=b; / Sample(Sample &b)y=b.y+5; void display()cout”y=”yendl; ;void main() Sample s1(2), s2(s1); s2.display();y=75、#include using namespace std;class Pointprivate:int x, y;public:Point( ) Point(int i, int j) x=i; y=j; void disp( ) cout ( x , y ) endl; Point operator+(Point &p) / return Point(x+p.x, y+p.y); ;void main( )Point p1(7, 9), p2(2, 7), p3;p3=p1+p2; /p3.disp();(9,15) (9,16)四、编程题(共40分,每小题10分)1. 编写程序求10!9!.+3!2!1!的和,其中计算阶乘要用函数实现。#includelong int fac(int x); void main( ) int s=0; for(int i(1);i=10;i+) s=s+fac(i); cout10!+9!+4!+3!+2!+1!= sendl;long int fac(int x)int b=1;for(int i=1; i=x;i+) b*=i; return b; 2. 编写三个重载函数,分别求两个整数、实数和双精度数中较小的数。3. 定义一个Book类,拥有静态数据成员booksum,记录Book的个体数目;静态成员函数Getbooksum( ),存取booksum。设计程序要求首先打印出booksum初始值,然后依次定义对象a,b,c,每次调用Getbooksum( )输出Book的个数。4. 某公司有老板Boss、雇员Employee和营销人员CommWorker,他们的薪金计算方法如下:老板实行年薪制,一年20万;雇员按月计酬,计算方法:基本工资+奖金;营销人员按月计酬,方法是:基本工资+销售利润5%。设计程序:1)为每类人员建立类,每类人员都有姓名、职工编号、年龄、性别、工资数据;2)用虚函数getpay()计算各类人员的应得报酬;3)重载函数print()输出具体的数据(包括人员的基本信息和所得报酬)注:本题不需要编写主函数。#include#includeusing namespace std;class personprivate:char *name;int number,age;char sex;static int len; public:person(char *a,int b, int c,char d):number(b),age(c),sex(d)len=strlen(a);name=a;void getname()for(int i=0;ilen;i+) cout namei;int getnumber()return number;int getage()return age;int getsex()return sex;virtual double getpay()=0;virtual void print()coutname:; getname(); coutnnumeber:getnumber()nage:getage()nmoeny:getpay()endl;int person:len=0; class Boss:public personprivate:double year;public:Boss(char*a,int b, int c,char d,double f):person(a,b,c,d),year(f);virtual double getpay()return year*15000;virtual void print()cout*name:; getname(); coutnnumeber:getnumber()nage:getage()nyear:yearnmoeny:getpay()endl;class Employee:public personprivate:int month,award,money;public:Employee(char *a,int b,int c,char d,int e,int f,int g):person(a,b,c,d),month(e),award(f),money(g)int getmonth()return month;void setmonth(int a)month=a;int getaward()return award;void setaward(int a)award=a;virtual double getpay()return money+award;virtual void print()cout*name:; getname(); coutnnumeber:getnumber()nage:getage()nmonth:monthnaward:awardnmoeny:getpay()endl;class HourlyWorker:public personprivate:int hour,M;public:HourlyWorker(char *a,int b,int c,char d,int e,int f):person(a,b,c,d),hour(e),M(f)int getM()return M;void setM(int a)M=a;int gethour()return hour;void sethour(int a)hour=a;virtual double getpay()return hour*M;virtual void print()cout*name:; getname(); coutnnumeber:getnumber()nage:getage()nhonur:hourn:Mnmoeny:getpay()endl;class CommWorker:public personprivate:int lirun;public:CommWorker(char *a,int b,int c,char d,int e):person(a,b,c,d),lirun(e)int getlirun()return lirun;void setlirun(int a)lirun=a;virtual double getpay()return 1000+0.05*lirun;virtual void print

温馨提示

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

评论

0/150

提交评论