学校小学期Java课程的练习题,留个档便于以后需要时候有例子可以回忆,写的烂的地方请多多包含
1、byte与int、float与double类型转换运算
描述:定义byte、int、float、double类型的变量,并输入对应的数据给四种类型的变量赋值,将int转换为byte,将float转换为double,打印输出4个类型数据的值和转换后的数值。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 import java.util.Scanner;public class Example2_2 { public static void main (String args[]) { byte b = 22 ; int n = 129 ; float f =123456.6789f ; double d=123456789.123456789 ; System.out.println("请输入byte(-128到127) int(大于127) float double四种类型数据:" ); Scanner scanner = new Scanner(System.in); try { b = scanner.nextByte(); n = scanner.nextInt(); f = scanner.nextFloat(); d = scanner.nextDouble(); } catch (Exception e) { System.out.println("输入有误!" ); } System.out.println("---------输出------------" ); System.out.println("byte= " +b); System.out.println("int= " +n); System.out.println("float= " +f); System.out.println("double= " +d); b=(byte )n; d=(double )f; System.out.println("将int转化为byte导致精度缺失 int= " +b); System.out.println("将float转化为double导致精度缺失 double= " +d); } }
2、输入两个变量a,b均是整型变量,写出将a,b两个变量中的值互换的程序
描述:定义两个整型变量a,b,获取键盘输入的两个整数赋值给a,b,使用临时变量temp交换a,b的值。并打印输出交换后a和b的值。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 import java.util.Scanner;public class Example2_2 { public static void main (String args[ ]) { int a=2 ; int tmp; int b=3 ; System.out.println("请输入两个整数赋值给a,b:" ); Scanner scanner = new Scanner(System.in); a = scanner.nextInt(); b = scanner.nextInt(); System.out.println("交换前的值是 a=" +a+",b=" +b); tmp = a; a = b; b = tmp; System.out.println("交换后的值是 a=" +a+"," +"b=" +b); } }
3、分别对两个浮点数据进行计算加、减、乘、除运算
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 import java.util.Scanner;public class Example2_2_4 { public static void main (String args[ ]) { System.out.println("输入两个浮点型数据,分别计算加、减、乘、除" ); double a ,b; double c, d, e, f; Scanner scanner = new Scanner(System.in); a = scanner.nextDouble(); b = scanner.nextDouble(); c=a+b; d=a-b; e=a*b; f=a/b; System.out.println("结果分别为:\n" +c+"\n" +d+"\n" +e+"\n" +f); } }
4、计算输入数据的和
描述:定义double型变量sum,并初始化为0。键盘输入若干个数字,每输入一个数字回车确认,最后输入0结束整个的输入操作过程。求输入的所有数字之和并打印输出。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import java.util.Scanner;public class Exp { public static void main (String args[]) { System.out.println("请输入若干个数,每输入一个数回车确认" ); System.out.println("最后输入数字0结束输入操作" ); Scanner reader=new Scanner(System.in); double sum=0 ; double x = reader.nextDouble(); while (x!=0 ){ sum=sum+x; x = reader.nextDouble(); } System.out.println("sum=" +sum); } }
5、类型转换
描述:输入一个浮点数,将其分别转换成int和float,输出该数转换为int、float类型后损失的精度,请将转换的代码补全。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import java.util.Scanner;public class Example7_153 { public static void main (String[] args) { Scanner sc = new Scanner(System.in); System.out.println("输入一个浮点数" ); double num = sc.nextDouble(); int num1 = 0 ; num1=(int )num; double value1 = num - num1; System.out.println( "double转换成int损失的精度值:" + value1); float num2 = 0f ; num2=(float )num; double value2 = num - num2; System.out.println("double转换成float损失的精度值:" + value2); } }
6、将float类型强制转换int类型
描述:用户输入1个float类型的数值,赋值给float型的变量a,然后强制转换为int型并输出。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import java.util.Scanner;class Example7_65 { public static void main (String[] args) { Scanner input = new Scanner(System.in); System.out.println("输入1个float数值:" ); float a = input.nextFloat(); int b=(int )a; System.out.print(b); } }
7、字符与整数类型转换
描述:定义一个int型变量、一个char型变量,输入一个汉字或日文赋值给char型变量,然后打印出该变量在Unicode表的位置。再输入一个数字代表Unicode表的位置,赋值给int型变量,然后打印出该位置的字符。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import java.util.Scanner;public class Test_1 { public static void main (String[] args) { System.out.println("请输入一个汉字或日文:" ); Scanner scanner = new Scanner(System.in); String s=scanner.next(); char c=s.charAt(0 ); System.out.println("汉字或日文:" +c+"的位置:" +(int )c); System.out.println("请输入Unicode表的位置(数字)" ); int n = scanner.nextInt(); System.out.println(n+"位置上的字符是:" +(char )n); } }
8、加密算法
描述:从键盘输入一段话,结束按回车确认,使用加密方法将段话进行加密,秘钥规则为‘A’,打印输出加密后的内容和原文内容。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 import java.util.Scanner;public class Test_1 { public static void main (String args[]) { System.out.println("输入一段需要加密的话:" ); Scanner reader = new Scanner(System.in); String str = reader.nextLine(); String str1 = encryption(str); System.out.println("密文:" +str1); String str2 = encryption(str1); System.out.println("原文:" +str2); } public static String encryption (String s) { char [] tmp= s.toCharArray(); for (int i=0 ;i<s.length();i++){ tmp[i]=(char )(tmp[i]^'A' ); } s=new String(tmp); return s; } }
9、对无序数字排序
描述:定义一个排序方法,参数为三个int型变量,按从小到大的顺序输出。从键盘输入三个正整数,每输入一个按回车确认,调用排序方法对输入数字排序,打印输出排列后的顺序。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 import java.util.Scanner;public class Example3_2 { public static void main (String args[]) { System.out.println("请输入三个正整数:" ); Scanner reader=new Scanner(System.in); int a = reader.nextInt(); int b = reader.nextInt(); int c = reader.nextInt(); sort(a,b,c); } public static void sort (int a,int b,int c) { int arr[]; arr = new int [3 ]; arr[0 ]=a; arr[1 ]=b; arr[2 ]=c; int temp; for (int i=0 ;i<arr.length-1 ;i++){ for (int j=0 ;j<arr.length-i-1 ;j++){ if (arr[j+1 ]<arr[j]){ temp = arr[j]; arr[j] = arr[j+1 ]; arr[j+1 ] = temp; } } } a=arr[0 ]; b=arr[1 ]; c=arr[2 ]; System.out.println("从小到大排序为:" +a+"," +b+"," +c); } }
10、根据输入的成绩输出等级
描述:定义一个显示成绩等级的方法showGrade,按照100分制,90分以上成绩为A,80~90为B,60~80为C,60以下为D。获取用户输入分数,调用showGrade方法,将分数转换为A、B、C或D的形式打印输出。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 import java.util.*;public class Test_1 { public static void main (String args[]) { Scanner reader=new Scanner(System.in); System.out.println("输入成绩:" ); double a = reader.nextDouble(); showGrade(a); } public static void showGrade (double num) { if (num>0 &&num<=100 ){ if (num>=90 ){ System.out.println("A" ); } else if (num>=80 ){ System.out.println("B" ); } else if (num>=60 ){ System.out.println("c" ); } else { System.out.println("D" ); } } else { System.out.println("输入的成绩不符和规则" ); } } }
11、抽奖算法(懒得用switch语句)
描述:判断用户从键盘输入的正整数是否为中奖号码(9、131、12号码为三等奖,209、596、27号码为二等奖,875、316、59号码为一等奖)。打印输出是什么奖或者是未中奖。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 import java.util.Scanner;public class Example3_4 { public static void main (String args[]) { int number; System.out.println("输入正整数(回车确定)" ); Scanner reader=new Scanner(System.in); number = reader.nextInt(); if (number==9 ||number==131 ||number==12 ){ System.out.println(number+"是三等奖" ); } else if (number==209 ||number==596 ||number==27 ){ System.out.println(number+"是二等奖" ); } else if (number==875 ||number==316 ||number==59 ){ System.out.println(number+"是一等奖" ); } else { System.out.println(number+"未中奖" ); } } }
12、根据输入的数值求和
描述:定义int型变量a、n,从键盘输入两个正整数赋值给a、n,a代表首项,n代表前n项,输入每项数值为:x1=a,x2=a10+a,x3=x2 10+a,…以此类推,编写应用程序,求前n项之和。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 import java.util.Scanner;public class Example3_5 { public static void main (String args[]) { Scanner reader = new Scanner(System.in); System.out.println("输入一个正整数:" ); int a = reader.nextInt(); System.out.println("输入前多少项:" ); int n = reader.nextInt(); sum(a,n); } public static void sum (int a,int n) { long sum=0 ; long x=0 ; for (int i=0 ;i<n;i++){ if (i==0 ){ x=a; } else { x=x*10 +a; } sum=sum+x; } System.out.println("求和:" +sum); } }
13、求素数
描述:获取从键盘输入的数值n,编写方法计算出2~n之间的所有素数,并打印输出。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 import java.util.Scanner;public class Test_1 { public static void main (String args[]) { Scanner reader = new Scanner(System.in); System.out.println("输入n:" ); int n = reader.nextInt(); prime(n); } public static void prime (int n) { for (int i=2 ;i<=n;i++){ int j=2 ; while (i%j!=0 ){ j++; } if (j==i){ System.out.println(j+"是素数" ); } } } }
14、遍历数组
描述:定义一个int型数组,从键盘输入四个正整数存入数组中,每个数字按回车键确认,最后将该数组遍历输出。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 import java.util.Scanner;public class Test_1 { public static void main (String args[]) { System.out.println("请输入四个正整数(回车为确认):" ); int [] arr=new int [4 ]; Scanner reader=new Scanner(System.in); for (int i = 0 ;i<4 ;i++){ arr[i]= reader.nextInt(); } tArray(arr); } public static void tArray (int a[]) { System.out.print("请输出数组内容:" ); for (int i=0 ;i<4 ;i++) { System.out.print(a[i]+" " ); } } }
15、二进制转换十进制
描述:用户输入一个二进制数值,将其转化成十进制后打印输出。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 import java.util.Scanner;class Example7_95 { public static void main (String[] args) { Scanner input = new Scanner(System.in); System.out.println("输入1个二进制字符:" ); String s = input.next(); try { int a=Integer.valueOf(s,2 ); System.out.print(a); } catch (Exception e) { System.out.print("您输入的字符不是二进制字符" ); } } }
16、求三个实数的和以及平均值
描述:在键盘依次输入三个数字,每个数字按回车键确认,最后在键盘输入一个非数字的字符串结束整个操作,该三个数字求和以及平均值。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 import java.util.*;public class Example3_9 { public static void main (String args[]) { Scanner reader=new Scanner(System.in); double sum=0 ; int m=0 ; while (reader.hasNextDouble()){ double x=reader.nextDouble(); m=m+1 ; sum = sum+x; } System.out.printf("%d个数的和为%f\n" ,m,sum); System.out.printf("%d个数的平均值是%f\n" ,m,sum/m); } }