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

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2013年6月7日
 第二题:下列给定程序中,函数fun的功能是:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。
  请改正程序中的错误,使它能得出正确的结果。
  注意:不要改动main函数,不得增行或减行,也不得更改程序的结构!
  #include <conio.h>
  #include <stdio.h>
  #define N 20
  /********found********/
  void fun(int *a, int n);
  {
  int i, m, t, k;
  for (i=0; i<2; i++)
  {
  /********found********/
  m=0;
  for (k=i+1; k<n; k++)
  if (a[k] > a[m])
  m = k;
  t = a[i];
  a[i] = a[m];
  a[m] = t;
  }
  }
  main()
  {
  int b[N] = {11, 5, 12, 0, 3, 6, 9, 7, 10, 8}, n = 10, i;
  for (i=0; i<n; i++)
  printf("%d ", b[i]);
  printf("\n");
  fun(b, n);
  for (i=0; i<n; i++)
  printf("%d ", b[i]);
  printf("\n");
  }
  第二题答案:
  第1处:void fun(int *a,int n);应改为void fun(int *a,int n)
  第2处:m=o;应改为 m=i;

相关文章