当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级C语言上机操作题及答案(27)
发布时间:2011/7/8 11:36:59 来源:城市学习网 编辑:ziteng
  第27套
  填空题
  请补充函数fun,该函数的功能是:统计所以小于等于n(n>2)的素数的个数,素数的个数作为函数值返回。
  注意:部分源程序给出如下
  请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
  试题程序:
  #include
  int fun(int  n)
  {
  int  i, j, count = 0;
  printf("\nThe prime number between 2 to %d\n", n);
  for (i=2; i<=n; i++)
  {
  for (___1___; j           if (___2___%j == 0)
  break;
  if (___3___ >= i)
  {
  count++;
  printf(count ? "]" : "\n]", i);
  }
  }
  return count;
  }
  main()
  {
  int  n = 20, r;
  r = fun(n);
  printf("\nThe number of prime is  :  %d\n", r);
  }
  第1处填空:j=2
  第2处填空:i
  第3处填空:j [NextPage]   改错题
  下列给定程序中,函数fun的功能是:根据以下公式求 值,并作为函数值返回,
  例如,给指定精度的变量eps输入0.005时应当输出pi=3.140578。
  请改正程序中的错误,使其能得出正确结果。
  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  试题 程序:#include
  #include
  #include
  double fun(double  eps)
  {
  double  s, t;
  int  n = 1;
  s = 0.0;
  /********found********/
  t = 0;
  /********found********/
  while (t <= eps)
  {
  s += t;
  t = (t*n)/(2*n+1);
  n++;
  }
  return (s*2);
  }
  main()
  {
  double  x;
  printf("\nPlease enter a precision: ");
  scanf("%lf", &x);
  printf("\neps=%lf, Pi=%lf\n\n", x, fun(x));
  }
  第1处:t=0;应改为t=1.0;
  第2处:while(t<=eps)应改为while(t>=eps)
 [NextPage]   编程题
  编写函数fun,它的功能是:
  求出1到m间能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数,
  例如,若传输给m的值为50,则程序输出:7 11 14 21 22 28 33 35 42 44 49
  注意:部分源程序给出如下。
  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
  试题程序:#include
  #include
  #define M 100
  void fun ( int m, int *a, int *n )
  {
  }
  main()
  {
  int aa[M], n, k;
  FILE *out;
  fun ( 50, aa, &n );
  for ( k = 0; k < n; k++ )
  if((k+1) ==0)
  printf("M\n", aa[k]);
  else
  printf("M", aa[k] );
  printf("\n");
  out=fopen("out.dat", "w");
  fun ( 100, aa, &n );
  for ( k = 0; k < n; k++ )
  if((k+1)==0)
  fprintf(out, "M\n", aa[k]);
  else
  fprintf(out, "M", aa[k] );
  fclose(out);
  }
  答案是:
  void fun( int m,int *a,int *n)
  {
  int I,j=0;*n=0;
  for(i=1;i<=m;i++)
  if(i%7==0||i==0)
  {
  a[j]=i;
  j++;
  }
  *n=j;
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved