给定程序MODll.C中函数fun的功能是:先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串的后面。 例如:当s所指的字符串为:"ABCDE"时,则t所指的字符串应为:"EDCBAABCDE"。

admin2013-03-29  28

问题 给定程序MODll.C中函数fun的功能是:先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串的后面。
    例如:当s所指的字符串为:"ABCDE"时,则t所指的字符串应为:"EDCBAABCDE"。
    请改正程序中的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
void fun(char*s,char*t)
{
/****************found**************/
    int i;
    s1=strlen(s);
    for(i=0 ; i/*****************found***************/
    t=s[s1—i];
    for(i=0;i    t[s1+i]  =s
    t[2*s1]=’\0’;
}
main()
{char s[100],t[100];
  printf("\nPlease enter string
s:");scanf("%s",s);
  fun(s,t);
  printf("The result is:%s\n",t);
}

选项

答案(1)int i,s1; (2)t[i]=s[s1—i一1];

解析 (1)根据“s1=strlen(s);",可知变量s1记录字符串s的长度,是整型变量,在第一标识下没有定义s1,故第一标识下应补充s1的定义,应改为“int i,s1;"。
    (2)函数fun中的第一个for循环是求s的逆序,并将其存放在t串中。在求逆串时要注意第一个下标是0,最后一个是s1-1(s1是串的长度),第i个对应下标的是s1-1-i,所以“t=str[s1—i];"改为“t=str[s1-i-1];"。
转载请注明原文地址:https://jikaoti.com/ti/iBn0FFFM
0

最新回复(0)