2013年计算机二级C语言上机题库八_第2页

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2013年4月7日
 改错题
  下列给定程序中,函数fun的功能是:在字符串str中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。例如,调用fun函数之前给字符串输入:ABCDeFGH,调用后字符串中的内容为eABCDFGH
  请改正程序中的错误,使程序能得出正确的结果。
  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  试题程序:#include <stdio.h>
  /********found********/
  void fun(char *p);
  {
  char max, *q;
  int i = 0;
  max = p[i];
  while (p[i] != 0)
  {
  if (max < p[i])
  {
  /********found********/
  max = p[i];
  p = q+i;
  }
  i++;
  }
  while (q > p)
  {
  *q = *(q-1);
  q--;
  }
  p[0] = max;
  }
  main()
  {
  char str[80];
  printf("Enter a string: ");
  gets(str);
  printf("\nThe original string: ");
  puts(str);
  fun(str);
  printf("\nThe string after moving: ");
  puts(str);
  printf("\n\n");
  }
  第1处:void fun(char *p);应改为void fun(char *p)
  第2处:p=q+I;应改为q=p+i;

相关文章