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

admin2016-12-06  12

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

选项

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

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

最新回复(0)