填空题   给定程序中,函数fun的功能是:在形参SS所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到则输出相应信息。ss所指字符串数组中共有N个字符串,且串长小于M。程序中库函数strstr(s1,s2)的功能是在s1串中查找s2子串,若没有,函数值为NULL,若有,为非NULL。
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    不得增行或删行,也不得更改程序的结构!
    给定源程序:
    #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<______;i++)
    /***********found***********/
    if(strstr(ss[i],______)!=NULL)
    {find=1;puts(ss[i]);printf('\n');}
    /***********found***********/
    if(find==______)
    printf('\nDon't found!\n');
    }
    main()
    {char x[N][M]={'BASIC','C langwage','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:此处考查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。