【Java数组基础】一维数组,二维数组基础经典题目 考试&练习

1.下面数组定义正确的有__

  • A. String strs[] = {‘a’,‘b’,‘c’};
  • B. String[] strs = {“a”,“b”,“c”};
  • C. String[] strs = new String{“a”,“b”,“c”};
  • D. String strs[] = new String[]{“a”,“b”,“c”};
  • E. String[] strs = new String[3]{“a”,“b”,“c”};

结果:BD

2.写出下列代码结果

2.1

String foo = "blue";

boolean[] bar = new boolean[2];

if (bar[0]) {

    foo = "green";

}
System.out.println(foo);

结果: blue

2.2

char[] arr1 = {'a','z','b','c'};
char[] arr2 = arr1;
arr1[2] = '我';

for (int i = 0;i<arr2.length;i++){
    System.out.println(arr1[i]+","+arr2[i]);
}

结果: 在这里插入图片描述

3.冒泡排序

public static void main(String[] args) {
    //冒泡排序
    int[] numbers=new int[]{1,5,7,6,3,9,4};
    //需要进行length-1轮移动,需进行length-1次冒泡
    for(int i=0;i<numbers.length-1;i++)
    {
        for(int j=0;j<numbers.length-1-i;j++)
        {
            if(numbers[j]>numbers[j+1])
            {
                int temp=numbers[j];
                numbers[j]=numbers[j+1];
                numbers[j+1]=temp;
            }
        }
    }
    System.out.println("从小到大排序后的结果是:");
    for(int i=0;i<numbers.length;i++)
        System.out.print(numbers[i]+" ");
}

在这里插入图片描述

4.已知有个升序的数组,要求添加一个元素,该数组的顺序依然是升序,比如:[10,12,45,90],添加23后,数组为[10,12,23,45,90]

public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int[] arr = {10,12,45,90};
        System.out.println("请输入要插入的数");
        int insertNum = input.nextInt();
        int index = -1;
        //找到插入位置的下标
        for (int i = 0;i<arr.length;i++){
            if (insertNum <= arr[i]){
                index = i;
            }
        }
        //插入位置在末尾的情况
        if (index == -1){
            index = arr.length;
        }
        //创建新数组
        int[] arrNew = new int[arr.length+1];

        for(int i = 0, j = 0;i<arrNew.length;i++){
            //需要插入的部分
            if (i != index){
                arrNew[i] = arr[j];
                //当i==index时,j不增加,i增加,故跳过了需要插入的部分
                j++;
            }else {
                //需要插入的数
                arrNew[i] = insertNum;
            }
        }
        arr = arrNew;
        System.out.println(Arrays.toString(arr));
    }

运行结果: 在这里插入图片描述

5.随机生成10个整数(1-100的范围)保存数组,并降序打印以及求平均值、求最大值和最大值的下标、并查找里面是否有8

public static void main(String[] args) {
        int[] arr = new int[10];
        int sum = 0;
        int maxNum = 0;
        int maxIndex = 0;
        Boolean isHave8 = false;
        for (int i = 0;i<arr.length;i++){
            int random = (int) (Math.random()*100+1);
            arr[i] = random;
            //求和
            sum += random;
            //求最大值
            if (maxNum < arr[i]){
                maxNum = arr[i];
                //最大值下标
                maxIndex = i;
            }
            //查找是否有8
            if (arr[i] == 8){
                isHave8 = true;
            }
        }
        System.out.println("原数组:"+Arrays.toString(arr));
        //倒序排列(冒泡排序)
        for (int i = 0;i<arr.length;i++){
            for (int j = arr.length-1;j>0+i;j--){
                if (arr[j]>arr[j-1]){
                    int temp = arr[j-1];
                    arr[j-1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        System.out.println("降序后的:"+Arrays.toString(arr)+"\n平均值:"
                +sum/arr.length+"\n最大值:"+maxNum+"\n最大值下标:"
                +maxIndex+"\n是否有8:"+isHave8);
    }

运行结果:
在这里插入图片描述

6.如何输出杨辉三角

img

先找到规律

1.第一行一个元素,第二行两个,第三行----- 即第N行有N个元素

2.每行第一个和最后一个元素为1

3.每行的其它数字是其上一行左右两个数字之和

第i行的第j个数字是第i-1行第j个与第j-1个数字之和

array[i][j] = array[i-1][j] + array[i-1][j-1]

源代码:

public static void main(String[] args) {
    //获取用户输入行数
    Scanner input = new Scanner(System.in);
    int line = input.nextInt();
    //定义二维数组
    int[][] arr =new  int[line][];
    //为每一个维数组开辟空间
    for (int x = 0;x<line;x++){
        arr[x] = new int[x+1];
    }
    for (int i = 0;i<arr.length;i++){
        //每行第一数为1
        arr[i][0] = 1;
        for (int j = 1;j<i;j++){
            arr[i][j] = arr[i-1][j] + arr[i-1][j-1];
        }
        //每行最后一个数为1
        arr[i][i] = 1;
    }
    //输出杨辉三角
    for (int[] a:arr){
        System.out.println(Arrays.toString(a));
    }
}

运行截图:
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值