问答题 给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符“*”补齐,使其与最长的字符串等长。ss所指字符串数组中共有M个字符串,且串长<N。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #include<string.h>3 #define M 54 #define N 205 void fun(char(*ss)[N])6 { int i,j,n,len=0;7 for(i=0;i<M;i++)8 {len=strlen(ss[i]);9 if(i==0)n=len;10 if(len>n)n=len;11 }12 for(i=0;i<M;i++) {13 /**********found**********/14 n=strlen( __1__);15 for(j=0;j<len-n;j++)16 /**********found**********/17 ss[i][ __2__]='*';18 /**********found**********/19 ss[i][n+j+__3__]='\0';20 }21 }22 main()23 { char ss[M][N]={''shanghai'',''guangzhou'',''beijing'',''tianjing'',''cchongqing''};24 int i;25 printf(''The original strings are:\n'');26 for(i=0;i<M;i++)printf(''%s\n'',ss[i]);27 printf(''\n'');28 fun(ss);29 printf(''The resuit is:\n'');30 for(i=0;i<M;i++)printf(''%s\n'',ss[i]);31 }
【正确答案】正确答案:(1)ss[i] (2)n+j (3)1
【答案解析】解析:函数fun的功能是求出形参ss所指字符串数组中最长字符串的长度。 第一空:第一个循环求最长字符串的长度“len”,在第二个循环内在其他字符串的后面补“*”,使其达到长度“len。”在“for(j=0;j<len-n;j++)”语句中,“i<len-n”是在字符串的后面填“len-n”个“*”,故n是字符串“ss[i]”的长度,因此第一空应为“ss[i]”。 第二空:循环“for(j=0;j<len-n;j++)”目的是在字符串的后面填len-n个“*”,第二空处应为“n+j”。 第三空:字符串以“\0”结束,因此需在字符串后加结束符,故第三空应为“1”。