填空题 1.  请补充函数proc(),该函数的功能是:交换数组aa中最大和最小两个元素的位置,将结果依然保存在原数组中,其他元素位置不变。(注意:数组aa中没有相同元素)
    例如,输入“10,20,30,40,50,60,70,80,90,56”,则输出“90,20,30,40,50,60,70,80,10,56”。
    注意:部分源程序如下。
    请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
    试题程序:
    #include<stdlib.h>
    #include<stdio.h>
    #define M 10
    void proc(int aa[])
    {
    int i,t;
    int max=0,min=0;
    for(i=0; i<M; i++)
    {
    if(______)
    max=i;
    if(______)
    min=i;
    }
    t=aa[max];
    ______;
    aa[min]=t;
    }
    void main()
    {
    int i;
    int aa[M]={  10,20,30,40,50,60,70,80,90,56};
    system("CLS");
    printf("\n***original list***\n");
    for(i=0; i<M; i++)
    printf("%4d",aa[i]);
    proc(aa);
    printf("\n***new list***\n");
    for(i=0; i<M; i++)
    printf("%4d",aa[i]);
    }
  • 1、
【正确答案】 1、aa[max]<aa[i]
   aa[min]>aa[i]
   aa[max]=aa[min]    
【答案解析】 要交换数组中最大和最小两个元素的位置,首先应该找到最大和最小两元素的位置。首先,将最大和最小两元素的位置初始化为0,然后,依次与后面的元素进行比较并改变位置,因此,空一处填“aa[max]<aa[i]”,空二处填“aa[min]>aa[i]”;找到最大和最小两元素的位置后进行交换,因此,空三处填“aa[max]=aa[min]”。