给定程序中,函数fun的功能是:在形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回所剩字符串的个数。ss所指字符串数组中共有N个字符串,且串长小于M。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注

admin2013-04-02  23

问题 给定程序中,函数fun的功能是:在形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回所剩字符串的个数。ss所指字符串数组中共有N个字符串,且串长小于M。
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANKl.C中。
    不得增行或删行,也不得更改程序的结构!
#include  
#inolucte  
#defitie N 5
#define M 10
int fun(char(*ss)[M],int k)
{int i,j=0,len;
/******************found*******************/
  for(i=0;i< 【1】;i++)
  {len=strlen(ss);
/******************found*******************/
    if(1en<= 【2】)
/******************found*******************/
    strcpy(ss[j++],【3】);
  }
  return j;
}
main()
(char x[N][M]={”Beijing”,”Shanghai”,
”Tianjing”,”Nanjing”,”Wuhan”};
  int i,f;
  printf(”\nThe original string\n\n”);
  for(i=0;i);
printf(”\n”);
  f=fun(x,7);
  printf(”The string which length
is less than or equal to 7:\n”);
  for(i=0; i);
printf(”\n”);
}

选项

答案N k ss[i]

解析 第一空:“for(i=0; i<__1__; i++)”补充循环的结束条件,fun的参数(*ss)[M]是指向N行M列的字符串数组,循环是逐行查找字符串的长度是否超过k,因此循环次数是N次,故第一空处应为“N”。
第二空:“if(len<=__2__) strcpy(ss[j++],__3__);”可知在循环当中是将长度没有超过k的字符串保存在ss所指的字符串数组的前面,j记录满足长度不超过k的字符的个数,因此第二空处为“k”。
第三空:此处是将字符串长度不超过k的字符串ss拷贝到ss[j++]中,故第三空处为“ss”。
转载请注明原文地址:https://kaotiyun.com/show/RDJp777K
0

最新回复(0)