试题与答案

请补充函数fun(),该函数的功能是把数组aa中的偶数元素按原来的先后顺序放在原数组

题型:填空题

题目:

请补充函数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 10 void 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] ); }

答案:

参考答案:[1]aa[i]%2==0 (2)i<k

解析: 填空1:如果一个数对2求余,结果为0;则这个数为偶数,就把这个数先暂时存在数组bb中。否则这个数为奇数,就存在数组aa中。填空2:最后,将数组bb中的偶数都拷贝到数组aa中奇数的后面。变量k记录了原数组aa中偶数的个数,所以for循环的条件是i<k。

试题推荐
微信公众账号搜索答案