当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级C语言上机操作题及答案(37)
发布时间:2011/7/14 11:24:33 来源:城市学习网 编辑:ziteng
  第37套
  填空题
  从键盘输入一组无符号整数并保存在数组xx[N]中,以整数0结束输入,要求这些数的最大位数不超过4位,其元素的个数通过变量num传入dun函数,该函数的功能是:从数组xx中找出个位和十位的数字之和大于5的所以无符号整数,结果保存在数组yy,中其个数由fun函数返回。
  例如:当xx[8]={123,11,23,222,42,333,14,5451}时,bb[3]={42,333,5451}
  注意:部分源程序给出如下
  请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填如所编写的若干表达式或语句。
  试题程序:#include <stdio.h>
  #define  N 1000
  int fun(int  xx[], int  bb[], int  num)
  {
  int  i, n = 0;
  int  g, s;
  for (i=0; i<num; i++)
  {
  g = ___1___;
  s = xx[i]/10%10;
  if ((g+s) > 5)
  ___2___;
  }
  return ___3___;
  }
  main()
  {
  int  xx[N];
  int  yy[N];
  int  num = 0, n = 0, i = 0;
  printf("Input number  :\n");
  do
  {
  scanf("%u", &xx[num]);
  } while (xx[num++] != 0);
  n = fun(xx, yy, num);
  printf("\nyy= ");
  for (i=0; i<n; i++)
  printf("%u  ", yy[i]);
  }
  第1处填空:xx[i]%10
  第2处填空:bb[n++]=xx[i]
  第3处填空:n[NextPage]   改错题
  下列给定程序中,函数fun的功能是:计算s所指字符串含有t所指字符串的数目,,并作为函数的值返回。
  请改正函数fun 中的错误或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。
  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  试题 程序:
  #include <conio.h>
  #include <stdio.h>
  #include <string.h>
  #define  N 80
  int fun(char  *s, char  *t)
  {
  int  n;
  char  *p, *r;
  n = 0;
  /********found********/
  p = &s[0];
  *r = t;
  while (*p)
  {
  if (*r == *p)
  {
  r++;
  if (*r == '\0')
  {
  n++;
  /********found********/
  ___ì???___
  }
  }
  p++;
  }
  return n;
  }
  main()
  {
  char  a[N], b[N];
  int  m;
  printf("\nPlease enter string a :");
  gets(a);
  printf("\nPlease enter substring b :");
  gets(b);
  m = fun(a, b);
  m = printf("\nThe result is:m=%d\n", m);
  }
  第1处:*r=t;应改为r=t;或r=&t[0];
  第2处:应填r=t;或r=&t[0];
[NextPage]   编程题
  某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数FUN,它的功能是:求出该学生的平均分并放在记录的AVE成员中。请自己定义正确的形参。
  例如,若学生的成绩是85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应当是78.875。
  注意:部分源程序给出如下。
  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
  试题程序:#include <stdio.h>
  #define  N  8
  typedef  struct
  {
  char  num[10];
  double  s[N];
  double  ave;
  } STREC;
  void fun(STREC *p)
  {
  }
  main()
  {
  STREC  s={"GA005",85.5,76,69.5,85,91,72,64.5,87.5};
  int  i;
  FILE *out;
  fun( &s );
  printf("The %s's student data:\n", s.num);
  for(i=0;i<N;i++)
  printf("%4.1f\n",s.s[i]);
  printf("\nave=%7.3f\n",s.ave);
  out=fopen ("out.dat", "w");
  fprintf(out, "The %s's student data:\n", s.num);
  for(i=0;i<N;i++)
  fprintf(out, "%4.1f\n",s.s[i]);
  fprintf(out, "\nave=%7.3f\n",s.ave);
  fclose (out );
  }
  答案是:
  void fun(STREC *p)
  {
  double av=0.0;
  int i;
  for(i=0;i<N;i++)
  av+=p->s[i];
  av/=N;
  p->ave=av;
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved