填空题
下列给定程序中,函数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 ");
}
【参考答案】
错误:i=1; 正确:i=0;
热门
试题
问答题
请编写函数fun(),该函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。例如,若二维数组中的数据为:33 33 33 3344 44 44 4455 55 55 55 则一维数组中的内容应该是33 33 33 33 44 44 44 AA, 55 55 55 55 注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序: #include <stdio. h>void fun (int (*s)[10], int *b, int *n,int mm, int nn){ }main ( ){int w[10] [10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}}, i, j;int a[100]={0},n=0 ;printf ( The matrix: n );for (i=0; i<3; i++){for (j+0; j<4; j++)printf ( %3d ,w[i] [j] );printf ( n );}fun (w,a, &n, 3, 4);printf ( The A array: In );for(i=0; i<n; i++)printf ( %3d , a [i] );printf ( n n );}
填空题
请补充函数fun(),该函数的功能是把数组aa中的偶数元素按原来的先后顺序放在原数组后面。例如,输入“33,67,42,58,25,76,85,16,41,56”,输出结果“33,67,25,85,41,42,58,76,16,56”。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:#define N 10void fun (int aa [] ){int i, j=0,k=0;int bb [N];for (i=0;i<N; i++){if ( 【1】 )bb [k++] =aa [i];elseaa [ j ++ ] =aa [i];}for(i=0; 【2】 ;i++,j++)aa[j] =bb [i];}main ( ){int i;int aa[N]={33, 67,42,58,25, 76, 85, 16,41,56};clrscr ();printf( n*** original list *** n );for (i=0;i<N; i++)printf ( %4d , aa [i] );fun (aa);printf( n*** new list *** n );for (i=0; i<N; i++)printf ( %4d , aa [i] );}