10~11(2)大基(面向对象部分)复习题_第1页
10~11(2)大基(面向对象部分)复习题_第2页
10~11(2)大基(面向对象部分)复习题_第3页
10~11(2)大基(面向对象部分)复习题_第4页
10~11(2)大基(面向对象部分)复习题_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

大学计算机应用基础(面向对象部分)复习题一、选择题4关于成员函数,以下叙述中不正确的是_a_ A. 成员函数一定是内联函数B. 成员函数可以重载 C. 成员函数的参数可以设置默认值D. 成员函数可以是另一个类的友元函数 5下列关于析构函数说法正确的是_d_。A. 析构函数可以有参数。B. 析构函数可以重载。C. 析构函数一定被继承。D. 析构函数无返回值。6下列对友元的描述中,正确的是_d_。A. 友元可以在类外声明和定义B. 友元降低了程序的运行效率C. 友元不能访问类中的保护成员D. 友元破坏了类的封装性7下面对静态成员的描述中,错误的是_c_。A. 静态成员的提出是为了解决数据共享问题B. 静态数据成员的初始化在类体外进行C. 类的不同对象有不同的静态数据成员值D. 静态成员函数可以直接访问类中的静态数据成员8下列对常量的定义中,错误的是_c_。A. int const size=10;B. char * const p=Good Luck;C. void const print();D. const MyClass obj(10,10);9若有如下函数声明:void Fun(int x);,则下列_d_能与该函数进行重载。A. void Fun(int y);B. void Fun(int x,int y=1);C. int Fun(int x);D. void Fun(int) const;10为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择_a_。A. 内联函数B. 重载函数C. 递归函数D. 函数模板?11派生类的对象对它的基类成员中什么是可访问的(a)。A. 公有继承的公有成员B. 公有继承的私有成员C. 公有继承的保护成员D. 私有继承的公有成员12、_d_不是构造函数的特征。 A. 构造函数的函数名与本类类名相同 B. 构造函数可以重载 C. 构造函数可以设置缺省形参值 D. 构造函数必须指明返回类型13、下列函数中,_a_不是类的成员函数。 A. 友元函数 B. 拷贝构造函数 C. 析构函数 D. 构造函数14、若有如下函数声明:void Fun(int x);,则下列_d_能与该函数进行重载。A. void Fun(int y);B. void Fun(int x,int y=1);C. int Fun(int x);D. void Fun(int) const;?15、若派生类的继承方式为私有,则派生类自有的成员函数不能对基类的_b_直接访问。A. 公有成员B、私有成员C、保护成员D、全部成员;16、下列对常量的定义中,错误的是_c_。A. int const size=10;B. char * const p=Good Luck;C. void const print();D. const MyClass obj(10,10);17、设置虚基类的目的是_c_。A. 简化程序B. 消除二义性C. 实现多态D. 减少目标代码18、已知类A,并static int a 为其公有成员,下面初始化方法正确的是_d_。A. int a=0;B. a=0;C. A():a(0);D. int A:a=0; ?19、下列运算符中,不能重载的运算符是_a_。A. : B. C. & . 20、在建立派生类对象时,构造函数的执行方式为: cA. 先执行派生类构造函数后执行基类构造函数B. 只执行派生类构造函数C. 先执行基类构造函数后执行派生类构造函数D. 仅执行基类构造函数21、为了提高程序的运行速度,可将不太复杂的功能用_a_函数实现。A. 内联函数B. 重载函数C. 递归函数D. 函数模板22、派生类中,重新定义基类的虚函数时,虚函数的_d_必须保持一致。A. 参数个数B. 参数类型C. 返回值D. 参数个数、参数类型和返回值23. 当派生类中有和基类一样名字的成员时,一般来说 _b_。 A.将产生二义性B.派生类的同名成员将覆盖基类的成员C.是不能允许的D.基类的同名成员将覆盖派生类的成员24. 如果是类B在类A的基础上构造,那么称_b_。 A.类A为基类或派生类,类B为子类或父类 B.类A为基类、父类,类B为派生类或子类C.类A为派生类,类B为基类 D.类A为派生类或子类,类B为基类、父类?25. 多继承派生类构造函数构造对象时,_b_最先被调用。A. 虚函数的构造函数 B. 派生类自己的构造函数C. 非虚基类的构造函数 D. 派生类中子对象类的构造函数二、 程序填空1、把一串字符中的小写字母转换为对应的大写字母。#include char fun(char c) if(c=a&c=z) _c=c+A-a_; return c;main() char c; c=getchar();while(c!=n)c=_fun(c)_;putchar(c);c=_getchar()_;2、友元应用#include iostream.hclass studentpublic:int No;char *Name;_student(int n,char* str)_;student();_friend_ void f_age(int ag, student &p);private:int age;student:student(int n,char *str)No=n;Name=str;age=18;student:student ()cout学号Noendl;cout姓名Nameendl;cout年龄ageendl;void f_age(int ag, student &p)p.age =ag;cout友元年龄p.age endl;void main()student wang(5074401,wang);f_age(30,wang);3、输出一个点#include iostream.hclass pointpublic:point(int x,int y); point() coutX,Yendl; private: int X; int Y;point:point(int x,int y) _X=x_; _Y=y_;void main() point p1(10,10); 4、求出圆的面积:#include class Point public: Point(double m,double n ); virtual void Area();private: double x,y;Point:Point(double m,double n ) _x=m;y=n;_void Point: Area() coutThe area is 0endl;class Circle :public Pointpublic: _Circle(double m,double n,double i)_; void Area();private: double r;Circle :Circle (double m,double n, double i): x(m),y(n)_ r=i;void Circle : Area() double a=_2*pi*r*r_; coutThe area of the circle is:a Area ();5、下列程序执行后的输出结果是B0 D00 B1 D23 D B D B,请将下列程序补充完整。class Base public:Base(int i=0) x = i; coutBx ;Base() coutBx ; private:int x;class Derived : public Base int y, z;public: _ / Constructor _ / Destructor;void main() Derived obj1;Derived obj2(1,2,3);5、函数重载#include int f_add(_int i ,int j_) return i+j; double f_add(_double i, double j_) return i+j; int f_add(int i,int j,int k) return i+f_add(_j,k_); void main()int a=1,b=2,c=3;double x=3.5,y=4.5;int e,f;double z;e=f_add(a,b); f=f_add(a,b,c);z=f_add(x,y); couta+b=eendl;couta+b+c=fendl;coutx+y=zendl;三、写出下列程序的运行结果1阅读程序,输入如下数据:10052,写出运行结果。#include stdio.hmain()long m,p,q,t;p=q=0;scanf(%ld,&m);dot=m%10;if(t=0) p+;elseif(q=t) q=t;m/=10;while(m);printf(Count=%ld,Max=%ldn,p,q);Count=2,Max=52、阅读程序,写出运行结果#include iostream.hclass testprivate:int num;float fl;public:test( );int getint( )return num;float getfloat( )return fl;test( );test:test( )cout Initalizing default endl;num=1;fl=1.2;test:test( )coutDesdtructor is activeendl;void main( )test array2;cout array1.getint( ) array1.getfloat( ) endl;Initalizing defaultInitalizing default 1 1.2Desdtructor is activeDesdtructor is active3、阅读程序,写出运行结果。#include class Apublic:A()cout调用的无参构造函数endl;A(int x) a1=x;cout调用的有参构造函数endl;A(A &p) a1=p.a1;cout调用的复制构造函数endl;void add(A q)A temp;temp.a1=a1+q.a1;cout结果为: temp.a1 endl;private:int a1;main()A A1(1),A2(2);A1.add (A2);调用的有参构造函数调用的有参构造函数调用的复制构造函数调用的无参构造函数 结果为:34、分析下列程序的运行结果#include class add public:virtual void sm()=0; virtual void disp() ;class add1:public add private:int m1,n1;public:add1(int a,int b):m1(a),n1(b)void sm() m1+=-n1; n1-; void disp() coutm1=m1 n1=n1sm(); p-disp();m1=9 n1=45、阅读程序,写出运行结果#include class A public: A(int i) a=i; coutConstructor A. endl; A() coutDestructor A. endl; void Print() coutaendl; private: int a; ; class B:public A public: B(int i,int j):A(i) b=j; coutConstructor B. endl; B() coutDestructor B. endl; void Print() A:Print(); coutbendl; private: int b;class C:public Bpublic:C(int i,int j,int k):B(i,j),c(k) coutConstructor C. endl; C() coutDestructor C. endl; void Print() A:Print(); B:Print();coutcendl; private: int c;void main() C c1(1,2,3); c1.Print();Constructor A.Constructor B.Constructor C.1123Destructor C.Destructor B.Destructor A.?6、分析下列程序,写出运行结果#include class Test public:Test (double m,double n,double d):p(d) x=m; y=n; void Show();void Show() const;private:double x, y;const double p;void Test:Show() coutx,yendl;coutp=pendl;void Test:Show() const coutx,y constendl;coutp=p constendl;void main() Test a(8.9,2.5,3.1416);a.Show();const Test b(2.5,8.9,3.14);b.Show();7、分析下列程序,写出运行结果#include class Sample int x,y; public: Sample() x=y=0; Sample(int a,int b) x=a;y=b; Sample() if(x=y) coutx=yendl; else coutx!=yendl; void disp() coutx=x,y=yendl; ; void main() Sample s1,s2(2,3); s1.disp(); s2.disp(); 8、分析下列程序,写出运行结果#include class Point public:Point(double m,double n ); virtual void Area();private: double x,y;Point:Point(double m,double n ) x=m; y=n;void Point: Area() cout”The area is 0”endl;class Circle :public Pointpublic:Circle (double m,double n, double i); /声明构造函数 void Area();private:double r;Circle :Circle (double m,double n, double i): Point(m,n) r=i;void Circle : Area()double a=3.14*r*r;cout”The area of the circle is:”a Area (); 四、编写程序1、已知数列: 编一程序,求其前十项的和。(画出NS流程图)2、编写一函数计算n!,调用该函数计算sinx的近似值,要求误差小于,其中:3、定义一复数类,利用运算符重载完成复数相加。主函数及运行结果如下:(注意:实部为real;虚部为imag,为私有数据成员)#include class Complex;void main()Complex c1(1,2),c2(3,4),c3;c3=c1+c2;c3.put();4、编写一函数把字串中与某字符相同的字符删除,主函数如下:#include #include main()char *str=new char;char c;gets(str); cinc;fun(str,c);puts(str);5、已知三角形的三遍,在该三角形的基础上拉伸出高为H的三棱柱,编写三棱柱派生类,求三棱柱的体积。三角形类描述如下:class Trianglepublic:T

温馨提示

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

评论

0/150

提交评论