下列给定程序中,函数fun的功能是:将p所指字符串中的所有字符复制到b中,要求每复制3个字符之后插入一个空格。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动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 string after insert
space: ");
puts (b); printf ("\n\n");
参考答案:b[k]=*p;
(2) b[k]=’ ’;k++;
答案考生文件夹
解析: 本题考查:指针类型变量作为函数的参数,函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。
[解题思路] (1)题目中p是指针型变量作函数参数,因此给b[k]赋值时出现错误。
(2) 题目要求赋值3个字符后加一个空格,所以应该是先给b[k]赋值空格,然后变量k再加1。
[解题宝典] C语言中为了表示指针变量和它所指向的变量之间的关系,在程序中用"*"符号表示"指向",例如,pointer代表指针变量,而*pointer是pointer所指向的变量。