给定程序MODIl.C中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。 注意:字符串的长度最长允许为79。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或

admin2016-10-29  74

问题 给定程序MODIl.C中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。
    注意:字符串的长度最长允许为79。
    请改正函数fun中指定部位的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#inolude
void fun(char s[],int n)
{
  char a[80],*p;
  int  i;
/**********found**********/
    s=p;
    for(i=0;  i=’*’;
    do
    {  a=*p;
    i++;
    }
/**********found***********/
  while(*p++)
  a=0 ;
  strcpy(s,a);
}
main()  
{  int n;char s[80];
  printf("\nEnter a string:");
gets(s);
  printf("\nThe string\"%s\"\n",s);
  printf("\nEnter n(number of*):
");scarlf("%d",&n);
  fun(s,n);
  printf("\nThe string after insert:
\"%s\"  \n"  ,s);
}

选项

答案(1)p=s; (2)while(*p++);

解析 (1)变量初始化应是将形参数组地址s传给工作指针p。因此,应将“s=p;”改为“p=s;”。
    (2)do while循环的目的是把p指向的字符串内容拷贝到a字符串的后面,但第二标识下while语句没有使用分号技术,故第二标识下应改成“while(*p++);”。
转载请注明原文地址:https://kaotiyun.com/show/8jDp777K
0

最新回复(0)