1.数组的类型可以为任意类型吗?
可以是任意类型
2.数组中的元素的类型必须是相同的吗? 数组中的元素是有序的吗?
数组中元素的类型必须是相同的
数组中元素是有序的, 索引的顺序
3.数组的长度可变不? 数组的长度使用哪个属性?
数组一旦声明其长度不能更改
数组的长度属性是length
4.数组元素下标(或索引)的范围是?
范围是0-数组名.length-1
5.数组也是引用类型吗? 数组也是对象,这句话对吗?
数组是引用数据类型
数组也是对象这句话正确
6.数组中的元素就像对象中的成员变量一样,初始化方式也一样。这句话对吗?
正确
7.【上机】数组的三种初始化方式是什么? 并测试练习相关代码
静态初始化
int [] a={1,2,3};
动态初始化
int [] a=new int[2];
a[0]=1;
a[1]=2;
默认初始化
int [] a=new int[2];//0,0
8.数组的静态初始化代码,下面代码有没有不合理的地方:
Dog[] dogs2 = {
new Dog("大黄",1),
new Dog("小强",2),
};
有,new Dog(“小强”,2)后的逗号应去掉
9.完成如下代码:
char[] s;
s = new char[26];
for ( int i=0; i<26; i++ ) {
s[i] = (char) (’A’ + i);
System.out.println(s[i]);
// System.out.println(“s[” + i + “]=” + s[i]);
}
10.下面的数组定义哪些是正确的?
A: int a[][] = new int[3,3];
B: int a[3][3] = new int[][];
C: int a[][] = new int[3][3];
D: int []a[] = new int[3][3];
E: int[][]a = new int[3][3];
CDE是正确的
11.请在下面语句中找出一个正确的。
A. int arr1[2][3];
B. int[][] a2 = new int[2][];
C. int[][] arr2=new int [][4];
D. int arr3[][4]= new int [3][4];
B正确
12.【上机】定义一个长度为10 的一维字符串数组,在每一个元素存放一个单词;然
后运行时从命令行输入一个单词,程序判断数组是否包含有这个单词,包含这个
单词就打印出“Yes”,不包含就打印出“No” 。
public class Test{
public static boolean isFind(String [] arr,String word){
boolean isFlag=false;
for(int i=0;i<arr.length;i++){
if(word.equals(arr[i])){
isFlag=true;
break;
}
}
return isFlag;
}
public static void main(String [] args){
String[] arr={“hello”,”world”,”java”,”html”,”oracle”,
”apple”,”orange”,”banana”,”red”,”green”};
System.out.println(isFind(arr,args[0])?”Yes”:”No”);
}
}
13.冒泡排序的基本思路
1.整个数列分成两部分:前面是无序数列,后面是有序数列
2.初始状态下,整个数列都是无序的,有序数列是空
3.如果一个数列有n个元素,则至多需要n-1趟循环才能保证数列有序
4.每一趟循环可以让无序数列中最大数排到最后,(也就是说有序数列的元素个数增加1)
5.每一趟循环都从数列的第一个元素开始进行比较,依次比较相邻的两个元素,比较到无序数列的末尾即可(而不是数列的末尾)
6.如果前一个大于后一个,交换
7.根据是否发生交换判断数组是否已经有序
14.使用冒泡排序完成数组元素的排序
int [] array={34,23,4,55,34,53};
for(int i=0;i<array.length-1;i++){
boolean flag = true;
for(int j=0;j<array.length-1-i;j++){
if(array[j]>array[j+1]){
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
Flag = false;
}
}
if(flag){
break;
}
}
15.可变参数的作用及其用法
作用:适用于参数个数不确定、类型确定的情况,java把可变参数当做数组处理
用法:
只能出现在参数列表的最后
…位于变量类型和变量名之间,前后有无空格都可以
调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数
17.【上机】用二重循环求出二维数组b所有元素的和:
int[][] b={{11},{21,22},{31,32,33}}
int sum=0;
for(int i=0;i<b.length;i++){
for(int j=0;j<b[i].length;j++){
sum+=b[i][j];
}
}
System.out.println(“和为:”+sum);