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

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2013年2月26日
 改错题
  假定整数数列中的数不重复,并存放在数组中。下列给顶程序中,函数fun的功能是删除数列中值为x的元素,同时将其他元素前移。N中存放的是数列中元素的个数。
  请改正程序中的错误,使它能得出正确的结果。
  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  试题程序:#include
  #define N 20
  fun(int *a, int n, int x)
  {
  int p = 0, i;
  a[n] = x;
  while (x != a[p])
  p = p+1;
  if (p == n)
  {
  return -1;
  }
  else
  {
  /********found********/
  for (i=p; i  a[i+1] = a[i];
  return n-1;
  }
  }
  main()
  {
  int w[N] = {-3, 0, 1, 5, 7, 99, 10, 15, 30, 90}, x, n, i;
  n = 10;
  printf("The original data:\n");
  for (i=0; i  printf("]", w[i]);
  printf("\nInput x (to delete):");
  scanf("%d", &x);
  printf("Delete :%d\n", x);
  n = fun(w, n, x);
  if (n == -1)
  {
  printf("***Not be found!***\n\n");
  }
  else
  {
  printf("The data after delete :\n");
  for (i=0; i  printf("]", w[i]);
  printf("\n\n");
  }
  }
  第1处:a[i+1]=a[i];应改为a[i]=a[i+1]

相关文章