下列给定程序中,fun函数的功能是:分别统计字符串中大写字母和小写字母的个数。 例如,给字符串s输入:AAaaBBbb123CCcccd,则应输出: upper=6,lower=8。请改正程序中的错误,使它得出正确的结果。 注意:部

admin2016-12-06  38

问题 下列给定程序中,fun函数的功能是:分别统计字符串中大写字母和小写字母的个数。
    例如,给字符串s输入:AAaaBBbb123CCcccd,则应输出:
    upper=6,lower=8。请改正程序中的错误,使它得出正确的结果。
    注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!
    试题程序:
1   #include<stdio.h>
2   /**********found**********/
3   void fun(char*s,int a,int b)
4   {
5  while(*s)
6   {if(*s>=’A’&&*s <=’Z’)
7  /**********found**********/
8    *a=a=a+1 ;
9    if(* s  >= ’a’&&  *s  <=  ’z’)
10   /**********found**********/
11    *b=b+1;
12    s++;
13   }
14   }
15   main()
16   {char s[100];int upper=0,lower=0 ;
17  printf(’’\nPlease a string:’’);
18   gets(s);
19   fun(s,&upper,&lower);
20   printf(’’\n upper=% d lower=%d\n’’,upper,lower);
21   }

选项

答案(1)void fun(char*s,int*a,int*b) (2)* a=*a+1; (3)* b=*b+1;

解析 (1)由主函数中调用。fun函数的语句fun(s,&upper,&lower)可知,函数的后两个变量为指针的形式,所以用*a和*b。
(2)*a的作用是用来记录大写字母的个数,此处的作用是对*a累加1,所以此处应改为*a=*a+1。
(3)*的作用是用来记录小写字母的个数,此处的作用是对*b累加1,所以此处应改为*b=*b+1。
转载请注明原文地址:https://kaotiyun.com/show/8NDp777K
0

最新回复(0)