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

admin2015-08-23  41

问题  给定程序MODI1.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()
{  2nt 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 afterinsert:
\"%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://jikaoti.com/ti/iSi0FFFM
0

最新回复(0)