给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符“*”补齐,使其与最长的字符串等长。ss所指字符串数组中共有M个字符串,且串长<N。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

admin2019-09-02  20

问题 给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符“*”补齐,使其与最长的字符串等长。ss所指字符串数组中共有M个字符串,且串长<N。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
#include<string.h>
#define M 5
#define N 20
void fun(char(*ss)[N])
{  int i,j,n,len=0;
    for(i=0;i<M;i++)
    {len=strlen(ss);
    if(i==0)n=len;
    if(len>n)n=len;
    }
    for(i=0; i<M; i++)  {
/**********found**********/
    n=strlen(___1___);
    for(j=0;j<len-n;j++)
/**********found**********/
    ss[___2___]=’*’;
/**********found**********/
    ss[n+j+___3___]=’\0’;
    }
}
main()
{  char ss[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"};
    int i;
    printf("The original strings are:\n");
    for(i=0;i<M;i++)printf("%s\n",ss);
    printf("\n");
    fun(ss);
    printf("The result is:\n");
    for(i=0;i<M;i++)printf("%s\n",ss);
}

选项

答案(1)ss[i] (2)n+j (3)1

解析 函数fun的功能是求出形参ss所指字符串数组中最长字符串的长度。
第一空:第一个循环求最长字符串的长度“len”,在第二个循环内在其他字符串的后面补“*”,使其达到长度“len。”在“for(=i=0;j<len-n;j++)”语句中,“i<len-n”是在字符串的后面填“len-n”个“*”,故n是字符串“ss”的长度,因此,第一空应为“ss”。
第二空:循环“for(j=0;j<len-n;j++)”目的是在字符串的后面填len-n个“*”,第二空处应为“n+j”。
第三空:字符串以“\0”结束,因此,需在字符串后加结束符,故第三空应为“1”。
转载请注明原文地址:https://kaotiyun.com/show/2KRp777K
0

最新回复(0)