完善程序(2)

  • 格式:doc
  • 大小:48.00 KB
  • 文档页数:6

完善程序 老梁出品 - 1 - 一.已知数组m存放了如下的2×3矩阵: 4 5 6 1 2 3 请以转置的方式存到数组n中,使程序打印出如下的内容: 4 1 5 2 6 3 共有2处需要完善,分别被标识为(1),(2)。作题时请去掉这两个标识,在相应位置上填写适当内容,其它部分不得改动。 #include "stdio.h" void main() { int m[2][3]={{4,5,6},{1,2,3}}; int n[3][2],i,j; for(i=0;i<=1;i++) for(j=0;j<=2;j++) (1) ; for(i=0;i (2) 2;i++) { for(j=0;j<=1;j++) printf("%5d",n[i][j]); printf("\n"); } } 答案:#include "stdio.h" void main() { int m[2][3]={{4,5,6},{1,2,3}}; int n[3][2],i,j; for(i=0;i<=1;i++) for(j=0;j<=2;j++) n[j][i]=m[i][j]; for(i=0;i<=2;i++) { for(j=0;j<=1;j++) printf("%5d",n[i][j]); printf("\n"); } } 二.给定程序中fun函数的功能是:求出2!,4!,6!......k!(k是小于10的偶数)放在一维数组a中传回函数。例如:若k=4,则应输出: 2.00000 24.00000 共有2处需要完善,分别被标识为(1),(2)。作题时请去掉这两个标识,在相应位置上填写适当内容,其它部分不得改动。 #include #define N 5 void fun( int k, double a[ ] ) { int i,j,n=0 ; double y = 1.0; for (i=2; i<=k; i++,i++) { y=1.0; for(j=1;j<=i;j++) (1); a[n++] = y; } } void main() { int k = 4, j; double aa[N]; fun( (2) ); for(j=0; j<=k/2;j++) printf ("%lf ",aa[j]); printf ("\n"); } 答案:#include #define N 5 void fun( int k, double a[ ] ) { int i,j,n=0 ; double y = 1.0; for (i=2; i<=k; i++,i++) { y=1.0; for(j=1;j<=i;j++) y*=j; a[n++] = y; } } void main() { int k = 4, j; double aa[N]; fun(k,aa); for(j=0; j<=k/2;j++) printf ("%lf ",aa[j]); 完善程序 老梁出品 - 2 - printf ("\n"); } 三.求一个二维数组对角线元素之和。例如,对于存放了 9 8 7 6 5 4 3 2 1 的数组,对角线元素之和应为:9+5+1+3+7=25。 共有2处需要完善,分别被标识为(1),(2)。作题时请去掉这两个标识,在相应位置上填写适当内容,其它部分不得改动。 #include "stdio.h" main() { int b[3][3],s=0,i,j; for(i=0;i<=2;i++) for(j=0;j<=2;j++) scanf("%d", (1) ); for(i=0;i<=2;i++) for(j=0;j<=2;j++) if( (2)|| i+j==2) s=s+b[i][j]; printf("array a:\n"); for(i=0;i<=2;i++) { for(j=0;j<=2;j++) printf("%5d",b[i][j]); printf("\n"); } printf("%d\n",s); } 答案:#include "stdio.h" main() { int b[3][3],s=0,i,j; for(i=0;i<=2;i++) for(j=0;j<=2;j++) scanf("%d",&b[i][j]); for(i=0;i<=2;i++) for(j=0;j<=2;j++) if(i==j|| i+j==2) s=s+b[i][j]; printf("array a:\n"); for(i=0;i<=2;i++) { for(j=0;j<=2;j++) printf("%5d",b[i][j]); printf("\n"); } printf("%d\n",s); } 四.求 1+2+3+...+100 之和。 共有2处需要完善,分别被标识为(1),(2)。作题时请去掉这两个标识,在相应位置上填写适当内容,其它部分不得改动。 #include "stdio.h" main() { int i,sum; (1); for (i=1;i<=100;i++) (2); printf("\nsum=%d",sum); } 答案:#include "stdio.h" main() { int i,sum; sum=0; for (i=1;i<=100;i++) sum+=i; printf("\nsum=%d",sum); } 五.下面的程序功能是:求序列2/1,3/2,5/3,8/5,13/8,21/13„前m项的和。例如,若m=5,则应输出: 8.391667 。 共有2处需要完善,分别被标识为(1),(2)。作题时请去掉这两个标识,在相应位置上填写适当内容,其它部分不得改动 #include double fun(int n) { int a,b,c, ; double s; s = 0.0; a = 2; b = 1; for ( k=1; k<=n; k++) { s = s +1.0*a / b; c = a; (1) ; b = c; } return ( (2) ); }

main( ) 完善程序 老梁出品 - 3 - { int m = 5; printf( "\n%lf\n", fun(m) ); } 答案:#include double fun(int n) { int a,b,c,k; double s; s = 0.0; a = 2; b = 1; for ( k=1; k<=n; k++) { s = s +1.0*a / b; c = a; a=c+b;b=c; } return ( s); } main( ) { int m = 5; printf( "\n%lf\n", fun(m) ); } 六.给定程序中函数fun的功能是:根据整数形参n,计算如下公式的值: y=1+1/(2*2*2)+1/(3*3*3)+1/(4*4*4)+...+1/(n*n*n) 共有2处需要完善,分别被标识为(1),(2)。作题时请去掉这两个标识,在相应位置上填写适当内容,其它部分不得改动。 #include double fun ( int n ) { double y = 1; int i; for(i = (1) ; i <= n; i++ ) y += 1.0 / (i*i); return( y ); } void main( ) { int n=5; printf( "\n%lf\n", (2) ); } 答案:#include double fun ( int n ) { double y = 1; int i; for(i = 2; i <= n; i++ ) y += 1.0 / (i*i*i); return( y ); }

void main( ) { int n=5; printf( "\n%lf\n",fun(n)); } 七。fun函数的功能是判断一个整数是否是素数,如果是素数,返回1,否则返回0。主函数中输入一个数,如果是素数则输出yes,否则输出no。 共有2处需要完善,分别被标识为(1),(2)。作题时请去掉这两个标识,在相应位置上填写适当内容,其它部分不得改动。 #include int fun(int m) { int k=2; while(k<=m && (m%k)!=0) (1); if (m == k ) return(1); else return( (2) ); } main() { int n; printf("\nPlease enter n: "); scanf("%d", &n ); if(fun(n)) printf("\nYES!\n"); else printf("\nNO!\n"); } 答案:#include int fun(int m) { int k=2; while(k<=m && (m%k)!=0) k++; if (m == k ) return(1); else return(0); }

main()