当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级C语言上机操作题及答案(57)
发布时间:2011/7/17 18:24:24 来源:城市学习网 编辑:ziteng
  第一题:请补充fun函数,该函数的功能是:计算并输出下列多项的值.
  S=1+ 例如,若主函数从键盘给n输入50后,则输出为S=1.960784
  请勿改动主函数main和其他函数中任何内容.仅在fun函数中的横线上填入所编写的若干表达式或语句。
  #include
  double  fun(int  n)
  {
  int  i, j;
  double  sum = 0.0, t;
  for (i=1; i<=n; i++)
  {
  t = 0.0;
  for (j=1; j<=i; j++)
  t += j;
  sum += 1.0/t;
  }
  return sum;
  }
  main()
  {
  int  n;
  double  s;
  printf("\nInput n:  ");
  scanf("%d", &n);
  s = fun(n);
  printf("\n\ns=%f\n\n", s);
  }
  答案:
  第一处:double
  第二处:j
  第三处:1.0/t或(double)1/t [NextPage]    int  i, j;
  char  ch;
  i = 0;
  j = strlen(b)-1;
  /********found********/
  while (i > j)
  {
  ch = b[i];
  b[i] = b[j];
  b[j] = ch;
  i++;
  j--;
  }
  while (*a || *b)
  {
  if (*a)
  {
  *c = *a;
  c++;
  a++;
  }
  if (*b)
  {
  *c = *b;
  c++;
  b++;
  }
  }
  /********found********/
  c = 0;
  }
  main()
  {
  char  s1[100], s2[100], t[200];
  printf("\nEnter s1 string : ");
  scanf("%s", s1);
  printf("\nEnter s2 steing : ");
  scanf("%s", s2);
  fun(s1, s2, t);
  printf("\nThe result is : %s\n", t);
  }
  答案:
  while (i > j)改为while (j >i)或while (i < j)
[NextPage]   第三题:学生的记录由学号和成绩组成,N名学生的数据已居主函数中入入结构体数组S中,请编写函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。
  例如,输入的分数是60和69,则应当把分数在60到69的学生数据进行输出,包含60分和69分的学生数据。主函数中将把60放在low中,把69放在heigh中。
  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
  #include
  #define    N  16
  typedef   struct
  {
  char  num[10];
  int   s;
  }  STREC;
  int  fun ( STREC  *a, STREC *b, int l, int h )
  {
  }
  main ()
  {
  STREC  s[N]= {{"GA005",85}, {"GA003",76}, {"GA002",69}, {"GA004",85},
  {"GA001",96}, {"GA007",72}, {"GA008",64}, {"GA006", 87},
  {"GA015",85}, {"GA013",94}, {"GA012",64}, {"GA014",91},
  {"GA011",90}, {"GA017",64}, {"GA018",64}, {"GA016",72}};
  STREC  h[N],tt;
  FILE *out;
  int  i,j,n, low, heigh, t;
  printf ( "Enter 2 integer number low & heigh :  ");
  scanf ("%d%d",  &low, &heigh );
  if ( heigh < low )
  {
  t=heigh;
  heigh=low;
  low=t;
  }
  n=fun (s, h, low , heigh );
  printf ( "The student 's data between %d----%d : \n", low, heigh );
  for (i=0; i              printf ("%s  M\n", h[i]. num, h[i]. s);
  printf ( "\n" );
  out=fopen ("out.dat", "w");
  n=fun ( s, h, 80, 98 );
  fprintf ( out, "%d\n", n );
  for (i=0; i              for (j=i+1; j                     if(h[i].s>h[j].s)
  {
  tt=h[i] ;
  h[i]=h[j];
  h[j]=tt;
  }
  for(i=0;i              fprintf (out, "M\n", h[i]. s);
  fprintf ( out, "\n" );
  fclose ( out );
  }
  答案:
  int fun(STREC *a,STREC *b,int l,int h)
  {
  int i,j=0;
  for(i=0;iif(a[i].s>=l&&a[i].s<=h)
  {
  b[j]=a[i];
  j++;
  }
  return j;
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved