数组 ·36·
}
main() {
int x[N][M]={1,5,7,4,2,6,4,3,8,2,3,1}; 【3】 ; }
17.下面函数的功能是:求x的y次方,请填空。
double fun( double x, int y) { int i; double z;
for(i=1, z=x; i 18.若已定义:int a[10], i;,以下fun函数的功能是:在第一个循环中给前10个数组 元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1。请填空。 fun( int a[ ]) { int i; for(i=1; i<=10; i++) 【1】=i; for(i=0; i<5; i++) 【2】=a[i]; } 19.下面函数的功能是计算s?1?111????,请填空。 1*21*2*31*2*3*4*?*ndouble fun(int n) { double s=0.0,fac=1.0; int i; for(i=1,i<=n;i++) { fac=fac【1】; s=s+fac; } return s; } 20.下面pi函数的功能是,根据以下公式返回满足精度e要求的p的值。根据以下算法补 足所缺语句。 数组 ·37· p?2*(1?11*21*2*31*2*3*?*n?????) 1*31*3*51*3*5*71*3*5*7*??2n?1? double pi(double eps) { double s=0.0,t=1.0; int n; for(【1】 ;t>eps;n++) { s+=t; t=n*t/(2*n+1); } return(2.0* 【2】 ); } 21.读下面的程序,填空完善程序。 main() { int a,b,c; scanf(\【1】 ); c= 【2】(a,b); printf(\} int max(x,y) 【3】 ; { int z; if(x>y) z=x; else z=y; 【4】 ; } 22.下面程序根据对x的输入,求1到x的累加和。 float fun(int n) { int i; float c; 【1】 ; for(i=1;i<=n;i++) c+=i; 【2】 ; } main() 数组 ·38· { int x; scanf(\【3】 ); printf(\} 23.分别计算并输出1!,2!,3!,4!和5!。 main() { int i; for(i=1;i<=5;i++) printf(\【1】 ); } int fac(int n) { 【2】 f=1; f*=n; return(f); } 24.求出数组中的最大、最小元素值以及所有元素的均值。 【1】 ; float average(int n,float array[]) { int i; float sum; max=min=sum= 【2】 ; for(i=1;i if(maxarray[i]) min=array[i]; } return(sum/n); } main() { int i; float aver,score[10]; printf(\ for(i=0;i<10;i++) scanf(\【3】 ); aver=average(10,score); printf(\} 数组 ·39· 25.下面程序的功能是找出三个字符串中最大串,填空完善程序。 【1】 #include int i; char string[20],str[3][20]; for(i=0;i<3;i++) gets( 【2】 ); if(strcmp(str[0],str[1])>0) strcpy(string,str[0]); else strcpy(string,str[1]); if(strcmp(str[2],string)> 【3】 ) strcpy(string,str[2]); printf(\} 26.本程序的函数ver是使输入的字符串按反序存放,在主函数中输入和输出字符串。 main() { char str[100]; scanf(\ver(str); printf(\} ver( 【1】 ) { char t; int i,j; for(i=0,j=strlen(str);i 27.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。 #define N 10 char str[N]; main() { int i,flag; for(flag=1;flag==1;) { scanf(\ flag=0; printf(\} sort( 【1】 ); for(i=0;i 数组 ·40· } sort(char str[N]) { int i,j; char t; for(j=1;j for(i=0;(i {t=str[i]; 【2】 ; 【3】 ;} } 28.用选择法对数组进行由小到大排序。 void sort(n,array) 【1】 ; { int i,j,k,t; for(i=0;i for( 【2】 ;j if(array[k]>array[j]) k=j; t=array[i]; array[i]=array[k]; array[k]=t; } } main() { int i,a[10]; printf(\ for(i=0;i<10;i++) scanf(\ 【3】 ; printf(\ for(i=0;i<10;i++) printf(\} 29.用递归方法求n!。 float fac(int n) { float f; if(n<0) printf(\else if( 【1】 ) f=1;