Day04作业

YangeIT大约 6 分钟

Day04作业

点击回到笔记 📒👈

1. 简答题 🍐

1️⃣ 1.1 请问为什么要有数组,它能帮我们做什么?

回答

可以用Typora或者editplus或者notepad++或者在idea中书写答案


2️⃣ 1.2 请问数组有哪些特点?

回答

可以用Typora或者editplus或者notepad++或者在idea中书写答案


3️⃣ 1.3 请说出你对数组的索引的理解?最小索引和最大索引分别是什么?

回答

可以用Typora或者editplus或者notepad++或者在idea中书写答案


4️⃣ 1.4 请问数组的动态初始化和静态初始化有何区别?

回答

可以用Typora或者editplus或者notepad++或者在idea中书写答案


5️⃣ 1.5 请说出java内存分配中,几块区域分别的作用?

回答

可以用Typora或者editplus或者notepad++或者在idea中书写答案


6️⃣ 1.6 请描述断点调试的作用?以及操作步骤?

回答

可以用Typora或者editplus或者notepad++或者在idea中书写答案


2. 选择题 🔡

1️⃣ 2.1(单选):下列数组创建并初始化格式错误的是( )

A. int[] arr = new int[] {33,22,11}; 
B. int[] arr = new int[4]; 
C. double[] arr = new double[3]{5.2, 3.14, .18}; 
D. int[] arr = {11,22,33}; 

2️⃣ 2.2(单选):下列操作中能够正常编译运行的是( )

A.
public static void main(String[] args){
    int[] arr = {1,2,3};
    int num = arr;
}
B.
public static void main(String[] args){
    int[] arr = {1,2,3};
    int num = arr0;
}
C.
public static void main(String[] args){
    int[] arr = {1,2,3};
    arr[1] = 5;
}
D. 
public static void main(String[] args){
    int[] arr = {1,2,3};
    arr.[0] = 2;
}

3️⃣ 2.3(多选题!!!):代码如下,求数组中元素的奇数和,请选择下面选择中说法错误的是( )

public static void main(String[] args){
    int[] arr = {3,7,6,9,2,4,5,8};
    for(int i = 0; i <= arr.length;i++){
  		int sum = 0;
		if(i % 2 == 1){
  			sum += arr[i];
		}      	
	}
  	System.out.println("sum = " + sum);
}

A. 第4行代码有错,int sum = 0; 需要定义在循环上面,否则sum无法实现累加效果

B. 第3行有错,i <= arr.length改成i < arr.length - 1

C. 第5行有错,i % 2 == 1应该 arr[i] % 2 == 1

D. 以上说法都有错


4️⃣ 2.4(多选题!!!):下列选项中,哪几个选项的代码,可以实现数组元素反转( )

A.
  public static void main(String[] args) {
        int arr[] = {1, 3, 5, 7, 9};
        for(int i=0;i < arr.length/2;i++){
            int temp = arr[i];
            arr[i] = arr[arr.length-1-i];
            arr[arr.length-1-i] = temp;
        }
  }
B.  
  public static void main(String[] args) {
        int arr[] = {1, 3, 5, 7, 9};
        for(int i=0;i < arr.length;i++){
            int temp = arr[i];
            arr[i] = arr[arr.length-1-i];
            arr[arr.length-1-i] = temp;
        }
  }
C.
  public static void main(String[] args){
  	    int arr[] = {1, 3, 5, 7, 9};
  	    int s = 0;   
        int e = arr.length - 1;  // 最右边的索引
        while (s < e) {
            // 循环中,交换元素
            // 定义一个临时变量
            int temp = arr[s];  
            arr[s] = arr[e];     
            arr[e] = temp;
            s++;
            e--;
        }
  }
D.
  public static void main(String[] args) {
        int arr[] = {1, 3, 5, 7, 9};
        for (int s = 0,e = arr.length-1; s < e; s++,e--) {
            int temp = arr[s];   
            arr[s] = arr[e];   
            arr[e] = temp;
        }
  }

5️⃣ 2.5(单选):下列关于数组的说法正确的是()

A. 在Java中数组的长度是可变的

B. 数组中存储的数据的类型,必须是相同的,除非满足隐式类型转换

C. int[] arr = new int[]{1,2,3}; arr = new int[10]; 是将数组的大小扩容到了10,且原数组中的元素{1,2,3}依然保留了下来

D. 数组是存储到栈内存中的。


6️⃣ 2.6(单选):下列代码能够获取任意数组中元素最大值的是( )

A.
public class Demo{
    public static void main(String[] args){
        int[] arr = {23,544,56,1,23,45,21,1,78};
        for (int i = 1; i < arr.length; i++) {
            int max = arr[0];
            if(max < arr[i]){
                max = arr[i];
            }
            System.out.println(max);
        }
    }
}
B.
public class Demo{  
    public static void main(String[] args){
        int[] arr = {23,544,56,1,23,45,21,1,78};
        int max = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if(max > arr[i]){
                max = arr[i];
            }
        }
        System.out.println(max);
    }
}
C.
public class Demo{
    public static void main(String[] args){
        int[] arr = {23,544,56,1,23,45,21,1,78};
        int max = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if(max < arr[i]){
                max = arr[i];
            }
        }
        System.out.println(max);
    }
}
D.
public class Demo{
    public static void main(String[] args){
        int[] arr = {-23,-544,-56,-1,-23,-45,-21,-1,-78};
        int max = 0;
        for (int i = 0; i < arr.length; i++) {
            if(max < arr[i]){
                max = arr[i];
            }
        }
        System.out.println(max);
    }
}

7️⃣ 2.7(单选):应用程序的main方法中有以下语句,则执行后输出的结果是 ( )。

public static void main(String[] args){
	int[] x = {125,21,5,168,98};
    int max = x[0];
    for (int i=1; i<x.length; i++){
        if(x[i] < max)
            max = x[i];
    }
    System.out.println(max);
}

A. 125

B. 5

C. 98

D. 168


8️⃣ 2.8(单选):下面代码用于获取数组的最大值,画横线区域处应填写代码正确的是( )

public static void main(String[] args){
    int[] arr = { 2,7,-1,6,3 };
    _____(1)______
    for(int i=1;i<arr.length;i++){
        if(___(2)____){
           ___(3)____
        }
    }
    System.out.println("最大值是:" + max);
}
A.	(1)int max = 0;
	(2)arr[i]<max;
	(3)arr[i] = max; 
B.	(1)int max = 0;
	(2)arr[i] > max; 
	(3)max = arr[i]; 
C.	(1)int max = arr[0];
	(2)arr[i] > max; 
	(3)max = arr[i];  
D.	(1)int max = arr[0];
    (2)arr[i] > max; 
	(3)arr[i] = max;  

3. 代码题 ✏️

1️⃣ 3.1 创建一个长度为6的整数数组,请编写代码,随机生成六个 [0-100]之间的整数存放到数组中,然后计算出数组中所有元素之和,以及平均数并打印。

3.1.1 参考步骤:

参考步骤

  1. 定义长度为6的int数组。
  2. 创建随机数Random类对象。
  3. 遍历数组,在循环中生成随机数并给数组元素赋值。
  4. 定义求和变量,初始化值为0。
  5. 遍历数组,获取每一个元素,累加。
  6. 再通过累加和 除以 数组元素个数,获得平均数
  7. 遍历结束,打印结果。

3.1.2 答案:

回答

代码写在Idea中


2️⃣ 3.2 通过键盘录入的方式, 将下图 6个 旅游线路的价格存入到数组中, 然后再键盘录入一个价格, 查找该价格在数组中的索引,并在控制台输出找到的索引值。

注意: 如果没有找到对应的价格 请打印 -1

02_旅游线路
02_旅游线路

3.2.1 演示效果:

第二题运行效果
第二题运行效果

3.2.2 参考步骤:

提示

  1. 创建一个长度为6的数组
  2. 将这些手机的价格分别存入到数组中
  3. 键盘录入一个要查找的价格
  4. 定义一个变量 index , 赋值为-1
  5. 遍历数组
  6. 依次拿着数组的元素和要找的价格比较
  7. 如果相等,将数组的索引赋值给 index
  8. 循环结束后输出 index
3.2.3 答案:

回答

代码写在Idea中


3️⃣ 3.3 【选做题】创建一个长度10的数组,将10个1-20之间的随机数存入数组中,要求数组中的元素不能重复,再创建一个新数组,将原数组中元素为奇数全部在左边,偶数全部在右边。

3.3.1 最终效果
1
1
3.3.2 答案:

回答

代码写在Ideaopen in new window

plustask