问答题
给定程序MODI1.C中 fun 函数的功能是:分别统计字符串中大写字母和小写字母的个数。
例如, 给字符串 s 输入:AAaaBBb123CCccccd,则应输出结果:
upper = 6, lower = 8。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
/**********found**********/
void fun ( char *s, int a, int b )
{
while ( *s )
{ if ( *s >= 'A' && *s <= 'Z' )
/**********found**********/
*a=a+1 ;
if ( *s >= 'a' && *s <= 'z' )
/**********found**********/
*b=b+1;
s++;
}
}
main( )
{ char s[100]; int upper = 0, lower = 0 ;
printf( "/nPlease a string : " ); gets ( s );
fun ( s, & upper, &lower );
printf( "/n upper = %d lower = %d/n", upper, lower );
}
【正确答案】第一处:在等式右边应写*a。
第二处:在等式右边应写*b。
【答案解析】