当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级C语言上机操作题及答案(60)
发布时间:2011/7/20 13:08:26 来源:城市学习网 编辑:ziteng
  第一题:请补充fun函数,该函数的功能是把数组bb中的数按从大到小排列。数组的值及元素个数从主函数中输入。
  例如,输入2 1 3 5 4,结果为1 2 3 4 5。
  请勿改动函数main和其他函数中的任何内容,仅在fun函数的横线上填和所编写的若干表达式或语句。
  #include
  #define  N 100
  void fun(int  bb[], int  n)
  {
  int  i, j, t;
  for (i=0; ___1___; i++)
  for (j=0; ___2___; j++)
  if (bb[j] > bb[j+1])
  {
  t = bb[j];
  bb[j] = bb[j+1];
  bb[j+1] = t;
  }
  }
  main()
  {
  int  i = 0, n = 0;
  int  bb[N];
  printf("\nInput n:\n");
  scanf("%d", &n);
  printf("\nInput data:\n");
  while (i < n)
  {
  printf("bb[%d]=", i);
  scanf("%d", &bb[i]);
  i++;
  }
  fun(bb, n);
  printf("\n******** the result *********\n");
  for (i=0; i              printf("M", bb[i]);
  }
  答案:
  ii   2、jj [NextPage]    第二题:下列给定程序中,函数fun的功能是:找出一个大于给定整数m且紧随m的素数,作为函数值返回。
  请改正程序中的错误,使它能得出正确的结果。
  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  #include
  #include
  int fun(int  m)
  {
  int  i, k;
  for (i=m+1; ; i++)
  {
  for (k=2; k                     /********found********/
  if (i%k != 0)
  break;
  /********found********/
  if (k < i)
  return(i);
  }
  }
  main()
  {
  int  n;
  printf("\nplease enter n: ");
  scanf("%d", &n);
  printf("%d\n", fun(n));
  }
  答案:
  第一处应改为:if(i%k==0)
  第二处应改为:if(k>=i)
[NextPage]   第三题:请编写函数fun,该函数的功能是:删去一维数组中所有相同的数,使之只乘一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
  例如,若一维数组中的数据是:
  2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10
  删除后,数组中的内容应该是:
  2 3 4 5 6 7 8 9 10
  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
  # include
  # define  N  80
  int fun(int a[], int n)
  {
  }
  main()
  {
  int a[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10}, i,n=20;
  FILE *out ;
  printf("The original data :\n");
  for(i=0; i              printf("=",a[i]);
  n=fun(a,n);
  printf("\n\nThe data after deleted :\n");
  out=fopen ("out.dat","w");
  for(i=0;i       {
  printf("=",a[i]);
  fprintf(out, "%d\n", a[i]);
  }
  fclose (out );
  printf("\n\n");
  }
  答案:
  int i,t,j=0,*p=a;
  t=p[0];
  for(i=0;i<=n;i++)
  if(t==p[i])
  ;
  else
  {
  a[j]=t;
  t=p[i];
  j++;
  }
  if(i>=n)
  a[j]=t;
  return j;
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved