给定程序MODll.C中函数fun的功能是:比较两个字符串,将长的那个字符串的首地址作为函数值返回。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #inclu

admin2013-03-29  38

问题 给定程序MODll.C中函数fun的功能是:比较两个字符串,将长的那个字符串的首地址作为函数值返回。
    请改正函数fun中指定部位的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
/**************found**************/
char fun(char*s,char*t)
{  int s1=0,t1=0;char*ss,  *tt;
  ss=s;tt=t;
  while(*ss)
  {  s1++;
/****************found****************/
    (*ss)++;
    )
    while(*tt)
    {  tl++;
/****************found****************/
    (*tt)++;
    }
    if(tl>s1)return t;
    else return s;
}
main()
{char a[80],b[80];
  printf("\nEnter a string:");
gets(a);
  printf("\nEnter a string again:
");gets(b);
  printf("\nThe longer is:\n\n\
"%s\"\n",fun(a,b));
}

选项

答案(1)char*fun(char*s,char*t) (2)ss++; (3)tt++;

解析 (1)题目中要求返回字符串的首地址,fun函数中的返回值类型应该是char*类型而不是char型,所以“charfhn(chin*s,chat*t)"应该改为“char*fun(char*s,char*t)"。
    (2)第二个标识下应该是指向第一个字符串的下一个字符,而“(*ss)++;"是对指针指向字符的值加1,所以“(*ss)++;"改为“ss++;"。
    (3)同理,第三个标识符下的“(*tt)++;"改为“tt++;"。
转载请注明原文地址:https://jikaoti.com/ti/dIn0FFFM
0

最新回复(0)