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

admin2019-04-04  25

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

最新回复(0)