当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级C语言上机操作题及答案(75)
发布时间:2011/7/22 10:09:36 来源:城市学习网 编辑:ziteng
  填空题
  请补充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 [NextPage]   改错题
  下列给定程序中函数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]);
 [NextPage]   编程题
  请编写函数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;
  }
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved