您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 《面向对象程序设计c》综合复习题集及答案详解
《面向对象程序设计》综合复习题集四、程序填充1.斐波那契数列的第1和第2个数分别为0和1,从第三个数开始,每个数等于其前两个数之和。求斐波那契数列中的前20个数,要求每行输出5个数。#includeiostream.hvoidmain(){intf,f1,f2,i;cout”斐波那契数列:\n”;f1=0;f2=1;coutsetw(6)f1setw(6)f2;for(i=3;i=20;i++){f=______(1)______;coutsetw(6)f;if(_____(2)______)coutendl;f1=f2;f2=____(3)_______;}coutendl;}(1)(2)(3)2.计算1011!)1(iiiix的值。#includeiostream.hvoidmain(){doublex,p1=1,p2=1,s=0;inti,j=1;cout输入x的值:;cinx;for(i=1;i=10;i++){p1*=___(1)_____;p2*=____(2)____;s+=j*p1/p2;//j的值为(-1)i+1j=____(3)____;}coutsendl;}(1)(2)(3)17.假定有定义为“structNODE{intdata;NODE*next;};”,下面算法根据table数组中的n个元素建立一个表头指针为L的链表,链表中结点值的顺序与数组元素值的顺序相同。voidf5(NODE*&L,inttable[],intn){if(n=0){L=NULL;return;}L=newNODE;//生成附加的头结点inti=0;NODE*p=L;while(___(1)___){p=p-next=___(2)___;p-data=___(3)___;i++;}p-next=NULL;//把最后一个结点的指针域置空p=L;L=L-next;//使L指向链表的第一个带值的结点deletep;}(1)(2)(3)22.已知一维数组类ARRAY的定义如下,构造函数的作用是把参数n的值赋给s,给v动态分配长度为n的数组空间,接着利用数组参数a初始化v所指向的数组。classARRAY{int*v;//指向存放数组数据的空间ints;//数组大小public:ARRAY(inta[],intn);~ARRAY(){delete[]v;}intsize(){returns;}int&operator[](intn);};___(1)___ARRAY(inta[],intn){if(n=0){v=NULL;s=0;return;}s=n;v=___(2)___;for(inti=0;in;i++)___(3)___;}(1)(2)(3)24.已知一个类的定义如下:#includeiostream.hclassAA{inta[10];intn;public:voidSetA(intaa[],intnn);//用数组aa初始化数据成员a,//用nn初始化数据成员nintMaxA();//从数组a中前n个元素中查找最大值voidSortA();//采用选择排序的方法对数组a中前n个元素//进行从小到大排序voidInsertA();//采用插入排序的方法对数组a中前n个元素进行从小到大排序voidPrintA();//依次输出数组a中的前n个元素};该类中MaxA()函数的实现如下,请在标号位置补充适当的内容。int____(1)_____{intx=a[0];for(inti=1;in;i++)if(a[i]x)___(2)___;___(3)___;}(1)(2)(3)25.已知一个类的定义如下:#includeiostream.hclassAA{inta[10];intn;public:voidSetA(intaa[],intnn);//用数组aa初始化数据成员a,//用nn初始化数据成员nintMaxA();//从数组a中前n个元素中查找最大值voidSortA();//采用选择排序的方法对数组a中前n个元素//进行从小到大排序voidInsertA();//采用插入排序的方法对数组a中前n个元素进行从小到大排序voidPrintA();//依次输出数组a中的前n个元素};voidAA::SortA(){inti,j;for(i=0;___(1)___;i++){intx=a[i],k=i;for(j=i+1;jn;j++)if(a[j]x)___(2)___a[k]=a[i];___(3)___;}}(1)(2)(3)26.已知一个类的定义如下:#includeiostream.hclassAA{inta[10];intn;public:voidSetA(intaa[],intnn);//用数组aa初始化数据成员a,//用nn初始化数据成员nintMaxA();//从数组a中前n个元素中查找最大值voidSortA();//采用选择排序的方法对数组a中前n个元素//进行从小到大排序voidInsertA();//采用插入排序的方法对数组a中前n个元素进行从小到大排序voidPrintA();//依次输出数组a中的前n个元素};void___(1)___{inti,j;for(i=1;in;i++){intx=a[i];for(j=i-1;j=0;j--)if(xa[j])___(2)___;else___(3)___;a[j+1]=x;}}(1)(2)(3)27.已知一个类的定义如下:#includeiostream.hclassAA{inta[10];intn;public:voidSetA(intaa[],intnn);//用数组aa初始化数据成员a,//用nn初始化数据成员nintMaxA();//从数组a中前n个元素中查找最大值voidSortA();//采用选择排序的方法对数组a中前n个元素//进行从小到大排序voidInsertA();//采用插入排序的方法对数组a中前n个元素进行从小到大排序voidPrintA();//依次输出数组a中的前n个元素//最后输出一个换行};使用该类的主函数如下:voidmain(){inta[10]={23,78,46,55,62,76,90,25,38,42};AAx;___(1)___;intm=___(2)___;___(3)___;coutmendl;}该程序运行结果为:23784655627678(1)(2)(3)28.已知一个类的定义如下:#includeiostream.hclassAA{inta[10];intn;public:voidSetA(intaa[],intnn);//用数组aa初始化数据成员a,//用nn初始化数据成员nintMaxA();//从数组a中前n个元素中查找最大值voidSortA();//采用选择排序的方法对数组a中前n个元素//进行从小到大排序voidPrintA();//依次输出数组a中的前n个元素,//最后输出一个换行};使用该类的主函数如下:voidmain(){inta[10]={23,78,46,55,62,76,90,25,38,42};___(1)___;x.SetA(a,8);int___(2)___;___(3)___;x.PrintA();coutmendl;}该程序运行结果为:232546556276789090(1)(2)(3)29.已知一个利用数组实现栈的类定义如下:constintARRAY_SIZE=10;classStack{public:voidInit(){top=-1;}//初始化栈为空voidPush(intnewElem);//向栈中压入一个元素intPop();//从栈顶弹出一个元素boolEmpty(){//判栈空if(top==-1)returntrue;elsereturnfalse;}intDepth(){returntop+1;}//返回栈的深度voidPrint();//按照后进先出原则依次输出栈中每个元素,直到栈空为止private:intelem[ARRAY_SIZE];//用于保存栈元素的数组inttop;//指明栈顶元素位置的指针};voidStack::Push(intnewElem){if(___(1)___){cout栈满!endl;exit(1);//中止运行}___(2)___;elem[top]=___(3)___;}(1)(2)(3)30.已知一个利用数组实现栈的类定义如下:constintARRAY_SIZE=10;classStack{public:voidInit(){top=-1;}//初始化栈为空voidPush(intnewElem);//向栈中压入一个元素intPop();//从栈顶弹出一个元素boolEmpty(){//判栈空if(top==-1)returntrue;elsereturnfalse;}intDepth(){returntop+1;}//返回栈的深度voidPrint();//按照后进先出原则依次输出栈中每个元素,直到栈空为止private:intelem[ARRAY_SIZE];//用于保存堆栈元素的数组inttop;//指明栈顶元素位置的指针};该类的Pop和Print函数的实现分别如下:___(1)___{if(top==-1){cout栈空!endl;exit(1);//中止运行}return___(2)___;}voidStack::Print(){while(!Empty())cout___(3)___'';}(1)(2)(3)31.classA{inta;public:A(){a=0;}___(1)___{}//定义构造函数,用参数aa初始化数据成员a};main(){___(2)___;//定义类A的指针对象p___(3)__;//用p指向动态对象并初始化为整数5}(1)(2)(3)32.classA{char*a;public:___(1)___//定义无参构造函数,使a的值为空A(char*aa){a=___(2)___;strcpy(a,aa);//用aa所指字符串初始化a所指向的动态存储空间}___(3)___//定义析构函数,删除a所指向的动态存储空间};(1)(2)(3)33.classA{inta,b;public:A(intaa=0,intbb=0)___(1)___{}//分别用aa和bb对应初始化a和b};main(){___(2)___;//定义类A的对象x并用5初始化,同时定义y并用x初始化___(3)___;//定义p指针,使之指向对象x}(1)(2)(3)34.classA{inta,b;public:___(1)___//定义构造函数,使参数aa和bb的默认值为0,//在函数体中用aa初始化a,用bb初始化b};main(){A*p1,*p2;___(2)___;//调用无参构造函数生成由p1指向的动态对象___(3)___;//调用带参构造函数生成由p2指向的动态对象,//使a和b成员分别被初始化为4和5}(1)(2)(3)35.#includeiostream.h#includestdlib.hclassA{int*a;intn;intMaxLen;public:A():a(0),n(0),MaxLen(0){}A(int*aa,intnn,intMM){n=nn;MaxLen=MM;if(nMaxLen)exit(1);___(1)___;//由a指向长度为MaxLen的动态数组for(inti=0;in;i++)a[i]=aa[i];}~A(){delete[]a;}intGetValue(inti)___(2)___//函数体返回a[i]的值};voidmain(){intb[1
本文标题:《面向对象程序设计c》综合复习题集及答案详解
链接地址:https://www.777doc.com/doc-5635600 .html