问题 多项选择题

printf("\n ");

答案

参考答案:void fun(char*tt,int pp[] )
{
int i;
fori=0;i<BF;i++)
pp[i]=0; /*初始化pp数组各元素为0*/
for(;*tt!=’\0’;tt++)
if(*tt>=’a’&&*tt<=’z’)
pp[*tt-’a’]++; /*将tt字符串中’a’到’z’BF个字母各自出现的次数,依次放在pp数组中,任一个小写字
母减去’a’后所得结果正好是它对应的下标*/
}

解析: 第1个循环的作用是初始化数组pp,未经赋值变量的量为一个不确定数字。由于它要将’a’到’z’26个字母的个数依次放到数组pp中。即’a’的个数存于pp[0]中,’b’的个数存于pp[1]中,’c’的个数存于pp[2]中,…,依次类推。而’a’-’a’的值正好为0,’b’-’a’的值为1,’c’-’a’的值为2,…,依此类推。即任一个小写字母减去’a’后所得结果正好是它对应的下标,所以就有了pp[*tt-’a’]++。但*tt必须是小写字母即if()不应省略。

单项选择题
多项选择题