C++综合练习答案_第1页
C++综合练习答案_第2页
C++综合练习答案_第3页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、1.2.3.第三章类和对象、选择题在一个类的定义中,包含有(C)成员的定义。A.数据B.函数C.数据和函数在类作用域中能够通过直接使用该类的(A.私有B.公用C.保护假定AA为一个类,D)D.任何a为该类公有的数据成员,D.数据或函数成员名进行访问。x为该类的一个对象,则访问x对象中数据成员a的格式为(D)。A.x(a)4.假定AA格式为(BA.x.aB.xa为一个类,)。B.x.a()C.x->aD.x.aa()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的假定AA为一个类,数据成员a的格式为(A.px(a)B.pxa假定AA为一个类,类的一个对象,则访问A.

2、x.aB.x.a()假定AA为一个类,A.intAA:a()C.AA:a()7.8.9.前面。C.x->aD.x->a()a为该类公有的数据成员,C)。C.px->aD.px.apx为指向该类对象的一个指针,则访问GetValue()为该类公有函数成员,它返回D)。a为该类私有的数据成员,x对象中数据成员a的格式为(C.x->GetValue()D.x.GetValue()inta()为该类的一个成员函数,若该成员函数在类定义体外定义,B.intAA:a()D.AA:inta()假定AA为一个类,a为该类公有的数据成员,若要在该类的一个成员函数中访问它,A.aB.AA:

3、aC.a()D.AA:a()若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字3.px所指对象中a的值,x为该则函数头为(A)。则书写格式为(A)。(B)放在函数原型或函数头的A.inB.inlineC.inLineD.InLiner在多文件结构的程序中,通常把类的定义单独存放于(D)中。A.主文件B.实现文件C.库文件D.头文件在多文件结构的程序中,通常把类中所有非内联函数的定义单独存放于(A.主文件B.实现文件C.库文件D.头文件在多文件结构的程序中,通常把含有main()函数的文件称为(A)。A.主文件B.实现文件C.程序文件D.头文件在C+程序中使用的ci

4、n标识符是系统类库中定义的(A)类中的一个对象。A.istreamB.ostreamC.iostreamD.fstream在C+程序中使用的cout标识符是系统类库中定义的(B)类中的一个对象。eamC.iostreamD.fstreamabc是该类的一个成员函数,则参数表中隐含的第一个参数的类型为(C.AAD.AA*abc是该类的一个成员函数,则参数表中隐含的第一个参数为(C.thisD.this&“AA&abc();是'该类中一个成员函数的原型,若该函数存在对*this赋值的语句,A.istreamB.o15.假定AA-个类,A.intB.char16.假定AA-个

5、类,A.abcB.*this17.假定AA-个类,14.B)中。D)。C)。当用x.abc()调用该成员函数后,x的值(A)。A.已经被改变B.可能被改变C.不变D.不受函数调用的影响18.假定AA是一个类,“AA*abc()const;是该类中一个成员函数的原型,若该函数返回x.abc()调用该成员函数后,x的值(C)。this值,当用A. 已经被改变B.可能被改变C.不变D.受到函数调用的影响19. 类中定义的成员默认为(B)访问属性。A. publicB.privateC.protectedD.friend20. 结构中定义的成员默认为(A)访问属性。A.publicB.privateC

6、.protectedD.friend21. 当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为(C)。A.nB.n+1C.n-1D.n-222. 对于一个类的构造函数,其函数名与类名(A)。A.完全相同B.基本相同C.不相同D.无关系23. 对于一个类的析构函数,其函数名与类名(C)。A.完全相同B.完全不同C.只相差一个字符D.无关系24. 类的构造函数是在定义该类的一个(C)时被自动调用执行的。A.成员函数B.数据成员C.对象D.友元函数25. 类的析构函数是一个对象被(B)时自动调用的。A.建立B.撤消C.赋值D.引用26. 一个类的构造函数通常被定义为该类

7、的(A)成员。A.公用B.保护C.私有D.友元27. 一个类的析构函数通常被定义为该类的(C)成员。A.私有B.保护C.公用D.友元28. 假定AB为一个类,贝U执行“ABx;语句时将自动调用该类的(B)。A.带参构造函数B.无参构造函数C.拷贝构造函数D.赋值重载函数29.假定AB为一个类,贝U执行“ABx(a,5);语句时将自动调用该类的(A)。A.带参构造函数B.无参构造函数C.拷贝构造函数D.赋值重载函数30. 假定AB为一个类,贝U执行“AB*s=newAB(a,5);语句时得到的一个动态对象为D。A.sB.s->aC.s.aD.*s31. 假定AB为一个类,贝U执行“ABr1

8、=r2;语句时将自动调用该类的(D)。A.无参构造函数B.带参构造函数C.赋值重载函数D.拷贝构造函数32. 若需要使类中的一个指针成员指向一块动态存储空间,则通常在(B)函数中完成。A.析构B.构造C.任一成员D.友元当类中的一个整型指针成员指向一块具有n*sizeof(int)大小的存储空间时,它最多能够存储(A)个整数。A.nB.n+1C.n-1D.133. 假定一个类的构造函数为"A(intaa,intbb)a=aa;b=aa*bb;,则执行"Ax(4,5);谱句后,x.a和x.b的值分别为(C)。A.4和5B.5和4C.4和20D.20和535.假定一个类的构造函

9、数为"A(intaa=1,intbb=0)a=aa;b=bb;,则执行*Ax(4);语句后,x.a和x.b的值分别为(D)。A.1和0B.1和4C.4和1D.4和036. 假定AB为一个类,则(B)为该类的拷贝构造函数的原型说明。A.AB(ABx);B.AB(AB&x);C.voidAB(AB&x);D.AB(intx);37. 假定一个类的构造函数为"B(intax,intbx):a(ax),b(bx),执行"Bx(1,2),y(3,4);x=y;语句序列后x.a的值为(C)。A.1B.2C.3D.438. 假定一个类AB只含有一个整型数据成员a

10、,当用户不定义任何构造函数时,系统为该类定义的无参构造函数为(D)。A.AB()(a=0;B.AB(intaa=0):a(aa)(C.AB(intaa):a(aa)(D.AB()(39. 假定一个类AB只含有一个整型数据成员a,用户为该类定义的带参构造函数可以为(C)。A.AB()(B.AB():a(0)(C.AB(intaa=0)(a=aa;D.AB(intaa)(40. 对于任一个类,用户所能定义的构造函数的个数至多为(D)。A.0B.1C.2D.任意个41. 对于任一个类,用户所能定义的析构函数的个数至多为(B)。A.0B.1C.2D.任意个42. 假定AB为一个类,则执行“AB*px=

11、newABn;语句时将(A)。A.动态分配一个数组B.动态分配一个对象C.静态分配一个数组D.静态分配一个对象43. 设px是指向一个类对象的指针变量,贝U执行"deletepx;语句时,将自动调用该类的(C)。A.无参构造函数B.带参构造函数C.析构函数D.拷贝构造函数44. 当一个类对象离开它的作用域时,系统自动调用该类的(D)。A.无参构造函数B.带参构造函数C.拷贝构造函数D.析构函数45. 假定一个类对象数组为An,当离开它定义的作用域时,系统自动调用该类析构函数的次数为(C)。A.0B.1C.nD.n-146.假定AB为-个类,则执行“ABa10;语句时调用该类构造函数的

12、次数为(D)OA.0B.1C.9D.1047.假定AB为-个类,则执行AB*px=newABn;语句时调用该类无参构造函数的次数为(A)。A.nB.n-1C.1D.048.假定AB为-个类,则执行“ABa,b(3),*p;语句时共调用该类构造函数的次数为(A)。A.2B.3C.4D.549.假定AB为-个类,则执行“ABa(2),b3,*p4;语句时共调用该类构造函数的次数为(B)。A.3B.4C.5D.950.假定AB为-个类,则执行"ABa,b(2),c3,*p=&a;语句时共调用该类构造函数的次数为(D)。A.5B.6C.3D.451.假定AB为-个类,则执行AB*p=

13、newAB(1,2);语旬时共调用该类构造函数的次数为(B)。A.0B.1C.2D.352.假定AB为-个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“deletepx;语句时共调用该类析构函数的次数为(C)。A.0B.1C.nD.n+153. 对类对象成员的初始化是通过构造函数中给出的(D)实现的。A.函数体B.初始化表C.参数表D.初始化表或函数体54. 对类中常量成员的初始化是通过构造函数中给出的(C)实现的。A.函数体B.参数表C.初始化表D.初始化表或函数体55. 对类中引用成员的初始化是通过构造函数中给出的(C)实现的。A.函数体B.参数表C.初始化表D.初始化表或

14、函数体56. 一个类的静态数据成员所表示属性(C)。A.是类的或对象的属性B.只是对象的属性C.只是类的属性D.类和友元的属性57. 类的静态成员的访问控制(D)。A.只允许被定义为privateB. 只允许被定义为private或protectedC. 只允许被定义为publicD. 可允许被定义为private、protected或public58. 静态成员函数对类的数据成员访问(B)。A.是不允许的B.只允许是静态数据成员C.只允许是非静态数据成员D.可允许是静态数据成员或非静态数据成员59. 被非静态成员函数访问的类的数据成员(A)。A.可以是非静态数据成员或静态数据成员B.不可能是

15、类的静态数据成员C.只能是类的非静态数据成员D.只能是类的静态数据成员60. 静态数据成员的初始化是在(D)中进行的。A.构造函数B.任何成员函数C.所属类D.全局区61. 当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B的(D)。A.只能是公有成员B.只能是保护成员C.只能是除私有成员之外的任何成员D.具有任何权限的成员62. 引入友元的主要目的是为了(C)。A.增强数据安全性B.提高程序的可靠性C.提高程序的效率和灵活性D.保证类的封装性63. 一个类的成员函数也可以成为另一个类的友元函数,这时的友元说明(A)。A.需加上类域的限定B.不需加上类域的限定C

16、.类域的限定可加可不加D.不需要任何限定64. 一个类的友元不是该类的成员,与该类的关系密切,所以它(D)。A. 有this指针,有默认操作的对象B. 没有this指针,可以有默认操作的对象C. 有this指针,不能执行默认操作1. 没有this指针,也就没有默认操作的对象二、程序填充题已知一个类的定义如下:#include<iostream.h>classAAinta10;intn;public:voidSetA(intaa,intnn);/用数组aa初始化数据成员a,用nn初始化数据成员nintMaxA();从数组a中前n个元素中查找最大值voidSortA();采用选择排序的

17、方法对数组a中前n个元素,进行从小到大排序voidInsertA();/采用插入排序的方法对数组a中前n个元素进行从小到大排序voidPrintA();/依次输出数组a中的前n个元素;该类中MaxA()函数的实现如下,请在标号位置补充适当的内容。int(1)AA:Max()intx=a0;for(inti=1;i<n;i+)2. if(ai>x)(2)x=ai_;(3)_returnx_;已知一个类的定义如下:#include<iostream.h>classAA(inta10;intn;public:voidSetA(intaa,intnn);/用数组aa初始化数据成

18、员a,用nn初始化数据成员nintMaxA();从数组a中前n个元素中查找最大值voidSortA();采用选择排序的方法对数组a中前n个元素,进行从小到大排序voidInsertA();/采用插入排序的方法对数组a中前n个元素进行从小到大排序voidPrintA();/依次输出数组a中的前n个元素;voidAA:SortA()(inti,j;for(i=0;(1)i<n-1或i<=n-2_;i+)(intx=ai,k=i;for(j=i+1;j<n;j+)if(aj<x)一x=aj;k=j_ak=ai;ai=x;3. 已知一个类的定义如下:#include<io

19、stream.h>classAAinta10;intn;public:voidSetA(intaa,intnn);/用数组aa初始化数据成员a,用nn初始化数据成员nintMaxA();从数组a中前n个元素中查找最大值voidSortA();采用选择排序的方法对数组a中前n个元素,进行从小到大排序voidInsertA();/采用插入排序的方法对数组a中前n个元素进行从小到大排序voidPrintA();/依次输出数组a中的前n个元素;void(1)_AA:Insert()_inti,j;for(i=1;i<n;i+)(intx=ai;for(j=i-1;j>=0;j-)if

20、(x<aj)aj+1=aj_;else(3)break;aj+1=x;4. 已知一个类的定义如下:#include<iostream.h>classAA(inta10;intn;public:voidSetA(intaa,intnn);/用数组aa初始化数据成员a,用nn初始化数据成员nintMaxA();从数组a中前n个元素中查找最大值voidSortA();采用选择排序的方法对数组a中前n个元素,进行从小到大排序voidInsertA();/采用插入排序的方法对数组a中前n个元素进行从小到大排序voidPrintA();/依次输出数组a中的前n个元素,最后输出一个换行;使

21、用该类的主函数如下:voidmain()(inta10=23,78,46,55,62,76,90,25,38,42;AAx;(1) _x.SetA(a,6);intm=(2)_x.MaxA()_;(3)_x.PrintA()_;cout<<m<<endl;该程序运行结果为:5. 23784655627678已知一个类的定义如下:#include<iostream.h>classAA(inta10;intn;public:voidSetA(intaa,intnn);/用数组aa初始化数据成员a,用nn初始化数据成员nintMaxA();/从数组a中前n个元素中

22、查找最大值voidSortA();/采用选择排序的方法对数组a中前n个元素,进行从小到大排序voidPrintA();/依次输出数组a中的前n个元素,最后输出一个换行;使用该类的主函数如下:voidmain()(inta10=23,78,46,55,62,76,90,25,38,42;_AAx_;x.SetA(a,8);int_(2)_m=x.MaxA()_;_(3)_x.Sort()_;x.PrintA();cout<<m<<endl;该程序运行结果为:6. 232546556276789090已知一个利用数组实现栈的类定义如下:constintARRAY_SIZE=

23、10;classStackpublic:/初始化栈为空/向栈中压入一个元素/从栈顶弹出一个元素voidInit()top=-1;voidPush(intnewElem);intPop();boolEmpty()判栈空if(top=-1)returntrue;elsereturnfalse;intDepth()returntop+1;/返回栈的深度voidPrint();按照后进先出原则依次输出栈中每个元素,直到栈空为止private:intelemARRAY_SIZE;用于保存栈元素的数组inttop;/指明栈顶元素位置的指针;voidStack:Push(intnewElem)if(_top

24、=ARRAY_SIZE-1)cout<<"栈满!”<<endl;exit(1);中止运行(2) top+或(+top);7. elemtop=(3)_newElem_;已知一个利用数组实现栈的类定义如下:constintARRAY_SIZE=10;classStackpublic:voidInit()top=-1;初始化栈为空voidPush(intnewElem);向栈中压入一个元素intPop();/从栈顶弹出一个元素boolEmpty()判栈空if(top=-1)returntrue;elsereturnfalse;intDepth()returntop

25、+1;返回栈的深度voidPrint();按照后进先出原则依次输出栈中每个元素,直到栈空为止private:intelemARRAY_SIZE;用于保存堆栈元素的数组inttop;指明栈顶元素位置的指针;该类的Pop和Print函数的实现分别如下:(1) _intStack:Pop_if(top=-1)cout<<"栈空!"<<endl;exit(1);中止运行return(2)_elemtop;voidStack:Print()8. while(!Empty()cout<<_(3)_Pop()_<<''cla

26、ssAinta;public:A()a=0;(1)A(intaa):a(aa)定义构造函数,用参数aa初始化数据成员a;main()(2) _A*p_;/定义类A的指针对象pp=newA(5);/用p指向动态对象并初始化为整数5char*a;public:(1)_A()(a=0;_/定义无参构造函数,使a的值为空A(char*aa)(a=(2)_newcharstrlen(aa)+1_;strcpy(a,aa);用aa所指字符串初始化a所指向的动态存储空间(3) _A()deletea定义析构函数,删除a所指向的动态存储空间;classAinta,b;public:A(intaa=0,intb

27、b=0):a(aa),b(bb)/分别用aa和bb对应初始化a和b;main()Ax(5),y(x);/定义类A的对象x并用5初始化,同时定义y并用x初始化(3)_A*p=x_;/定义p指针,使之指向对象xclassAinta,b;public:_A(intaa=0,intbb=0)a=aa;b=bb;_定义构造函数,使参数aa和bb的默认值为0,/在函数体中用aa初始化a,用bb初始化b;main()A*p1,*p2;(2)_p1=newA_;/调用无参构造函数生成由p1指向的动态对象10. _p2=newA(4,5)_;/调用带参构造函数生成由p2指向的动态对象,使a和b成员分别被初始化为

28、4和5#include<iostream.h>#include<stdlib.h>classAint*a;intn;intMaxLen;public:A():a(0),n(0),MaxLen(0)A(int*aa,intnn,intMM)n=nn;MaxLen=MM;if(n>MaxLen)exit(1);(1)a=newintMaxlen;/由a指向长度为MaxLen的动态数组for(inti=0;i<n;i+)ai=aai;A()(deletea;intGetValue(inti)_returnai;_/函数体返回ai的值;voidmain()(intb

29、10=(1,2,3,4,5,6,7,8,9,10;Ar(b,10,10);inti,s=0;for(i=0;i<10;i+)s+=r.GetValue(i);/把r对象的a数据成员中的每个/元素值依次累加到s中cout<<"s="<<s<<endl;11. #include<iostream.h>#include<stdlib.h>classA(int*a;intn;intMaxLen;public:A():a(0),n(0),MaxLen(0)(A(int*aa,intnn,intMM)(n=nn;MaxL

30、en=MM;if(n>MaxLen)exit(1);a=newintMaxLen;(1)for(inti=0;i<n;i+)ai=aai;以i为循环变量把aa数组中每个元素值/传送给a数组的对应元素中A();intGetValue(inti)(returnai;/函数体返回ai的值;AA:A()(deletea;析构函数的类外定义voidmain()(intb10=(1,2,3,4,5,6,7,8,9,10;Ar(b,10,10);inti,s=0;for(i=0;i<10;i+)s+=r.GetValue(i);_;/以i为循环变量,把r对象的a数据成员中的每个元素值依次累

31、加到s中cout<<"s="<<s<<endl;一种类定义如下classGoodsprivate:商品名称商品重量同类商品总重量构造函数chargd_name20;intweight;staticinttotalweight;public:Goods(char*str,intw)(strcpy(gd_name,str);weight=w;totalweight+=weight;Goods()(totalweight-=weight;char*GetN()(1)returngd_name;/返回商品名称intGetW()returnweig

32、ht;(2)_staticint_GetTotal_Weight()/定义静态成员函数返回总重量1. _returntotalweight_;三、写出下列程序的运行结果#include<iostream.h>#include<string.h>classCDchar*a;intb;public:voidInit(char*aa,intbb)a=newcharstrlen(aa)+1;strcpy(a,aa);b=bb;char*Geta()returna;intGetb()returnb;voidOutput()cout<<a<<'

33、9;<<b<<endl;dx;第1题运行结果:abcdeF30sheni/afen95Pressanvkeytocontinuevoidmain()CDdy;dx.Init("abcdef",30);dy.Init("shenyafen”,3*dx.Getb()+5);dx.Output();2. dy.Output();#include<iostream.h>#include<string.h>classCD(char*a;intb;public:voidInit(char*aa,intbb)(a=newchars

34、trlen(aa)+1;strcpy(a,aa);b=bb;char*Geta()(returna;intGetb()(returnb;voidOutput()(cout<<a<<''<<b<<endl;voidmain()(CDdx,dy;chara20;dx.Init("abcdef",30);strcpy(a,dx.Geta();strcat(a,"xyz");dy.Init(a,dx.Getb()+20);dx.Output();dy.Output();第2题运行结果:abedef3

35、0abedefSUPressanykeytocontinue3.#include<iostream.h>classCE(private:inta,b;intgetmax()(return(a>b?a:b);public:intc;voidSetValue(intx1,intx2,intx3)(a=x1;b=x2;c=x3;intGetMax();intCE:GetMax()(intd=getmax();return(d>c?d:c);voidmain()(第3题运行结果:1220Pressant;keytocontinueintx=5,y=12,z=8;CEex,*ep

36、=&ex;ex.SetValue(x,y,z);cout<<ex.GetMax()<<endl;ep->SetValue(x+y,y-z,20);cout<<ep->GetMax()<<endl;#include<iostream.h>classCEprivate:inta,b;intgetmin()return(a<b?a:b);public:intc;voidSetValue(intx1,intx2,intx3)第4题运行结果:2?P>*essanyhej/tocontinuea=x1;b=x2;c

37、=x3;intGetMin();intCE:GetMin()intd=getmin();return(d<c?d:c);voidmain()intx=5,y=12,z=8;CE*ep;ep=newCE;ep->SetValue(x+y,y-z,10);cout<<ep->GetMin()<<endl;CEa=*ep;cout<<a.GetMin()*3+15<<endl;#include<iostream.h>classFranction定义分数类intnume;定义分子intdeno;定义分母public:把*th

38、is化简为最简分数,具体定义在另外文件中实现voidFranSimp();返回两个分数*this和x之和,具体定义在另外文件中实现FranctionFranAdd(constFranction&x);置分数的分子和分母分别0和1voidInitFranction()(nume=0;deno=1;/置分数的分子和分母分别n和dvoidInitFranction(intn,intd)(nume=n;deno=d;/输出一个分数voidFranOutput()cout<<nume<<7'<<deno<<endl;voidmain()Fr

39、anctiona,b,c,d;InitFranction(7,12);InitFranction(-3,8);InitFranction();c=a.FranAdd(b);d=c.FranAdd(a);cout<<"a:"a.FranOutput();cout<<"b:"b.FranOutput();cout<<"c:"c.FranOutput();cout<<"d:"d.FranOutput();第5题答案:a:7/12b:-3/8c:5/24d:19/24#inc

40、lude<iostream.h>classFranction定义分数类intnume;定义分子intdeno;定义分母public:把*this化简为最简分数,具体定义在另外文件中实现voidFranSimp();/返回两个分数*this和x之和,具体定义在另外文件中实现FranctionFranAdd(constFranction&x);/置分数的分子和分母分别0和1voidInitFranction()nume=0;deno=1;/置分数的分子和分母分别n和dvoidInitFranction(intn,intd)nume=n;deno=d;/输出一个分数voidFra

41、nOutput()cout<<nume<<'/'<<deno<<endl;Franctiona,b,c,d;a. InitFranction(6,15);b. InitFranction(3,10);c. InitFranction();c=a.FranAdd(b);d=c.FranAdd(a);cout<<"a:"a.FranOutput();cout<<"b:"b.FranOutput();cout<<"c:"c.FranOutpu

42、t();cout<<"d:"d.FranOutput();第6题答案:a:6/15b:3/10c:7/10d:11/107.#include<iostream.h>#include<string.h>classA(char*a;public:A(char*s)(a=newcharstrlen(s)+1;strcpy(a,s);cout<<a<<endl;A()(deletea;cout<<"Destructor!"<<endl;voidmain()(Ax("xu

43、xiaokai");A*y=newA("weirong");deletey;8.#include<iostream.h>classA(int*a;public:A(intx=0):a(newint(x)(A()(deletea;intgetA()(return*a;voidsetA(intx)(*a=x;第7题运行结果:xuxiaoltaiweirongDestructor!Destructor?Pressan9tocontinu.eH;Ax1,x2(3);A*p=&x2;p->setA(x2.getA()+5);x1.setA(15+x

44、1.getA();cout<<x1.getA()<<''<<x2.getA()<<endl;第8题运行结果:也nykeijtocontinue9.#include<iostream.h>classAinta;public:A(intaa=0):a(aa)cout<<a<<''A()cout<<"Xxk”;voidmain()A*p;Ax3=1,2,3,y=4;cout<<endl;p=newA3;cout<<endl;deletep;

45、cout<<endl;第9题运行结果:L234»kl0:xkXxkXxktxkXxkXxkXxkPressanykeytocontinue10.#include<iostream.h>classAinta,b;public:A()a=b=0;A(intaa,intbb)a=aa;b=bb;intSum()returna+b;int*Mult()int*p=newint(a*b);returnp;voidmain()int*k;Ax(2,3),*p;p=newA(4,5);cout<<x.Sum()<<''<<

46、*(x.Mult()<<endl;第10题运行结果:920Pressanykeytocontinuecout<<p->Sum()<<''<<*(k=p->Mult()<<endl;deletek;11.#include<iostream.h>classA(inta10;intn;public:A(intaa,intnn):n(nn)(for(inti=0;i<n;i+)ai=aai;第11题运行结果:d=800f=40PressanykeytocontinneintGet(inti)(re

47、turnai;intSumA(intn)(ints=0;for(intj=0;j<n;j+)s+=aj;returns;voidmain()(inta=(2,5,8,10,15,20;Ax(a,4);Ay(a,6);intd=1;for(inti=0;i<4;i+)d*=x.Get(i);intf=y.SumA(5);cout<<"d="<<d<<endl;cout<<"f="<<f<<endl;12.#include<iostream.h>classA(in

48、ta,b;public:A(intaa,intbb)(a=aa;b=bb;floatMultip(charop)(switch(op)(case'+':returna+b;case'-':returna-b;case'*':returna*b;case'/':if(b!=0)returnfloat(a)/b;else(cout<<"除数为0!”<<endl;return0;default:cout<<'n'<<op<<”非法运算符!”<&l

49、t;endl;return0;voidmain()(Ax(10,4);chara6="+-*/”;inti=0;while(ai)floatk=x.Multip(ai);if(k!=0)cout<<k<<''i+;cout<<endl;四、程序设计题第12题运行结果:L46402.5,非法运算符,Jressanyke9tocontinue1. 根据下面类中Count函数成员的原型和注释写出它的类外定义。classAA(int*a;intn;intMS;public:voidInitAA(intaa,intnn,intms)(if(n

50、n>ms)cout<<"Error!"<<endl;exit(1);MS=ms;n=nn;a=newintMS;for(inti=0;i<MS;i+)ai=aai;intCount(intx);从数组a的前n个元素中统计出其值等于x的个数并返回。;第1题答案:2. intAA:Count(intx)inti,c=0;for(i=0;i<n;i+)if(ai=x)c+;returnc;根据下面类中Search函数成员的原型和注释写出它的类外定义。classAAint*a;intn;intMS;public:voidInitAA(int

51、aa,intnn,intms)(if(nn>ms)cout<<"Error!"<<endl;exit(1);MS=ms;n=nn;a=newintMS;for(inti=0;i<MS;i+)ai=aai;intSearch(intx);/从数组a的前n个元素中顺序查找值为x的元素,若查找成功则返回元素的下标,否则返回-1。;第2题答案:3. intAA:Search(intx)inti;for(i=0;i<n;i+)if(ai=x)returni;return-1;根据下面类中MaxMin函数成员的原型和注释写出它的类外定义。cla

52、ssAAint*a;intn;intMS;public:voidInitAA(intaa,intnn,intms)if(nn>ms)cout<<"Error!"<<endl;exit(1);MS=ms;n=nn;a=newintMS;for(inti=0;i<MS;i+)ai=aai;intMaxMin(int&x,int&y);/从数组a的前n个元素中求出最大值和最小值,并分别由引用参数x和y带回,/同时若n大于0则返回1,否则返回0。;第3题答案:4. intAA:MaxMin(intx,inty)intmx,my;m

53、x=my=a0;for(inti=1;i<n;i+)if(ai>mx)mx=ai;if(ai<my)my=ai;x=mx;y=my;if(n>0)return1;elsereturn0;根据下面类中Compare函数成员的原型和注释写出它的类外定义。classAAint*a;intn;intMS;public:voidInitAA(intaa,intnn,intms)if(nn>ms)cout<<"Error!"<<endl;exit(1);MS=ms;n=nn;a=newintMS;for(inti=0;i<MS

54、;i+)ai=aai;intCompare(AAb);/比较*this与b的大小,若两者中/的n值相同,并且数组中前n个元素值对应相同,则认为两者相等返回1,否则返回0。;第4题答案:intAA:Compare(AAb)if(n!=b.n)return0;for(inti=0;i<n;i+)if(ai!=b.ai)return0;5. return1;根据下面类中CompareBig函数成员的原型和注释写出它的类外定义。classAAint*a;intn;intMS;public:voidInitAA(intaa,intnn,intms)if(nn>ms)cout<<&

55、quot;Error!"<<endl;exit(1);MS=ms;n=nn;a=newintMS;for(inti=0;i<MS;i+)ai=aai;intCompareBig(AAb);比较*this与b的大小,从前向后按两数组中的对应元素比较,若*this中元素值大则返回1,若b中元素值大则返回-1,若相等则继续比较下一个元素,直到一个数组中无元素比较,此时若两者的n值相同则返回0,否则若*this中的n值大则返回1,若b中的n值大则返回-1。;第5题答案:intAA:CompareBig(AAb)(intk;if(n>b.n)k=b.n;elsek=n;

56、for(inti=0;i<k;i+)if(ai>b.ai)return1;elseif(ai<b.ai)return-1;6. if(k=nk=b.n)return0;elseif(k<n)return1;elsereturn-1;根据下面类中Reverse函数成员的原型和注释写出它的类外定义。classAA(int*a;intn;intMS;public:voidInitAA(intaa,intnn,intms)(if(nn>ms)cout<<"Error!"<<endl;exit(1);MS=ms;n=nn;a=ne

57、wintMS;for(inti=0;i<MS;i+)ai=aai;AA*Reverse();/对于调用该函数的对象,将其a数组中前n个/元素值按相反的次序排列,返回指向该对象的指针。;第6题答案:AA*AA:Reverse()inti,x;for(i=0;i<n/2;i+)x=ai;ai=an-1-i;an-1-i=x;7. returnthis;根据下面类中Reverse1函数成员的原型和注释写出它的类外定义。classAAint*a;intn;intMS;public:voidInitAA(intaa,intnn,intms)(if(nn>ms)cout<<&

58、quot;Error!"<<endl;exit(1);MS=ms;n=nn;a=newintMS;for(inti=0;i<MS;i+)ai=aai;AA*Reverse1();通过动态存储分配得到一个对象,并动态分配/aMS数组空间,要求该对象中的n和MS的值与*this中的/对应成员的值相同,数组元素的值是按照*this中数组元素的相反次序排列得到的,要求该函数返回动态对象的地址。;第7题答案:8. AA*AA:Reverse1()AA*px=newAA;px->n=n;px->MS=MS;px->a=newintMS;for(inti=0;i<n;i+)px->an-1-i=ai;

温馨提示

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

评论

0/150

提交评论