JavaSE核心技术——数组练习题

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;i<arr1.length;i++){
            System.out.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;i<arr1.length;i++){
            System.out.print(arr1[i]+" ");
        }
        System.out.println();
//      冒泡排序
        for(int i=1;i<=arr1.length;i++){
            for(int j=0;j<arr1.length-i;j++){
                if(arr1[j]<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;i<arr1.length;i++){
            for(j = 0;j<arr2[0].length;j++){
                for(k =0;k<arr2.length;k++){
                    sum = 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;i<arr1.length;i++){
            for(int j = 0;j<arr1[i].length;j++){
                arr1[i][j] = (int)(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;i<arr1.length-1;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 ;i<arr.length;i++){
            arr[i] = in.nextInt();
        }   
        for(i = 0;i<arr.length/2;i++){
            int m = arr[i];
            arr[i] = arr[arr.length-1-i];
            arr[arr.length-1-i] = m;
        }
        for(i = 0;i<arr.length;i++){
            System.out.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 ;i<arr.length;i++){
            arr[i] = in.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 ;i<arr.length;i++){
            System.out.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 ;i<arr.length - 1;i++){
            sum = sum +arr[i];
            if(arr[i]>max){
                max = arr[i];
            }if(arr[i]<min){
                min = arr[i];
            }
        }
        avg = sum/arr.length;
        System.out.println("数组中最大的数为:"+max+"\n数组中最小的数为:"+min+"\n数组中平均数为:"+avg);

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_37067955/article/details/81749009