当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级C语言上机操作题及答案(97)
发布时间:2011/7/28 15:46:24 来源:城市学习网 编辑:ziteng
  第1题填空题:
  数组str全由大小写字母字符组成。请补充fun函数,该函数的功能是:请把str中的字母转换成紧接着的下一个字母,如果原来的字母为’z’或’Z’,则相应地转换成’a’或’A’,结果仍保存在原数组中。
  例如,输入“AboutZz”,则输出“BcpvuAa”。
  请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
  #include
  #define  N 80
  void fun(char  s[])
  {
  int  i;
  for (i=0; ___1___; i++)
  if (s[i]=='z' || s[i]=='Z')
  s[i] -= ___2___;
  else
  s[i] += ___3___;
  }
  main()
  {
  char  str[N];
  printf("\n Input a string: \n");
  gets(str);
  printf("\n******** original string ********\n");
  puts(str);
  fun(str);
  printf("\n******** new string ********\n");
  puts(str);
  }
  答案:
  第1空答案:s[i]!=’\0’或s[i]!=0
  第2空答案:25
  第3空答案:1 [NextPage]   2、第2题改错题:
  下列给定程序中,函数fun的功能是:计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不等,z和y的值不等。例如,当x的值为9、y的值为1、z的值为15时,函数值为3.50。
  请改正程序中的错误,使它能得出正确的结果。
  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  #include
  #include
  /********found********/
  #define  FU(m,n) (m/n)
  float fun(float  a, float  b, float  c)
  {
  float  value;
  value = FU((a+b), (a-b))+FU((c+b), (c-b));
  /********found********/
  Return (value);
  }
  main()
  {
  float  x, y, z, sum;
  printf("Input x y z: ");
  scanf("%f%f%f", &x, &y, &z);
  printf("x=%f,y=%f,z=%f\n", x, y, z);
  if (x==y || y==z)
  {
  printf("Data error!\n");
  exit(0);
  }
  sum = fun(x, y, z);
  printf("The result is :%5.2f\n", sum);
  }
  答案:
  第一处:#define FU(m,n)(m/n)应改为#define FU(m,n) (m)/(n)
  第二处:Return(Value):应改为return(value);
 [NextPage]   3、第3题编程题:
  请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。
  例如,若主函数从键盘给n输入20后,则输出为s=0.853333。
  注意:n的值要求不大于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",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 sum=0.0;
  for(i=1;i<=n;i++)
  if(i%5==0||i%9==0)
  sum+=1.0/I;
  return sum;
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved