给定程序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长<N。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结

admin2019-05-12  6

问题 给定程序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长<N。
    请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
    注意:不得增行或删行,也不得更改程序的结构!
    试题程序:
    #include<stdio.h>
    #include<string.h>
    #define M 5
    #define N 20
    /*  *  *  *  *  *found*  *  *  *  *  */
    int fun(char(*ss)  1  ,int*n)
    {
    int i,k=0,len=0;
    for(i=0;i<M;i++)
    {
    len=strlen(ss);
    /*  *  *  *  *  *found*  *  *  *  *  */
    if(i==0)*n=  2  
    if(len>*n)
    {
   /*  *  *  *  *  *found*  *  *  *  *  */
      3  ;k=i;
     }
   }
    return(k}:
    {
    main()
    {
    char ss[M][N]={"shanghai","guang-
zhou","beijing","tianjing","cchongqing"};
    int n,k,i;
    printf("The original strings are:\n");
    for(i=0;i<M;i++)puts(ss);
    k=fun(ss,&n);
    printf("The length of longest string
is:%d\n",n);
    printf("The longest string is:% s\n",
ss[k]);
    }

选项

答案(1)[N] (2)len (3)*n=len

解析 本题考查:字符数组处理;函数形参定义;for循环语句。
  填空1:形参ss是一个字符串数组的定义,其宽度为N,所以应填[N]。
  填空2:*n用来记录最长字符串的长度,此处取第一个字符串的长度赋值给变量*n,所以应填len。
  填空3:每循环一次,判断当前字符串的长度是否大于*n,如果大于,则*n=len。
转载请注明原文地址:https://jikaoti.com/ti/2ukiFFFM
0

最新回复(0)