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

admin2018-03-28  25

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

选项

答案(1)void fun(char*s,int num[5]) (2)num[k]=0; (3)switch(*s)

解析 switch语句说明如下:
(1)switch后的表达式,可以是整型或字符型,也可以死枚举类型。
式的类型为任何类型。
(2)每个case后的常量表达式只能是由常量组成的表达式,当switch后表达式的值与某一个常量表达式的值一致时,程序就转到此case后的语句开始执行。如果没有一个常量表达式的值与switch后的值一致,就执行default后的语句。
(3)各个case后的常量表达式的值必须互不相同。
(4)各个case的次序不影响执行结果,一般情况下,尽量将出现概率大的case放在前面。
(5)在执行完一个case后面的语句后,程序会转到下一个case后的语句开始执行,因而必须使用break语句才能跳出。
转载请注明原文地址:https://jikaoti.com/ti/Ena0FFFM
0

最新回复(0)