当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级C语言上机操作题及答案(99)
发布时间:2011/7/28 15:48:03 来源:城市学习网 编辑:ziteng
  第一题
  请补充fun函数的功能是:把字符下标能被2或3整除的字符串str中删除,把剩余的字符重新保存在字符串str中。字符串str从键盘输入,其长度作为参数传入fun函数。
  例如,输入“abcdefghijk”,输出“bfh”。
  请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
  #include
  #define  N 80
  void fun(char  s[], int  n)
  {
  int  i, k;
  ___1___;
  for (i=0; i {
  s[k++] = s[i];
  if ((i%2==0) ___2___ (i%3==0))
  k--;
  }
  ___3___;
  }
  main()
  {
  int  i = 0, strlen = 0;
  char  str[N];
  printf("\nInput a string:\n");
  gets(str);
  while (str[i] != '\0')
  {
  strlen++;
  i++;
  }
  fun(str, strlen);
  printf("\n********* display string *********\n");
  puts(str);
  }
  答案:
  第1处填空:k=0;
  第2处填空:||
  第3处填空:s[k]=’\0’或s[k]=0 [NextPage]   第二题
  下列给定程序中,函数fun的功能是:统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数;并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为零的个数为3,各位上数字值最大的是8。
  请改正函数fun中的错误,使它能得出正确的结果。
  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  #include
  int fun(unsigned  n, int  *zero)
  {
  int  count = 0, max = 0, t;
  do
  {
  t = n;
  /********found********/
  if (t = 0)
  count++;
  if (max < t)
  max = t;
  n = n/10;
  } while (n);
  /********found********/
  zero = count;
  return max;
  }
  main()
  {
  unsigned  n;
  int  zero, max;
  printf("\nInput n(unsigned):  ");
  scanf("%d", &n);
  max = fun(n, &zero);
  printf("\nThe result: max=%d  zero=%d\n", max, zero);
  }
  答案:
  第1处:if(t=0)应改为if(t==0)
  第2处:zero=count; 应改为*zero=count;
 [NextPage]   第三题
  请编写函数fun,其功能是:计算并输出
  例如,若主函数从键盘给n输入20后,则输出为s=534.188884。
  注意:n的值要求大于1但不大于100。
  请勿改动主函数main和其他函数中的任何内容,仅在fun函数的花括号中填入所编写的若干语句。
  #include
  #include
  double fun(int n)
  {
  }
  main()
  {
  int  n;
  double  s;
  FILE *out;
  printf("\n\nInput n:  ");
  scanf("%d",&n);
  s=fun(n);
  printf("\n\ns=%f\n\n",s);
  out=fopen("out.dat","w");
  for (n = 0; n < 10; n++)
  fprintf(out, "%f\n", fun(n+20));
  fclose(out);
  }
  答案
  double fun(int n)
  {
  int i;
  double s=1.0;p=1.0;
  for(i=2;i<=n;i++)
  {
  p+pow(i,0.5);
  s+=p;
  }
  return s;
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved