当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级C语言上机题库及答案(58)
发布时间:2011/9/26 22:36:05 来源:城市学习网 编辑:ziteng
  一、填空题:给定程序中,函数fun的功能是计算下式 例如:若形参e的值为1e-3,函数的返回值为0.551690。

  请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

  注意:源程序存放在考生文件夹下BLANK1.C中。

  不得增行或删行,也不得更改程序的结构!

  给定源程序:

  #include

  double fun(double e)

  {int i, k; double s, t, x;

  s=0; k=1; i=2;

  /**********found**********/

  x=__1__/4;

  /**********found**********/

  while(x __2__ e)

  {s=s+k*x;

  k=k* (-1);

  t=2*i;

  /**********found**********/

  x=__3__/(t*t);

  i++;

  }

  return s;

  }

  main()

  {double e=1e-3;

  printf("\nThe result is: %f\n",fun(e));

  }

  解题答案:

  /**********第一空**********/

  x=3./4;

  /**********第二空*********/

  while(x > e)

  /**********第三空*********/

  x=(2*i+1)/(t*t);

  ****************************************** [NextPage]  二、改错题:给定程序MODI1.C中函数 fun 的功能是:求出以下分数序列的前n项之和。和

  值通过函数值返回到main函数。

  2 3 5 8 13 21

  ┄┄ , ┄┄ , ┄┄ , ┄┄ , ┄┄ , ┄┄ , ……

  1 2 3 5 8 13

  例如,若n = 5,则应输出:8.391667。

  请改正程序中的错误,使它能计算出正确的结果。

  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

  给定源程序:

  #include

  /************found************/

  void fun (int n)

  {int a, b, c, k; double s;

  s = 0.0; a = 2; b = 1;

  for (k = 1; k <= n; k++) {

  /************found************/

  s = s + (Double)a / b;

  c = a; a = a + b; b = c;

  }

  return s;

  }

  main()

  {int n = 5;

  printf("\nThe value of function is: %lf\n", fun (n));

  }

  解题答案:

  /************found************/

  double fun(int n)

  /************found************/

  s=s+(double)a/b;

  ******************************************

  [NextPage]   三、程序题:请编写一个函数fun,它的功能是:求出一个2×M整型二维数组中最大元素的值,并将此值返回调用函数。

  注意: 部分源程序存在文件PROG1.C文件中。

  请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

  给定源程序:

  #include

  #define M 4

  int fun (int a[][M])

  {

  }

  main()

  {int arr[2][M]={5,8,3,45,76,-4,12,82} ;void NONO ();

  printf("max =%d\n", fun(arr));

  NONO();

  }

  void NONO ()

  {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */

  FILE *wf ;

  int arr[][M]={5,8,3,90,76,-4,12,82} ;

  wf = fopen("out.dat","w");

  fprintf(wf, "max=%d\n", fun(arr));

  fclose(wf);

  }

  参考答案:

  fun (int a[][M])

  {

  int i, j, max=a[0][0];

  for(i=0; i<2; i++)

  for(j=0; j

  if(max

  return max;

  }

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved