编程题复习资料

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

一、函数的定义与调用(1)分别用冒泡法(升序)、选择法(降序)、擂台法(升序)编写三个对一维数组进行排序的函数,函数名为sort1()、sort2()、sort3()。再定义一个输出数组元素值的函数print()。在主函数中定义一维整型数组a[N](N=10),用键盘输入10个整数给a[N]数组。依次调用sort1()、print()、sort2()、print()、sort3()、print(),进行升序、降序、升序的操作,并输出每次排序后的结果。输入十个实验数据:10,25,90,80,70,35,65,40,55,5(2)编写一个函数px(floatx,intn)用递归的方法求下列级数前n项的和s。nnxxxxxxxs165432)1(在主函数中定义变量x与n,用键盘输入x与n的值,调用px()函数计算并返回级数前n项和s。最后输出s的值。输入实验数据:x=1.2n=10解答参考(1)#includeiostream.h#includeiomanip.h#defineN10voidprint(inta[]){inti;for(i=0;iN;i++)coutsetw(5)a[i];coutendl;}voidsort1(inta[]){inti,j,temp;for(i=0;iN-1;i++)for(j=0;j=N-1-i;j++)if(a[j]a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}voidsort2(inta[]){inti,j,temp;for(i=0;iN-1;i++)for(j=i+1;jN;j++)if(a[i]a[j]){temp=a[i];a[i]=a[j];a[j]=temp;}}voidsort3(inta[]){inti,j,k,temp;for(i=0;iN-1;i++){k=i;for(j=i+1;jN;j++)if(a[k]a[j])k=j;if(ki){temp=a[i];a[i]=a[k];a[k]=temp;}}}voidmain(void){inti;intb[10];cout请输入10个数:endl;for(i=0;i10;i++)cinb[i];sort1(b);cout输出排好序的10个数:endl;print(b);sort2(b);cout输出排好序的10个数:endl;print(b);sort3(b);cout输出排好序的10个数:endl;print(b);}程序运行结果:请输入10个数:269115612532221419输出排好序的10个数:2569101114222532输出排好序的10个数:3225221411109652输出排好序的10个数:2569101114222532(2)①递归公式为:x;n=1px(n)=px(n-1)+(-1)n-1xn;n1②递归结束条件:n=1③递归约束条件:n1#includeiostream.h#includemath.hvoidmain(void){floatx;intn;floatpx(float,int);coutpleaseinputx,n:;cinxn;coutpx=px(x,n)endl;}floatpx(floatx,intn){floatp;if(n==1)p=x;elsep=px(x,n-1)-pow(-1,n)*pow(x,n);returnp;}程序运行结果:pleaseinputx,n:24px=-10二、类与对象的定义与使用(1)定义一个复数类Complex,复数的实部Real与虚部Image定义为私有数据成员。用复数类定义复数对象c1、c2、c3,用默认构造函数将c1初始化为c1=20+40i,将c2初始化为c2=0+0i,用拷贝构造函数将c3初始化为c3=20+40i。用公有成员函数Dispaly()显示复数c1、c2与c3的内容。(2)定义一个学生成绩类Score,描述学生成绩的私有数据成员为学号(No)、姓名(Name[8])、数学(Math)、物理(Phi)、数据结构(Data)、平均分(ave)。定义能输入学生成绩的公有成员函数Write(),能计算学生平均分的公有成员函数Average(),能显示学生成绩的公有成员函数Display()。在主函数中用Score类定义学生成绩对象数组s[3]。用Write()输入学生成绩,用Average()计算每个学生的平均分,最后用Display()显示每个学生的成绩。实验数据:NoNameMathPhiDataAve1001Zhou8070601002Chen9080851003Wang707589(3)定义一个矩形类Rectangle,矩形的左上角(Left,Top)与右下角坐标(Right,Bottom)定义为保护数据成员。用公有成员函数Diagonal()计算出矩形对角线的长度,公有成员函数Show()显示矩形左上角与右下角坐标及对角线长度。在主函数中用new运算符动态建立矩形对象r1,初值为(10,10,20,20)。然后调用Show()显示矩形左上角与右下角坐标及对角线长度。最后用delete运算符回收为矩形动态分配的存储空间。解答参考(1)#includeiostream.hclassComplex{private:floatReal,Image;public:Complex(floatr,floati)//定义有参构造函数{Real=r;Image=i;}Complex(Complex&c)//定义拷贝构造函数{Real=c.Real;Image=c.Image;}Complex()//定义无参构造函数{Real=0;Image=0;}voidDisplay(){coutReal+Imagei'\n';}};voidmain(void){Complexc1(10,20),c2,c3(c1);c1.Display();c2.Display();c3.Display();}程序运行结果:10+20i0+0i10+20i(2)#includeiostream.h#includestring.hclassScore{private:intNo;charName[8];floatMath,Phi,Data,Ave;public:voidWrite(intno,charname[],floatmath,floatphi,floatdata){No=no;strcpy(Name,name);Math=math;Phi=phi;Data=data;}voidAverage(void){Ave=(Math+Phi+Data)/3;}voidDisplay(){coutNo'\t'Name'\t'Math'\t';coutPhi'\t'Data'\t'Ave'\n';}};voidmain(void){inti,no;charname[8];floatmath,phi,data;Scores[3];coutInput3studentdata'\n';for(i=0;i3;i++){cinnonamemathphidata;s[i].Write(no,name,math,phi,data);s[i].Average();}cout学号姓名数学物理数据结构平均分\n;for(i=0;i3;i++)s[i].Display();}程序运行结果:Input3studentdata1001Zhou8070601002Chen9080851003Wang707589学号姓名数学物理数据结构平均分1001Zhou807060701002Chen908085851003Wang70758978(3)#includeiostream.h#includemath.hclassRectangle{protected:floatLeft,Top;floatRight,Bottom;public:Rectangle(floatl,floatt,floatr,floatb){Left=l;Top=t;Right=r;Bottom=b;}Rectangle(Rectangle&R){Left=0;Top=0;Right=R.Right;Bottom=R.Bottom;}doubleDiagonal(){returnsqrt((Left-Right)*(Left-Right)+(Top-Bottom)*(Top-Bottom));}voidShow(){cout(Left,Top)=(Left,Top)'\n';cout(Right,Bottom)=(Right,Bottom)'\n';coutDiagonal=Diagonal()'\n';}};voidmain(void){Rectangle*r1=newRectangle(10,10,20,20);r1-Show();deleter1;}程序运行结果:(Left,Top)=(10,10)(Right,Bottom)=(20,20)Diagonal=14.1421三、类的继承(1)定义描述职工档案的类Archives,私有数据成员为职工号(No)、姓名(Name[8])、性别(Sex)、年龄(Age)。成员函数有:构造函数、显示职工信息的函数Show()。再由职工档案类派生出职工工资类Laborage,在职工工资类Laborage中新增数据成员:应发工资(SSalary)、社保金(Security)、实发工资(Fsalary),其成员函数有:构造函数,计算实发工资的函数Count(),计算公式为:实发工资=应发工资-社保金。显示职工档案及工资的函数Display()。在主函数中用Laborage类定义职工对象lab,并赋初始值(1001,”Cheng”,’M’,21,2000,100),然后显示职工档案与工资。(2)定义描述矩形的类Rectangle,其数据成员为矩形的中心坐标(X,Y)、长(Length)与宽(Width)。成员函数为计算矩形面积的函数Area()与构造函数。再定义描述圆的类Circle,其数据成员为圆的中心坐标(X,Y)与半径R,其成员函数为构造函数。再由矩形类与圆类多重派生出长方体类Cuboid,其数据成员为长方体的高(High)与体积(Volume)。成员函数为:构造函数,计算体积的函数Vol(),显示矩形坐标(X,Y)、长方体的长、宽、高与体积的函数Show()。主函数中用长方体类定义长方体对象cub,并赋初始值(10,10,10,20,30,30,10,10),最后显示长方体的矩形坐标(X,Y)与长方体的长、宽、高与体积。(3)定义个人信息类Person,其数据成员有姓名、性别、出生年月。并以Person为基类定义一个学生的派生类Student,增加描述学生的信息:班级、学号、专业、英语成绩和数学成绩。再由基类Person定义一个职工的派生类Employee,增加描述职工的信息:部门、职务、工资。编写程序实现学生与职工信息的输入与输出。解答参考(1)#includeiostream.h#includestring.hclassArchives{private:intNo;charName[8];charSex;intAge;public:Archives(intn,charname[],chars,inta){No=n;strcpy(Name,name);Sex=s;Age=a;}voidShow(void){coutNo=No'\t'Name=Name'\t'Sex=Sex'\t

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功