填空题
下列给定程序中函数fun()的功能是:统计substr所指的子符串在str所指的字符串中出现的次数。例如,若字符串为aaas
1kaaas,子字符串为as,则应输出2。请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序
#include <
stdio.h >
int fun(char *str, char * substr)
{
int i, j, k, num=0;
/* * * * *found* * * * * /
for(i=0, str[i], i++)
for(j=i, k=0; substr[k]==str[j]; k++,
j++)
/* * * * *found* * * * * /
if(substr[k+1]=='/0')
{ num++;
break;
}
return num;
}
main()
{ char str[80], substr[80];
printf("Input a string:");
gets (str);
printf("Input a substring:");
gets (substr);
printf("% d/n", fun(str, substr));
}
【正确答案】(1)for(i=0; str[i]; i++)
(2)if(substr[k+1]=='/0')
【答案解析】[解析] 本题考查:for循环语句的格式,for循环语句使用最为灵活,其一般形式为for(表达式1;表达式2;表达式3),注意表达式之间使用“;”相隔;if条件语句的格式,其中if关键字需要区别大小写,这里不能混淆使用。关键字是由C语言规定的具有特定意义的字符串组成,也称为保留字。用户定义的标识符不应与关键字相同,并且关键字应小写。