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

admin2021-04-28  25

问题 给定程序MODI1.C中函数fun的功能是:统计字符串中各元音字母(即:A、E、I、O、U)的个数。
注意:字母不分大、小写。
    例如:若输入:THIs is a boot,则输出应该是:1、0、2、2、0。
    请改正程序中的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
void fun (char *s,int num[5])
{  int k,i=5;
         num [1] =0;
   switch (s)
     {  case ’a’:case ’A’:{i=0;break; }
        case  ’e’ :case  ’E’ : {i=l;break; }
         case  ’i’ :case  ’I’ : {1=2;break; }
         case  ’o’ :case  ’O’ : {i=3;break; }
        case  ’u’ :case  ’U’ : {i=4;break; }
   if (i >=0)
        }
}
main ()
{  char sl[81]; int numl[5],1;
     printf ( "\nPlease enter a string:
    fun  (s1, num1) ;
   for (i=0; i < 5; 1++) printf ("%d
",num1 ) ;  printf  ("\n") ;
}

选项

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

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

最新回复(0)