填空题 1.  下列给定程序中,函数fun的功能是:从形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回剩余字符串的个数。ss所指字符串数组中共有N个字符串,且串长小于M。
    请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
    注意:部分源程序给出如下。
    不得增行或删行,也不得更改程序的结构!
    试题程序:
    #include<stdio.h>
    #include<string.h>
    #define N 5
    #define M 10
    int fun(char (*ss)[M],int k)
    { int i,j=0,len;
    /********found********/
    for(i=0;i<______ ; i++)
    { len=strlen(ss[i]);
    /********found********/
    if(len<=______)
    /********found********/
    strcpy(ss[j++],______);
    }
    return j;
    }
    void main()
    {  char x [N] [M] = { " Beijing","Shanghai","Tianjin","Nanjing","Wuhan"};
    int i,f;
    printf("\nThe original string\n\n");
    for (i=0; i<N; i++) puts(x [i]);
    printf("\n");
    f=fun(x,7);
    printf ("The string witch length is less than or equal to 7 :\n");
    for(i=0; i<f; i++)puts (x[i]);
    printf("\n");
    }
  • 1、
【正确答案】 1、(1)N    (2)k    (3)ss[i]    
【答案解析】[考点]
   本题考查:for循环语句;if语句条件表达式;字符串复制函数strcpy的使用。
   
   填空1:for循环语句的作用是遍历字符串数组中的每一个字符串,所以循环变量i的循环条件是i<N。
   填空2:题目要求删除串长度大于k的字符串,所以if条件语句的条件表达式是len<=k。
   填空3:通过字符串复制函数将串长不大于k的字符串另存,并记录个数。
   字符串复制函数strcpy,其格式为:
   strcpy(字符数组名1,字符数组名2)
   功能:把字符数组2中的字符串复制到字符数组1中。字符串结束标识‘\0’也一同复制。字符数组名2,也可以是一个字符串常量,这时相当于把一个字符串赋予一个字符数组。