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

admin2013-03-29  28

问题 给定程序MODll.C中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。
    注意:字符串的长度最长允许为79。
    请改正函数fun中指定部位的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
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*):
");scanf("%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)dowhile循环的目的是把P指向的字符串内容拷贝到a字符串的后面,但第二标识下while语句没有使用分号技术,故第二标识下应改成“while(*p++);"。
转载请注明原文地址:https://kaotiyun.com/show/lWJp777K
0

最新回复(0)