填空题 下列给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串,并输出,若没找到则输出相应信息。ss所指字符串数组中共有N个字符串,且串长小于M。程序中库函数strstr(s1,s2)的功能是在s1串中查找s2子串第一次出现的位置,返回该位置的指针,找不到则返回空指针。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<string.h>
#define N 5
#define M 15
void fun(char(*ss)[M], char*substr)
{
int i, find=0;
/**********found**********/
for(i=0; i< 1; i++)
/**********found**********/
if(strstr(ss[i], 2)!=NULL)
(find=1; puts(ss[i]); printf("/n");}
/**********found**********/
if(find== 3)
printf("/nDon"t found!/n");
}
main()
{char x[N][M]=("BASIC", "C language", "Java", "QBASIC", "Access"}, str[M];
int i;
printf("/nThe original string/n/n");
for(i=0; i<N; i++)puts(x[i]);
printf("/n");
printf{"/nEnter a string for search:");
gets(str);
fun(x, str);
}
【正确答案】
【答案解析】(1)N (2)substr (3)0 [解析] 填空1:此处考查for循环语句中循环变量i的取值范围,题目指出共有N个字符串,所以i的取值范围为0~N-1。
填空2:strstr(s1, s2)的功能是在s1串中查找s2子串。题目要求在ss字符串数组中,查找substr所指的字符串,故应填substr。
填空3:此处使用if条件语句来判断查找结果,由printf("/nDon"t found!/n")可知此处需填写没有找到的条件,即是find==0。