以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。 # include <stdio.h> void f(int x[], int n) {

admin2009-06-20  57

问题 以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。
# include   <stdio.h>
void  f(int  x[], int  n)
{  int p0, p1, i,j,t,m;
   i=j=x[O];     p0=p1=O;
   for(m=0;m<n;m++)
   {  if( x[m]>i )       { i=x[m];  p0=m; }
      else  if(x[m]<j)   {j=x[m];  p1=m;}
   }
  t=x[p0]; x[p0]=x[n-1]; x[n-1]=t;
  t=x[p1]; x[p1]=【  】;【  】=t;
}
main()
{  int  a[10], u;
    for(u=O;u<10;u++)  scanf("%d", &a);
    f(a, 10);
    for(u=O;u<10;u++)  printf(" %d", a);
    printf("\n");
}

选项

答案x[0] x[0]

解析 本题考查的知识点是:交换算法。交换两个变量的值,一般通过一个临时变量,首先将一个待交换变量的值存入临时变量,然后将另一个待交换变量的值存入前一个待交换变量中,然后将临时变量值存入后一个待交换变量中。这样,两个变量的交换就完成了。根据题意,f()函数要“将其中最小的数与第一个数对换,把最大的数与最后一个数对换”,而填空处的上一行语句正是使用交换算法,将下标为p0的元素与数组x的最后一个元素(n个元素的数组,其最后一个元素的下标为n-1)交换。所以不难得知,填空所在行的语句是要将下标为p1的元素与数组x的第1个元素交换。故两个空都应该填x[0]。
转载请注明原文地址:https://jikaoti.com/ti/X5I0FFFM
0

相关试题推荐
最新回复(0)