在给定程序中,函数fun的功能是:在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(下标值),未找到则返回-1,ss所指字符串数组中共有N个内容不同的字符串,且串长小于N。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构。
文件BLANK1.C内容如下:
#include<stdio.h>
#include<string.h>
#define N 5
#define M 8
int fun(char(*ss)[M],char *t)
int i:
/**********found**********/
for(i=0;i< (1) ;i++)
/**********found**********/
if(stremp(ss[i],t)==0)return (2) ;
return -1;
void main( )
char ch[N][M]="f","while","switch","int","for",t[M];
int n,i;
printf("\nThe original stringin\n");
for(i=0;i<N;i++)puts(ch[i]);
printf("\n");
printf("\nEnter a string for search: ");
gets(t);
n=fun(eh,t);
/**********found**********/
if(n== (3) )printf("\nDon’t found!\n");
else printf("\nThe position is%d.\n",n);
参考答案:-1
解析: main函数中定义了一个二维数组并存放了5行字符串。通过调用函数fun查找形参t所指字符串是否在此二维字符数组中出现。函数fun中使用了顺序查找法,通过for循环,从第一字符串开始依次进行比较,因为有N行字符串,所以i循环从0开始,循环到N(不包括N),因此第1空处应填入N。如果strcmp(ss[i],t)==0,说明两个字符串相等,则返回该字符串在数组中位置,即它的行号,所以第2空处应填入i。如果循环完毕都没有找到相等的字符串,则说明该字符串不在数组中,应该返回-1。main函数中调用fun函数,返回值赋给了变量n,若n的值等于-1,则说明t指向的字符串不在二维数组ch中,应该输出“Don’t found!”,所以第3空处应填入-1。