给定程序MODI1.C中函数fun的功能是:统计字符串中各元音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。例如:若输入:THIs is a boot,则输出应该是:1、0、2、2、0。 请改正程序中的错误,使它能得出正确的结果。

admin2017-07-27  34

问题 给定程序MODI1.C中函数fun的功能是:统计字符串中各元音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。例如:若输入:THIs is a boot,则输出应该是:1、0、2、2、0。
    请改正程序中的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
1  #include<stdio.h>
2  void fun(char *s,int num[5])
3  { int k,2=5;
4   for(k=0;k<i;k++)
5  /**********found**********/
6  num=0;
7 for(;*s;s++)
8   {  i=-1 ;
9  /**********found**********/
10  switch(s)
11  {case ’a’:case ’A’:{i=0;break;}
12  case’e’:case’E’:{i=1;break;}
13   case ’i’:case ’T’:{i=2;break;}
14  case ’o’:case’0’:{i=3;break;}
15 case’u’:case’U’:{i=4;break;}
16  }
17  if(>=0)
18   num++;
19  }
20  }
21  main()
22  { char s1[81];int num1[5],i;
23  printf(’’\nPlease enter a string:’’);gets(s1);
24    fun(s1,num1);
25  for(i=0;i<5;i++)printf(’’%d’’,num1);printf(’’\n’’);
26   }

选项

答案(1)num[k]=0;(2)switch(*s)

解析 (1)第一个标识下的for循环过程是将num数组中的变量初始值设置为0,用来统计每一个元音字母出现的个数,for循环中的循环条件表达式中的变量是k,所以第二个标识下“num=0;”改为“num[k]=0;”。
    (2)第二个标识下的switch-case条件选择的功能应该是对s指针指向的字符串中的每一个字符进行判断,不应该是s的数组名,所以第三个标识下“switch(s)”改为“switch(*s)”。
转载请注明原文地址:https://jikaoti.com/ti/OFi0FFFM
0

最新回复(0)