问答题
下列给定程序中,函数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 nnm; } void 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++) 正确:for(i=0; str[i]; i++)......
(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
填空题 请补充fun()函数,fun()函数的功能是求n的阶乘。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在fun()函数的横线上填入所编写的若干表达式或语句。试题程序:#include<stdio.h>long fun(int n){if(______)return(n*fun(______));return ______;}void main(){printf("10!=%1d\n", fun(10)); }