当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级C语言上机题库及答案(65)
发布时间:2011/9/28 11:42:19 来源:城市学习网 编辑:ziteng
  一、填空题:给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。

  例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000

  移动后的输出为:30 6 17 15 26 46 32 40 45 48

  请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

  注意:源程序存放在考生文件夹下BLANK1.C中。

  不得增行或删行,也不得更改程序的结构!

  给定源程序:

  #include

  #include

  #define N 10

  double fun(double *x)

  {int i, j; double av, y[N];

  av=0;

  /**********found**********/

  for(i=0; i

  for(i=j=0; i

  if(x[i]

  /**********found**********/

  y[j]=x[i]; x[i]=-1; __2__;}

  i=0;

  while(i

  {if(x[i]!= -1) y[j++]=x[i];

  /**********found**********/

  __3__;

  }

  for(i=0; i

  return av;

  }

  main()

  {int i; double x[N];

  for(i=0; i

  printf("\nThe average is: %f\n",fun(x));

  printf("\nThe result :\n",fun(x));

  for(i=0; i

  }

  解题答案:

  /*********第一空**********/

  for(i=0; i

  /**********第二空**********/

  y[j]=x[i]; x[i]=-1; j++;}

  /**********第三空**********/

  i++;

  ****************************************** [NextPage]  二、改错题:给定程序MODI1.C中函数 fun 的功能是:统计字符串中各元音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。

  例如:若输入:THIs is a boot,则输出应该是:1、0、2、2、0。

  请改正程序中的错误,使它能得出正确的结果。

  注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!

  给定源程序:

  #include

  void fun (char *s, int num[5])

  {int k, i=5;

  for (k = 0; k

  /**********found**********/

  num[i]=0;

  for (; *s; s++)

  {i = -1;

  /**********found**********/

  switch (s)

  {case 'a': case 'A': {i=0; break;}

  case 'e': case 'E': {i=1; break;}

  case 'i': case 'I': {i=2; break;}

  case 'o': case 'O': {i=3; break;}

  case 'u': case 'U': {i=4; break;}

  }

  if (i >= 0)

  num[i]++;

  }

  }

  main()

  {char s1[81]; int num1[5], i;

  printf("\nPlease enter a string: "); gets(s1);

  fun (s1, num1);

  for (i=0; i < 5; i++) printf ("%d ",num1[i]); printf ("\n");

  }

  解题答案:

  /**********found**********/

  num[k]=0;

  /**********found**********/

  switch(*s)

  ******************************************

  [NextPage]   三、程序题:请编写函数 fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。

  例如:二维数组中的值为

  1 3 5 7 9

  2 9 9 9 4

  6 9 9 9 8

  1 3 5 7 0

  则函数值为 61。

  注意: 部分源程序存在文件PROG1.C文件中。

  请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

  给定源程序:

  #include

  #define M 4

  #define N 5

  int fun (int a[M][N])

  {

  }

  main()

  {int aa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8}, {1,3,5,7,0}};

  int i, j, y;void NONO ();

  printf ("The original data is : \n");

  for (i=0; i

  {for (j =0; j

  printf ("\n");

  }

  y = fun (aa);

  printf("\nThe sum: %d\n" , y);

  printf("\n");

  NONO();

  }

  void NONO ()

  {/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */

  int i, j, y, k, aa[M][N] ;

  FILE *rf, *wf ;

  rf = fopen("in.dat","r");

  wf = fopen("out.dat","w");

  for(k = 0 ; k < 10 ; k++) {

  for(i = 0 ; i < M ; i++)

  for(j = 0 ; j < N ; j++) fscanf(rf, "%d", &aa[i][j]);

  y = fun (aa);

  fprintf(wf, "%d\n", y);

  }

  fclose(rf);

  fclose(wf);

  }

  参考答案:

  int fun ( int a[M][N] )

  {

  int tot = 0, i, j ;

  for(i = 0 ; i < N ; i++) {

  tot += a[0][i] ;

  tot += a[M-1][i] ;

  }

  for(i = 1 ; i < M - 1 ; i++) {

  tot += a[i][0] ;

  tot += a[i][N-1] ;

  }

  return tot ;

  }

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved