第四章 数组

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);

原文地址:https://www.cnblogs.com/ren549047861/p/11293844.html