给定程序MODll.C、中函数fun的功能是:将m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指存储区中。 例如:把3个串:”abe”,”CD”,”EF”连接起来,结果是”abcCDEF”。 请改正程序中的错误,使它能得出正确

admin2013-04-02  21

问题 给定程序MODll.C、中函数fun的功能是:将m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指存储区中。
    例如:把3个串:”abe”,”CD”,”EF”连接起来,结果是”abcCDEF”。
    请改正程序中的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
void fun (char str[][10], int m, char *pt)
{
/************found************/
    int  k, q;
    for (k = 0; k < m; k++)
    {q = strlen (str [k]);
       for (i=0; i/************found************/
       pt=str[k,i];
       pt += q ;
       pt[0] = 0 ;
    }
}
main()
{int m, h ;
     char s[10][10], p[120] ;
     printf("\nPlease enter m:");
     scanf("%d", &m); gets(s[0]);
     printf("\nPlease enter  %d string:\n", m);
     for (h = 0; h < m; h++) gets(s[h]);
     fun(s, m, p);
     printf("\nThe result is : %s\n", p);
}

选项

答案int k, q, i; pt[i]=str[k][i];

解析 (1)第一标识下是整型变量k、q和i的定义,根据C语言中整型变量的定义方式,第一标识下应为“int k, q, i;”。
(2)第二个标识下的“pt=str[k,i];”语句应该将str中的字符依次拷贝到pt中,根据C语言中对二维数组每一位的取值,应该是str[k],所以“pt=str[k,i];”改为“pt=str[k];”。
转载请注明原文地址:https://kaotiyun.com/show/LJJp777K
0

最新回复(0)