函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把形参a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3];其余以此类推。例如:若a所指数组中的数据最初排列为:9、

admin2013-04-02  42

问题 函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把形参a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3];其余以此类推。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7:则按规则移动后,数据排列为:1、9、2、8、3、7、4、6、5。形参n中存放a所指数组中数据的个数。
    注意:规定fun函数中的max存放当前所找的最大值,px存放当前所找最大值的下标。
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANKl.C中。
    不得增行或删行,也不得更改程序的结构!
# include
#define N 9
void fun(int a[], int n)
{int i,j, max, min, px, pn, t;
   for (i=0; i   {
/**********found**********/
      max = min = 【1】;
      px = pn = i;
      for (j=i+1; j/**********found**********/
         if (max<【2】)
         {max = a[j]; px = j;}
/**********found**********/
         if (min>【3】)
         {min = a[j]; pn = j;}
      }
      if (pn != i)
      {t = a; a = min; a[pn] = t;
         if (px == i) px =pn;
      }
      if (px != i+1)
      {t = a[i+1]; a[i+1] = max; a[px] = t;}
   }
}
main()
{int b[N]={9,1,4,2,3,6,5,8,7}, i;
   printf("\nThe original data :\n");
   for (i=0; i);
   printf("\n");
   fun(b, N);
   printf("\nThe data after moving :\n");
   for (i=0; i);
   printf("\n");
}

选项

答案a[i] a[j] a[j]

解析 第一空:根据“max=min=___1___; px=pn=i;”可知,px和pn初始化为i,max和min初始化为a,假定第一个元素为最大值、最小值,然后逐个和其他的元素比较找出最大值和最小值,因此第一空应为“a”。
第二空:根据“max=a[j]; px=j;”可知,max保存了a[j]的值,说明max比元素a[j]小,故第二空处应为“a[j]”。
第三空:根据“min=a[j]; pn=j;”可知,min保存了a[j]的值,说明min比元素a[j]大,故第三空处应为“a[j]”。
转载请注明原文地址:https://kaotiyun.com/show/5DJp777K
0

最新回复(0)