当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级C语言上机操作题及答案(7)
发布时间:2011/6/30 10:58:48 来源:城市学习网 编辑:ziteng
  第7套
  填空题
  函数fun的功能是:统计长整数n 的各个位上出现数字1,2,3的次数,并通过外部(全局)变量c1,c2,c3返回主函数。
  例如,当=123114350时,结果应该为:c1=3,c2=1,c3=2.
  注意:部分源程序给出如下。
  请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
  试题程序如下:  #include <stdio.h>
  int  c1, c2, c3;
  void fun(long  n)
  {
  c1 = c2 = c3 = 0;
  while (n)
  {
  switch(___1___)
  {
  case 1:
  c1++;
  ___2___;
  case 2:
  c2++;
  ___3___;
  case 3:
  c3++;
  }
  n /= 10;
  }
  }
  main()
  {
  long  n = 123114350L;
  fun(n);
  printf("\nThe result :\n");
  printf("n=%ld  c1=%d  c2=%d  c3=%d\n", n, c1, c2, c3);
  }
  第1处填空:n%10
  第2处填空:break
  第3处填空:break [NextPage]   改错题
  下列给定程序中函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。
  请改正程序中的错误,使程序能得出正确的结果。
  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  试题程序:#include <stdio.h>
  #define  N 20
  void fun(int  a[], int  n)
  {
  int  i, j, t, p;
  for (j=0; j<n-1; j++)
  {
  /********found********/
  p = j
  for (i=j; i<n; i++)
  if(a[i] < a[p])
  {
  /********found********/
  p = i;
  t = a[p];
  a[p] = a[i];
  a[i] = t;
  }
  }
  }
  main()
  {
  int  a[N] = {9, 6, 8, 3, -1}, i, m = 5;
  printf("??Dò?°£o");
  for (i=0; i<m; i++)
  printf("%d,", a[i]);
  printf("\n");
  fun(a, m);
  printf("??Dòoó£o");
  for (i=0; i<m; i++)
  printf("%d,", a[i]);
  printf("\n");
  }
  第1处:p = j应改为p=j;
  第2处:p = i应改为p=j;
 [NextPage]   编程题
  请编写一个函数int fun(int*s,int t,int*k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单位中。
  例如,输入如下整数:
  876      675  896  101  301  401  980  431  451  777
  则输出结果为:6,980。
  注意:部分源程序给出如下。
  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
  试题程序:  # include <conio.h>
  # include <stdio.h>
  void fun(int *s, int t , int *k)
  {
  }
  main( )
  {
  int a[10]={876,675,896,101,301,401,980,431,451,777}, k ;
  FILE *out;
  fun(a,10,&k);
  printf("%d, %d\n", k, a[k]);
  out = fopen("out.dat", "w");
  fprintf(out, "%d\n%d", k, a[k]);
  fclose(out);
  }
  答案是:
  void fun (int *s,int t,int *k)
  {
  int I ,max;
  max=s[0];
  for(i=0;i<t:i++)
  if(s[i]>max)
  {
  max=s[i];
  *k=I;
  }
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved