一、填空题
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