niusouti.com

下列给定程序中,函数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)/****

题目

下列给定程序中,函数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)错误:i=1; 正确:i=0; (2)错误:while(i3||*p) 正确:while(i3&&*p) (3)错误:b[k]=''; 正确:b[k++]='';
(1)错误:i=1; 正确:i=0; (2)错误:while(i3||*p) 正确:while(i3&&*p) (3)错误:b[k]=''; 正确:b[k++]=''; 解析:该题考查字符串复制程序的构造方法,题中插入空格字符的定义条件是while(i3||*p),当然要同时满足i3和*p这两个条件后才能执行{b(k++]=’’;}这个语句,该语句的含义是在输出结果中置入空格字符。
更多“下列给定程序中,函数fun()的功能是:将字符串p中所有字符复制到字符串b中,要求每复制3个字符之后 ”相关问题
  • 第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中


    正确答案:C
    strcat(s1,s2)函数的功能是把s2字符串连接到s1字符串末尾,strcpy(s1,s2)是把s2字符串复制到s1字符串,要保证sl的容量。

  • 第3题:

    函数调用“strcat(strcpy(strl,str2),str3)”的功能是( )

    A.将字符串strl复制到字符串str2中后再连接到字符串str3之后

    B.将字符串strl连接到字符串str2中后再复制到字符率str3之后

    C.将字符串str2复制到字符串strl中后再将字符串str3连接到字符串strl之后

    D.将字符串str2连接到字符率strl之后再将字符串strl复制到字符串str3中


    正确答案:C
    函数调用strcat(s1,s2)是将s2字符串复制连接到s1字符串之后,使s1字符串变得更长。函数调用strcpy(s1,s2)是将s2字符串复制到s1,使s1字符串的内容与s2字符串的内容相同。函数调用strcat(strcpy(strl,str2),str3)是先执行strcpy(strl,str2),然后再执行strcat(strl,str3),所以其功能是将字符串str2复制到字符串strl中,然后再将字符串str3复制连接到字符串strl之后。正确的选择是C。

  • 第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中


    正确答案:C