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

admin2015-06-08  41

问题 给定程序MODII.C中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。
    注意:字符串的长度最长允许为79。
    请改正函数fun中指定部位的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
void fun(char s[],int n)
{
  char a[8 0],*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[8 0];
  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++);

解析 在字符串的最前端加入n个“*”号,形成新串,并且覆盖原串。然后通过“printf(“\nThe string after insert:\"%s\"\n”,s);”函数直接输出结果。
   [解题思路]
    (1)变量初始化应是将形参数组地址s传给工作指针p。因此,应将“s=p;”改为“p=s;”。
    (2)do while循环的目的是把p指向的字符串内容拷贝到a字符串的后面,但第二标识下while语句没有使用分号,故第二标识下应改成“while(*p++):”。
转载请注明原文地址:https://kaotiyun.com/show/8iJp777K
0

最新回复(0)