Skip to content

基础-02 数组、方法与内存基础 ​

  • 分类: 基础题
  • 难度: 入门

本节知识点 ​

  • 数组的静态初始化和动态初始化
  • 数组遍历、查找、最大值和去重
  • 方法定义、调用、参数和返回值
  • 方法重载
  • Java 运行机制与数组的内存分配
  • 基础算法训练

题目要求 ​

完成一个成绩分析程序 ScoreAnalyzer。程序使用下面的成绩数组:

java
int[] scores = {72, 85, 91, 60, 85, 78, 95, 60};

必做方法 ​

  • findMax(int[] scores):返回最高分。
  • contains(int[] scores, int target):判断目标分数是否存在。
  • sortDescending(int[] scores):返回从高到低排序的新数组。
  • average(int[] scores):返回全部成绩的平均分。

拓展方法(加分,可选) ​

  • deduplicate(int[] scores):返回去重后的新数组。
  • average(int[] scores, int start, int end):返回指定下标范围内成绩的平均分。

程序需要输出原数组、最高分、查找结果、降序结果和总平均分;完成拓展方法时,再补充输出去重结果和区间平均分。

实现要求 ​

必做 ​

  • 最大值、查找和降序排序需要自己编写循环实现,排序算法不限(冒泡、选择等均可)。
  • 数组方法不能直接修改原数组。
  • 对空数组或只有一个元素的数组,说明程序会如何处理。

拓展(加分,可选) ​

  • deduplicate 保留首次出现的元素,并返回一个新数组。
  • 区间平均的 end 约定为开区间(不包含 end 下标),两个 average 方法构成方法重载。

记录本题学习笔记,笔记内容不作其他限制,但开头需要回答本题的全部“必答问题”。

必答问题 ​

  1. 数组变量和数组对象在内存中分别表示什么?
  2. Java 方法参数传递有什么特点?
  3. 方法重载的依据是什么?
  4. 数组越界可能出现在哪些位置?

完成清单 ​

必做:

  • [ ] 所有必做方法都有明确参数和返回值
  • [ ] 降序排序没有直接修改原数组
  • [ ] 学习笔记已先回答本题全部必答问题

拓展(可选,加分):

  • [ ] deduplicate 返回新数组并保留首次出现的元素
  • [ ] 两个 average 方法构成重载

Released under the MIT License.