下面程序的功能是从键盘输入10个整数,用函数编程实现计算其最大值和最小值,并互换它们所在数组中的位置。程序运行结果如下:
Input n(n<=10):10↙
Input 10 Numbers:1 4 3 0 –2 6 7 2 9 -1 ↙
Exchange results:     1     4     3     0     9     6     7     2    -2    -1
按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。

#include  
void ReadData(int a[], int n);
void PrintData(int a[], int n);
void  MaxMinExchang(int a[], int n);
void Swap(int *x, int *y);
int main()
{
    int  a[10], n;
    printf("Input n(n<=10):");
    scanf("%d", &n);
    printf("Input %d numbers:", n);
    ReadData(a, n); 
    MaxMinExchang(a, n);
    printf("Exchange results:");
    PrintData(a, n); 
    return 0;
}
 
/* 函数功能:输入数组a的n个元素值 */
void ReadData(int a[], int n)  
{
    int i;
    for (i=0; i      {
          scanf("%d", &a[i]);
     }
}
 
/* 函数功能:输出数组a的n个元素值 */
void PrintData(int a[], int n)  
{
    int i;
    for (i=0; i      {
          printf("%5d", a[i]);
     }
    printf("\n");
}
 
/* 函数功能:将数组a中的最大数与最小数位置互换 */
void  MaxMinExchang(________, int n)
{
    int  maxValue = a[0], minValue = a[0], maxPos = 0, minPos = 0;
    int  i;
    for (i=1; i     {
        if (a[i] > maxValue)
        {
            maxValue = _______;
            maxPos = ____;
        }
        if (a[i] < minValue)
        {
            minValue = a[i];
            minPos = i;
       }
}
        Swap(________________);
}
 
/* 函数功能:两整数值互换 */
void  Swap(int *x, int *y)                
{
    int  ________;
    temp = *x;                          
    _________; 
                    
    *y = temp;            
}

A、第41行: int a[]
第49行: a[i]
第50行: i
第58行: &a[maxPos], &a[minPos]
第64行: temp
第66行: *x = *y
B、第41行: int a
第49行: a[i]
第50行: i
第58行: a[maxPos], a[minPos]
第64行: temp
第66行: *x = *y
C、第41行: int a[]
第49行: a[0]
第50行: 0
第58行: &a[maxPos], &a[minPos]
第64行: *temp
第66行: x = y
D、第41行: int a[]
第49行: a[n-1]
第50行: n-1
第58行: *a[maxPos], *a[minPos]
第64行: &temp
第66行: x = y