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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

完整word版C++期末考试复习题.docx

1、完整word版C+期末考试复习题C+期末考试复习题一、选择题1. 在声明类时,下面的说法正确的是( C )。A.可以在类的声明中给数据成员赋初值 B.数据成员的数据类型可以是register C.private、public、protected可以按任意顺序出现 D.没有用 private、public、protected定义的数据成员是公有成员2. 在一个类的定义中,包含有(C )成员的定义。 A. 数据 B. 函数 C. 数据和函数 D. 数据或函数3. 假定AA为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为(A )。 A. int AA:a() B

2、. int AA:a() C. AA:a() D. AA:int a()4. 假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为(C )。A. px(a) B. pxa C. px-a D. px.a 5. 下列关于运算符new的描述中,错误的是( D )。A它可以创建对象或变量 B它可以创建对象数组或一般类型数组C用它创建对象或对象数组时要调用相应的构造函数 D用它创建的对象可以不用delete运算符释放6. 在下面有关析构函数特征的描述中,正确的是( A )。A.一个类中可以定义多个析构函数 B.析构函数名与类名完全相同C.析构函

3、数不能指定返回类型 D.析构函数可以由一个或多个参数 7. 构造函数是在( B )时被执行的。A.程序编译 B. 创建对象 C. 创建类 D. 程序装入内存8. 友元的作用之一是( A )。A.提高程序的运行效率 B.加强类的封装性 C.实现数据的隐藏性 D.增加成员函数的种类9. 设置虚基类的目的是( B )。A.简化程序 B.消除二义性 C. 提高运行效率 D.减少目标代码10. 回值的纯虚函数,正确的写法是( B )。A.virtual show()=0; B.virtual void show();C.virtual void show()=0; D. void show()=0 vi

4、rtual;11. 重载函数在调用时选择的依据中,( B )是错误的。A. 函数名字 B.函数的返回类型 C.参数个数 D.参数的类型12. 已知:int fun (int a),m=10;下列调用fum()函数的语句中,正确的是( C )。Afun(m); Bfun (m*2); Cfun (m); Dfun (m+);13. 下列各种类中,不能定义对象的类是( B )。A派生类 B抽象类 C嵌套类 D虚基类14. 类中定义的成员默认为( A )访问属性。 A. public B. private C. protected D. friend15. 静态成员函数对类的数据成员访问(B )。

5、A. 是不允许的 B. 只允许是静态数据成员 C. 只允许是非静态数据成员 D. 可允许是静态数据成员或非静态数据成员16. 在下列语句中,将函数int f_sum(int x,int y)正确重载的是( A )。 A.float f_sum(int x,int y) B.int f_sum(int a,int b) C.int f_sum(int x) D.float f_sum(int a,int b)17. 下列各语句是输出字符A的,其中错误语句是( B )。AcoutA; Bcout.put(A); Cchar ch=A;coutch; Dcoutput(A);18. 当将一个类A或函

6、数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B的(D )。 A. 只能是公有成员 B. 只能是保护成员 C. 只能是除私有成员之外的任何成员 D. 具有任何权限的成员19. C+语言程序中进行文件操作时应包含的头文件是( A )。Afstream.h Bmath.h Cstdlib.h Dstrstrea.h20. 在C+程序中使用的cin标识符是系统类库中定义的( A )类中的一个对象。 A. istream B. ostream C. iostream D. fstream21. 已知:char n=p;在下列表示引用的方法中,( )是正确的。 A.char &x=n;

7、 B. char &y=p; C. char &z; D.float &t=&n;22. 在( A )情况下适宜采用内联函数。A.函数代码小,频繁调用 B. 函数代码多,频繁调用 C.函数体含有递归语句 D. 函数体含有循环语句23. 如果表达式a+b中的“+”是作为友元函数重载的运算符,若采用运算符函数调用格式,则可表示为( )。 A. a.operator+(b) B. b.operator+(a) C. operator+(a,b) D. operator(a+b)24. 执行完循环 for(i=1;i100;i+);后,i 的值为 ( B )。 A. 99 B. 100 C. 101

8、D. 10225. 假定一个类对象数组为An,当离开它定义的作用域时,系统自动调用该类析构函数的次数为( C )。 A. 0 B. 1 C. n D. n-126. 在C+程序中使用的cout标识符是系统类库中定义的( B )类中的一个对象。 A. istream B. ostream C. iostream D. fstream二、填空题 1. 在下面一段类定义中, Derived类是由直接基类Base 1和Base 2所派生的,Derived类包含有两个间接基类BaseBase,在初始化函数Init中,需要把x1和x2的值分别赋给属于基类Base1的x成员和属于基类Base2的x成员。cl

9、ass BaseBase protected: int x;public: BaseBase() x = 1;class Base1: public BaseBase public:Base1();class Base2: public BaseBase public: Base2();class Derived: (1) public Base1 , (2) public Base2 public: Derived() void Init(int x1, int x2) (3) Base1:x=x1 ; _(4)_ Base2:x=x2 _; (5) void output() coutBa

10、se1:x Base2:xendl;2. 该类中MaxA()函数的实现如下,请在标号位置补充适当的内容。int (1) int a int x=a0; for(int i=1; ix) (2) a j+i=j ; (3) break;class A char *a; public: _(1)_ _ /定义无参构造函数,使a的值为空 A(char *aa) a=_(2)_ _; strcpy(a,aa); /用aa所指字符串初始化a所指向的动态存储空间 _(3)_ _ /定义析构函数,删除a所指向的动态存储空间 ;class Point private: int x, y; public: Po

11、int() x=y=0; Point(int x0,int y0) x=x0; y=y0; int GetX() return x; int GetY() return y; void Print() coutPoint(x,y)endl; 1 Point operator+(Point & pt,int dd); /友元函数声明 2 ; /友元函数声明; Point operator+(Point& pt,int dd) /加号操作符重载函数,实现Point类对象与整数加法 Point temp=pt; 3 ; temp.y+=dd; return temp;Point operator+(

12、Point& pt1,Point& pt2) /加号操作符重载函数,实现两个Point类对象的加法 Point temp; temp.x=pt1.x+pt2.x; 4 ; return 5 ;3. 下列程序的功能是,建立磁盘文件1.txt,从键盘输入一行字符串,以回车键结束,将其中的字母字符存放在文件1.txt中,请填空完成该程序。#includeusing namaspace std;int main()char a80; ; /定义输出流对象outfile if(!outfile1) cerr打开文件出错!endl; exit(1); ; /从键盘读入一行字符for(int i=0;ci!

13、=0;i+) if( ) coutendl; ; return 0; 四、根据程序试写出运行结果1. #include void main( ) int i, j; int *p1, *p2; p1=&i; p2=&j ; i=3; j=6;couti=i j=jendl;cout*p1=*p1 *p2=*p2endl; *p1=5; *p2=8; couti=i j=jendl;cout*p1=*p1 *p2=*p2endl;2#include #include class CD char* a; int b; public: void Init(char* aa, int bb) a=ne

14、w charstrlen(aa)+1; strcpy(a,aa); b=bb; char* Geta() return a; int Getb() return b; void Output() couta bendl; ; void main() CD dx,dy; char a20; dx.Init(abcdef,30); strcpy(a,dx.Geta(); strcat(a,xyz); dy.Init(a,dx.Getb()+20); dx.Output(); dy.Output();3. #includeclass A int a10; int n;public: A(int aa

15、, int nn): n(nn) for(int i=0; in; i+) ai=aai; int Get(int i) return ai; int SumA(int n) int s=0; for(int j=0; jn; j+) s+=aj; return s; ;void main() int a=2,5,8,10,15,20; A x(a,4); A y(a,6); int d=1; for(int i=0; i4; i+) d*=x.Get(i); int f=y.SumA(5); coutd=dendl; coutf=fendl;4. #includeclass circle p

16、rotected: int r;public: void setr(int x) r=x; virtual void show( )=0; ;class area:public circlepublic: void show( ) cout这个圆的面积是:3.14*r*rendl; ;class perimeter:public circlepublic: void show( ) cout这个圆的周长是: 2*3.14*rshow(); ptr=&ob2; ptr-show(); 5. #include class A public:A( ) cout A; ; class B public

17、:B( ) cout B; ; class C: public A public: C( ) cout C; private: B b; ; int main ( ) C obj; return 0; 6. #include class small_cat double weight; /普通数据成员,表示一只小猫的重量 static double total_weight;/静态数据成员,用来累计小猫的重量 static double total_number; /静态数据成员,用来累计小猫的只数public: small_cat(double w) /构造函数 weight=w; tota

18、l_weight+=w; /累加小猫的重量 total_number+; /累加小猫的只数 void display() cout这只小猫的重量是 weight千克n; static void total_disp() couttotal_number 只的小猫的总重量是 ; couttotal_weight 千克endl; ;double small_cat:total_weight=0; /静态数据成员初始化 double small_cat:total_number=0; /静态数据成员初始化int main() small_cat w1(0.5),w2(0.6),w3(0.4); w1

19、.display(); /调用普通成员函数,显示第1只小猫的重量 w2.display(); /调用普通成员函数,显示第2只小猫的重量 w3.display(); /调用普通成员函数,显示第3只小猫的重量 small_cat:total_disp(); /调用静态成员函数 return 0; /显示小猫的只数和总重量5、编程题1. 编程求圆、圆内接正方形和圈外切正方形的面积和周长。要求使用抽象类。解:#include const double PI=3.1415;class Shapepublic: Shape(double i) r=i; virtual void Area()=0;virt

20、ual void Perimeter()=0;protected:double r;class Circle:public Shapepublic: Circle(double i):Shape(i) void Area() cout圆的面积是 PI*r*rendl; void Perimeter() cout圆的周长是 2*PI*rendl; ;class In_Square:public Shapepublic: In_Square(double i):Shape(i) void Area() cout圆内接正方形的面积是 2*r*rendl; void Perimeter() cout圆

21、内接正方形的周长是 4*1.414*rendl; ;class Ex_Square:public Shapepublic: Ex_Square(double i):Shape(i) void Area() cout圆外切正方形的面积是 4*r*rendl; void Perimeter() cout圆外切正方形的周长是 8*rArea(); ps-Perimeter(); ps=new In_Square(8); ps-Area(); ps-Perimeter(); ps=new Ex_Square(8); ps-Area(); ps-Perimeter(); delete ps;(附上运行结

22、果:)2. 已知复数类Complex的声明如下:class Complexpublic: Complex(); /无参构造函数 Complex(double ); /转换构造函数Complex(double, double); /有两个形参的构造函数 friend Complex operator+(Complex&, Complex&); /对“+”运算符进行重载 friend ostream& operator(ostream&, Complex&); /对“(istream&, Complex&); /对“”运算符进行重载private: double real,imag;要求:(1)写

23、出该类的所有构造函数的类外定义代码。 (2)写出对运算符“+”、“”进行重载的运算符重载函数的定义。3. 编写程序,计算出复数对象c1和c2相加结果,并将其结果输出。4. 从建立的数据文件f1.dat中读入10个整数放在数组中,找出并输出10个数中的最大者和它在数组中的序号。解:#include #includeusing namespace std;int main( ) int a10,max,i,order; fstream infile(f1.dat, ios:in ); if( !infile ) cerropen error!endl; exit(1); for(i=0;iai ;

24、 coutai ; coutendl; max=a0; order=0; for(i=1;imax) max=ai; order=i; coutmax=maxendlorder=orderms) coutError!endl; exit(1); MS=ms; n=nn; a=new intMS; for(int i=0; iMS; i+) ai=aai; int MaxMin(int& x, int& y); /从数组a的前n个元素中求出 /最大值和最小值,并分别由引用参数x和y带回, /同时若n大于0则返回1,否则返回0。;解:int AA:MaxMin(int& x, int& y) int mx,my; mx=my=a0; for(int i=1; imx) mx=ai; if(ai0) return 1; else return 0; 6. 根据下面类中构造函数的原型和注释写出它的类外定义。class Array int *a; /指向动态分配的整型数组空间 int n; /记录数组长度public: Array(int aa, int nn); /构造函数,利用aa数组长度nn初始化n, /利

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

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