1、编程题复习资料共享知识 分享快乐 一、函数的定义与调用 (1)分别用冒泡法(升序)、选择法(降序)、擂台法(升序)编写三个对一维数组进行排序的函数,函数名为sort1()、sort2()、sort3()。再定义一个输出数组元素值的函数print()。在主函数中定义一维整型数组aN(N=10),用键盘输入10个整数给aN数组。依次调用sort1()、print()、sort2()、print()、sort3()、print(),进行升序、降序、升序的操作,并输出每次排序后的结果。 输入十个实验数据:10,25,90,80,70,35,65,40,55,5 (2)编写一个函数px(float x,
2、int n)用递归的方法求下列级数前n项的和s。 23456n?1n x)x?x1? s?x?x?x?x(? 在主函数中定义变量x与n,用键盘输入x与n的值,调用px()函数计算并返回级数前n项和s。最后输出s的值。 输入实验数据:x=1.2 n=10 解答参考 (1) #include #include #define N 10 void print(int a) int i; for(i=0;iN;i+) coutsetw(5)ai; coutendl; void sort1( int a ) int i,j,temp; for(i=0;iN-1;i+) for(j=0;jaj+1) te
3、mp=aj; aj=aj+1; aj+1=temp; void sort2( int a ) int i,j,temp; for(i=0;iN-1;i+) for(j=i+1; jN;j+) if (aiaj) temp=ai; ai=aj; aj=temp; 页眉内容 分享快乐 共享知识 void sort3( int a ) int i,j,k,temp; for(i=0;iN-1;i+) k=i; for(j=i+1; jaj) k=j; if if (ki) temp=ai; ai=ak; ak=temp; void main(void) int i; int b10; :endl;
4、10个数潣瑵?请输入for(i=0;ibi; sort1(b); :endl; 10个数潣瑵?输出排好序的print(b); sort2(b); :endl; 10个数潣瑵?输出排好序的print(b); sort3(b); :1 页眉内容共享知识 分享快乐 递归结束条件: n=1 递归约束条件: n1 # include # include void main(void) float x; int n; float px(float,int); coutxn; coutpx=px(x,n)endl; float px(float x,int n) float p; if (n=1) p=x;
5、 else p=px(x,n-1)-pow(-1,n)*pow(x,n); return p; 程序运行结果: please input x,n:2 4 px=-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)、姓名
6、(Name8)、数学(Math)、物理(Phi)、数据结构(Data)、平均分(ave)。定义能输入学生成绩的公有成员函数Write(),能计算学生平均分的公有成员函数Average(),能显示学生成绩的公有成员函数Display()。在主函数中用Score类定义学生成绩对象数组s3。用Write()输入学生成绩,用Average()计算每个学生的平均分,最后用Display()显示每个学生的成绩。 实验数据: No Name Math Phi Data Ave 1001 Zhou 80 70 60 1002 Chen 90 80 85 1003 Wang 70 75 89 (3)定义一个矩形
7、类Rectangle,矩形的左上角(Left,Top)与右下角坐标(Right,Bottom)定义为保护数据成员。用公有成员函数Diagonal()计算出矩形对角线的长度,公有成员函数Show()显示矩形左上角与右下角坐标及对角线长度。在主函数中用new运算符动态建立矩形对象r1,初值为(10,10,20,20)。然后调用Show()显示矩形左上角与右下角坐标及对 页眉内容共享知识 分享快乐 角线长度。最后用delete运算符回收为矩形动态分配的存储空间。 解答参考 (1) # include class Complex private: float Real,Image; public: C
8、omplex(float r,float i) /定义有参构造函数 Real=r; Image=i; Complex(Complex &c) /定义拷贝构造函数 Real=c.Real; Image=c.Image; Complex() /定义无参构造函数 Real=0; Image=0; void Display() coutReal+Imagein; ; void main(void) Complex c1(10,20),c2,c3(c1); c1.Display(); c2.Display(); c3.Display(); 程序运行结果: 10+20i 0+0i 10+20i (2) #
9、 include # include class Score private: int No; char Name8; float Math,Phi,Data,Ave; public: void Write(int no,char name,float math,float phi,float data) No=no; 页眉内容共享知识 分享快乐 strcpy(Name,name); Math=math; Phi=phi; Data=data; void Average(void) Ave=(Math+Phi+Data)/3; void Display() coutNotNametMatht;
10、 coutPhitDatatAven; ; void main(void) int i,no; char name8; float math,phi,data; Score s3; coutInput 3 student datan; for (i=0;inonamemathphidata; si.Write(no,name,math,phi,data); si.Average(); 潣瑵?学号 姓名 数学 物理 数据结构 n; 平均分for (i=0;i3;i+) si.Display(); 程序运行结果:Input 3 student data 1001 Zhou 80 70 60 100
11、2 Chen 90 80 85 1003 Wang 70 75 89 平均分 数据结构 学号姓名 数学物理1001 Zhou 80 70 60 70 1002 Chen 90 80 85 85 1003 Wang 70 75 89 78 (3) # include # include class Rectangle protected: float Left,Top; float Right,Bottom; 页眉内容共享知识 分享快乐 public: Rectangle(float l,float t, float r,float b) Left=l;Top=t; Right=r;Bottom=b; Rectangle(Rectangle & R) Left=0;Top=0; Right=R.Right;Bottom=R.Bottom; double Diagonal() return sqrt(Left-Right)* (Left-Right)+(Top-Bottom)*(Top-Bottom); void Show() cout(Left,Top)=(Left,Top)n; cout(Right,Bottom)=(Right,Bottom)n; cout Diagonal= Diagonal()Show(); delete r1; 程序运行结果: (Left
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1