书签 分享 收藏 举报 版权申诉 / 9
上传文档赚钱

类型C++面向对象程序设计试题带答案(七).doc

  • 上传人(卖家):吉庆会
  • 文档编号:5850848
  • 上传时间:2023-05-12
  • 格式:DOC
  • 页数:9
  • 大小:37.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《C++面向对象程序设计试题带答案(七).doc》由用户(吉庆会)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    C+ 面向 对象 程序设计 试题 答案
    资源描述:

    1、C+面向对象程序设计模拟试题七一、选择题(每小题2分,共40分)1、C+是( )。 A. 面向对象的程序设计语言 B. 面向过程的程序设计语言 C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言 D. 非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括( )。A. 封装性 B. 多态性 C. 继承性 D. 功能分解,逐步求精3、若定义:string str; 当语句cinstr; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=( )。A. Microsoft Visual Studio 6.0! B. Micros

    2、oftC. Microsoft Visual D. Microsoft Visual Studio 6.04、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z=*);下面函数调用中,不合法的是( )。A. testDefaulParam(5); B. testDefaulParam(5,8);C. testDefaulParam(5,#); D. testDefaulParam(0,0,*);5、下列语句中,将函数int sum(int x, int y)正确重载的是( )。A. float sum(int x, int y); B.

    3、int sum(int a, int b);C. float sum(float x, float y); D. double sum(int y, int x);6、下列表示引用的方法中,( )是正确的。已知:int a=1000;A. int &x=a; B. char &y; C. int &z=1000; D. float &t=&a;7、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用( )。A. 内联函数 B. 重载函数 C. 递归调用 D. 嵌套调用8、下列有关C+类的说法中,不正确的是( )。A. 类是一种用户自定义的数据类型B. 只有类中的成员函

    4、数或类的友元函数才能存取类中的私有成员C. 在类中,如果不做特别说明,所有成员的访问权限均为私有的D. 在类中,如果不做特别说明,所有成员的访问权限均为公用的9、已知X类,则当程序执行到语句:X array3;时,调用了( )次构造函数。A. 0 B. 1 C. 2 D. 310、下面说法中,正确的是( )A. 一个类只能定义一个构造函数,但可以定义多个析构函数B. 一个类只能定义一个析构函数,但可以定义多个构造函数C. 构造函数与析构函数同名,只要名字前加了一个求反符号()D. 构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以11、已知:print( )函

    5、数是一个类的常成员函数,它无返回值,下列表示中,( )是正确的。 A. void print( ) const; B. const void print( ); C. void const print( ); D. void print(const);12、下面描述中,表达错误的是( ) A. 公用继承时基类中的public成员在派生类中仍是public的B. 公用继承时基类中的private成员在派生类中仍是private的C. 公用继承时基类中的protected成员在派生类中仍是protected的D. 私有继承时基类中的public成员在派生类中是private的13、设置虚基类的目的

    6、是( )。A. 简化程序 B. 消除二义性 C. 提高运行效率 D. 减少目标代码14、下面( )的叙述不符合赋值兼容规则。A. 派生类的对象可以赋值给基类的对象B. 基类的对象可以赋值给派生类的对象C. 派生类的对象可以初始化基类的对象D. 派生类的对象的地址可以赋值给指向基类的指针15、关于虚函数的描述中,( )是正确的。 A. 虚函数是一个static类型的成员函数 B. 虚函数是一个非成员函数 C. 基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数 D. 派生类的虚函数与基类的虚函数具有不同的参数个数和类型16、下面关于友元的描述中,错误的是( )。A. 友元函数可以访问

    7、该类的私有数据成员B. 一个类的友元类中的成员函数都是这个类的友元函数C. 友元可以提高程序的运行效率D. 类与类之间的友元关系可以继承17、下列关于静态数据成员的说法,不正确的是( )。A. 类中定义的公用静态数据成员,可以通过类的对象来访问B. 类中定义的所有静态数据成员,都必须在类外初始化C. 静态数据成员不是所有对象所共用的D. 普通的成员函数可以直接访问类中的静态数据成员18、如果表达式+i*k中的“+”和“*”都是重载的友元运算符,若采用运算符函数调用格式,则表达式还可以表示为( )。A. operator*(i.operator+(),k) B. operator*(operat

    8、or+(i),k)C. i.operator+().operator*(k) D. k.operator*(operator+(i)19、下面对模板的声明,正确的是( )。A. template B. templateC. template D. template20、下列的各类函数中,( )不是类的成员函数A. 构造函数 B. 析构函数 C. 友元函数 D. 复制构造函数二、填空题(前14个空,每空1分,后3个空,每空2分,共20分)1、类和对象的关系可表述为:类是对象的 ,而对象则是类的 。2、静态成员函数没有隐含的 ,所以,在C+程序中,静态成员函数主要用来访问静态数据成员,而不访问非静

    9、态成员。3、在图1中,A,B,C,D,E,F均是类,其中属于单继承的派生类有 ,属于多继承的派生类有 ,类F的基类有 ,类A的派生类有 。ABCDEF图1 类的继承层次图4、如果只想保留公共基类的一个复制,就必须使用关键字 把这个公共基类声明为虚基类。5、从实现的角度来讲,多态性可以划分为两类: 和 。6、如果一个类包含一个或多个纯虚函数,则该类称为 。7、若要把void fun()定义为类A的友元函数,则应在类A的定义中加入语句 。8、列出C+中的两种代码复用方式: 和 。9、析构函数的作用是 。10、假定A是一个类名,则该类的拷贝构造函数的原型说明语句为: 。11、后置自增运算符“+”重载

    10、为类的成员函数(设类名为A)的形式为: 。三、阅读下面4个程序,写出程序运行时输出的结果。(共13分)1、#includeusing namespace std;void fun(int &a, int &b) int p; p=a; a=b; b=p;void exchange(int &a, int &b, int &c) if( ab ) fun(a, b); if( ac ) fun(a, c); if( bc ) fun(b, c);int main() int a=12,b=89,c=56; exchange(a, b, c); couta=a,b=b,c=cendl; retur

    11、n 0;2、#include using namespace std;class A public: A( ) cout A; ;class B public:B( ) cout B; ;class C: public A public: C( ) cout C; private: B b;int main ( ) C obj; return 0; 3、#include using namespace std;class Apublic:A()coutA:A() called.n;virtual A()coutA:A() called.n; class B: public Apublic:B(

    12、int i) coutB:B() called.n;buf=new chari;virtual B() delete buf; coutB:B() called.n;private:char *buf;int main() A *a=new B(15);delete a;return 0;4、#include using namespace std;class Apublic:void f()coutCall As function f()endl;class Bpublic:void f() coutCall Bs function f()endl;void g() coutCall Bs

    13、function g()endl; ;class C: public A, public Bpublic:void g()coutCall Cs function g()endl;int main()C cc;cc.B:f(); cc.B:g();cc.g();return 0;四、编程题(27分)1、(10分) 已知复数类Complex的声明如下:class Complexpublic: Complex(); /无参构造函数 Complex(double ); /转换构造函数Complex(double, double); /有两个形参的构造函数 friend Complex operato

    14、r+(Complex&, Complex&); /对“+”运算符进行重载 friend ostream& operator(ostream&, Complex&); /对“(istream&, Complex&); /对“”运算符进行重载private: double real,imag;要求:(1)写出该类的所有构造函数的类外定义代码。 (2)写出对运算符“+”、“”进行重载的运算符重载函数的定义。2、(17分)下列Shape类是一个表示形状的抽象类,area( )为求图形面积的函数,total( )则是一个通用的用以求不同形状的图形面积总和的函数。class Shapepublic:vir

    15、tual double area()=0;double total(Shape *s , int n) double sum=0.0; for(int i=0; iarea( );return sum; 要求:(1)从Shape类派生圆类(Circle)、正方形类(Square),圆类新增数据成员半径(radius),正方形类新增数据成员边长(a),圆类和正方形类都有构造函数,修改、显示数据成员值的函数,求面积函数。(2) 写出main()函数,计算半径为5.5的圆和边长为9.9的正方形的面积和(必须通过调用total函数计算)。C+面向对象程序设计模拟试题七参考答案一、单项选择题1-5C D

    16、 B C C 6-10A A D D B 11-15A B B B C 16-20D C B C C二、填空题(前14个空,每空1分,后3个空,每空2分,共20分)1 抽象 实例 2 this指针 3 E D、F A、B、C、D、E D、F 4 virtual 5 静态多态性 动态多态性 6. 抽象类 7. friend void fun(A &a) 8. 继承 组合或模板 9. 在对象被系统释放之前做一些内存清理工作 10. A(const A&) 11. A operator+(int) 三、阅读程序(13分)1、a=89,b=56,c=122、ABC3、A:A() called. B:B

    17、() called. B:B() called.A:A() called.4、Call Bs function f() Call Bs function g() Call Cs function g()四、编程题(共27分)1、(10分)Complex:Complex()real=0;imag=0;Complex:Complex(double r)real=r;Complex:Complex(double r,double i)real=r;imag=i;Complex operator+(Complex &c1,Complex &c2) Complex c; c.real=c1.real+c

    18、2.real; c.imag=c1.imag+c2.imag; return c;ostream& operator (ostream& output,Complex& c) output(c.real+c.imagi) (istream& input,Complex& c) coutc.realc.imag; return input;2、(17分)class Circle:public Shapepublic: Circle(double r)radius=r;void set()coutPlease input the value of the circle:radius; void show()coutthe radius of the circle=radiusa=a;void set()coutPlease input the value of a:a; void show()couta=aendl; double area()return a*a;private:double a;int main()Circle C(5.5);C.show();Square S(9.9);S.show();Shape *s=&C,&S;couttotal=total(s,2)endl;return 0;

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:C++面向对象程序设计试题带答案(七).doc
    链接地址:https://www.163wenku.com/p-5850848.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库