就业数据资源平台
当前位置:首页 > C语言程序设计
计算机等级考试二级C语言试题及答案5

填空题
  请补充main函数,该函数的功能是:求1=2!+3!+…+N!的和。
  例如,1+2!+3!+…+5!的和为153。
  仅在横线上所编写的若干表达式或语句,勿3改动函数中的其他任何内容。
  #include
  main()
  {
  int i, n;
  long s = 0, t = 1;
  printf("\nInput n:\n");
  scanf("%d", ___1___);
  for (i=1; i<=n; i++)
  {
  t = ___2___;
  s = ___3___;
  }
  printf("1!+2!+3!...+%d!=%ld\n", n, s);
  }
  参考答案:
  填空题

  第一处空:&n
  第二处空:t*i或i*t
  第三处空:s+t
改错题
  下列给定程序中函数fun的功能是:输出M行M列正方阵,然后求两条对角线上各元素之和,返回此和数。
  请改正程序的错误,使它S能得出正确的结果。
  注意;不要改动main函数,不得增行或删行,也不得更改程序的结构!
  #include
  #include
  #define M 5
  /********found********/
  int fun(int m, int xx[][])
  {
  int i, j, sum = 0;
  printf("\nThe %d x %d matrix:\n", M, M);
  for (i=0; i  {
  /********found********/
  for (j=0; j  printf("O", xx[i][j]);
  printf("\n");
  }
  for (i=0; i  sum += xx[i][i]+xx[i][m-i-1];
  if (m%2 != 0)
  sum -= xx[m/2][m/2];
  return(sum);
  }
  main()
  {
  int aa[M][M] = {{1, 2, 3, 4, 5}, {4, 3, 2, 1, 0},
  {6, 7, 8, 9, 0}, {9, 8, 7, 6, 5}, {3, 4, 5, 6, 7}};
  printf("\nThe sum of all elements on 2 diagnal is %d.", fun(M, aa));
  }
  参考答案:
  改错题
  第一处:int fun(intm,intxx[][])应改为int fun(int m,int xx[][M])
  第二处:printf(“M’,xx[i][j]);应改为printf(‘M”,xx[i][j]);
编程题
  请编写函数fun,该函数的功能是;将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。一维数组中的个数存放在形参n所指的存储单元中。
  例如,若二维数组中的数据为:
  33 33 33 33
  44 44 44 44
  55 55 55 55
  则一维数组中的内容应是:
  33 44 55 33 44 55 33 44 55 33 44 55
  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所的若干语句。
  #include
  void fun(int (*s)[10], int *b, int *n, int mm, int nn)
  {
   } 来源:考试大网
   main()
  {
  int w[10][10] = {{33,33,33,33},{44,44,44,44},{55,55,55,55}}, i, j ;
  int a[100] = {0}, n = 0 ;
  FILE *out;
  printf("The matrix:\n") ;
  for(i = 0 ; i < 3 ; i++)
  {
  for(j = 0 ; j < 4 ; j++)
  printf("=",w[i][j]) ;
  printf("\n") ;
  }
  fun(w, a, &n, 3, 4) ;
  out=fopen ("out.dat", "w");
  printf("The A array:\n") ;
  for(i = 0 ; i < n ; i++)
  {
  printf("=",a[i]);
  fprintf(out, "%d\n",a[i]);
  }
  printf("\n\n") ;
  fclose (out );}
  参考答案:
  编程题
  void fun(int (*s)[10],int *b,int*n,int mm,int nn)
  {
  int I,j;
  for(j=0;j  for(i=0;i  {
  b[*n]=*(*(s+i)+j);
  *n=*n+1;
  }
  }
就业数据资源平台