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

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2013年5月2日
 改错题
  下列给定程序中,函数fun的功能是:求出两 个非0正整数的 最大公约数并作为函数值,
  例如num1 和um2分别输入49和21,则输出 的最大公约数为7,若给num1 和um2分别输入27和81,则最大公约数为27。
  请改正程序中的错误,使其能得出正确结果。
  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  试题 程序:
  #include
  int fun(int a, int b)
  {
  int r, t;
  /********found********/
  if (a < b)
  {
  t = a;
  b = a;
  b = t;
  }
  r = a%b;
  while (r != 0)
  {
  a = b;
  b = r;
  r = a%b;
  }
  /********found********/
  return (a);
  }
  main()
  {
  int num1, num2, a;
  printf("Input num1 num2 : ");
  scanf("%d%d", &num1, &num2);
  printf("num1=%d num2=%d\n\n", num1, num2);
  a = fun(num1, num2);
  printf("The maximun common divisor is %d\n\n", a);
  }
  第1处:b=a;应改为a=b;
  第2处:return (a);应改为return(b);

相关文章