ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:22.31KB ,
资源ID:7508115      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7508115.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++期末热身第二部分.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++期末热身第二部分.docx

1、C+期末热身第二部分C+:第二部分 一、选择题1、下列对派生类的描述中,( 4 )是错误的。 一个派生类可以作为另一个派生类的基类 派生类至少有一个基类1 派生类的成员除了它自已的成员外,还包含了它的基类的成员2 派生类中继承的基类成员的访问权限在派生类中保持不变2、对基类和派生类的描述中,( 4 )是错的。 派生类是基类的具体化 派生类是基类的子集 派生类是基类定义的延续 派生类是基类的组合3、派生类的构造函数的成员初始化列表中,不能包含( 2 )。 基类的构造函数 派生类中子对象的初始化 基类的子对象初始化 派生类中一般数据成员的初始化4、设置虚基类的目的是( 2 )。 简化程序 消除二义

2、性 提高运行效率 减少目标代码5、关于子类型的描述中,( 4 )是错的。 子类型就是指派生类是基类的子类型 一种类型当它至少提供了另一种类型的行为,则这种类型是另一种类型的子类型 在公有继承下,派生类是基类的子类型 子类型关系是不可逆的6、已知一个类A,( 3 )是指向类A成员函数的指针。假设类A有3个公有成员: Void f1(int),void f2(int)和int a。1 A *p; int A:*pc=&A:a; void A:*pa(); A *pp;7、已知f1(int)是类A的公有成员函数,p是指向成员函数f1()的指针,采用( 2 )是正确的1 pf1; pA:f1; pA:

3、f1(); pf1();8、已知:p是一个指向类A数据成员m的指针,a1是类A的一个对象。如果要给m赋值 为5,( 3 )是正确的。1 a1.p=5; a1-p=5; a1.*p=5; *a1.p=5;9、已知类A中一个成员函数说明如下: void Set(A&a) 其中,A&a的含意是( 3 )。1 指向类A的指针为a 将A的地址值赋给变量Set a是类A的对象的引用,用来作函数Set()的形参 变量A与a按位相与作为函数Set()的参数10、有以下类的说明,请指出错误的地方 ABCD class CSampleprivate: int a=2.5; (A) CSample; (B)publ

4、ic: CSample(int val); (C) CSample; (D);11、下面程序的输出结果是(1) #include using namespace std; class point public: void poi(int px=10,int py=10) x=px; y=py; getpx( ) return x; getpy( ) return y; private: int x,y; ; int main( ) point p,q;p.poi();q.poi(15,15);cout“p点的坐标是:”p.getpx( )“,”;coutp.getpy( )endl;cout“

5、q点的坐标是:”q.getpx( )“,”;coutq.getpy( )endl;return 0; p点的坐标是:10,10 p点的坐标是:0,0 q点的坐标是:15,15 q点的坐标是:15,15 p点的坐标是:0,0 p点的坐标是:10,10 q点的坐标是:0,0 q点的坐标是:10,1012、下列关于对象数组的描述中,( 4 )是错误的。 对象数组的下标是从0开始的 对象数组的数组名是一个常量指针2 对象数组的每个元素是同一个类的对象 对象数组只能赋初值,而不能被赋值13、下列定义中,( 2 )是定义指向数组的指针p。 int *p5 int (*p)5 (int *)p5 int *

6、p14、具有转换函数功能的构造函数,应该是( 2 )。 不带参数的构造函数 带有一个参数的构造函数 带有两个以上参数的构造函数 默认构造函数15、关于多继承二义性的描述中,( 3 )是错的。 一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性 解决二义性的最常用的方法是对成员名的限定法 基类和派生类中同时出现的同名函数,也存在二义性问题 一个派生类是从两个基类派生来的,而这两个基类又有一个共同点基类,对该基类成员进行访问时,有可能存在二义性16、下列关于运算符重载的描述中,( 4 )是正确的。 运算符重载可以改变操作数的个数 运算符重载可以改变优先级 运算符重载可

7、以改变结合性 运算符重载不可以改变语法结构/17、关于动态联编的下列描述中,( )是错误的。 动态联编是一虚函数我基础的 动态联编是在运行时确定所调用的函数代码的 动态联编调用函数操作是用指向对象的指针或对象引用 动态联编是在编译时确定操作函数的18、关于虚函数的描述中,( 3 )是正确的。 虚函数是一个static类型的成员函数 虚函数是一个非成员函数 基类中说明了虚函数后,派生类中其对应的函数可不必说明为虚函数 派生类的虚函数与基类的虚函数具有不同的参数个数和类型19、下列描述中,( 4 )是抽象类的特性。 可以说明虚函数 可以进行构造函数重载 3 可以定义友元函数 不能说明其对象20、在

8、多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则( 1 )。 完全相同 完全不同 部分相同,部分不同 以上都不对21、( 3 )是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。 虚析构函数 虚构造函数 纯虚函数 静态成员函数22、如果一个类至少有一个纯虚函数,那么就称该类为( 1 )。 抽象类 虚基类 派生类 以上都不对二、判断题1、一个类的构造函数中可以不包含对其子对象的初始化。( T )2、派生类是从基类派生出来,它不能再生成新的派生类。( F )3、在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。( F )4

9、、单继承情况下,派生类中对基类成员的访问也会出现二义性。( F )5、构造函数可以被继承。( T )6、析构函数不能被继承。( F )7、解决多继承情况下出现二义性的方法之一是使用成员名限定法。( T )8、子类型是不可逆的。( F )9、派生类是它的基类的组合。( F )/10、只要是类M继承了类N,就可以说类M是类N的子类型。( T )11、如果A类型是B类型的子类型,则A类型必然适应于B类型。( T )12、重载运算符保持原运算符的优先级和结合性不变。( T )13、构造函数说明为纯虚函数是没有意义的。( T )14、抽象类是指一些没有说明对象的类。( F )15、动态联编是在运行时选定

10、调用的成员函数的。( T )三、填空题1、以下程序的执行结果是 5 6 7 。#includeusing namespace std; class Sample int x; public: void setx (int i) x=i; int putx() return x; ; int main() Sample *p; Sample A3; A0.setx(5); A1.setx(6); A2.setx(7); for (int j=0;j3;j+) p=&Aj; coutputx()” “; coutendl; return 0; 2、以下程序的执行结果是 构造函数。i=10 i=20

11、 。#include using namespace std; class Sample public: Sample() cout”构造函数。”endl; ; void fn (int i) static Sample c; cout”i=”iendl; int main() fn (10); fn (20); return 0; 3、以下程序的执行结果是 x=5 。 #include using namespace std; class A public: int x; void fun(int i) x=i; ; int main() A c; int A:*p=&A:x; c.*p=2

12、; void (A:*pfun)(int)=A:fun; (c.*pfun)(5); cout”x=”c.xendl; return 0; 4、以下程序的执行结果是 fun1:7 fun2:15 。 #include using namespace std; class A public: int x; A(int i) x=i; void fun1(int j) x+=j;cout”fun1:”xendl; void fun2(int j) x+=j;cout”fun2:”xendl; ; int main() A c1(2),c2(5); void (A:*pfun)(int)=A:fun

13、1;(c1.*pfun)(5); pfun=A:fun2;(c2.*pfun)(10); return 0; 5、以下程序的执行结果是 97 。 #include using namespace std; class Sample int x; public: Sample() ; void setx(int i) x=i; friend int fun(Sample B,int n) int m=0; for(int i=0;im) m=Bi.x; return m; ; int main() Sample A10; int Arr=90,87,42,78,97,84,60,55,78,65

14、; for(int i=0;i10;i+) Ai.setx(Arri); coutfun(A,10)endl; return 0; 6、以下程序的执行结果是 1 3 。 #include using namespace std; class A int a; public: void seta(int x) a=x; void showa() coutaendl; ; class B int b; public: void setb(int x) b=x; void showb() coutbendl; ; class C:public A,private B private: int c;

15、public: void setc(int x,int y, int z) c=z; seta(x); setb(y); void showc() coutcendl; ; int main() C c; c.seta(1); c.showa(); c.setc(1,2,3); c.showc(); return 0; 7、以下程序的执行结果是 (1,2) 5,6 (6,9) 。 #include using namespace std; class A public: A(int i,int j) a=i;b=j; void move(int x,int y) a+=x;b+=y; void

16、 show() cout”(“a”,”b”)”endl; private: int a,b; ; class B:private A public: B(int i,int j,int k,int l):A(i,j) x=k;y=l; void show() coutx”,”yendl; void fun() move(3,5); void f1() A:show(); private: int x,y; ; int main() A e(1,2); e.show(); B d(3,4,5,6); d.fun(); d.show(); d.f1(); return 0; 8、以下程序的执行结果

17、是 a=0b=0c=0 a=1b=0c=0 a=1b=3c=0 a=1b=3c=5 。#include using namespace std; class A public: A()a=0;b=0; A(int i)a=i;b=0; A(int i,int j)a=i;b=j; void display()couta=ab=b; private: int a; int b; ; class B:public A public: B()c=0; B(int i):A(i)c=0; B(int i,int j):A(i,j)c=0; B(int i,int j,int k):A(i,j)c=k;

18、 void display1() display(); coutc=cendl; private: int c; ; int main() B b1; B b2(1); B b3(1,3); B b4(1,3,5); b1.display1(); b2.display1(); b3.display1(); b4.display1(); return 0; 9、以下程序的执行结果是 30,30 。#includeusing namespace std;class Point int x,y;public: Point(int vx,int vy)x=vx;y=vy; Point() x=0;y=

19、0; Point operator+(Point p1) Point p; int px=x+p.x; int py=y+p.y; return Point(px,py); Point operator-(Point p1) Point p; int px=x-p1.x; int py=y-p1.y; return Point(px,py); void print() coutx”,”yendl; ;int main() Point p1(10,10),p2(20,20); p1=p1+p2; p1.print(); return 0;10、以下程序的执行结果是 base class deri

20、ve class derive2 class 。#includeusing namespace std;class basepublic: virtual void who() cout”base class”endl; ;class derive:public basepublic: void who() cout”derive class”endl;class derive2:public basepublic: void who() cout”derive2 class”who(); p=&obj2; p-who(); p=&obj3; p-who(); return 0;11、以下程序

21、的执行结果是 f1 function of base f2 function of base f3 function of base f1 function of derive f2 function of base f4 function of derive 。#includeusing namespace std;class base public: virtual void f1() cout”f1 function of base”endl; virtual void f2() cout”f2 function of base”endl; virtual void f3()cout”f

22、3 function of base”endl; virtual void f4()cout”f3 function of base”endl;class derive:public base void f1()cout”f1 function of derive”endl;void f2(int x)cout”f2 function of derive”endl;void f4()cout”f4 function of derive”f1();p-f2();p-f3();p=&obj2;p-f1();p-f2();p-f4();return 0;12、以下程序的执行结果是 (10,20) (

23、13,23) (16,26) 。#includeclass Point public: Point() x=0;y=0; Point(unsigned x,unsigned y) Point:x=x; Point:y=y; unsigned getx() return x; unsigned gety() return y; void print() cout”Point(“x”,”y”)”endl; friend Point operator + (Point &pt,int noffset); friend Point operator + (int noffset,Point &pt);

24、 private: unsigned x,y;Point operator + (Point &pt,int noffset) Point ptemp=pt; ptemp.x+=noffset; ptemp.y+=noffset; return ptemp;Point operator + (int noffset,Point &pt) Point ptemp=pt; ptemp.x+=noffset; ptemp.y+=noffset; return ptemp;int main() Point pt(10,20); pt.print(); pt=pt+3; pt.print(); pt=3

25、+pt; pt.print(); return 0;四、程序分析题1、分析下列程序的输出结果(注:除了给出结果外,还要进行简单分析) #include using namespace std; class Lpublic: void InitL(int x,int y)X=x;Y=y; void Move(int x,int y)X+=x;Y+=y; int GetX()return X; int GetY()return Y;private: int X,Y;class R:public Lpublic: void InitR(int x,int y,int w,int h) InitL(x,y); W=w; H=h; int GetW()return W; int GetH()return H;private: int W,H;class V:public Rpublic: void fun()Move(3,2);int main() V v; v.InitR(10,20,30,40); v.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1