欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    面向对象程序设计C期末考试试题.docx

    • 资源ID:38811497       资源大小:28.91KB        全文页数:10页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    面向对象程序设计C期末考试试题.docx

    山东师范高校2022-2022学年第一学期期末考试试题 一、单项选择题 下面每题的选项中,只有一个是正确的,请选择正确的答案填入答题纸中对应的题号后(本 题共25小题,每题1分,共25分)。1、当一个函数无返回值时,函数的类型应定义为( )oA void B 任意 C int D 无)o指出作用域的范围标识某个成员是属于哪个类B形参和实参都是变量D形参是引用,实参是变量)o指出作用域的范围标识某个成员是属于哪个类B形参和实参都是变量D形参是引用,实参是变量2、作用域运算符的功能是(A标识作用域的级别 B C给定作用域的大小 D 3、以下的()是引用调用。B构造函数可以重载。D构造函数必需指定类型说明。)不能作为类的成员。A形参是指针,实参是地址值 C形参是数组名,实参是数组名 4、()不是构造函数的特征 A构造函数的名和类名相同 C构造函数可以设置默认值 5、以下(A自身类对象的指针B自身类对象的引用C自身类对象D另一个类的对象6、重载函数在调用时选择的依据,()是错误的。A.参数个数B参数的类型C A或者BD函数的类型7、以下静态成员的特性中,()是错误的。A 说明静态成员时,要加修饰符staticB静态数据成员要在类体外进行初始化C引用静态数据成员时,要在静态数据成员名前加类名及作用域运算符D静态数据成员不是全部对象所共用的8、fl(int)是类A的公有成员函数,p是指向成员函数fl()的指针,采纳()是正确的。A p=fl B p=A:fl C p=A:fl() D p=f 1 ()9、运算符->*的功能是( )oA用来表示指向对象指针对指向类成员指针的操作B用来表示对象对指向类成员指针的操作C用来表示指向对象指针对类成员的操作D用来表示对象类成员的操作10、以下定义中,()是定义指向数组的指针p.A int p5 B int (*p)5 C (int*)p5 D int *p11、设p为一个指向类A数据成员m的指针,Al为A的一个对象。假如给m赋值5,() 为正确的。A ALp=5 B Al,p=5 C AL*p=5 D *ALp=512、print。函数是一个类的常成员函数,它无返回值。以下表示中,()是正确的。A void print () const B const void print ()C void const print () D void print (const)13、说明 const char * ptr;中,ptr 应当是()。A指向字符常量的指针B指向字符的常量指针Product p 1(“ 电视机”,200015);pl.buy(7000);pl.get();pl.buy(4500);pl.get();)2 .以面对对象的方法设计一个类,此类包含3个私有数据:unlead, lead (无铅汽油和有铅 汽油)以及total (当天总收入,无铅汽油的价格是17元/公升,有铅汽油的价格是16元/公 升),请以构造函数方式建立此值。试输入某天所加的汽油量,本程序将列出加油站当天的 总收入。(10分)#include <iostream.h>class Tc(private:double unlead,lead,total;int unprice,price;public:Tc() unpriced 17 ;price= 16;void getdata()(coutvv”无铅汽油总量;”;cin»unlead;COUtVV”有铅汽油总量;”;cin»lead;total二unprice*unlead+price*lead;)void disp()(coutvv”总收入:n«total«endl;);void main()Tc A;A.getdata();A.dispO;3 .编写一个程序计算两个给定长方形的面积,其中在设计类成员函数addarea。(用于计算 两个长方形的总面积)时使用对象作为参数。(12分)#include <iostream.h>#include <iomanip.h>class rectangle(private:float ledge,sedge;public:rectangle();rectangle(float a,float b)(ledge=a;sedge=b;);float area()(return ledgesedge;);void addarea(rectangle rl,rectangle r2)(cout<<”,总面积:n«rl.ledger 1 .sedge+ r2ledge*r2.sedge«endl;);void main()(rectangle A(3.5,2.5),B(4.2,3.8),C;C.addarea(A,B);.编一个程序计算正方体,球体和圆柱体的外表积和体积。要求:抽象出一个公共基类 container为抽象类,在其中定义求外表积和体积的纯虚函数。抽象类中定义一个公共的数据 成员radius,此数值可以作为球体的半径、正方体的边长、圆柱体底面圆半径。由该抽象类派 生出的三个类,都有求外表积和体积的实际定义。键盘输入radius的值后,可以输出这3 种立方体的面积。(13分)#include <iostream.h>class Circle(public:Circle(double i) r=i;double Area(double r) a=r*r*3.14159; return a;void Show() cout«Harea=H«Area(r)«endl;private:double r,a;);class Rectangle public:Rectangle(double i,double j) l=i;w=j;double Area(double i,double j) a=i*j; return a;void Show() cout«Harea=,'«Area(l,w)«endl; private:double l,w,a;;class Graph:public Circle, public Rectanglepublic:Graph(double i, double j, double k):Circle(i),Rectangle(j,k) r=i;l=j;w=k;double Area(double r,double 1,double h) a=Circle:Area(r)+Rectangle:Area(l,h); return a; void Show() cout«"area=n«Area(r,l,w)«endl;private:double r,l,w,a;);void main() (Circle c(10);c.ShowQ;Rectangle rec(20,50);rec.ShowQ;Graph g(10.0,20.0,50.0);g.Show();C指向字符串常量的指针 D指向字符串的常量指针14、派生类的对象对它的基类成员中()是可以访问的。A公有继承的公有成员B公有继承的私有成员C公有继承的保护成员D私有继承的公有成员15、以下对派生类的描述中,()是错的。A 一个派生类可以作为另一个派生类的基类B派生类至少有一个基类C 派生类的成员除了它自己的成员以外,还包含了它的基类成员D派生类中继承的基类成员的访问权限到派生类保持不变16、对于int*pa5;的描述,()是正确的。A pa是一个指向数组的指针,所指向的数组是5个int型元素。B pa是一个指向某数组中第5个元素的指针,该元素是血型变量。C pa5表示某个数组的第5个元素的值。D pa是一个具有5个元素的指针数组,每个元素是一个血型指针。17、设置虚基类的目的是()oA简化程序 B消退二义性C提高运行效率D削减目标代码18、带有虚基类的多层派生类构造函数的成员初始化列表中都耍列出虚基类的构造函数, 这样将对虚函数的子对象初始化()oA与虚基类下的派生类个数有关 B屡次C二次 D 一次19、以下函数中,()不能重载。A成员函数 B非成员函数C析构函数 D构造函数20、关于动态联编的描述中,()是错误的。A动态联编是以虚函数为基础的B动态联编是在运行时,确定所调用的函数代码的。C动态联编调用函数操作是指向对象的指针或对象引用。D动态联编是在编译时确定操作函数的。21、关于虚函数的描述中,()是正确的。A虚函数是一个非satatic类的成员函数。B虚函数是一个非成员函数。C基类中说明白虚函数后,派生类中与其对应的函数可以不必说明为虚函数。D 派生类的虚函数与基类的虚函数具有不同的参数个数和类型。22、关于纯虚函数和抽象类的描述中,()是错误的。A 纯虚函数是一种特别的虚函数,它没有详细的实现。B抽象类是指含有纯虚函数的类。C 一个基类中说明白纯虚函数,那么其派生类不再是抽象类。D抽象类一般只能作为基类来使用。23、以下关于抽象类的使用中,()是错误的。A可以定义抽象类的对象 B可以定义抽象类的指针C可以定义抽象类的引用 D可以定义抽象类的派生类24、派生类的构造函数的成员初始化列表中,不能包含()0A基类的构造函数B派生类中子对象的初始化C基类的子对象的初始化D派生类中一般数据成员的初始化25、关于new运算符的以下描述中,()是错的。A 它可以用来动态创立对象和对象数组;B使用它创立的对象或对象数组可以使用delete运算符删除;C使用它创立对象时要调用构造函数;D使用它创立对象数组时,必需指定初始值。二、填空题将正确的答案填入答题纸相应的题号后。(此题共3小题,5个空,每空2分,共10分)1 .面对对象的程序设计有三大特征,它们是封装、(1)、(2) o2、类是用户定义的类型,具有类类型的变量称作(3) o3、在面对对象的程序设计中,通过(4)实现数据隐蔽;通过(5)实现代码的复用。三、分析程序的执行结果题分析程序的执行结果,将结果按程序运行时输出形式填在答题纸对应的题号后(此题共5小 题,每题4分,共20分)。2 > #include <iostream.h>class M public:M() x=y=0; M(int i, int j) x=i; y寸void copy(M *m);void setxy(int i, int j) x=i; y=j; void print() cout«x«n,«y«endl; private:int x, y;void M:copy(M *m) x=m->x; y=m->y;void fun(M ml, M *m2) ml.setxy(12, 15);m2->setxy(22,25);)void main() M p(5, 7), q;q.copy(&p);fun(p, &q);p.print();q.print();)2、#include <iostream.h>class Mpublic:M()a=b=0;M(int i,int j)a=i;b=j;void print() cout«a«H,n«b«ntn;private:int a,b;);void main() M m24; int x=10,y=10;for(int i=0;iv2;i+) for(int j=0;j<4;j+) mi皿=M(x+=2,y+=10);)M (*pm)4(m);for(i=0;i<2;i+) cout«endl;for(int j=0;j<4;j+)(*(*(pm+i)+j).print();用指针的方式存取数组的第ij个元素 cout«endl;)3、#include <iostream.h>#include <string.h>class B public:B(char *s, double n) strcpy(name,s);b=n;cout«HConstructor. nn;)B()cout«nDefaultnn;-B () cout« "Destructor n«name«endl;void getb(char *s, double& n) strcpy(s,name); n=b; private:char name80;double b;);void main() B* p;double n;char s80;p=new B3;p0=B(nMan,4.8);pl=BC'Wang”,3.6);p2=BCLi'3.1);for(int i=0;i<3;i+) pi.getb(s,n);cout«s«'n<<n«endl;delete p;)4、#include <iostream.h> class A (public:A(int i,int j) a=i;b=j;void Move(int x,int y) a+=x;b+=y;void Show() cout«H(n«a«,V,«b«',)H«endl; private:int a,b;);class B:public A ( public:B(int i,int j,int k,int l):A(i,j),x(k),y(l) ()void Show() cout«x«n,n«y«endl;void fun() Move(3,5);void fl() A:Show(); private:int x,y;); void main() Ae(l,2);e.ShowQ;B d(3,4,5,6);d.A:Show();d.B:Show();d.fl();)5、#include <iostream.h> class A public:A(int i) a=i;cout«ncon. An”;void print() cout«a«endl;A()cout«”des. A'n”; private:int a;);class B1 : virtual public A public:Bl(int i, int j) : A(i)b 1 =j;cout«ncon. BlnH;void print() A:print(); cout«bl«endl;-Bl()cout«Hdes. Blnn; private:int bl;class B2 : virtual public A public:B2(int i, int j): A(i)b2=j;cout«Hcon. B2n”; void print() A:print(); cout«b2«endl;B2()cout«”des. B2nH;private:int b2;class C : public Bl, public B2 public:C(int i, intj, int k, int 1): Bl(i,j), B2(i,k), A(i) c=l; cout«*'con. Cn«endl; void print() Bl:print(); B2:print();cout«c«endl; C()coutv<"des. Cn«endl;private:int c;);void main()Ccl(5,7,3,6);cl.print();)四、程序设计题将编写的程序标上小题题号,写在答题纸上。此题共4小题,45分。1 .编写一个程序,设计一个产品类Product,其定义如下:Class Product (产品单价/剩余产品数量产品单价/剩余产品数量char *name; 产品名称int price;int quantity;public:Product(char *n,int p,int q);Product。; void buy(int money);void get() const;构造函数析构函数购买产品显示剩余产品数量;并用数据进行测试。(10分).以面对对象的方法设计一个类,此类包含3个私有数据:unlead, lead (无铅汽油和有铅汽油)以及total (当天总收入,无铅汽油的价格是17元/公升,有铅汽油的价格是16元/ 公升),请以构造函数方式建立此值。试输入某天所加的汽油量,本程序将列出加油站当天 的总收入。(10分)2 .编写一个程序计算两个给定长方形的面积,其中在设计类成员函数addarea()(用于计算 两个长方形的总面积)时使用对象作为参数。(12分).编一个程序计算正方体,球体和圆柱体的外表积和体积。要求:抽象出一个公共基类 container为抽象类,在其中定义求外表积和体积的纯虚函数。抽象类中定义一个公共的数据 成员radius,此数值可以作为球体的半径、正方体的边长、圆柱体底面圆半径。由该抽象类派 生出的三个类,都有求外表积和体积的实际定义。键盘输入radius的值后,可以输出这3 种立方体的面积。(13分)<PIXTEL_MMI_EBOOK_2005>8</PIXTEL_MMI_EBOOK_2005>山东师范高校信息科学与工程2022-2022学年第一学期选择题(25小题,共25分)12345ADDDC678910DDBAB1112131415C A CAD1617181920DBDCD2122232425CCACD二、 填空题(每空2分,共10分)1 继承多态2 对象封装3 继承 三、分析程序的执行结果,填空(5小题,每题4分,共20分)5,722,2512,20 14,30 16,40 18,5020,60 22,70 24,80 26,90DefaultDefaultDefaultConstructor.Destructor MaConstructor.Destructor WangConstructor.Destructor LiMa, 4.8Wang, 3.6Li, 3.1Destructor LiDestructor WangDestructor Ma5. con. Acon. Blcon. B2con. C536des. C des. B2 des. B1 des. A四.程序设计题(4小题,共45分)1.编写一个程序,设计一个产品类Product,其定义如下:class Product char *name; 产品名称int price;产品单价int quantity;/剩余产品数量public:构造函数析构函数购买产品显示剩余产品数量Product(char *n,int p,int q);Product。;void buy(int money);void get() const;;并用数据进行测试。(10分)#include <iostream.h>#include <string.h> class Product (char *name;int price;int quantity;public:Product(char *n,int p,int q) ( name =new charstrlen(n)+l;strcpy(name,n);price二p;quantity二q;)Product。( if(name) (delete name;name=0;)void buy(int money)(int n,r;n=money/price;if(n>quantity)cout<< "数量不够 " < vendl; else(quantity-=n;r=money%price;coutvv”产品:"vvname«"单价:"<<price«"元 顾客”; cout«money«H7G,买了台,乘馀"元"vvendl;)void get() const(coutvv”产品:"v<name<<“单价:"<<price<<"元 乘U余"<<quantity<<"台"<<endl; );void main()

    注意事项

    本文(面向对象程序设计C期末考试试题.docx)为本站会员(太**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开