当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级C语言上机操作题及答案(5)
发布时间:2011/6/30 10:55:05 来源:城市学习网 编辑:ziteng
  第5套
  填空题
  给定程序的功能是求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:圆面积公式为:S= πR,在程序中定义的变量名要与公式的变量相同)。
  例如,输入圆的半径值:19.527,输出为:S=598.950017。
  请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
  试题程序:#include
  double fun(double r)
  {
  return 3.14159*___1___/2.0;
  }
  main()
  {
  double  x;
  printf("Enter  x:  ");
  scanf("%lf", ___2___);
  printf(" s = %lf\n ", fun(___3___));
  }
  第1处填空:r*r
  第2处填空:&x
  第3处填空:x [NextPage]   改错题
  假定整数数列中的数不重复,并存放在数组中。下列给顶程序中,函数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]
 [NextPage]   编程题
  请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx所指的数组中。
  例如,若输入:17,5,则应输出:19,23,29,31,37。
  注意:部分源程序给出如下。
  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
  试题程序:  #include
  #include
  void fun(int m, int k, int xx[])
  {
  }
  main()
  {
  int m,n,zz[1000];
  FILE *out;
  printf("\nPlease enter two integers:");
  scanf("%d,%d",&m,&n);
  fun( m,n,zz);
  for(m=0; m       printf("%d ", zz[m]);
  printf("\n");
  fun(28, 20, zz);
  out = fopen("out.dat", "w");
  for (m = 0; m < 20; m++)
  fprintf(out, "%d\n", zz[m]);
  fclose(out);
  }
  答案是:
  void fun(int m,int k,int xx[])
  {
  int g=0,I,j,flag=1;
  for(i=m+1;i{
  for(j=2;j{
  if(i%j!=0)
  flag=1;
  else
  {
  flag=0;
  break;
  }
  }
  if(flag==1&&j>=i)
  {
  if(k>=0)
  {
  xx[g++]=I;
  k--;
  }
  else
  break;
  }
  }
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved