第一阶段第九天(函数递归调用,一维数组)

1、详细写出数组定义的几种方式,并举例说明
定义数组:
 1.动态初始化
 数据类型 [] 变量名=new 数据类型[容量]; 
 例如:定义一个int类型数组 分配5个元素
       int [] arr=new int[5];


 2.静态初始化
 数据类型 [] 变量名=new 数据类型[]{值1,值2,值3};
 
 简写:
  数据类型 [] 变量名={值1,值2,值3....};
  例如:定义一个字符串数组:
  String [] str=new String[]{"张三","李四","王五"};
  或者String [] str={"张三","李四","王五"};




2、写一个函数,计算一个整数数组的平均值
package day9;
/**
 * 
 * 写一个函数,计算一个整数数组的平均值
 *
 */
public class Demo9_1 {
    public static void main(String[] args) {
        int [] arrs={34,25,65,21,45};//定义数组
        avg(arrs);//调用函数输出平均值
    }
     
    public static void avg(int [] arrs){
        int sum=0;
        for(int i=0;i<arrs.length;i++){//遍历数组并求和
            sum+=arrs[i];
        }
        double avg=sum/arrs.length;//求数组平均值
        System.out.println(avg);
    }
}


3、给定一个数组,输出数组中的最大值和最小值
package day9;
/** 
 * 给定一个数组,输出数组中的最大值和最小值
 */
public class Demo9_2 {
    /**
     * 入口文件
     * @param args参数
     */
    public static void main(String[] args) {
        int [] arrs={84,56,32,67,54};//定义数组
        getMax(arrs);//调用函数,输出最大值
        getMin(arrs);//调用函数,输出最小值
    }
    /**
     * 实现最大值
     * @param arrs
     */
    public static void getMax(int [] arrs){
        int max=arrs[0];//假设第一个为最大值
        for(int i=0;i<arrs.length;i++){
            if(max<arrs[i]){//遍历数组获取最大值
                max=arrs[i];
            }
        }


4、 下列数组的声明有哪些是对的?错的应该怎么修改?
     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};


5、 看下面的代码,写出输出的结果
public class Ex2 {
    public static void main(String[] args) {
        int[] a = {1,2,3,4,5};
        expand(a);
        changeArray(a);
        printArray(a);
    }
    public static void expand(int[] a){
      int[] newArray = new int[a.length * 2];
      System.arraycopy(a, 0, newArray, 0, a.length);
      a = newArray;
    }
   public static void changeArray(int[] a){
    a[0] = 10;
    }
   public static void printArray(int[] a){
      for(int i = 0; i<a.length; i++){
        System.out.print(a[i] + "\t");
      }
     System.out.println();
   }
}
请选择输出结果:
A. 10 2 3 4 5
B. 1 2 3 4 5
C. 10 2 3 4 5 0 0 0 0 0
D. 1 2 3 4 5 00 0 0 0


答:A

6、通过两种方式遍历数组{12,34,53,22,13,15}
package day9;
/**
 * 
 * 通过两种方式遍历数组{12,34,53,22,13,15}
 *
 */
public class Demo9_4 {
    public static void main(String[] args) {
        int [] i={12,34,53,22,13,15};
        query(i);
        System.out.println("*********************");
        query2(i);
    }
    /**
     * 遍历方式1
     * @param arrs
     */
    public static void query(int [] arrs){
        for(int i=0;i<arrs.length;i++){
            System.out.println(arrs[i]);
        }
    }
    /**
     * 遍历方式2
     * @param ars
     */
    public static void query2(int [] ars){
        for (int i : ars) {
            System.out.println(i);
        }
    }
}


7、获取1到100以内的所有能被3整除同时不能被5整除的数字的信息,放入到数组中,并打印输出
package day9;
  
/**
 * 
 * 获取1到100以内的所有能被3整除同时不能被5整除的数字的信息,
 * 放入到数组中,并打印输出
 *
 */
public class Demo9_5 {
    public static void main(String[] args) {
        zhengchu();//调用函数
    }
    /**
     * 获取1-100内能被3整除不能被5整除的数的个数
     * 创建数组
     * 给数组循环赋值
     */
    public static void zhengchu(){
        int j=0;
        for(int i=1;i<=100;i++){//获取1-100以内能被3整除不能被5整除的数的个数
            if(i%3==0&&i%5!=0){             
                j++;
            }
        }
        int arrs[]=new int[j];//定义数组
         
        for(int i=1;i<=100;i++){//给数组循环赋值
            if(i%3==0&&i%5!=0){
                j--;
                arrs[j]=i;
                System.out.print(arrs[j]+" ");
                 
            }
        }
        System.out.println();
    }   
}


8、获取数组中最大值、最小值、平均值,定义数组通过Scanner键盘输入依次赋值
package day9;
 
import java.util.Scanner;
 
/**
 * 
 * 获取数组中最大值、最小值、平均值,定义数组通过Scanner键盘输入依次赋值
 *
 */
public class Demo9_6 {
    /**
     * 入口文件
     * @param args
     */
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);//实例化Scanner类对象
        System.out.println("请输入数字的个数n");//提示用户输入数字个数
        int n=sc.nextInt();
        int [] arrs=new int [n];//创建数组
        for(int i=0;i<n;i++){//提示用户输入数组中的每个数字
            System.out.println("请输入第"+(i+1)+"个数字");
            arrs [i]=sc.nextInt();//获取数组中的每个数字
        }   
        getMax(arrs);//调用函数打印最大值
        getMin(arrs);//调用函数打印最小值
        getAvg(arrs);//调用函数打印平均值
         
        sc.close();//关闭Scanner对象
    }
    /**
     * 实现最大值
     * @param arrs
     */
    public static void getMax(int [] arrs){
        int max=arrs[0];//假设第一个为最大值
        for(int i=0;i<arrs.length;i++){
            if(max<arrs[i]){//遍历数组获取最大值
                max=arrs[i];
            }
        }
        System.out.println("最大值为:"+max);    
    }
     
    /**
     * 实现最小值
     * @param arrs
     */
    public static void getMin(int [] arrs){
        int min=arrs[0];//假设第一个为最小值
        for(int i=0;i<arrs.length;i++){//遍历数组获取最小值
            if(min>arrs[i]){
                min=arrs[i];
            }
        }
        System.out.println("最大值为:"+min);
    }
    /**
     * 实现平均值
     * @param arrs
     */
    public static void getAvg(int [] arrs){
        int sum=0;
        for(int i=0;i<arrs.length;i++){//遍历数组并求和
            sum+=arrs[i];
        }
        double avg=sum/arrs.length;//求数组平均值
        System.out.println("平均值为"+avg);
    }
}








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值