填空题 1.  请补充函数proc(),该函数的功能是:从键盘输入一个下标n,把数组arr中比元素arr[n]小的元素放在它的左边,比它大的元素放在它的右边,排列成的新数组仍然保存在原数组中。
    例如,数组arr={33,67,42,58,25,76,85,16,41,65},输入3。
    结果输出“33,42,25,16,41,58,67,76,85,65”。
    注意:部分源程序如下。
    请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
    试题程序:
    #include<stdlib.h>
    #include<stdio.h>
    #define M 10
    void proc(int arr[],int n)
    {
    int i,j=0,k=0,t;
    int bb[M];
    t=arr[n];
    for(i=0;i<M;i++)
    {
    if(arr[i]>t)
    bb[j++]=arr[i];
    if(arr[i]<t)
    arr[k++]=arr[i];
    }
    ______;
    for(i=0;______;i++,k++)
    arr[k]=bb[i];
    }
    void main()
    {
    int i,n;
    int arr[M]={33,67,42,58,25,76,85,16,41,65};
    system("CLS");
    printf("\n***original list***\n");
    for(i=0;i<M;i++)
    printf("%4d",arr[i]);
    printf("\n suffix n\n");
    scanf("%d",&n);
    proc(arr,n);
    printf("\n***new list***\n");
    for(i=0;i<M;i++)
    printf("%4d",arr[i]);
    }
  • 1、
【正确答案】 1、arr[k++]=t
   i<j    
【答案解析】 程序中首先将小于arr[n]的k个元素放入数组arr的前k个位置,将大于arr[n]的j个元素放入临时数组bb中。然后将arr[n]放入第(k+1)个位置。因此,第1空处填“arr[k++]=t”。最后将大干arr[n]的k个元素放入数组arr中。因此,第2空处填“i<j”。