1、编写一个简单程序,要求数组长度为5,分别赋值10,20,30,40,50,在控制台输出该数组的值。(知识点:数组定义和创建、一维数组初始化)[必做题]
public static void main(String[] args) {
int[] arr1 ;
arr1 = new int[]{10,20,30,40,50};
for(int i = 0;iout.println(arr1[i]);
}
}
• 2、将一个字符数组的值(neusofteducation)拷贝到另一个字符数组中。(知识点:数组复制) [必做题]
public static void main(String[] args) {
String[] arr1 = new String[]{"neusofteducation"} ;
String[] arr2 = new String[5];
System.out.println("复制前的数组:"+arr2[0]);
System.arraycopy(arr1, 0, arr2, 0, 1);
System.out.println("复制前的数组:"+arr2[0]);
}
• 3、给定一个有9个整数(1,6,2,3,9,4,5,7,8)的数组,先排序,然后输出排序后的数组的值。(知识点:Arrays.sort排序、冒泡排序) [必做题]
Arrays.sort排序需先引入包:
import java.util.Arrays;
//Arrays.sort排序:
int[] arr1 = new int[]{1,6,2,3,9,4,5,7,8};
Arrays.sort(arr1);
for(int i = 0;iout.print(arr1[i]+" ");
}
System.out.println();
// 冒泡排序
for(int i=1;i<=arr1.length;i++){
for(int j=0;jlength-i;j++){
if(arr1[j]1]){
int m = arr1[j];
arr1[j] = arr1[j+1];
arr1[j+1] = m;
}
}
System.out.print(arr1[arr1.length-i]+" ");
}
• 4、有2个多维数组分别是
按照如下方式进行运算。生成一个2行4列的数组。此数组的第1行1列是2*1+3*5+4*2第1行2列是2*5+3*9+4*7 第2行1列是4*1+6*5+8*2 依次类推。(知识点:多维数组定义和创建、数组遍历、数组元素访问) [选作题]
int[][] arr1 ;
arr1 = new int[][]{{2,3,4},{4,6,8}};
int[][] arr2 ;
arr2 = new int[][]{{1,5,2,8},{5,9,10,-3},{2,7,-5,-18}};
int i;//表示数组arr1的第一个下标:0,1
int j;//表示数组arr2的第二个下标:0,1,2,3
int k;//表示数组arr1的第二个下标,arr2的第一个下标:0,1,2
int sum = 0;
for(i=-0;ifor(j = 0;j0].length;j++){
for(k =0;ksum = sum + arr1[i][k]*arr2[k][j];
}
System.out.print(sum+" ");
sum =0;
}
System.out.println();
}
• 5、 输出一个double型二维数组(长度分别为5、4,值自己设定)的值。(知识点:数组定义和创建、多维数组初始化、数组遍历) [必做题]
double[][] arr1;
arr1 = new double[5][4];
for(int i =0;ifor(int j = 0;jint)(Math.random()*10);//随机产生数组元素
System.out.print(arr1[i][j]+" ");
}
System.out.println("\n");
}
• 6、 在一个有8个整数(18,25,7,36,13,2,89,63)的数组中找出其中最大的数及其下标。(知识点:数组遍历、数组元素访问) [必做题]
int arr1[];
int max = 0;
int n = 0;
arr1 = new int[]{18,25,7,36,13,2,89,63};
max = arr1[0];
for(int i = 0;i1;i++){
if(arr1[i]>max){
max = arr1[i];
n = i;
}
}
System.out.println("最大的数为"+max+",其下标为 "+n);
• 7、将一个数组中的元素逆序存放(知识点:数组遍历、数组元素访问) [选作题]
int i ;
int[] arr;
System.out.println("请输入数组的长度");
Scanner inp = new Scanner(System.in);
int num = inp.nextInt();
arr = new int[num];
System.out.println("请输入"+num+"个数");
Scanner in = new Scanner(System.in);
for(i =0 ;iin.nextInt();
}
for(i = 0;i2;i++){
int m = arr[i];
arr[i] = arr[arr.length-1-i];
arr[arr.length-1-i] = m;
}
for(i = 0;iout.print(arr[i]+" ");
}
• 8. 将一个数组中的重复元素保留一个其他的清零。(知识点:数组遍历、数组元素访问) [选作题]
int i;
int[] arr;
System.out.println("请输入数组的长度");
Scanner inp = new Scanner(System.in);
int num = inp.nextInt();
arr = new int[num];
System.out.println("请输入"+num+"个数");
Scanner in = new Scanner(System.in);
for(i =0 ;iin.nextInt();
}
for(i = 0; i < arr.length; i++){
for (int j = 0; j < arr.length-1; j++) {
if (arr[i]==arr[j]&&i!=j)
{
arr[j]=0;
}
}
}
for(i =0 ;iout.print(arr[i]+" ");
}
• 9、给定一维数组{ -10,2,3,246,-100,0,5},计算出数组中的平均值、最大值、最小值。(知识点:数组遍历、数组元素访问) [选作题]
int[] arr ;
arr = new int[]{-10,2,3,246,-100,0,5};
int sum = 0;
double avg;
int max = 0;
int min = 0;
for(int i = 0 ;i1;i++){
sum = sum +arr[i];
if(arr[i]>max){
max = arr[i];
}if(arr[i]avg = sum/arr.length;
System.out.println("数组中最大的数为:"+max+"\n数组中最小的数为:"+min+"\n数组中平均数为:"+avg);