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

admin2016-12-06  32

问题 下列给定程序中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。
    字符串的长度最长允许为79。
    请改正程序中的错误,使它能得出正确的结果。
    注意:部分源程序在文件NODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!
    试题程序:
1   #include<stdio.h>
2   #include<string.h>
3   void fun(char s[],int n)
4   {
5   char a[80],*p;
6   int i;
7    /********* found*********/
8   s=p;
9   for(i=0;i=’*’;
10  do
11  {a=*p;
12    i++;
13    }
14    /*********found*********/
15   while(*p++)
16   a=0 ;
17   strcpy(s,a);
18  }
19   main()
20  {int n;char s[80];
21   printf(’’\nEnter a string:’’);
22   gets(s);
23   printf(’’\nThe string\’’%s\’’\n’’,s);
24   printf(’’\Enter n(number of*):’’);
25   scanf(’’%d’’,&n);
26   fun(s,n);
27    printf(’’\nThe string after in-sert\’’%s、’’、n’’,s);
28  }

选项

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

解析 (1)指针p应指向s,所以应改为p=s;。
(2)循环等待,当while循环执行一次,临时变量p应该指向字符串的下一位置,所以应改为while(*p++);。
转载请注明原文地址:https://kaotiyun.com/show/NNDp777K
0

最新回复(0)