当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级考试C语言十套上机题(4)
发布时间:2011/2/16 11:31:59 来源:城市学习网 编辑:ziteng

  1.填空题

  请补充函数fun(),该函数的功能是:分类统计一个字符串中元音字母和其他字符的个数(不区分大小写)。

  例如,输入aeiouAOUpqrt,结果为A:2 E:1 I:1 O:2 U:2 other:4。

  注意:部分源程序给出如下。

  请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

  试题程序:

  #include

  #include

  #define N 100

  void fun(char *str,int bb[])

  {

  char *p=str;

  int i=0;

  for(i=0;i<6;i++)

  【1】;

  while(*p)

  {

  switch(*p)

  {

  case 'A':

  case 'a':bb[0]++;break;

  case 'E':

  case 'e':bb[1]++;break;

  case 'I':

  case 'i':bb[2]++;break;

  case 'O':

  case 'o':bb[3]++;break;

  case 'U':

  case 'u':bb[4]++;break;

  default:【2】;

  }

  【3】

  }

  }

  main()

  {

  char str[N],ss[6]="AEIOU";

  int i;

  int bb[6];

  clrscr();

  printf("Input a string: \n");

  gets(str);

  printf("the string is: \n");

  puts(str);

  fun(str,bb);

  for(i=0;i<5;i++)

  printf("\n%c:%d",ss[i],bb[i]);

  printf("\nother:%d",bb[i]);

  }

  答案及评析:

  【1】bb[i]=0 【2】bb[5]++ 【3】p++;

  【解析】填空1:数组bb[6] 用来存放5个元音字母和其他字符的个数,在使用之前需要清零。

  填空2:数组元素bb[5] 用来存放其他字符的个数,当指针p所指的字符不是元音字母时,则认为是其他字符,bb[5]加1。填空3:指针p指向字符串str,通过p自加1来移动指针,访问字符串中的所有字符。 [NextPage]

  2. 改错题

  下列给定的程序中,函数fun()的功能是:计算并输出k以内最大的6个能被7或11整除的自然数之和。K的值由主函数传入,若k的值为500,则函数的值为2925。

  请改正程序中的错误,使它能得到正确结果。

  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

  试题程序:

  #include

  #include

  int fun(int k)

  {

  int m=0,mc=0, j;

  /**********************found***********************/

  while(k>=2)&&(mc<6)

  {

  /**********************found***********************/

  if((k%7=0)||(k=0))

  {

  /**********************found***********************/

  m=k;

  mc++;

  }

  k--;

  }

  return m;

  }

  main()

  {

  clrscr();

  printf("%d\n ",fun(500));

  }

  答案及评析:

  (1)错误:while(k>=2)&&(mc<6)

  正确:while((k>=2)&&(mc<6))

  (2)错误:if((k%7=0)||(k=0))

  正确:if((k%7==0)||(k= =0))

  (3)错误:m=k;

  正确:m=m+k;

  【解析】错误1:C语言规定while语句后的表达式两侧必须要有圆括号。

  错误2:if语句的判断条件应用关系运算符,而不是赋值运算符。

  错误3:根据题意,将满足条件的数求累加和。

  [NextPage]

  3. 编程题

  请编写一个函数fun(),它的功能是:将ss所指字符串中所有下标为偶数位置的字母转换为小写(若该位置上不是字母,则不转换)。

  例如,若输入ABC4efG,则应输出aBc4efg。

  注意:部分源程序给出如下。

  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

  试题程序:

  #include

  #include

  #include

  void fun(char *ss)

  {

  }

  main()

  {

  char tt[81];

  clrscr();

  printf("\nPlease enter an string within 80 characters:\n");

  gets(tt);

  printf("\n\nAfter changing, the string\n \%s",tt);

  fun(tt);

  printf("\nbecomes\n \%s\n",tt);

  }

  答案及评析:

  void fun(char *ss)

  {

  int i;

  for(i=0;ss[i]!='\0';i++) /*将ss所指字符串中所有下标为偶数位置的字母转换为小写*/

  if(i%2==0&&ss[i]>='A'&&ss[i]<='Z')

  ss[i]=ss[i]+32;

  }

  【解析】从C语言的学习中我们知道,只要将小写字母减去32则转成大写字母,将大写字母加上32则转成小写字母。该程序是用if语句实现该功能转化的。

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved