收藏 分享(赏)

《面向对象程序设计》C++综合练习(学生版 ) - 最新版1.doc

上传人:dzzj200808 文档编号:2724380 上传时间:2018-09-26 格式:DOC 页数:42 大小:488.50KB
下载 相关 举报
《面向对象程序设计》C++综合练习(学生版 ) - 最新版1.doc_第1页
第1页 / 共42页
《面向对象程序设计》C++综合练习(学生版 ) - 最新版1.doc_第2页
第2页 / 共42页
《面向对象程序设计》C++综合练习(学生版 ) - 最新版1.doc_第3页
第3页 / 共42页
《面向对象程序设计》C++综合练习(学生版 ) - 最新版1.doc_第4页
第4页 / 共42页
《面向对象程序设计》C++综合练习(学生版 ) - 最新版1.doc_第5页
第5页 / 共42页
点击查看更多>>
资源描述

1、C+面向对象程序设计习题册姓名 学号 学院 班级 1第三章 类和对象练习一一、选择题1. 在一个类的定义中,包含有( )成员的定义。A. 数据 B. 函数 C. 数据和函数 D. 数据或函数2. 在类作用域中能够通过直接使用该类的( )成员名进行访问。A. 私有 B. 公用 C. 保护 D. 任何3. 假定 AA 为一个类,a 为该类公有的数据成员,x 为该类的一个对象,则访问 x 对象中数据成员 a 的格式为( ) 。A. x(a) B. xa C. x-a D. x.a4. 假定 AA 为一个类, a()为该类公有的函数成员,x 为该类的一个对象,则访问 x 对象中函数成员 a()的格式为

2、( ) 。A. x.a B. x.a() C. x-a D. x-a()5. 假定 AA 为一个类,a 为该类公有的数据成员,px 为指向该类对象的一个指针,则访问 px 所指对象中数据成员 a 的格式为( ) 。A. px(a) B. pxa C. px-a D. px.a6. 假定 AA 为一个类,a 为该类私有的数据成员,GetValue()为该类公有函数成员,它返回 a 的值,x 为该类的一个对象,则访问 x 对象中数据成员 a 的格式为( ) 。A. x.a B. x.a() C. x-GetValue() D. x.GetValue()7. 假定 AA 为一个类,int a()为该

3、类的一个成员函数,若该成员函数在类定义体外定义,则函数头为( ) 。A. int AA:a() B. int AA:a() C. AA:a() D. AA:int a()8. 假定 AA 为一个类,a 为该类公有的数据成员,若要在该类的一个成员函数中访问它,则书写格式为( ) 。A. a B. AA:a C. a() D. AA:a()9. 若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( )放在函数原型或函数头的前面。A. in B. inline C. inLine D. InLiner10. 在多文件结构的程序中,通常把类的定义单独存放于( )中。A. 主文件 B. 实现文

4、件 C. 库文件 D. 头文件11. 在多文件结构的程序中,通常把类中所有非内联函数的定义单独存放于( )中。A. 主文件 B. 实现文件 C. 库文件 D. 头文件12. 在多文件结构的程序中,通常把含有 main()函数的文件称为( ) 。A. 主文件 B. 实现文件 C. 程序文件 D. 头文件13. 在 C+程序中使用的 cin 标识符是系统类库中定义的( )类中的一个对象。A. istream B. ostream C. iostream D. fstream14. 在 C+程序中使用的 cout 标识符是系统类库中定义的( )类中的一个对象。A. istream B. ostrea

5、m C. iostream D. fstream215. 假定 AA 是一个类,abc 是该类的一个成员函数,则参数表中隐含的第一个参数的类型为( ) 。A. int B. char C. AA D. AA*16. 假定 AA 是一个类,abc 是该类的一个成员函数,则参数表中隐含的第一个参数为( ) 。A. abc B. *this C. this D. this”是该类中一个成员函数的原型,若该函数存在对*this 赋值的语句,当用 x.abc()调用该成员函数后,x 的值( ) 。A. 已经被改变 B. 可能被改变C. 不变 D.不受函数调用的影响18. 假定 AA 是一个类, “AA*

6、 abc()const;”是该类中一个成员函数的原型,若该函数返回 this 值,当用x.abc()调用该成员函数后, x 的值( ) 。A. 已经被改变 B. 可能被改变C. 不变 D. 受到函数调用的影响19. 类中定义的成员默认为( )访问属性。A. public B. private C. protected D. friend20. 结构中定义的成员默认为( )访问属性。A. public B. private C. protected D. friend二、程序填充题1. 已知一个类的定义如下:#includeclass AA int a10;int n;public:void S

7、etA(int aa, int nn); /用数组 aa 初始化数据成员 a,用 nn 初始化数据成员 nint MaxA(); /从数组 a 中前 n 个元素中查找最大值void SortA(); /采用选择排序的方法对数组 a 中前 n 个元素,进行从小到大排序void InsertA();/采用插入排序的方法对数组 a 中前 n 个元素进行从小到大排序void PrintA(); /依次输出数组 a 中的前 n 个元素;该类中 MaxA()函数的实现如下,请在标号位置补充适当的内容。int _(1)_ int x=a0;for(int i=1; ix) _(2)_;_(3)_;2. 已知

8、一个类的定义如下:#includeclass AA int a10;int n;public:void SetA(int aa, int nn); /用数组 aa 初始化数据成员 a,用 nn 初始化数据成员 nint MaxA(); /从数组 a 中前 n 个元素中查找最大值void SortA(); /采用选择排序的方法对数组 a 中前 n 个元素,进行从小到大排序3void InsertA();/采用插入排序的方法对数组 a 中前 n 个元素进行从小到大排序void PrintA(); /依次输出数组 a 中的前 n 个元素;void AA:SortA()int i,j;for(i=0;

9、 _(1)_; i+) int x=ai, k=i;for(j=i+1; jclass AA int a10;int n;public:void SetA(int aa, int nn); /用数组 aa 初始化数据成员 a,用 nn 初始化数据成员 nint MaxA(); /从数组 a 中前 n 个元素中查找最大值void SortA(); /采用选择排序的方法对数组 a 中前 n 个元素,进行从小到大排序void InsertA();/采用插入排序的方法对数组 a 中前 n 个元素进行从小到大排序void PrintA(); /依次输出数组 a 中的前 n 个元素;void _(1)_

10、int i,j;for(i=1; i=0; j-)if(x#include class CD char* a;int b;public:void Init(char* aa, int bb)4a=new charstrlen(aa)+1;strcpy(a,aa);b=bb;char* Geta() return a;int Getb() return b;void Output() cout#include class CD char* a;int b;public:void Init(char* aa, int bb)a=new charstrlen(aa)+1;strcpy(a,aa);b

11、=bb;char* Geta() return a;int Getb() return b;void Output() coutms) coutms) couta C. s.a D. *s11. 假定 AB 为一个类,则执行 “AB r1=r2;”语句时将自动调用该类的( )。A. 无参构造函数 B. 带参构造函数 C. 赋值重载函数 D. 拷贝构造函数12. 若需要使类中的一个指针成员指向一块动态存储空间,则通常在( ) 函数中完成。A. 析构 B. 构造 C. 任一成员 D. 友元13. 当类中的一个整型指针成员指向一块具有 n*sizeof(int)大小的存储空间时,它最多能够存储( )

12、个整数。A. n B. n+1 C. n-1 D. 114. 假定一个类的构造函数为 “A(int aa, int bb) a=aa; b=aa*bb;”,则执行 “A x(4,5);”语句后,x.a 和 x.b的值分别为( )。A. 4 和 5 B. 5 和 4 C. 4 和 20 D. 20 和 515. 假定一个类的构造函数为 “A(int aa=1, int bb=0) a=aa; b=bb;”,则执行 “A x(4);”语句后,x.a 和x.b 的值分别为( )。A. 1 和 0 B. 1 和 4 C. 4 和 1 D. 4 和 016. 假定 AB 为一个类,则( ) 为该类的拷贝

13、构造函数的原型说明。A. AB(AB x); B. AB(AB C. void AB(AB D. AB(int x);17. 假定一个类的构造函数为 “B(int ax, int bx): a(ax), b(bx) ”,执行 “B x(1,2),y(3,4);x=y;”语句序列后7x.a 的值为( )。A. 1 B. 2 C. 3 D. 418. 假定一个类 AB 只含有一个整型数据成员 a,当用户不定义任何构造函数时,系统为该类定义的无参构造函数为( )。A. AB() a=0; B. AB(int aa=0): a(aa) C. AB(int aa): a(aa) D. AB() 19.

14、假定一个类 AB 只含有一个整型数据成员 a,用户为该类定义的带参构造函数可以为( ) 。A. AB() B. AB(): a(0)C. AB(int aa=0) a=aa; D. AB(int aa) 20. 对于任一个类,用户所能定义的构造函数的个数至多为( ) 。A. 0 B. 1 C. 2 D. 任意个二程序填充题1. 已知一个类的定义如下:#includeclass AA int a10;int n;public:void SetA(int aa, int nn); /用数组 aa 初始化数据成员 a,用 nn 初始化数据成员 nint MaxA(); /从数组 a 中前 n 个元素

15、中查找最大值void SortA(); /采用选择排序的方法对数组 a 中前 n 个元素,进行从小到大排序void InsertA();/采用插入排序的方法对数组 a 中前 n 个元素进行从小到大排序void PrintA(); /依次输出数组 a 中的前 n 个元素,最后输出一个换行;使用该类的主函数如下:void main()int a10=23,78,46,55,62,76,90,25,38,42;AA x; _(1)_;int m=_(2)_;_(3)_;coutclass AA int a10;int n;public:void SetA(int aa, int nn); /用数组

16、aa 初始化数据成员 a,用 nn 初始化数据成员 nint MaxA(); /从数组 a 中前 n 个元素中查找最大值8void SortA(); /采用选择排序的方法对数组 a 中前 n 个元素,进行从小到大排序void PrintA(); /依次输出数组 a 中的前 n 个元素,最后输出一个换行;使用该类的主函数如下:void main()int a10=23,78,46,55,62,76,90,25,38,42;_(1)_; x.SetA(a,8);int _(2)_;_(3)_;x.PrintA();cout9class CE private:int a,b;int getmax()

17、 return (ab? a:b);public:int c;void SetValue(int x1,int x2, int x3) a=x1; b=x2; c=x3;int GetMax();int CE:GetMax() int d=getmax();return (dc? d:c);void main()int x=5,y=12,z=8;CE ex, *ep=ex.SetValue(x,y,z);coutSetValue(x+y,y-z,20);coutGetMax()class CE private:int a,b;int getmin() return (aSetValue(x+y

18、,y-z,10);coutGetMin()ms) coutms) coutclass Franction /定义分数类int nume; /定义分子int deno; /定义分母public:/把*this 化简为最简分数,具体定义在另外文件中实现void FranSimp(); /返回两个分数*this 和 x 之和,具体定义在另外文件中实现Franction FranAdd(const Franction/置分数的分子和分母分别 0 和 114void InitFranction() nume=0; deno=1;/置分数的分子和分母分别 n 和 dvoid InitFranction(i

19、nt n, int d) nume=n; deno=d;/输出一个分数void FranOutput() coutclass Franction /定义分数类int nume; /定义分子int deno; /定义分母public:/把*this 化简为最简分数,具体定义在另外文件中实现void FranSimp(); /返回两个分数*this 和 x 之和,具体定义在另外文件中实现Franction FranAdd(const Franction/置分数的分子和分母分别 0 和 1void InitFranction() nume=0; deno=1;/置分数的分子和分母分别 n 和 dvo

20、id InitFranction(int n, int d) nume=n; deno=d;/输出一个分数void FranOutput() coutms) coutms) cout#includeclass A int *a; int n; int MaxLen;public:A(): a(0), n(0), MaxLen(0) A(int *aa, int nn, int MM) n=nn;MaxLen=MM;if(nMaxLen) exit(1);17_(1)_; /由 a 指向长度为 MaxLen 的动态数组for(int i=0; i#includeclass A int *a; i

21、nt n; int MaxLen;public:A(): a(0), n(0), MaxLen(0) A(int *aa, int nn, int MM) n=nn;MaxLen=MM;if(nMaxLen) exit(1);a=new intMaxLen;_(1)_; /以 i 为循环变量把 aa 数组中每个元素值/传送给 a 数组的对应元素中 A();int GetValue(int i) return ai; /函数体返回 ai的值;_(2)_ /析构函数的类外定义void main()int b10=1,2,3,4,5,6,7,8,9,10;A r(b,10,10);int i,s=0

22、;_(3)_ ; /以 i 为循环变量,把 r 对象的 a 数据成员中的/每个元素值依次累加到 s 中cout#includeclass A char *a;public:A(char *s) a=new charstrlen(s)+1;strcpy(a,s);cout19class A int *a;public:A(int x=0):a(new int(x)A() delete a;int getA() return *a;void setA(int x) *a=x;void main() A x1,x2(3);A *p=p-setA(x2.getA()+5);x1.setA(15+x1.

23、getA();coutclass A int a;public:A(int aa=0): a(aa) coutclass A int a,b;public:A() a=b=0;A(int aa, int bb) a=aa; b=bb;int Sum() return a+b;int* Mult() int *p=new int(a*b);return p;20;void main() int *k;A x(2,3), *p; p=new A(4,5);coutSum()Mult()class A int a10; int n;public:A(int aa, int nn): n(nn) fo

24、r(int i=0; iclass A int a,b; public:A(int aa, int bb) a=aa; b=bb;float Multip(char op) switch(op) case +: return a+b;case -: return a-b;case *: return a*b;case /: if(b!=0)return float(a)/b;21else coutms) coutx)t=x;x=y;y=t;int Variance()return x*x-y*y; /其它函数从略;void main() A_class A_obj(3,5);coutclass

25、 Point int x,y;public:29Point(int x1=0, int y1=0) :x(x1), y(y1) cout#include class Point int x,y;public:Point(int x1=0, int y1=0) :x(x1), y(y1) cout“Point:“x yn;Point() cout“Point des!n“;class Text char text100;/文字内容public:Text(char * str) strcpy(text,str);cout“Text con!n“;Text() cout“Text des!n“;class CircleWithText : public Point,public Text public:CircleWithText(int cx,int cy, char *msg):

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报