Educoder - Java入门 - 数组基础各关卡题目总结
第1关:初识数组
1、编程要求:
在Begin-End
区域中定义一个int
类型数组 scores
,录入三个值,91
,88
,60
,最后输出数组中的三个值,效果如图:
2、测试效果:
3、程序设计思路:
(1)利用数组的省略静态创建法快速创建数组,再按照索引值对应输出数组中的元素值。
4、程序实现:
package step1; public class HelloWorld { public static void main(String[] args) { /********** Begin **********/ int[] scores = {91,88,60}; System.out.println("数组的第一个值为:"+scores[0] ); //在这里输出数组的第一个值 System.out.println("数组的第二个值为:"+scores[1] ); //在这里输出数组的第二个值 System.out.println("数组的第三个值为:"+scores[2] ); //在这里输出数组的第三个值 /********** End **********/ } }
第2关:数组的使用
1、编程要求:
使用本关所学知识,根据右侧编辑器Begin-End
中提示补充代码,赋值并输出数组中的信息。
2、测试效果:
我会对你的程序测试两次:
输入:3
预期输出:
数组中的第一个数据为:张三
数组中的第二个数据为:张无忌
数组中的第三个数据为:张三丰
数组中的第四个数据为:张岁山
数组scores的长度为:3
输入:5
预期输出:
数组中的第一个数据为:张三
数组中的第二个数据为:张无忌
数组中的第三个数据为:张三丰
数组中的第四个数据为:张岁山
数组scores的长度为:5
3、程序设计思路:
(1)灵活运用数组的静态初始化和动态初始化创建数组并运用索引值输出。
(2)由于要手动输入,需要引入Scanner类。
4、程序实现:
package step2; import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { /*******begin*******/ //在这里定义一个长度为 4 的字符串数组,用来存放学生姓名 String[] stuNames = new String[4] ; //在这里给stuNames数组赋值 分别为 张三,张无忌,张三丰,张岁山 stuNames[0] = "张三"; stuNames[1] = "张无忌"; stuNames[2] = "张三丰"; stuNames[3] = "张岁山"; //在这里输出stuNames数组中的数据 System.out.println("数组中的第一个数据为:" + stuNames[0]); System.out.println("数组中的第二个数据为:" + stuNames[1]); System.out.println("数组中的第三个数据为:" + stuNames[2]); System.out.println("数组中的第四个数据为:" + stuNames[3]); int[] scores; Scanner sc = new Scanner(System.in); //在这里获取系统输入的整数来初始化scores数组的长度 int length = sc.nextInt() ; scores = new int[length]; /*******end*******/ System.out.println("数组scores的长度为:" + scores.length); } }
第3关:选择题
1、选择题答案:C D ABCD
第4关:数组练习-平均值和最大值
1、编程要求:
根据提示,在右侧编辑器Begin-End
处补充代码,计算并输出数组的平均值和最大值。
2、测试效果:
我会对你编写的代码进行测试:
测试输入:4
,91
,51
,2
,32
;
预期输出:
平均值:44.0
最大值:91
测试输入:5
,1
,151
,12
,22
,100
;
预期输出:
平均值:57.2
最大值:151
3、程序设计思路:
(1)此题需要寻找两个容器,一个是所有数据的和,一个是最大值。
(2)注意平均值运用时需要强制转换。
(3)手动输入需要引入Scanner类。
4、程序实现:
package step3;
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] scores = new int[sc.nextInt()];
//循环给数组赋值
for(int i = 0 ; i< scores.length;i++){
scores[i] = sc.nextInt();
}
/********** Begin **********/
//在这里计算数组scores的平均值和最大值
int sum = 0;
int max = scores[0];
for (int i = 0; i < scores.length; i++) {
sum += scores[i];
if(max < scores[i]){ //求最大值
max = scores[i];
}
}
System.out.println("平均值:" + (double)sum/scores.length);
System.out.println("最大值:" + max);
/********** End **********/
}
}
第5关:二维数组
1、编程要求:
(1)在右侧Begin-End
区域中定义如下二维数组,使用for
循环输出数组中所有的数据:
(2)
使用for
循环将上述数组中的数据全部改为:
2、测试效果:
(1)
(2)
3、程序设计思路:
(1)按照要求先创建数组,然后采用嵌套循环循环输出数组中的元素即可。
4、程序实现:
kage step4; public class HelloWorld { public static void main(String[] args) { /********** Begin **********/ int[][] scores = { {92,85}, {91,65}, {90,33} }; for (int i = 0; i < scores.length; i++) { for (int j = 0; j < scores[i].length; j++) { System.out.println(scores[i][j]); scores[i][j] = j+1; } } for (int i = 0; i < scores.length; i++) { for (int j = 0; j < scores[i].length; j++) { System.out.println(scores[i][j]); } } /********** End **********/ } }
第6关:选择题
1、选择题答案:C B