填空题 1.  请补充函数proc(),该函数的功能是:把数组arr中的奇数元素按原来的先后顺序放在原数组后面。
    例如,原始数组为“33 67 42 58 25 76 85 16 41 55”,则输出结果为“42 58 76 16 33 67 25 85 41 55”。
    注意:部分源程序如下。
    请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
    试题程序:
    #include<stdlib.h>
    #include<stdio.h>
    #define M 10
    void proc(int arr[])
    {
    int i,j=0,k=0;
    int bb[M];
    for(i=0; i<M; i++)
    {
    if(______)
    bb[k++]=arr[i];
    else
    arr[j++]=arr[i];
    }
    for(i=0; i<k; ______)
    arr[j]=bb[i];
    }
    void main()
    {
    int i;
    int arr[M]={33,67,42,58,25,76,85,16,41,55};
    system("CLS");
    printf("\n***original list***\n");
    for(i=0; i<M; i++)
    printf("%4d",arr[i]);
    proc(arr);
    printf("\n***new list***\n");
    for(i=0; i<M; i++)
    printf("%4d",arr[i]);
    }
  • 1、
【正确答案】 1、arr[i]%2!==0或arr[i]%2==1
   i++,j++    
【答案解析】 要把数组中的奇数元素放在原数组后面,首先要把原数组中所有的奇数元素选择出来再放在临时数组bb中,因此,空一处填“arr[i]%2!==0”;最后,要把选择出来的奇数元素放在原数组后面,因此,空二处填“i++,j++”。