2006年9月全国等级考试三级c语言上机题库(十九)

文章作者 100test 发表时间 2007:03:10 19:12:47
来源 100Test.Com百考试题网


题目19(无忧id 144 单词个数统计题)

编写一个函数findStr(char *str,char *substr),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。例如,假定输入的字符串为"asd asasdfg asd as zx67 asd mklo",子字符串为"as",函数返回值是6。

函数ReadWrite()实现从文件in.dat中读取两个字符串,并调用函数findStr(),最后把结果输出到文件out.dat中。

注意:部分源程序存在文件prog1.c中。

请勿改动主函数main()和其它函数中的任何内容,仅在函数findStr()的花括号中填入你编写的若干语句。

#include

#include

#include

int findStr(char *str,char *substr)

{ int n=0.

char *p , *r.

while ( *str )

{p=str.

r=substr.

while(*r)

if(*r==*p) { r . p . }

else break.

if(*r==\0)

n .

str .

}

return n.

}

main()

{

char str[81], substr[3] .

int n .

clrscr() .

printf("输入原字符串:") .

gets(str) .

printf("输入子字符串:") .

gets(substr) .

puts(str) .

puts(substr) .

n=findStr(str, substr) .

printf("n=%d\n", n) .

ReadWrite() .

}

ReadWrite()

{

char str[81], substr[3], ch.

int n, len, i = 0.

FILE *rf, *wf .

rf = fopen("in.dat", "r") .

wf = fopen("out.dat", "w") .

while(i < 25) {

fgets(str, 80, rf) .

fgets(substr, 10, rf) .

len = strlen(substr) - 1 .

ch = substr[len] .

if(ch == \n || ch == 0x1a) substr[len] = 0 .

n=findStr(str, substr).

fprintf(wf, "%d\n", n) .

i .

}

fclose(rf) .

fclose(wf) .

}

解法二:

int findStr(char *str,char *substr)

{ int i,j,len1,len2,cnt=0,flag.

len1=strlen(str).

len2=strlen(substr).

for(i=0.i

{ for(j=0.j

if(str[i j]==substr[j]) flag=1.

else {flag=0.break.}

if(flag==1) cnt .

}

return cnt.

}

解法三:

int findStr(char *str,char *substr)

{ int i,cnt=0.

for(i=0.i

if(str[i]==*substr&.&.str[i 1]==*(substr 1)) cnt .

return cnt.

}

解法四:

int findStr(char *str,char *substr)

{int cnt=0.

while(*str)

if(*str==*substr&.&.*(str 1)==*(substr 1)) { cnt . str .}

else str .

return cnt.

}

相关文章


2006年9月全国等级考试三级c语言上机题库(二十三)
2006年9月全国等级考试三级c语言上机题库(二十一)
2006年9月全国等级考试三级c语言上机题库(二十二)
2006年9月全国等级考试三级c语言上机题库(二十)
2006年9月全国等级考试三级c语言上机题库(十九)
2006年9月全国等级考试三级c语言上机题库(十八)
2006年9月全国等级考试三级c语言上机题库(十七)
2006年9月全国等级考试三级c语言上机题库(十五)
2006年9月全国等级考试三级c语言上机题库(十六)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛