Java基础练习题 & 高频率面试题

1. 打印输出所有数字、大小字母的unicode码。

public class TestShowUnicode {

	public static void main(String[] args) {
		System.out.println("所有数字对应的Unicode码:\n");
		for(int m='0';m<='9';m++) {
			System.out.print(((int)m)+"\t");
		}
		System.out.println("\n所有小写字母对应的Unicode码:\n");
		for(int i='a';i<='z';i++) {
			System.out.print(((int)i)+"\t");
		}
		System.out.println("\n所有大写字母对应的Unicode码:\n");
		for(int k='A';k<='Z';k++) {
			System.out.print(((int)k)+"\t");
		}
	}
}

2.有一个小写的字母’f’,把它转换成自身的后4个字母的大写形式,并且把结果输出。如:a字母结果输出E

public class TestConvChar {

	public static void main(String[] args) {
		int x='f';
		int y='F';
		int z=x-y;
		System.out.print("f转换成大写字母F后的第四位是:"+(char)(x-z+4));
	}
}

3.编写程序,要求输入一个4位的整数,再将4位的数字相加,最后判断输出和为偶数还是奇数。

public class TestNnmSum {

	public static void main(String[] args) {
		for(int i=1;i<100000;i++) {
		System.out.print("请输入一个四位数:");
		Scanner sc=new Scanner(System.in);
		int num=sc.nextInt();
		if(num>999&&num<10000) {
			int g=num%10;
			int s=num%100/10;
			int b=num%1000/100;
			int q=num/1000;
			int x=g+s+b+q;
			if(x%2==0) {
			System.out.println("这个四位数是偶数!");
			}else {
			System.out.println("这个四位数是奇数!");
			}
		}
		else {
			System.out.println("输入错误!!!");
		}
		}
	}

}

4.系统随机生成一个100之内的数;键盘输入一个数,系统判断这个数与生成数的大小,直到猜到这个数为止。

public class NumberGuessingGame {
	public static void main(String[] args) {
		Random sc=new Random();
		int suijiNum=sc.nextInt(100);//随机生成100之内的数;
		for(int i=1;i>0;i++) {
			System.out.println("请输入猜数:");
			Scanner sd=new Scanner(System.in);
			int caiNum=sd.nextInt();
			if(caiNum>suijiNum) {
				System.out.println("猜大了!!!");
			}else if(caiNum<suijiNum){
				System.out.println("猜小了!!!");
			}else {
				System.out.println("恭喜你!!!共猜了"+i+"次,终于猜中了");
				System.out.println("这个随机数是:"+suijiNum);
			}
		}
	}
}

5.输入一个小于8位的正整数,求出它是几位数;分别打印出每一位数字,按逆序输出各位上的数字(可以使用条件语句或者使用循环语句处理)

public class TestPrint {
	public static void main(String[] args) {
		TestPrint tn=new TestPrint();
		System.out.print("请输入一个小于八位的正整数:");
		//从键盘输入一个正整数,long型;
		Scanner sc=new Scanner(System.in);
		long num=sc.nextLong();
		if(num < 0 || num > 10000000) {
			System.out.println("Error Input, please run this program Again");
			System.exit(0);
		}
		//判断是否为1位数
		if(num>=0&&num<10) {
			System.out.println( num+ "是1位数");
			System.out.print("按顺序、逆序输出均是:"+ num);
		}
		//判断是否为2位数
		else if(num>=10&&num<100) {
			System.out.println( num+ "是2位数");
			int gNum=(int) (num%10);
			int sNum=(int) (num/10);
			System.out.print("分别打印出每一位数字是:"+ sNum+"\t"+gNum+"\n");
			System.out.print("按逆序输出是:");
			tn.converse(num);
		}
		//判断是否为3位数
		else if(num>=100&&num<1000) {
			System.out.println( num+ "是3位数");
			int gNum=(int) (num%10);
			int sNum=(int) (num%10/10);
			int bNum=(int) (num/100);
			System.out.print("分别打印出每一位数字是:"+bNum+"\t"+sNum+"\t"+gNum+"\n");
			System.out.print("按逆序输出是:");
			tn.converse(num);
		}
		//判断是否为4位数
		else if(num>=1000&&num<10000) {
			System.out.println( num+ "是4位数");
			int gNum=(int) (num%10);
			int sNum=(int) (num%100/10);
			int bNum=(int) (num%1000/100);
			int qNum=(int) (num/1000);
			System.out.print("分别打印出每一位数字是:"+qNum+"\t"+bNum+"\t"+sNum+"\t"+gNum+"\n");
			System.out.print("按逆序输出是:");
			tn.converse(num);
		}
		//判断是否为5位数
		else if(num>=10000&&num<100000) {
			System.out.println( num+ "是5位数");
			int gNum=(int) (num%10);
			int sNum=(int) (num%100/10);
			int bNum=(int) (num%1000/100);
			int qNum=(int) (num%10000/1000);
			int wNum=(int) (num/10000);
			System.out.print("分别打印出每一位数字是:"+wNum+"\t"+qNum+"\t"+bNum+"\t"+sNum+"\t"+gNum+"\n");
			System.out.print("按逆序输出是:");
			tn.converse(num);
		}
		//判断是否为6位数
		else if(num>=100000&&num<1000000) {
			System.out.println( num+ "是6位数");
			int gNum= (int) (num%10);
			int sNum= (int) (num%100/10);
			int bNum= (int) (num%1000/100);
			int qNum= (int) (num%10000/1000);
			int wNum= (int) (num%100000/10000);
			int swNum=(int) (num/100000);
			System.out.print("分别打印出每一位数字是:"+swNum+"\t"+wNum+"\t"+qNum+"\t"+bNum+"\t"+sNum+"\t"+gNum+"\n");
			System.out.print("按逆序输出是:");
			tn.converse(num);
		}
		//判断是否为7位数
		else if(num>=100&&num<1000) {
			System.out.println( num+ "是7位数");
			int gNum= (int) (num%10);
			int sNum= (int) (num%100/10);
			int bNum= (int) (num%1000/100);
			int qNum= (int) (num%10000/1000);
			int wNum= (int) (num%100000/10000);
			int swNum=(int) (num%1000000/100000);
			int bwNum=(int) (num/1000000);
			System.out.print("分别打印出每一位数字是:"+bwNum+"\t"+swNum+"\t"+wNum+"\t"+qNum+"\t"+bNum+"\t"+sNum+"\t"+gNum+"\n");
			System.out.print("按逆序输出是:");
			tn.converse(num);
		}
	}
	private String converse(long num) {
		String sc = Long.toString(num);
		char[] ch = sc.toCharArray();
		for(int i=ch.length-1; i>=0; i--) {
		System.out.print(ch[i]);
		}
		return null;
	}
}

6.统计一行字符中的英文、空格、数字和其他字符的个数。

public class Test3 {

	public static void main(String[] args) {
		String str="Hello Java 67810,*%#@()?...";
		char[] charArray = str.toCharArray();
		int letter_sum=0;//用于统计字母有多少;
		int sumNum=0;//用于统计数字有多少;
		int spaceKey=0;//用于统计空格有多少;
		int sum=0;//用于统计其他字符有多少;
		int A='A',  Z='Z';
		int a='a',  z='z';
		int space=' ';
		int num1='0', num2='9';
		for(int i=0;i<charArray.length;i++) {
			int x=charArray[i];
			if( (x >= A && x <= Z)||(x >= a && x<=z) ){
				letter_sum=letter_sum+1;
			}else if(x>=num1&&x<=num2) {
				sumNum=sumNum+1;
			}else if(x == space) {
				spaceKey = spaceKey+1;
			}else {
				sum = sum+1;
			}
		}
		System.out.println("字母有"+letter_sum);
		System.out.println("数字有"+sumNum);
		System.out.println("空格有"+spaceKey);
		System.out.println("其他字符有"+sum);
	}
}

7.求兔子数(找规律)递归法

1,1,2,3,5,8,13,21,34.。。。。。

public class Recursion {

	public static void main(String[] args) {
		int y = 9;
		System.out.println(year(y));
		System.out.println("往年兔子数分别是:");
		for(int i=1;i <= y;i++) {
			System.out.print(year(i)+"\t");
		}	
	}
	public static int year(int x) {	
			if(x == 1) {			
				return 1;	
			}else if(x == 2) {
				return 1;
			}else {	
				return year(x-2)+year(x-1);
			}
	}
}

8.使用函数,求1–999所有的质数。(要求,质数判断写成一个判断函数)

public class PrimeNumber {
	public static void main(String[] args) {
			number();	
	}
	public static void number() {
		int sum=2;
		for(int i=2; i < 1000; i++){
			if(2==i  ||  3==i){
				System.out.print(i+"\t");
				continue;
			}
			int j = 2;
			while(j < i){
				if(i%j == 0){
					break;
				}
				j++;
			}
			if(j == i){
				System.out.print(i+"\t");
				sum++;
				if(sum%10 == 0) {
					System.out.print("\n");
				}
			}
		}
	}
}
发布了7 篇原创文章 · 获赞 4 · 访问量 604

猜你喜欢

转载自blog.csdn.net/qq_40946465/article/details/95990513