当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级C语言上机操作题及答案(14)
发布时间:2011/7/4 10:55:19 来源:城市学习网 编辑:ziteng
  第14套
  填空题
  请补充fun函数, 该函数的功能是:依次取出字符串中所有小写字母,形成新的字符串,并取代原字符串.
  注意:部分源程序给出如下。
  仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任何内容。
  试题程序:#include
  #include
  void fun(char  *s)
  {
  int  i = 0;
  char  *p = s;
  while (___1___)
  {
  if (*p>=’a’ && *p<=’z’)
  {
  s[i] = *p;
  ___2___;
  }
  p++;
  }
  s[i] = ___3___;
  }
  main()
  {
  char  str[80];
  printf("\nEnter a string :");
  gets(str);
  printf("\n\nThe string is : %s\n", str);
  fun(str);
  printf("\n\nThe string of changing is : %s\n", str);
  }
  第1处填空:*p或*p!=’\0’或*p!=0
  第2处填空:i++或++i或i+=1或i=i+1
  第3处填空:’\0’或0 [NextPage]   改错题
  下列给定程序中,函数FUN和FUNX的功能是:用二分求方程2 的一个根,并要求绝对误差不超过0.001。例如,若出给m输入100,给n输入90,则函数求得的一个根值为2.000。
  请改正程序中的错误,使它能得出正确结果。
  注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!
  试题程序:#include
  #include
  double funx(double  x)
  {
  return (2*x*x*x - 4*x*x + 3*x - 6);
  }
  double fun(double  m, double  n)
  {
  /********found********/
  int  r;
  r = (m+n)/2;
  /********found********/
  while (fabs(n-m) < 0.001)
  {
  if (funx(r)*funx(n) < 0)
  m = r;
  else
  n = r;
  r = (m+n)/2;
  }
  return r;
  }
  main()
  {
  double  m, n, root;
  printf("Enter m n : \n");
  scanf("%lf%lf", &m, &n);
  root = fun(m, n);
  printf("root=%6.3f\n", root);
  }
  第1处:int  r;应改为double r;
  第2处:while (fabs(n-m)<0.001)应改为while (fabs(n-m)>0.001)
 [NextPage]   改错题
  下列给定程序中,函数FUN和FUNX的功能是:用二分求方程2 的一个根,并要求绝对误差不超过0.001。例如,若出给m输入100,给n输入90,则函数求得的一个根值为2.000。
  请改正程序中的错误,使它能得出正确结果。
  注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!
  试题程序:#include
  #include
  double funx(double  x)
  {
  return (2*x*x*x - 4*x*x + 3*x - 6);
  }
  double fun(double  m, double  n)
  {
  /********found********/
  int  r;
  r = (m+n)/2;
  /********found********/
  while (fabs(n-m) < 0.001)
  {
  if (funx(r)*funx(n) < 0)
  m = r;
  else
  n = r;
  r = (m+n)/2;
  }
  return r;
  }
  main()
  {
  double  m, n, root;
  printf("Enter m n : \n");
  scanf("%lf%lf", &m, &n);
  root = fun(m, n);
  printf("root=%6.3f\n", root);
  }
  第1处:int  r;应改为double r;
  第2处:while (fabs(n-m)<0.001)应改为while (fabs(n-m)>0.001)
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved