c++面向对象程序设计精彩试题和问题详解_第1页
c++面向对象程序设计精彩试题和问题详解_第2页
c++面向对象程序设计精彩试题和问题详解_第3页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、实用文档一、填空题 (每空1 分,共14 分)1、观看以下程序:class pointpublic:void show() cout<<” point” <<endl;void main()point p1;point *p;p=&p1;_/通过对象p1访问show 函数_/通过指针p 访问show 函数2、 在 C+类中可以包含_、_和 _三种具有不同访问控制权的成员。3、 定义类时,在类头中将使用关键字_ 来表示类定义的开始。4、 如果一个类中至少有一个纯虚函数,则该类称为_ 。5、 C+类的组成包括数据成员和_ ,友元 _(是、不是)该类的成员函数。6、

2、友员函数是用关键字_修饰的非成员函数。7、 若有:int i;int &j=i;i=10;j=i+1;则 i=_ , j=_ 。8、 new 的功能是 _ , delete的功能是_ 。二、 选择题 ( 每小题 1.5 分,共 30 分 )1、下列特性中不是面向对象程序设计语言所特有的是()。( A)数据封装( B)继承( C)多态性( D)模板2、()是给变量取一个别名,它引入了变量的同意词。( A)指针( B)引用( C)枚举(D)结构3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。( A) share( B) public( C) private( D) pro

3、tected4、关于构造函数,下列说法不正确的是()。( A)构造函数名字和类名相同( B)构造函数在创建对象时自动执行( C)构造函数无任何函数返回类型( D)构造函数有且只有一个5、派生类可以访问其基类的()。( A)公有成员( B)保护成员( C)私有派生( D)公有和保护成员6、下列关于运算符重载的描述中,错误的是()。( A)运算符重载不可以改变操作数的个数( B)运算符重载不可以改变运算符的功能( C)运算符重载不可以改变结合方向( D)运算符重载不可以改变运算优先级7、 C+语言是从早期的C 语言逐渐发展演变而来的. 与 C语言相比,它在求解问题方法上进行的最大改进是()A)面向

4、过程( B)面向对象( C)安全性( D)复用性8、对于类中定义的成员,其隐含访问权限为()。A publicBprotectedC privateDstatic9、下面有关重载函数的说法中正确的是()A)重载函数必须具有不同的返回值类型;(B)重载函数形参个数必须不同;C)重载函数必须有不同的形参列表(D)重载函数名可以不同;10、有如下的对类“CSample”的说明,其中()是错误的。class CSample A int a=23;B CSample();public:C CSample(int val);D CSample();11、在 int a=3,int *p=&a;中,

5、 *p 的值是 ( )A. 变量 a 的地址值B.无意义C. 变量 p 的地址值D.312、每个类()构造函数。( A)只能有一个(B)只可有公有的第 2 页实用文档( C)可以有多个( D)只可有缺省的13、在一个类中可以对一个操作符进行()重载。( A) 1 种(B) 2 种以下( C) 3 种以下(D)多种14、在公有继承的情况下,基类非私有成员在派生类中的访问权限()( A) 受限制( B)保持不变( C)受保护( D)不受保护15、应在下列程序划线处填入的正确语句是()#include <iostream.h>class Basepublic:void fun()cout

6、<<"Base:fun"<<ENDL;class Derived:public Base void fun()_/显示调用基类的函数cout<<"Derived:fun"<<ENDL;fun();( A) fun();( B) Base.fun();( C) Base:fun();( D)Base->fun();16、执行下面的程序将输出()#include <iostream.h>class BASEchar c;public:BASE(char n):c(n)virtual BASE(

7、)cout<<c;class DERIVED:public BASEchar c;public:DERIVED(char n):BASE(n+1),c(n)DERIVED()cout<<c;int main()DERIVED a('X');return 0;A)XY(B)YX(C)X(D)Y17、下面描述中,表达错误的是()( A)公有继承时基类中的public成员在派生类中仍是public的( B)公有继承是基类中的private成员在派生类中仍是private的( C)公有继承时基类中的protected成员在派生类中仍是protected的( D)

8、私有继承时基类中的public成员在派生类中是private的18、定义析构函数时,应该注意()(A)其名与类名完全相同( B)返回类型是void类型(C)无形参,也不可重载( D)函数体中必须有delete语句19、对于在类中定义的静态数据成员,下面正确的说法是()A. 该类的每个对象中都有一个静态数据成员B. 对象创建时产生C. 在类外进行初始化D. 既可以在类外初始化,也可以在类内初始化20、 C+中声明常量的关键字是()。A. constB. externC.publicD. enum三、 改错题 (每处 2 分,共 6 分)1、 使用 VC6打开考生文件夹下的工程proj1,此工程包

9、含一个源程序文件main.cpp, 但该程序运行有问题,请改正main 函数中的错误,使程序的输出结果为:member=0member=5menber=10main.cpp 清单如下:#include <iostream.h>classMyClasspublic:MyClass(inti)member=i;voidSetMember(intm)member=m;intGetMember()constreturnmenber;voidprint()contcout<<"member="<<MEMBER<<ENDL;private

10、:第 4 页实用文档intmember;voedmain()MyClassobj1; /更正 _obj1.print();MyClassobj2(3);obj1.member=5;/更正 _MyClass.SetMember(10);/更正 _obj1.print();obj2.print();四、 写出下列程序的执行结果 (每小题5 分,共 20 分)1、#include<iostream.h>class Sample int n; public: Sample(int i)n=i;friend int add(Sample &s1,Sample &s2);int

11、 add(Sample &s1,Sample &s2)return s1.n+s2.n;void main()Sample s1(10),s2(20);cout<<add(s1,s2)<<endl;执行结果是:2、#include<iostream.h>int add(int x,int y)return x+y+1;double add(double x,double y)return x+y-1;void main()int a=2,b=4;double c=2.6,d=7.4;cout<<add(a,b)<<&q

12、uot;,"<<add(c,d)<<endl;执行结果是:3、#include<iostream.h>class Apublic:int n;class B:virtual public A;class C:virtual public A;class D:public B,public Cint getn()return B:n;void main()D d;第 6 页实用文档d.B:n=10;d.C:n=20;cout<<d.B:n<<","<<d.C:n<<endl;执行结果

13、是:4 、#include <iostream.h>class myclassint a,b;static int s;public:myclass(int x,int y)a=x;b=y;s+;void print()cout<<s<<endl;int myclass:s=0;void main()myclass m1(1,2),m2(4,5),m3(6,7);m1.print();m2.print();m3.print();执行结果是:五、 编程题 ( 每题 10 分、共 30 分)1、 测试一个名为rectangle的矩形类, 其属性为矩形的左下角与右

14、上角两个点的坐标,能计算矩形的面积。(10 分)2、 定义一boat与 car两个类,二者都有weight属性,定义二者的一个友元函数totalweight(),计算二者的重量和。(10分 )3、 设计一个汽车类vehicle,包含的数据成员有车轮个数wheels 和车重 weight 。小车类 car 是它的派生类,其中包含载人数passenger_load 。每个类都有相关数据的输出方法。在主程序中定义一个 car 类对象,对其车轮个数、车重、载人数进行设置并显示。 (10 分 )一、填空题 ( 每空 1 分,共 14 分)( 1) p1.show(); p->show()( 2)公

15、有、私有、保护(3) class( 4)抽象类( 5)成员函数、不是( 6)friend( 7)11、11( 8)动态申请内存空间、释放由 new申请的空间二、选择题 ( 每小题 1.5 分,共 30 分 )1、D2、B3、C4、D5、D6、B7、B8、C9、C10、A11、D12 、C13 、D14、B15 、C16 、A17 、B18、C19 、C20 、A三、改错题 (每错 2 分,共 6 分)MyClass obj1(0);obj1.SetMember(5);obj2.SetMember(10);四、 写出下列程序的执行结果(每小题5 分,共 20 分)(1)30(5 分)(2)79

16、(每个 2.5 分)(3)2020 (每个 2.5 分)( 4)3(2分)3(2分)3(1分)五、编程题 (每题 10 分、共 30 分)1、#include <iostream.h>#include <math.h>class rectangle /(2分 )第 8 页实用文档private:int x1,y1,x2,y2; / (2分 )public:rectangle(int xx1,int yy1,int xx2,int yy2) /(1分 )x1=xx1;y1=yy1;x2=xx2;y2=yy2;int getarea()/(2分 )return abs(x2

17、-x1)*(y1-y2);void main()rectangle rect1(3,7,8,5); (2分 )cout<<rect1.getarea()<<endl; (1分 )2、(10 分 )#include <iostream.h>class car;( 1 分)class boatprivate:int weight; /(1分)public:boat(int w):weight(w) /(1分 )friend int totalweight(boat b1,car c1); /(2分 );class car /(1分 )private:int we

18、ight; (1分 )public:car(int w):weight(w);friend int totalweight(boat b1,car c1); (1分 );int totalweight(boat b1,car c1) /(1分)return b1.weight+c1.weight;void main()car c1(1000);boat b1(2000);cout<<totalweight(b1,c1)<<endl;(1分 )3、(10 分)#include<iostream.h>class vehicle /定义汽车类(3分 )protec

19、ted:int wheels; /车轮数float weight; /重量public:vehicle(int wheels,float weight);int get_wheels();float get_weight();float wheel_load();void show();class car:public vehicle /定义小车类(3分 )int passenger_load; /载人数public:car(int wheels,float weight,int passengers=4);int get_passengers();void show();vehicle:vehicle(int wheels1,float weight1) /(1分 )wheels=wheels1;weight=weight1;int vehicle:get_wheels()return wheels;float vehicle:get_weight()第 10 页实用

温馨提示

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

评论

0/150

提交评论