使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。 字符串的长度最长允许为79。 请改正程序中的错误,使它能

admin2018-08-11  42

问题 使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。
字符串的长度最长允许为79。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件NODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<string.h>
void fun(char s[],int n)
{
char a[80],*p;
int i;
/*********found*********/
s=p;
for(i=0;i<n;i++)a=’*’;
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("\ngnter n(number of*):");
scanf("%d",&n);
fun(s,n);
printf("\nThe string after insert:\"%s\"\n",s),
}

选项

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

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

最新回复(0)