题目
1.下面数组定义正确的有__
- A. String strs[] = {‘a’,‘b’,‘c’};
- B. String[] strs = {“a”,“b”,“c”};
- C. String[] strs = new String{“a”,“b”,“c”};
- D. String strs[] = new String[]{“a”,“b”,“c”};
- E. String[] strs = new String[3]{“a”,“b”,“c”};
结果:BD
2.写出下列代码结果
2.1
String foo = "blue";
boolean[] bar = new boolean[2];
if (bar[0]) {
foo = "green";
}
System.out.println(foo);
结果: blue
2.2
char[] arr1 = {'a','z','b','c'};
char[] arr2 = arr1;
arr1[2] = '我';
for (int i = 0;i<arr2.length;i++){
System.out.println(arr1[i]+","+arr2[i]);
}
结果:
3.冒泡排序
public static void main(String[] args) {
//冒泡排序
int[] numbers=new int[]{1,5,7,6,3,9,4};
//需要进行length-1轮移动,需进行length-1次冒泡
for(int i=0;i<numbers.length-1;i++)
{
for(int j=0;j<numbers.length-1-i;j++)
{
if(numbers[j]>numbers[j+1])
{
int temp=numbers[j];
numbers[j]=numbers[j+1];
numbers[j+1]=temp;
}
}
}
System.out.println("从小到大排序后的结果是:");
for(int i=0;i<numbers.length;i++)
System.out.print(numbers[i]+" ");
}
4.已知有个升序的数组,要求添加一个元素,该数组的顺序依然是升序,比如:[10,12,45,90],添加23后,数组为[10,12,23,45,90]
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] arr = {10,12,45,90};
System.out.println("请输入要插入的数");
int insertNum = input.nextInt();
int index = -1;
//找到插入位置的下标
for (int i = 0;i<arr.length;i++){
if (insertNum <= arr[i]){
index = i;
}
}
//插入位置在末尾的情况
if (index == -1){
index = arr.length;
}
//创建新数组
int[] arrNew = new int[arr.length+1];
for(int i = 0, j = 0;i<arrNew.length;i++){
//需要插入的部分
if (i != index){
arrNew[i] = arr[j];
//当i==index时,j不增加,i增加,故跳过了需要插入的部分
j++;
}else {
//需要插入的数
arrNew[i] = insertNum;
}
}
arr = arrNew;
System.out.println(Arrays.toString(arr));
}
运行结果:
5.随机生成10个整数(1-100的范围)保存数组,并降序打印以及求平均值、求最大值和最大值的下标、并查找里面是否有8
public static void main(String[] args) {
int[] arr = new int[10];
int sum = 0;
int maxNum = 0;
int maxIndex = 0;
Boolean isHave8 = false;
for (int i = 0;i<arr.length;i++){
int random = (int) (Math.random()*100+1);
arr[i] = random;
//求和
sum += random;
//求最大值
if (maxNum < arr[i]){
maxNum = arr[i];
//最大值下标
maxIndex = i;
}
//查找是否有8
if (arr[i] == 8){
isHave8 = true;
}
}
System.out.println("原数组:"+Arrays.toString(arr));
//倒序排列(冒泡排序)
for (int i = 0;i<arr.length;i++){
for (int j = arr.length-1;j>0+i;j--){
if (arr[j]>arr[j-1]){
int temp = arr[j-1];
arr[j-1] = arr[j];
arr[j] = temp;
}
}
}
System.out.println("降序后的:"+Arrays.toString(arr)+"\n平均值:"
+sum/arr.length+"\n最大值:"+maxNum+"\n最大值下标:"
+maxIndex+"\n是否有8:"+isHave8);
}
运行结果:
6.如何输出杨辉三角
先找到规律
1.第一行一个元素,第二行两个,第三行----- 即第N行有N个元素
2.每行第一个和最后一个元素为1
3.每行的其它数字是其上一行左右两个数字之和
第i行的第j个数字是第i-1行第j个与第j-1个数字之和
即
array[i][j] = array[i-1][j] + array[i-1][j-1]
源代码:
public static void main(String[] args) {
//获取用户输入行数
Scanner input = new Scanner(System.in);
int line = input.nextInt();
//定义二维数组
int[][] arr =new int[line][];
//为每一个维数组开辟空间
for (int x = 0;x<line;x++){
arr[x] = new int[x+1];
}
for (int i = 0;i<arr.length;i++){
//每行第一数为1
arr[i][0] = 1;
for (int j = 1;j<i;j++){
arr[i][j] = arr[i-1][j] + arr[i-1][j-1];
}
//每行最后一个数为1
arr[i][i] = 1;
}
//输出杨辉三角
for (int[] a:arr){
System.out.println(Arrays.toString(a));
}
}
运行截图: