当前位置:首页 > java经典基础练习题及参考答案
1. 写一个函数,计算一个整数数组的平均值
import java.util.Random;
public class javaSevenDayLianXi {
public static void main(String[] args) { int arr[] = new int[10];
Random score = new Random(); float sum = 0.0f;
System.out.print(\这组数为:\);
for (int i = 0; i < arr.length; i++) { arr[i] = score.nextInt(101); sum += arr[i];
System.out.print(arr[i] + \); }
System.out.println();
System.out.println(\数组arr的平均值为:\ + sum / arr.length); } }
2. 自定义一个整数数组a,读入一个整数n,如果n 在数组中存在,则输出n 的下标;如果 不存在,则输出-1。
Scanner sca = new Scanner(System.in); int []a = {0,1,2,3,4,5,6,7,8,9}; System.out.print(\请输入一个数:\); int shuJu = sca.nextInt(); boolean bool = true;
for(int i=0;i if(a[i]==shuJu){ System.out.println(shuJu+\在数组a中的下标为:\+i); bool = false; break; } } if(bool) System.out.println(-1); 3. 给定一个数组,输出数组中的最大值和最小值 int []a = {12,34,563,2,45,778,554,4421,4456,6786}; Arrays.sort(a); int min=a[0]; int max=a[a.length-1]; System.out.println(\数组中最小的数为:\+min+\,最大的数为:\+max); 4. *给定一个数组,把这个数组中所有元素顺序进行颠倒。 import java.util.Random; public class javaSevenDayLianXi { } public static void main(String[] args) { int arr[] = new int[10]; int shu=0; Random score = new Random(); System.out.print(\颠倒前的arr组数值为:\); for (int i = 0; i < arr.length; i++) { arr[i] = score.nextInt(101); System.out.print(arr[i] + \); } for(int i=0;i<=(arr.length-1)/2;i++){ shu=arr[i]; arr[i]=arr[arr.length-1-i]; arr[arr.length-1-i]=shu; } System.out.println(); System.out.print(\颠倒后的arr数组值为:\); for(int i :arr) System.out.print(i+\); } 5. *数组的扩容。 给定一个数组,要求写一个expand 函数,把原有数组的长度扩容一倍,并保留原有数 组原有的内容。 例如,给定一个数组int[] a = {1,2,3},则扩容之后,a 数组为:{1,2,3,0,0,0} public class javaNineDay { public static void main(String[] args) { int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8 }; arr = setArrays(arr); for (int term : arr) System.out.print(term + \); } public static int[] setArrays(int[] arr) { int[] arrays = new int[arr.length * 2]; System.arraycopy(arr, 0, arrays, 0, arr.length); return arrays; } } 6. *数组的插入和删除 写两个函数,一个函数为delete 函数,声明如下: public static void delete(int pos) 该函数表示删除数组pos 位置上的元素。 第二个函数为insert 函数,声明如下: public static void insert(int pos, int value) 该函数表示在数组pos 位置上插入value 值。 为了能在多个函数中使用同一个数组,需要把这个数组写在函数的外面,类的里面,并 使用static 修饰。 为了方便,还应该定义一个index 变量,用来保存数组的有效元素的个数。 例如下面的代码: public class TestInsertDelete{ static int[] a = {1,3,2,5,7}; //多个函数可以直接操作该数组 static int index = 5; public static void main(String args[]){ delete(2); //1 3 5 7 insert(1, 4); //1 4 3 5 7 insert(0, 6); //6 1 4 3 5 7 } public static void delete(int pos){ … } public static void insert(int pos, int value){ … } } 实现方式: 1. delete 方法:把数组pos 位后的所有元素向前移动1 位 2. insert 方法:把数组pos 位以及之后的元素向后移动1 位,然后设置value。 要注意的是,insert 时有可能需要数组扩容。 有效元素的个数的含义:对于a 数组,调用一次delete 之后,a 数组的长度不变, 长度依然为5,然而有效元素的个数为4 个。 Tips: insert 方法中,如何判断是否需要扩容:比较有效元素的个数和数组的长度,如果这 两者一致,则需要扩容。 public class javaNineDay { static int[] arr = { 1, 2, 3, 4, 2, 5, 6, 7, 2, 8, 9 }; static int index = arr.length; public static void main(String[] args) { System.out.print(\初始数组为:\); for(int term:arr) System.out.print(term+\); System.out.print(\删除2后的数组为:\+\); delete(2); System.out.print(\插入100后的数组为:\+\); insert(5, 100); } public static void delete(int pos) { int num = index; for (int i = 0; i < index; i++) { } } if (arr[i] == pos && i < index - 1) { System.arraycopy(arr, i + 1, arr, i, index - 1 - i); arr[--num] = 0; } else if (arr[i] == pos && i == index - 1) { arr[--num] = 0; } } index = num; for (int term : arr) { if (term > 0) { System.out.print(term + \); } } public static void insert(int pos, int value) { int arrays[]; if (index == arr.length) { arrays = new int[index + 1]; System.arraycopy(arr, 0, arrays, 0, index); } else arrays = arr; System.arraycopy(arrays, pos, arrays, pos + 1, index - pos); arrays[pos] = value; index++; for (int term : arrays) { if (term > 0) { System.out.print(term + \); } } } 7. *完成数组的冒泡排序算法:给定一个数组:int[] a = {1,3,2,7,5},利用冒泡排序对其按照 从小到大的顺序排序,然后输出结果。 public class javaSevenDayLianXi { public static void main(String[] args) { int[] arr = { 1, 3, 2, 7, 5 }; int term = 0; for (int i = 0; i < arr.length - 1; i++) { for (int j = i + 1; j < arr.length; j++) { if (arr[i] > arr[j]) { term = arr[j]; arr[j] = arr[i];
共分享92篇相关文档