当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级C语言上机操作题及答案(61)
发布时间:2011/7/20 13:09:18 来源:城市学习网 编辑:ziteng
  一、填空题
  请补充main函数,该函数的功能是:计算每个学生科目的平均分,并把结果保存在数组bb中。
  例如,当score[N][M]={{78.5,84,83,65,63},{88,91.5,89,93,95},{72.5,65,56,75,77}}时,三个学生的平均分为:74.7 91.3 69.1。
  仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任何内容。
  #include
  #define  N 3
  #define  M 5
  main()
  {
  int  i, j;
  static float  score[N][M] =
  {
  {78.5, 84, 83, 65, 63},
  {88, 91.5, 89, 93, 95},
  {72.5, 65, 56, 75, 77}
  };
  float  bb[N];
  for (i=0; i              ___1___;
  for (i=0; i       {
  for (j=0; j                     ___2___;
  bb[i] /= M;
  }
  for (i=0; i              printf("\nstudent%d\taverage=%5.1f", i+1, bb[i]);
  }
  答案:
  1、bb[i]=0 或 *(bb+i)=0
  2、bb[i]+=score[i][j] 或bb[i]=b[i]+score[i][j] 或bb[i]=score[i][j]+bb[i] [NextPage]   二、改错题
  下列给定程序中,函数fun的功能是:根据整型行参m,计算如下公式的值。
  y= 例如,若m=2000,则应该输出:0.000160。
  请改正程序中的错误,使它能得出正确的结果。
  #include
  #include
  /********found********/
  fun(int  m)
  {
  double  y = 0, d;
  int  i;
  /********found********/
  for (i=100, i<=m, i+=100)
  {
  d = (double)i*(double)i;
  y += 1.0/d;
  }
  return (y);
  }
  main()
  {
  int  n = 2000;
  printf("\nThe result is %lf\n", fun(n));
  }
  答案:
  1、fun(int m)应改为 double fun(int m)
  2、for(i=100,i<=m,i+=100)应改为for(i=100;i<=m;i+=100)
 [NextPage]   三、编程题
  请编写函数fun,该函数的功能是:统计个年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中,把20至29岁年龄段的人数放在d[2]中,其余依此类推,把100岁(含100)以上年龄的人数都放在d[10]中。结果在主函数中输出。
  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
  #include
  #define  N  50
  #define  M  11
  void fun(int *a, int *b)
  {
  }
  double rnd()
  {
  static t=29, c=217, m=1024, r=0;
  r=(r*t+c)%m;
  return((double)r/m);
  }
  main()
  {
  int  age[N], i, d[M];
  FILE *out ;
  for(i=0;  i              age[i]=(int)(115*rnd());
  printf("The original data :\n");
  for(i=0; i              printf((i+1)==0?"M\n":"M",age[i]);
  printf("\n\n");
  fun( age,  d);
  out=fopen ("out.dat","w");
  for(i=0;i<10;i++)
  {
  printf("M---M  :  M\n", i*10, i*10+9, d[i]);
  fprintf(out, "M---M  :  M\n", i*10, i*10+9, d[i]);
  }
  printf("  Over  100  :  M\n", d[10]);
  fprintf(out, "  Over  100  :  M\n", d[10]);
  fclose (out );
  }
  答案:
  void  fun (int  *a, int  *b)
  {
  int  i, j;
  for(j=0;j     b[j]=0;
  for(i=0;i   if(a[i]>=0&&a[i]<=9)
  b[0]+=1;
  else  if(a[i]>=10&&a[i]<=19)
  b[1]+=1;
  else if(a[i>=20&&a[i]<=29)
  b[2]+=1;
  else  if(a[i]>=30&&a[i]<=39)
  b[3]+=1;
  else  if(a[i>=40&&a[i]<=49])
  b[4]+=1;
  else if(a[i]>=50&&a[i]<=59)
  b[5]+=1;
  else  if(a[i]>=60&&a[i]<=69)
  b[6]+=1;
  else  if(a[i]>=70&&a[i]<=79)
  b[7]+=1;
  else  if(a[i]>=80&&a[i]<=89)
  b[8]+=1;
  else  if(a[i]>=90&&a[i]<=99)
  b[9]+=1;
  else
  b[10]+=1;
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved