Appearance
基础-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方法构成方法重载。
记录本题学习笔记,笔记内容不作其他限制,但开头需要回答本题的全部“必答问题”。
必答问题
- 数组变量和数组对象在内存中分别表示什么?
- Java 方法参数传递有什么特点?
- 方法重载的依据是什么?
- 数组越界可能出现在哪些位置?
完成清单
必做:
- [ ] 所有必做方法都有明确参数和返回值
- [ ] 降序排序没有直接修改原数组
- [ ] 学习笔记已先回答本题全部必答问题
拓展(可选,加分):
- [ ]
deduplicate返回新数组并保留首次出现的元素 - [ ] 两个
average方法构成重载
