下列给定程序中函数fun的功能是:将p所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。 例如,若给a输入字符串:ABCDEFGKHIJK,调用函数后,字符数组b中的内容为:ABC DEF GHI JK。 请改正程序中的错误,使它能得出

admin2015-07-30  19

问题 下列给定程序中函数fun的功能是:将p所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。
例如,若给a输入字符串:ABCDEFGKHIJK,调用函数后,字符数组b中的内容为:ABC DEF GHI JK。
请改正程序中的错误,使它能得出正确结果。
注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构。
#include
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],bE 80];
printf("Enter a string:");gets
(A);
printf("The original string:");puts
(A);
fun(a,b);
printf("\nThe string after imert space:");puts(b);printf("\n\n");
}

选项

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

解析 本题考查:指针类型变量作为函数的参数,函数的参数不仅可以是整型、实型、字符型等数据类型,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。
    (1)题目中p是指针型变量作函数参数,因此给b[k]赋值时出现错误。
    (2)题目要求赋值3个字符后加一个空格,所以应该是先给b[k]赋值空格,然后变量k再加1。
    C语言中为了表示指针变量和它所指向的变量之间的关系,在程序中用“*”符号表示“指向”。
    例如,pointer代表指针变量,而*pointer是pointer所指向的变量。
转载请注明原文地址:https://kaotiyun.com/show/osDp777K
0

最新回复(0)