问答题 下列给定程序中,函数fun的功能是:将p所指字符串中的所有字符复制到b中,要求每复制4个字符之后插入一个空格。例如,若给a输入字符串:ABCDEFGHIJK,调用函数后,字符数组b中的内容为:ABCD EFGH IJK。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MOD11.C中,不得增行或删行,也不得更改程序的结构。#include<stdio.h>void fun(char*P,char*b){int i,k=0;while(*p){i=1;while(i<=4&&*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'');}
【正确答案】正确答案:1.b[k]=*p; 2.b[k]='';k++;
【答案解析】解析:1.题目中p是指针型变量作函数参数,因此给b[k]赋值时出现错误。 2.题目要求赋值4个字符后加一个空格,所以应该是先给b[k]赋值空格,然后变量k再加1。 C语言中为了表示指针变量和它所指向的变量之间的关系,在程序中用“*”,表示“指向”,例如,pointer代表指针变量,而*pointer是pointer所指向的变量。