java6【数组】

Ⅰ.⼀维数组

Ⅱ.数组作为函数的参数、返回值

Ⅲ.数组的基本操作(插⼊、删除、扩容)    数组的排序

习题:

1,下列数组的声明有哪些是对的?错的应该怎么修改?

A. int[] a;                                         正确

B. int a[] = new int[3];                    正确

C. int[] a;   a = {1,2,3,4,5};              int a[]={1,2,3,4,5};

                                                         必须把变量定义和显式初始化放在同一行.

D. int[] a = new int[3]{1,2,3};          int[]a=new int[]{1,2,3};

                                                         方括号中数字去掉

2, 数组 的元素通过(下标) 来访问, 数组Array 的⻓度为 (Array.length)。

3,数组下标访问超出索引范围时会抛出: (下标越界,ArrayIndexOutOfBoundsException)异常。

4,引⽤数组元素时,数组下标可以是(AB)。

        A. 整型变量

        B.整型表达式

        C.字符串

        D.以上均可

5, 执⾏完代码 int[] x = new int[25],以下选项正确的是 (A)。

        A.x[24]为0

        B.x[24]未定义

        C.x[25]为0

        D.x[0]为null

6,下列语句会造成数组 newint[10] 越界的是_(D)__。

        A.a[0] +=9;

        B.a[9]=10;

        C.--a[9]

        D.for(int i = 0;i<=10;i++){ a[i]++}

7,写⼀个函数,计算⼀个整数数组的平均值。

package day6;

public class T67 {

public static void main(String[] args) {
		 
    System.out.println(aver(new int[]{10, 15, 20, 25}));
		 
    }public static double aver(int[] n){
			 
        int sum = 0;
			 
        for(int i = 0; i<n.length; i++){
			 
        sum += n[i];
			 
            }
			 
        return (double)sum / n.length;
			 
    } 
		 
}

8,⾃定义⼀个整数数组a,读⼊⼀个整数n,如果n在数组中存在,则输出n的下标;

      如果不存在,输出-1。

package day6;

import java.util.Scanner;

public class T68 {

     public static void main(String[] args) {//键入

         int[] a = {1,3,5,7,9};//自定义数组a

 Scanner sc = new Scanner(System.in);

         int n = sc.nextInt();//定义

         for(int i = 0; i<a.length; i++){ //0.1.2.3.4为下标
            
              if (n == a[i]){

                  System.out.println(i);

                      return;

                  }

             }

         System.out.println(-1);

     }

 }

9,给定⼀个数组,输出数组中的最⼤值和最⼩值。

         ⽤变量min来统计数组中的最⼩值

         ⽤变量max来统计数组中的最⼤值

         先让min和max都等于a[0]

         然后扫描数组中剩下的元素

         如果某个元素⽐max更⼤,则把该元素的值赋值给max

          如果某个元素⽐min更⼩,则把该元素的值赋值给min

          这样,当扫描完成时

          min中保存的就是最⼩的元素,max中保存的是最⼤的元素

package day6;

public class T69 {

 public static void main(String[] args) {

     int[] a = {1,3,4,2,7};

     minMax(a);

 }

 public static void minMax(int[] a){

     int min = a[0], max = a[0];

     for(int i = 1; i<a.length; i++){
    
     if (min > a[i]){

     min = a[i];

     continue;

 }
    
         if (max < a[i]){

         max = a[i];

         continue;

     }

 }

 System.out.println(min);

 System.out.println(max);

 }
 
}

10,给定⼀个数组,把这个数组中所有元素顺序进⾏颠倒。

package day6;

public class T10 {
 
public static void main(String[] args) {
 
int[] a = {3,1,2,5,7};
 
reverse(a);
 
printint(a);

 }
 
public static void reverse(int[] a){

//i变化为数组长度的一半
	
 for(int i = 0; i<a.length/2; i++){

//交换a[i]和a[a.length-i-1]
	 int t = a[i];
	 
a[i] = a[a.length - 1 - i];
	 
a[a.length - 1 - i] = t;
	 
}
	 }
	 
 public static void printint(int[] a){
	
 for(int i = 0; i<a.length; i++){
	 
 System.out.print(a[i] + "\t");
	 
}
	
 System.out.println();
	 } 
}

11,完成数组的冒泡排序算法。

                给定⼀个数组:  int[] a = {1,3,2,7,5}

                利⽤冒泡排序对其按照从⼩到⼤的顺序排序,然后输出结果。

package day6;

public class T11{

public static void main(String [] args){

            int [] nums={1,3,2,7,5};

            //冒泡排序:一个数值与他后面的比较大小,互换位置

            for(int i=0;i<nums.length-1;i++){

            for(int j=0;j<nums.length-1-i;j++) {

            if(nums[i]>nums[j]){

            int temp=nums[i];

            nums[i]=nums[j];

            nums[j]=temp;
    
        }    

    }

}

            for (int a:nums){

            System.out.print(a+" ");

        }

    }

}

12,使⽤第⼆种算法对数组进⾏排序。

                第二种方法即为选择排序:

package day6;

public class T12 {

public static void main(String [] args){

            int [] nums={1,3,2,7,5};

            //选择排序:固定值与其他值依次比较大小,互换位置

            for(int i=0;i<nums.length-1;i++){

            for(int j=i+1;j<nums.length;j++) {

            if(nums[i]>nums[j]){

            int temp=nums[i];

            nums[i]=nums[j];

            nums[j]=temp;

        }

    }

}

            for (int a:nums){

            System.out.print(a+" ");

        }

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不过是梦一场

感谢你的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值