Java教程

30天学会JAVA—练习题(2021韩顺平)——Day4

本文主要是介绍30天学会JAVA—练习题(2021韩顺平)——Day4,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1. 已知有个升序数组,要求插入一个元素,该数组依然升序

public class Test03 {
	public int[] insert(int arr[], int insertNum){		
		Arrays.sort(arr);//数组排序
		System.out.println(Arrays.toString(arr));
		
		//复制		
		int[] b = new int[arr.length + 1];//java python数组是固定长
		for(int i = 0 ; i < arr.length;i++){
			b[i] = arr[i];
		}
		
		
		//直接插入
		for(int i = 0; i < arr.length; i++){		
			if(insertNum <= arr[i] ){
				b[i+1] = b[i];//右移
				b[i] = insertNum;//插入
			}
		}
		System.out.println(Arrays.toString(b));
		return b;
	}
	public static void main(String[] args) {
		Test03 t = new Test03();
		int[] a = {2,1,4,5,79,1};
		t.insert(a, 9);
	}
}

2. 随机生成10个整数(1-100)保存到数组,并倒序打印以及求平均值、最大值和最大值的下标,并查找里面是否有8

public static void main(String[] args) {
	//随机生成10个整数(1-100)保存到数组中
	int[] arr = new int[10];
	int sum = 0;
	double avg = 0;
	int max = 0,index = 0;
	int flag = 0;
	
	for(int i = 0; i < arr.length; i++){
		arr[i] = 1 + (int)(Math.random() * 100); //random= (0,1)		
		sum += arr[i];
		avg = sum/arr.length;//平均值			
		
		if(arr[i] == 8){//判断是否有8
			flag = 1;
		}else{
			flag = 0;
		}
		}

	System.out.println("原始数组为:" + Arrays.toString(arr));
	
	int[] b = new int[arr.length];
	for(int i = 0; i < arr.length; i++){	 
		b[i] = arr[arr.length - 1 - i]; 
	}
	
	for(int i = 0; i< arr.length; i++){//最大值与最大值下标
		for(int j = i;j < arr.length; j++){
			if(arr[i] >= arr[j]){
				max = arr[i];
				index = i;
			}else{
				max = arr[j];
				index = j;
			}
		}
	}
	
	System.out.println("倒序输出为:" + Arrays.toString(b));		
	System.out.println("平均值为:" + avg);
	System.out.println("最大值为:" + max);
	System.out.println("最大值下标为:" + index);

	if(flag == 1){
		System.out.println("数组中有8");
	}else{
		System.out.println("数组中没有8");
	}
}

3. 冒泡排序

public int[] maopaoSort(int[] arr){
	
	for(int i = 0; i < arr.length;i++ ){
		for(int j = 0 ; j < arr.length - i -1;j++ ){
			if(arr[j] >= arr[j+1]){//交换
				int temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
			}
			
		}
	}
	System.out.println(Arrays.toString(arr));
	return arr;		
}

public static void main(String[] args) {
	int[] a = new int[]{1,45,3,34,6,24};	
	Test03 t = new Test03();
	t.maopaoSort(a);		
}

4. 编写类AA,有一个方法:判断一个数是奇数还是偶数,返回boolean

public class AA {
	public boolean isOdd(int a ){
		//奇数为true,偶数为false
		if(a % 2 != 0){
			System.out.println(true);
			return true;
		}else{
			System.out.println(false);
			return false;
		}				
	}
	
	public static void main(String[] args) {
		new AA().isOdd(6);
	}	
}

5. 根据行、列、字符打印 对应行数和列数的字符。(如,行:4,列:4,字符:#)

public static void main(String[] args) {
	char[][] c = new char[][]{{'1','a'},{'*','%'},{'#','b','?'}};
	System.out.println(Arrays.deepToString(c));
	System.out.println("请输入所要打印的行数和列数");
	
	Scanner sc = new Scanner(System.in);
	int col = sc.nextInt();
	int row = sc.nextInt();
	
	System.out.println("相对应的字符为:" + c[col -1][row -1]);
	sc.close();
}

6. 编写程序。

在这里插入图片描述

public class Methods {
	public int m(int x){
		return x * x;
	}
	public int m(int x,int y){
		return x * y;
	}
	public String m(String s){
		System.out.println(s);
		return s;
		
	}
	
	public static void main(String[] args) {
		System.out.println(new Methods().m(3));
		System.out.println(new Methods().m(3, 4));
		new Methods().m("hello world");								
	}
}

7. 编写程序。

在这里插入图片描述

public void max(int i, int j){
		System.out.println((i >= j)? i : j);
}

public void max(double i, double j){
	System.out.println((i >= j)? i : j);
}

public void max(double i, double j, double k){
	System.out.println((((i >= j)? i : j) >= k) ? ((i >= j)? i : j) : k);
}

8. 编写程序。

在这里插入图片描述
知识点:可变参数(参数类型…形参名)(接收0-多

使用可变参数时,可以当作数组来使用,即用形参名.
在这里插入图片描述
在这里插入图片描述

代码

public class HspMethod {

	public String showScore(String name, double...score){
		double totalScore = 0;
		for(int i = 0; i < score.length; i++){
			totalScore += score[i];
		}
		return name + "有" + score.length + "门课的成绩总分为=" + totalScore ;
		

	}
	
	public static void main(String[] args) {
		HspMethod hm = new HspMethod();
		System.out.println(hm.showScore("张三", 80.4));
		System.out.println(hm.showScore("李四", 20.1,22.1,23.1));
	}
}

9. 编写程序。

在这里插入图片描述

public class Person {
	String name;
	int age;
	public Person(){
		age = 18;
	}
	
	public Person(String pName, int pAge){
		name = pName;
		age = pAge;
	}
	
	public static void main(String[] args) {
		Person p1 = new Person();
		System.out.println("p1的信息 name = " + p1.name + "  age=" + p1.age);
		
		Person p2 = new Person("张三",20);
		System.out.println("p1的信息 name = " + p2.name + "  age=" + p2.age);
	}
}

10. 编写程序。

在这里插入图片描述

public class Person {
	String name;
	int age;
	
	public Person(String name, int age){
		this.name = name;
		this.age = age;
	}
	
	public boolean compareTo(Person p){
		if(this.name.equals(p.name) && this.age == p.age){
			return true;
		}else{
			return false;
		}
	}
}
public class TestPerson {
	public static void main(String[] args) {
		Person p1 = new Person("李四", 20);
		Person p2 = new Person("李四", 20);
		System.out.println(p1.compareTo(p2));
	}
}
  • 变量
  • 构造方法
  • 方法
  • 主函数
这篇关于30天学会JAVA—练习题(2021韩顺平)——Day4的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!