1、 下列数组的声明有哪些是对的?错的应该怎么修改?

A. int[] a;
B. int a[] = new int[3];
C. int[] a; a = {1,2,3,4,5};
D. int[] a = new int[3]{1,2,3};

A、B正确。C、D错误。
C 选项必须把变量定义和显式初始化放在同一行。
D 选项必须把方括号中的数字去掉。

2、 数组的元素通过_来访问, 数组Array 的长度为 _;

下标 Array.length

3、 数组下标访问超出索引范围时会抛出 _ 异常。

下标越界

4、 引用数组元素时,数组下标可以是 _。

A. 整型变量
B.整型表达式
C.字符串
D.以上均可

AB

5、 执行完代码 int[] x = new int[25]。以下选项正确的是 _。

A.x[24]为0
B.x[24]未定义
C.x[25]为0
D.x[0]为null

A

6、 下列语句会造成数组 new int[10] 越界的是 _。

A.a[0] +=9;
B.a[9]=10;
C.--a[9]
D.for(int i = 0;i<=10;i++){ a[i]++}

D

7、 写一个函数,计算一个整数数组的平均值。

Taskspublic class Task01 {
	static int [] nums = {1,5,3,5,6};
	public static void main(String[] args) {
		//写一个函数,计算一个整数数组的平均值
		avg();
	}
	public static void avg() {
		int sum = 0;
		for (int i = 0; i < nums.length; i++) {
			sum += nums[i];
		}
		System.out.println("平均值是:"+sum/nums.length);
	}

}

8、 自定义一个整数数组a,读入一个整数n,如果n在数组中存在,则输出n的下标;如果不存在,输出-1。

public class Task02 {
	public static void main(String[] args) {
		//自定义一个整数数组a,读入一个整数n,如果n在数组中存在,则输出n的下标;如果不存在,输出-1。
		int [] a = {1,2,3,4,5};
		Scanner input = new Scanner(System.in);
		System.out.println("int [] a = {1,2,3,4,5};");
		System.out.println("请输入一个整数");
		int n = input.nextInt();
		for (int i = 0; i < a.length; i++) {
			if (n == a[i]) {
				System.out.println("输入的数存在,下标是:"+i);
				break;
			}else {
				System.out.println("-1");
				break;
			}
		}
	}

}

9、 给定一个数组,输出数组中的最大值和最小值。

public class Task03 {
	public static void main(String[] args) {
		//给定一个数组,输出数组中的最大值和最小值。
		int [] nums = {59,2,38,47,55};
		int max,min;
		max = nums[0];
		min = nums[0];
		for (int i = 0; i < nums.length; i++) {
			if (nums[i] > max) {
				max = nums[i];
			}
			if (nums[i] < min) {
				min = nums[i];
			}
		}
		System.out.println("最大值是:"+max+"最小值是:"+min);
	}

}

10、 给定一个数组,把这个数组中所有元素顺序进行颠倒。

public class Task04 {
	public static void main(String[] args) {
		//给定一个数组,把这个数组中所有元素顺序进行颠倒。
		int[] nums = {4,2,3,4,5};
		for (int i = 0; i < nums.length/2; i++) {
			int temp = nums[i];
			nums[i] = nums[nums.length-1-i];
			nums[nums.length-1-i] = temp;
		}
		for (int num : nums) {
			System.out.print(num+"\t");
		}	
	}
}

11、 完成数组的冒泡排序算法。给定一个数组:int[] a = {1,3,2,7,5}利用冒泡排序对其按照从小到大的顺序排序,然后输出结果。

public class Task05 {
	public static void main(String[] args) {
		//完成数组的冒泡排序算法。给定一个数组:int[] a = {1,3,2,7,5}利用冒泡排序对其按照从小到大的顺序排序,然后输出结果。
		int[] a = {1,3,2,7,5};
		for (int i = 0; i < a.length-1; i++) {
			for (int j = 0; j < a.length-1-i; j++) {
				if (a[j] > a[j+1]) {
					int temp = a[j];
					a[j] = a[j+1];
					a[j+1] = temp;
				}
			}
		}
		System.out.println("从小到大排序结果为:");
		for (int i : a) {
			System.out.print(i+"\t");			
		}
	}

}

12、 使用第二种算法对数组进行排序。

public class Task06 {
	public static void main(String[] args) {
		//选择排序 给定一个数组:int[] a = {1,3,2,7,5}利用冒泡排序对其按照从小到大的顺序排序,然后输出结果。
		int[] a = {1,3,2,7,5};
		for (int i = 0; i < a.length - 1; i++) {
			for (int j = i + 1; j < a.length; j++) {
				if (a[i] > a[j]) {
					int temp = a[j];
					a[j] = a[i];
					a[i] = temp;
				}
			}
		}
		System.out.print("按照从小到大的顺序排序为:");
		for (int b : a) {
			System.out.print(b+"\t");
		}
	}

}