第六章数组

一、填空题

1、 Java中的数组属于引用数据类型,其实例化操作需要通过new关键字完成;
2、 数组通过索引访问时下标从_____0____开始,数组可以使用_______length_____属性获得数组长度;
3、 对象数组采用动态初始化时,数组中的每个元素内容为________对应数据类型默认值_。

二、选择题

1、 关于“int data [] = new int[10]”的语句以下那种描述是错误的?( B )
(A)、data是一个引用数据类型,使用关键字new开辟堆内存空间;
(B)、开辟了10个元素的数组,其访问索引为:1 ~ 10;
(C)、可以通过“data[索引]”的形式来获取指定索引的数组;
(D)、数组长度为10,不可以扩充。
2、 如果现在有一个double型数组那么正确的实例化格式是那一个?( A)
(A)、double scores[] = new double[] {9.9,9.5,9.3}
(B)、double scores = new double[] {9.9,9.5,9.3};
(C)、double scores[] = new double {9.9,9.5,9.3};
(D)、double scores = {9.9,9.5,9.3};
3、 如果有数组“data[3][4]”,则对数组正确的引用格式是那一个?(C )
(A)、data[4][3] (B)、data{2}{1} (C)、data[1][2] (D)、data(1)(1)

三、编程题

1、 现在任意定义一个整型数组,将奇数数据和偶数数据分别保存在不同的数组之中,随后按照升序排序输出;

public class Practise {
       public static void main(String[] args) {
		int [] data=new int[] {2,5,10,3,9,6,8,4,1,7};
		System.out.println();
		cut(data);
	}
	private static void cut(int[] data) {
		int single[]=new int [data.length];
		int even []=new int [data.length];
		int x=0;
		int z=0;
		for(int y=0;y<data.length;y++) {
			if(data[y]%2==0) {
			    single [x]=data[y]; 
			    x++;    
			}else {
				even[z]=data[y];
				z++;
			}	
		} 
		java.util.Arrays.sort(single);
		for(int a=x;a<single.length;a++) {
			 System.out.print(single[a]+"  ");
		}
		System.out.println();
		java.util.Arrays.sort(even);
		for(int b=z;b<even.length;b++) {
			System.out.print(even[b]+"  ");
		}
	}
}
2  4  6  8  10  
1  3  5  7  9  

2、 现在有五个评委给出了比赛成绩(10分制):第一位评委(8.0分)、第二位评委(9.9分)、第三位评委(9.0分)、第四位评委(8.9分)、第五位评委(9.2分),要求去掉最高分与最低分,而后计算平均分;.
自己的方法:

public class Practise02 {
	public void grade(double []data) {
    	   double max=data[0];
    	   double min=data[0];
    	   double sum=0;
    	   for(int x=0;x<data.length;x++) {
    		   for(int y=0;y<data.length-x-1;y++) {
    		        if(data[y]>data[y+1]) {
    			         max=data[y];
    		        }
    		        if(data[y]<data[y+1]){
    			         min=data[y];
    		        }
    	       }
    		 sum+=data[x];
    	   }
    	   double avg=(sum-(max+min))/(data.length-2);
    	   System.out.println("最高分="+max);
    	   System.out.println("最低分="+min);
    	   System.out.println("不去除最高分和最低分总和="+sum);
    	   System.out.println("平均分="+avg);
    	 
       }
}
-------------------------------------------------------------------
public class Practise02a {
        public static void main(String[] args) {
        	double data []=new double[] {8.0,9.9,9.0,8.9,9.2};
        	Practise02 da=new Practise02();
            da.grade(data);
		}
}
最高分=9.9
最低分=8.0
不去除最高分和最低分总和=45.0
平均分=9.033333333333333

答案方法:

public class Practise03 {
       public static void main(String[] args) {
    	   double data []=new double[] {8.0,9.9,9.0,8.9,9.2};
    	   double sum=0;
    	   java.util.Arrays.sort(data);
           for(int x=1;x<data.length-1;x++) {
        	   sum+=data[x];
           }
           System.out.println("平均分="+sum/(data.length-2));
	}
}

平均分=9.033333333333333
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值