问题 问答题

请完成下列Java程序:将整型数组中的所有奇数移到所有偶数之前,并打印结果。要求初始化一个大小为10的数组,里面按照数组下标顺序存放0~9,输出交换位置后的数组。
注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。
程序运行结果如下:
9173546280
public class ex20_2
private int[] a=new int[10];
public static void main(String[] args)
ex20_2 obj20_2=new ex20_2 );
obj20_2. method ( );

public void init ()
for(int i=0;i<a.length;i++)
a[i] =i;


public void method()
int c,i,j;
i=0;
j=a.length-1;
init();
while(i<j)
while((a[i]%2==1)&&i<j)
i++;
while((a[j]%2==0)&&i<j)
j--
if(i<j)
c=a [i];
______________;
a[j]=c;
_______________;


for(i=0;i<a.length;i++)
System.out.print(Integer.toString(a[i]));


答案

参考答案:a[i]=a[j]
i++

解析:
本题主要考查数组操作while语句的嵌套。解题关键是会使用双向查找方法查找数组中的数,使用2个下标变量i,j分别从数组的第一个和最后一个元素开始向中间进行搜索,提高搜索效率,若a[i]为偶数,a[j]为奇数,则交换,同时i++,j--,即 i向右、j向左扫描;若a[i]为奇数,a[j]为偶数,则i++,j--;若a[i]为奇数,a[j]为奇数,则j不变,i++;若a[i]为偶数,a[j]为偶数,则i不变,j--;当i=j 时结束扫描。本题中,第1个空,交换a[i]和a[j],是上述算法中的第一种情况;第2个空, i++下标变量i向右移动。

填空题
单项选择题