问题 问答题

下列给定程序中,函数fun的功能是:将P所指字符串中的所有字符复制到b中,要求每复制3个字符之后插入一个空格。
例如,若给a输入字符串:“ABCDEFGHIJK”,调用函数后,字符数组b中的内容为:“ABC DEFGHI 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++;1++;

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");

答案

参考答案:b[k]=*p;
(2)b[k++]=’’;

解析:
本题关键字有:指针类型变量;字符与字符串的区别。函数的参数可以是整型、实型、字符型等数据类型,也可以是指针类型。它将一个变量的地址传送到另一个函数中。指针变量前加星号表示指针所指向的变量。
[微分析]
(1)p是指针型变量,所以赋值语句为b[k]=*p。
(2)复制三个字符后加一个空格,字符用单引号,所以改为b[k++]’’;。

名词解释
单项选择题 A1/A2型题