当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级C语言上机操作题及答案(17)
发布时间:2011/7/4 11:02:54 来源:城市学习网 编辑:ziteng
  第17套
  填空题
  给定程序的功能是将n个人员的考试成绩进行分段统计,考试成绩放在a数组中,各分段的人数存到b数组中:成绩为60到69的人数存到b[0]中,成绩为70到79的人数存到b[1],成绩为80到89的人数存到 b[3],成绩为100的人数存到b[4],成绩为60分以下的人数存到b[5]中
  例如,当a数组中的数据是:93、85、77、68、59、43、94、75、98。调用该函数后,b数组中存放的数据应是1、2、1、3、0、2。
  注意:部分源程序给出如下
  请勿改动主函数main和其他函数中的任何内容,仅在横线上填如所编写的若干表达式或语句。
  试题程序:
  #include
  void fun(int  a[], int  b[], int  n)
  {
  int  i;
  for (i=0; i<6; i++)
  b[i] = 0;
  for (i=0; i<___1___; i++)
  if (a[i]<60)
  b[5]++;
  ___2___
  b[(a[i]-60)/10]++;
  }
  main()
  {
  int  i, a[100] = {93, 85, 77, 68, 59, 43, 94, 75, 98}, b[6];
  fun(___3___, 9);
  printf("the result is: ");
  for (i=0; i<6; i++)
  printf("%d ", b[i]);
  printf("\n");
  }
  第1处填空:n
  第2处填空:else
  第3处填空:a,b [NextPage]  改错题
  下列给定程序中,函数FUN的功能是:计算并输出K以内最大的10个能被13或17整除的自然数之和。K的值由主函数传入,若K的值为500,则函数值为4622。
  请改正程序中的错误或在横线处填上适当的内容并把横线删除,使它能得出正确结果。
  注意:不要改动MAIN函数,不得增行或删行,也不要更改程序的结构!
  试题程序:#include
  #include
  int fun(int  k)
  {
  int  m = 0, mc = 0;
  while ((k>=2) && (mc<10))
  {
  /********found********/
  if ((k=0) || (k=0))
  {
  m = m+k;
  mc++;
  }
  k--;
  }
  return m;
  /********found********/
  ___ì???___
  main()
  {
  printf("%d\n", fun(500));
  }
  第1处:if((k=0)||(k=0))应改为if((k==0)||(k==0))
  第2处:应填}
  [NextPage]   编程题
  请编写一个函数fun(char *s)该函数的功能是把字符串中的内容逆置。
  例如:字符串中原有的字符串为abcdefg,则调用该函数后,串中的内容为gfedcba.
  注意:部分源程序给出如下。
  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
  试题程序:
  #include
  #include
  #include
  #define  N  81
  void fun ( char *s)
  {
  }
  main()
  {
  char  a[N];
  FILE *out;
  printf ( "Enter  a  string :  ");
  gets ( a );
  printf ( "The original string is: " );
  puts( a );
  fun ( a );
  printf("\n");
  printf ( "The string after modified : ");
  puts ( a );
  strcpy(a, "Hello World!");
  fun(a);
  out = fopen("out.dat", "w");
  fprintf(out, "%s" , a);
  fclose(out);
  }
  答案是:
  void fun (char *s)
  {
  char ch;
  int i,m,n;
  i=0;
  m=n=strlen(s)-1;
  while(i<(n+1)/2)
  {
  ch=s[i];
  s[i]=s[m];
  s[m]=ch;
  i++;
  m--;
  }
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved