当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级C语言上机操作题及答案(4)
发布时间:2011/6/30 10:54:07 来源:城市学习网 编辑:ziteng
  第4套
  填空题
  请补充函数FUN,它的功能是:计算并输出N(包括N)以内能被3或7整除的所有自然数的倒数之和。
  例如,在主函数中从键盘给N输入30后,输出为:S=1.226323。
  请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
  试题程序:  #include
  double fun(int  n)
  {
  int  i;
  double  sum = 0.0;
  for (i=1; ___1___; i++)
  if (i%3==0 ___2___ i%7==0)
  sum += ___3___/i;
  return sum;
  }
  main()
  {
  int  n;
  double  s;
  printf("\nInput n: ");
  scanf("%d", &n);
  s = fun(n);
  printf("\n\ns=%f\n", s);
  }
  第1处填空:i<=n或n>=i
  第2处填空:||
  第3处填空:1.0或(double)1 [NextPage]   改错题
  下列给定程序中,fun函数的功能是:分别统计字符串中大写字母和小写字母的个数。例如,给字符串s输入:AaaaBBb123CCccccd,则应输出结果:upper=6,lower=8
  请改正程序中的错误,使程序能得出正确的结果。
  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  试题程序:
  #include
  #include
  /********found********/
  void fun(char  *s, int  a, int  b)
  {
  while (*s)
  {
  /********found********/
  if (*s>=’A’ && *s<=’Z’)
  a++;
  /********found********/
  if (*s>=’a’ && *s<=’z’)
  b++;
  s++;
  }
  }
  main()
  {
  char  s[100];
  int  upper = 0, lower = 0;
  printf("\nPlease a string : ");
  gets(s);
  fun(s, &upper, &lower);
  printf("\n upper=%d lower=%d\n", upper, lower);
  }
  第1处:void fun (char *s,int a,int b)应改为void fun(char *s,int *a,int *b)
  第2处:a++;应改为(*a)++;
  第3处:b++;应改为(*b)++;
 [NextPage]   编程题
  请编写一个函数void fun(char*tt,int pp[]),统计在tt字符串中“a”到“z”26个字母各自出现的次数,并依次存放在pp所指数组中。
  例如,当输入字符串abcdefgabcdeabc后,程序的输出结果应该是:33322110000000000000000000
  注意:部分源程序给出如下。
  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
  试题程序:# include
  # include
  void fun(char *tt, int pp[])
  {
  }
  main()
  {
  char aa[1000];
  int bb[26], k;
  FILE *out;
  printf("\nPlease enter a char string:");
  scanf("%s",aa);
  fun(aa,bb);
  for(k=0;k<26 ; k++)
  printf("%d",bb[k]);
  printf("\n");
  fun("a bosom friend afar brings a distant land near", bb);
  out = fopen("out.dat", "w");
  for (k = 0; k < 26; k++)
  fprintf(out, "%d\n", bb[k]);
  fclose(out);
  }
  答案是:
  void fun(char *tt,int pp[])
  {
  int  I;
  for(i=0;i<26;i++)
  pp[i]=0;
  while(*tt)
  {switch(*tt)
  {
  case ’a’:pp[0]++;break;
  case ’b’:pp[1]++;break;
  case ’c’:pp[2]++;break;
  case ’d’:pp[3]++;break;
  case ’e’:pp[4]++;break;
  case ’f’:pp[5]++;break;
  case ’g’:pp[6]++;break;
  case ’h’:pp[7]++;break;
  case ’i’:pp[8]++;break;
  case ’j’:pp[9]++;break;
  case ’k’:pp[10]++;break;
  case ’l’:pp[11]++;break;
  case ’m’:pp[12]++;break;
  case ’n’:pp[13]++;break;
  case ’o’:pp[14]++;break;
  case ’p’:pp[15]++;break;
  case ’q’:pp[16]++;break;
  case ’r’:pp[17]++;break;
  case ’s’:pp[18]++;break;
  case ’t’:pp[19]++;break;
  case ’u’:pp[20]++;break;
  case ’v’:pp[21]++;break;
  case ’w’:pp[22]++;break;
  case ’x’:pp[23]++;break;
  case ’y’:pp[24]++;break;
  case ’z’:pp[25]++;break;
  }
  tt++;
  }
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved