给定程序中,函数fun的功能是:在形参SS所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(下标值),未找到则返回-1。ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include< stdio.h >
#include< string.h >
≠≠define N5
#deftne M8
int fun(char(*ss)[M],char*t)
{int i;
/**********found**********/
for(i=0;i< ___1___;i++)
/**********found**********/
if(strcmp(ss[i],t)=0)return___2___;
return-1;
}
main()
{char ch[N][M]={"if","while","switch","int","for"},t[M];
int n,i;
printf("\nThe corginal\n\n");
for(i=0;i< N;i++)puts(ch[i]);printf("\n");
printf("\nEnter a string for search:");gets(t);
n=fun(ch,t);
/**********found**********/
if(n=___3___)printf("\nDon’t found!\n");
else printf("\nThe position is%d.\n",n);
}
【正确答案】(1)N
(2)i
(3)-1
【答案解析】第一空:“for(i=0;i< ___1___;i++)”补充循环的结束条件,6m的参数(tss)[M]是指向N行M列的字符串数组,循环是逐行查找是否存在t所指的字符串,因此循环次数是N次,故第一空处应为“N”。第二空:“if(strcmp(ss[i],t)==0)return___2___;”说明两个字符串相同,按照题于要求,应返回该串在字符串数组中的位置i,故第二空处为“i”。第三空:“if(n==___3___)printf("\nDon’t found!\n");”,fun函数未找到则返回-1,因此这里是判断n是否等于-1,如果n等于-1标识没有找到,在屏幕上输出“Don’t found!”,因此第三空处为“-1”。