问答题 给定程序中,函数fun的功能是:在形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回所剩字符串的个数。ss所指字符串数组中共有N个字符串,且串长小于M。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include #define 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[i]); /**********found**********/ if(len<= __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 f=fun(x,7); printf("The string witch length is less than or equal to 7 :/n"); for(i=0; i }
【正确答案】第一处:利用for循环,从几个字符串中进行查找,程序中已经给定了N个字符串,所以应填:N。 第二处:串长由形参k来传递,所以应填:k。 第三处:如果字符串ss[i]的串长小于k,则该字符串仍存在原字符串数组中,位置由变量j 来控制,所以应填:ss[i]。
【答案解析】