原创 Java面试题(白)二维数组及经典应用

二维数组及经典应用

1. 使用双重循环编程?
1
2 7
3 8 12
4 9 13 16
5 10 14 17 19
6 11 15 18 21 22
二维数组的做法
参考案列
int[][] a = new int[6][6];
int b = 1;
for(int j = 0; j < 6; j++) {
for(int i = j; i < 6; i++) {
a[i][j] = b++;
}
}

2. 遍历二维数组?
public class Test1 {
public static void main(String[] args) {
int[] score1=new int[10];
int[][] score2;
String[][] names; //二维数组的初始化
score2=new int[][]{{1,2,3},{3,4,5,6},{16,7}};//静态初始化
names=new String[6][5];//动态初始化方式一
names=new String[6][];//动态初始化方式二,一定要设置行数
names[0]=new String[5];//第一行中有5个元素
names[1]=new String[4];
names[2]=new String[7];
names[3]=new String[5];
names[4]=new String[8];
names[5]=new String[5];
System.out.println(“第一行中的元素:”+names[1].length);
System.out.println(names.length);//打印的是二维数组有几行
//如何遍历二维数组
for(int m=0;m<score2.length;m++){//控制行数
for(int n=0;n<score2[m].length;n++){//一行中有多少个元素(即多少列)
System.out.print(score2[m][n]+" ");
}
System.out.println();
}

3. 一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序?
请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
1.确认使用for循环。
2.为避免重复输出结果,当找到和target值相等的array[][]时,立即跳出循环,并在循 环外判断是否存在。
3.输出结果
public static void main(String[] args) {
int[][] array={{1,2,3}, {2,3,4}, {3,4,5}};
boolean find=false ;
Scanner scanner =new Scanner(System .in);
System.out.println(“请输入数字:”);
int target=scanner .nextInt();//确认target的值
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
if (array[i][j]==target) { find=true;//返回true.
i=array.length-1;
j=array[i].length-1;//当target数值等于array[i][j]时,立即跳出循环。
}
}
}if (find) { System.out.println("存在数字 "+target);
//在循环外判断target值是否存在,并输出结果。
}else {
System.out.println(“不存在数字:”+target);
}
}

4. java中是否有goto?
java中的保留字,现在没有在java中使用

5. BS 与 CS 的联系和区别?
在这里插入图片描述