杰普Basic Java Programming day07+:数组作业

学习内容

day07作业

  1. 什么是方法重载。
    方法重载:
    在同一个类中,方法名相同,参数列表不同。与返回值类型无关。
    参数列表不同:
    A:参数个数不同
    B:参数类型不同
    C:参数的顺序不同(算重载,但是在开发中不用)

  2. 下列哪种情况是方法重载 (CD)
    A. void method(){}, int method(){}
    B. void method(int a, int b){}, void method(int c, int d){}
    C. int method(float a){}, int method(double b){}
    D. void method(int a){}, int method(byte b){}

  3. 键盘输入一个日期 xxxx年xx月xx日,判断这一天是这一年的第几天?
    要求:使用一维数组实现

import java.util.Scanner;

 public class test32 {

    public static void main(String[] args) {
         Scanner sc = new Scanner(System.in);
                System.out.print("请输入年:");
                int year = sc.nextInt();
                System.out.print("请输入月:");
                int month = sc.nextInt();
                System.out.print("请输入日:");
                int day = sc.nextInt();
                int days = 0;
                int[] month1 = {0,31,60,91,121,152,182,213,244,274,305,335,366};
                int[] month2 = {0,31,59,90,120,151,181,212,243,273,304,334,365};
                if(year % 4 == 0 && year % 100 != 0 | | year % 400 == 0 ){
                       days = month1[month - 1] + day;
                } else {
                       days = month2[month - 1] + day;
                }
                System.out.print(days);
  }
}
  1. 有个比赛,有10个评委对选手进行打分,求选手的得分情况。

要求:键盘输入10位评委的分值。得分:去掉一个最高分,去掉一个最低分,剩下的求分均值。

import java.util.Scanner;

 public class test42 {

          public static void Avg() {
           
            Scanner sc = new Scanner(System.in);
            int[] arr = new int[10];
            for(int i = 0;i < arr.length;i++){
                   arr[i] = sc.nextInt();
            }
            int max = arr[0];
            int min = arr[0];
            for(int i = 1;i < arr.length;i++){
                   if(max < arr[i]) {
                          max = arr[i];
                   }
                   if(min > arr[i]) {
                          min = arr[i];
                   }
            }
            
            int[] arr1 = new int[arr.length];
            for(int i = 0;i < arr.length; i++){
                   if(max != arr[i] && min != arr[i]) {
                          arr1[i] = arr[i];
                   }
            }
 
            int sum = 0;
            for(int i = 0;i < arr1.length;i++){
                   sum += arr1[i];
            }            
            
            System.out.println(sum / ((arr.length - 2)*1.0));
     }
     
     public static void main(String[] args) {
            Avg();
     }
}
  1. 以下语句是否能正常编译运行,如果不能,请说明原因;否则,输出结果为?
    为什么?
int[] array1 = new int[5];
int[] array2 = {1,2,3};
array1 = array2;
System.out.println(array1[0]);     
System.out.println(array1[4]);     

答:1;
报错,标号溢出。

  1. 定义一个数组int[] array = {1,5,7,23,3,2,18},将数组元素反转。
public class test5 {

        public static void main(String[] args) {
              arr();
       }
       public static void arr(){
              int[] array = {1,5,7,23,3,2,18};
              for(int i = 0;i < array.length / 2; i++){
                     int temp = array[i];
                     array[i] = array[array.length-1-i];
                     array[array.length-1-i] = temp;
              }
              for(int i = 0; i < array.length; i++) {
                     System.out.print(array[i] + " ");
              }
       }
}
  1. 公司年销售额求和,某公司按照季度和月份统计的数据如下:单位(万元)
    第一季度:22,66,44
    第二季度:77,33,88
    第三季度:25,45,65
    第四季度:11,66,99
    要求:将数据存入二维数组中,再输出年销售总额。
public class Test8 {
     public static int Sum(){
     int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};     

     int sum = 0;                                                          
     for (int i = 0;i < arr.length ;i++ ) {                
            for (int j = 0;j < arr[i].length ;j++ ) {     
                   sum = sum + arr[i][j];                            
   }
  }
   System.out.println(sum);
     return sum;
            }
            public static void main(String[] args) {
                   Sum();
     }
}
上一篇:php 实现冒泡算法排序、快速排序、选择排序,插入排序


下一篇:java Day07