使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:将p所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。 例如,若给a输入字符串:“ABCDE

admin2018-08-11  30

问题 使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:将p所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。
例如,若给a输入字符串:“ABCDEFGHHK”,调用函数后,字符数组b中的内容为:“ABC DEF GHI JK”。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
void fun(char*p,char*b)
{int i,k=0;
while(*p)
{i=1;
while(i<=3&&*p){
/*********found*********/
b[k]=p;
k++;p++;i++;
}
if(*p)
{
/*********found*********/
b[k++]=" ";
}
}
b[k]=’\0’;}
main()
{char a[80],b[80];
printf("Enter a string:");
gets(a);
printf("The original string:");
puts(a);
fun(a,b);
printf("\nThe str2ng after insert space:");
puts(b);printf("\n\n");
}

选项

答案(1)b[k]=*p; (2)b[k]=’ ’;k++;

解析 (1)题目中p是指针型变量作函数参数,因此给b[k]赋值时出现错误。
(2)题目要求复制三个字符后加一个空格,所以应该是先给b[k]赋值空格,然后变量k再加1。
转载请注明原文地址:https://kaotiyun.com/show/WVxp777K
0

最新回复(0)