当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级C语言上机操作题及答案(96)
发布时间:2011/7/28 15:45:35 来源:城市学习网 编辑:ziteng
  填空题
  给定程序的功能是将未在字符串s中出现,而在字符串t中出现的字符,形成一个新的字符串放在u中,u中字符按原来字符串中字符顺序排序,但去掉重复的字符。
  例如:当s=”12345”,t=”24677”时,u中的字符为:”67”。
  请勿改动主函数main和其他函数中任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
  #include
  #include
  void fun (char  *s, char  *t, char  *u)
  {
  int  i, j, sl, tl, k, ul = 0;
  sl = strlen(s);
  tl = strlen(t);
  for (i=0; i {
  for (j=0; j   if (t[i] == s[j])
  break;
  if (j >= sl)
  {
  for (k=0; k    if (t[i] == u[k])
  ___1___;
  if (k >= ul)
  u[ul++] = ___2___;
  }
  }
  ___3___ = '\0';
  }
  main()
  {
  char  s[100], t[100], u[100];
  printf("\nPlease enter string s:");
  scanf("%s", s);
  printf("\nPlease enter string t:");
  scanf("%s", t);
  fun(s, t, u);
  printf("The result is: %s\n", u);
  }
  答案:
  1、break
  2、t[i]
  3、u[ul] [NextPage]   改错题
  下列给定程序中,fun的功能是:计算
  S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…+f(n)的值。列如,当n为5是,函数值应为10.407143。f(x)函数定义如下:
  f(x)=
  请改正程序中的错误,使程序能输出正确的结果。
  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  #include
  #include
  #include
  /********found********/
  f(double  x)
  {
  if (x==0.0 || x==2.0)
  return 0.0;
  else if (x < 0.0)
  return (x-1)/(x-2);
  else
  return (x+1)/(x-2);
  }
  double fun(int  n)
  {
  int  i;
  double  s = 0.0, y;
  for (i=-n; i<=n; i++)
  {
  y = f(1.0*i);
  s += y;
  }
  /********found********/
  return s
  }
  main()
  {
  printf("%lf\n", fun(5));
  }
  答案:
  1、f(double  x) 应改为double f (double  x)
  2、rerurn  s  应改为  return  s ;
 [NextPage]   编程题
  请编写函数fun,其功能是:计算并输出下列多项式值:
  S=1+ +…+
  例如,若主函数从键盘给n输入50后,则输出为S=1.960784。
  注意:n的值要求大于1但不大于100。
  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
  #include
  double fun(int n)
  {
  }
  main()
  {
  int  n;
  double  s;
  FILE *out;
  printf("\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+50));
  fclose(out);
  }
  答案:
  double   fun  (int  n)
  {
  int  i, j,k;
  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;
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved