下列给定程序中,函数fun()的功能是:将字符串p中所有字符复制到字符串b中,要求每复制3个字符之后插入一个空格。例如,在调用fun()函数之前给字符串a输入ABCDEFGHIJK,调用函数之后,字符串b中的内容则为ABC DEF GHI JK。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <stdio. h>
void fun (char *p, char *b)
{ int i, k=0;
while (*p)
/*************found***************/
{ i=l;
/*************found***************/
while (i<3|| *P)
{
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题:
下列给定程序中,函数proc()的功能是:将字符串str中的所有字符复制到字符串b中,要求在每复制3个字符之后插入1个空格。例如,在调用proc()函数之前给字符
串str输入abcdefghijk,调用函数之后,字符串b中的内容则为abc def ghijk。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
第2题:
函数调用strcat(strcpy(str1,str2),str3)的功能是( )。
A.将字符串str1复制到字符串str2中后再连接到字符串str3之后
B.将字符串str1连接到字符串str2之后再复制到字符串str3之后
C.将字符串str2复制到字符串str1之后再将字符串str3连接到字符串str1之后
D.将字符串str2连接到字符串str1之后再将字符串strl复制到字符串str3中
第3题:
函数调用“strcat(strcpy(strl,str2),str3)”的功能是( )
A.将字符串strl复制到字符串str2中后再连接到字符串str3之后
B.将字符串strl连接到字符串str2中后再复制到字符率str3之后
C.将字符串str2复制到字符串strl中后再将字符串str3连接到字符串strl之后
D.将字符串str2连接到字符率strl之后再将字符串strl复制到字符串str3中
第4题:
下列给定程序中,函数fun()的功能是:将P所指字符串中的所有字符复制到b中,要求在每复制3个字符之后插入1个空格。
例如,若给a输入字符串:“ABCDEFGHIJK”,调用函数后,字符数组b中的内容为:“ABC DEF GHI JK”。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
(1)错误:b[k]=p;
正确:b[k]=*p;
(2)错误:b[k]=ˊ\0ˊ;
正确:b[k]=ˊˊ;k++
【解析】此题,首先要知道函数的参数类型可以是整型、实型、字符型和指针型。此处正是指针类型变量作为函数的参数,因此应该是“b[k]=*p”,而不是“b[k]=p”;题目要求在3个字符后加1个空格,通过条件表达式“i<=3&&*p”,①找到不需移动的字符(从第4个位置开始。每隔3个字符)并将其存入数组b中;②此时下标落到了需要移动的字符的位置,在数组b中此位置插入空格,具体语句为:“b[k]=ˊˊ;k++”,继续执行①直到处理到字符串p的最后一个字符。
第5题:
函数调用“streat(strcpy(str1,str2),str3)”的功能是 ______。
A.将字符串str1复制到字符串str2中后再连接到字符串str3之后
B.将字符串str1连接到字符串str2中后再复制到字符串str3之后
C.将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后
D.将字符串str2连接到字符串str1之后再将字符串str1复制到字符串str3中