填空题 请补充函数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 ({{U}} 【1】 {{/U}}) bb [k++] =aa [i]; else aa [ j ++ ] =aa [i]; } for(i=0;{{U}} 【2】 {{/U}};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、
【正确答案】 1、[1]aa[i]%2==0 (2)i<k    
【答案解析】[解析] 填空1:如果一个数对2求余,结果为0;则这个数为偶数,就把这个数先暂时存在数组bb中。否则这个数为奇数,就存在数组aa中。填空2:最后,将数组bb中的偶数都拷贝到数组aa中奇数的后面。变量k记录了原数组aa中偶数的个数,所以for循环的条件是i<k。