JAVA语言基础练习

    技术2022-07-10  99

    记录学习过程

    byte与int、float与double类型转换运算

    定义byte、int、float、double类型的变量,并输入对应的数据给四种类型的变量赋值,将int转换为byte,将float转换为double,打印输出4个类型数据的值和转换后的数值。

    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{ //TODO:使用Scanner输入byte、int、float、double类型的数据,分别赋值给b、n、f、d 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); /* TODO:将int强转化成byte int型的n强转后赋值给byte型的b 将float强转化成double float型的f强转后赋值给double型的d */ b = (byte)n; d = (double)f; System.out.println("将int转化为byte导致精度缺失 int= "+b); System.out.println("将float转化为double导致精度缺失 double= "+d); }}

    输入两个变量a,b均是整型变量,写出将a,b两个变量中的值互换的程序 定义两个整型变量a,b,获取键盘输入的两个整数赋值给a,b,使用临时变量temp交换a,b的值。并打印输出交换后a和b的值。

    import java.util.Scanner; public class Example2_2 { public static void main(String args[ ]) { int a=2; 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); /* TODO:使用中间变量交换ab值 例:定义temp变量暂时存储a值 */ int temp; temp = a; a = b; b = temp; System.out.println("交换后的值是 a="+a+","+"b="+b); }}

    分别对两个浮点数据进行计算加、减、乘、除运算 定义两个double型的变量a和b,获取键盘输入的两个数赋值给a和b,对a和b进行加、减、乘、除运算,然后输出结果

    import java.util.Scanner; public class Example2_2_4 { public static void main(String args[ ]) { System.out.println("输入两个浮点型数据,分别计算加、减、乘、除"); double a ,b; Scanner scanner = new Scanner(System.in); a = scanner.nextDouble(); b = scanner.nextDouble(); /* TODO:对a,b依次进行加减乘除运算 并把结果分别赋给变量c d e f */ double c = a+b; double d = a-b; double e = a*b; double f = a/b; System.out.println("结果分别为:\n"+c+"\n"+d+"\n"+e+"\n"+f); }}

    计算输入数据的和 定义double型变量sum,并初始化为0。键盘输入若干个数字,每输入一个数字回车确认,最后输入0结束整个的输入操作过程。求输入的所有数字之和并打印输出。

    import java.util.Scanner; public class Example{ 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(); /* TODO:循环判断,如果x不等于0的话,将sum的值增加x 持续输入x的值,直到输入0结束 */ while(x != 0){ sum +=x; x = reader.nextDouble(); } System.out.println("sum="+sum); } }

    类型转换 输入一个浮点数,将其分别转换成int和float,输出该数转换为int、float类型后损失的精度,请将转换的代码补全。

    import java.util.Scanner; /** * TODO: 输入一个浮点数,分别将其转换成int和float,输出该数转换为int、float类型后损失的精度,请将转换的代码补全。 * 例如:输入:2.1 输出: double转换成int损失的精度值:0.10000000000000009 * double转换成float损失的精度值:9.536743172944284E-8 */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; //TODO:补全double类型num强制转换成int类型num1的代码 num1 = (int)num; //计算double转换成int损失的精度值 double value1 = num - num1; System.out.println( "double转换成int损失的精度值:"+ value1); float num2 = 0f; //TODO:补全double类型num强制转换成float类型num2的代码 num2 = (float)num; //计算double转换成float损失的精度值 double value2 = num - num2; System.out.println("double转换成float损失的精度值:"+ value2); }}

    将float类型强制转换int类型 用户输入1个float类型的数值,赋值给float型的变量a,然后强制转换为int型并输出。

    import java.util.Scanner; /* 随机输入1个float类型的数值,强制转换int然后输出 如:输入12.34,强制转换int后输出:12. */class Example7_65 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("输入1个float数值:"); float a = input.nextFloat(); //TODO:强制将float型的a转换成int型 int b = (int)a; System.out.print(b); }}

    字符与整数类型转换 定义一个int型变量、一个char型变量,输入一个汉字或日文赋值给char型变量,然后打印出该变量在Unicode表的位置。再输入一个数字代表Unicode表的位置,赋值给int型变量,然后打印出该位置的字符。

    import java.util.Scanner;public class Example{ public static void main (String[] args) { System.out.println("请输入一个汉字或日文:"); Scanner scanner = new Scanner(System.in); //TODO:输入一个字符,然后使用charAt函数转化为char类型的变量c String s = scanner.nextLine(); char c = s.charAt(0); System.out.println("汉字或日文:"+c+"的位置:"+(int)c); System.out.println("请输入Unicode表的位置(数字)"); //TODO:使用Scanner输入一个整数,并赋值给变量n int n = scanner.nextInt(); System.out.println(n+"位置上的字符是:"+(char)n); }}

    加密算法 从键盘输入一段话,结束按回车确认,使用加密方法将段话进行加密,秘钥规则为‘A’,打印输出加密后的内容和原文内容。

    import java.util.Scanner; public class Example3_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); } /* TODO:编写加密方法 功能描述:每一个字母用异或‘A’方式进行加密 参数说明:s加密字符 返回值说明:加密后的字符 */ 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; }}

    对无序数字排序 定义一个排序方法,参数为三个int型变量,按从小到大的顺序输出。从键盘输入三个正整数,每输入一个按回车确认,调用排序方法对输入数字排序,打印输出排列后的顺序。

    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(); //TODO:调用sort方法对传入的abc三个参数,进行比较 sort(a,b,c); } /* TODO:排序方法 功能描述:编写排序方法,将a,b,c三个整数按照从小到大的顺序排列 参数说明:abc为传入的待比较的三个数 返回值说明:无 */ public static void sort(int a,int b,int c){ int temp; if (b<a){ temp = a; a = b; b = temp; } if (c<b){ temp = b; b = c; c = temp; } if (b<a){ temp = a; a = b; b = temp; } System.out.println("从小到大排序为:"+a+","+b+","+c); }}

    根据输入的成绩输出等级 定义一个显示成绩等级的方法showGrade,按照100分制,90分以上成绩为A,80~90为B,60~80为C,60以下为D。获取用户输入分数,调用showGrade方法,将分数转换为A、B、C或D的形式打印输出。

    import java.util.Scanner;public class Example3_3 { public static void main(String args[]) { Scanner reader=new Scanner(System.in); System.out.println("输入成绩:"); double a = reader.nextDouble(); //TODO:调用showGrade方法传入a参数 showGrade(a); } /* TODO:判断成绩方法 功能描述:编写判断成绩评比的方法,成绩在0——100之间,不在之间的输出“输入的成绩不符和规则”, 如果大于等于90输出‘A’,大于等于80输出'B',大于等于60输出'C',小于60输出‘D’。 参数说明:num:成绩 返回值说明:无 */ 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("输入的成绩不符和规则"); } }}

    抽奖算法 判断用户从键盘输入的正整数是否为中奖号码(9、131、12号码为三等奖,209、596、27号码为二等奖,875、316、59号码为一等奖)。打印输出是什么奖或者是未中奖。

    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(); /* TODO:当number的数值是9,131,12时,打印number+“是三等奖” 当它是209,596,27时,打印number+“是二等奖” 当它是875,316,59时,打印number+“是一等奖” 否则打印number+“未中奖” 提示:使用switch语句判断 */ switch(number){ case 9:System.out.println(number + "是三等奖"); break; case 131:System.out.println(number + "是三等奖"); break; case 12:System.out.println(number + "是三等奖"); break; case 209:System.out.println(number + "是二等奖"); break; case 596:System.out.println(number + "是二等奖"); break; case 27:System.out.println(number + "是二等奖"); break; case 875:System.out.println(number + "是一等奖"); break; case 316:System.out.println(number + "是一等奖"); break; case 59:System.out.println(number + "是一等奖"); break; default :System.out.println(number + "未中奖"); } }}

    根据输入的数值求和 定义int型变量a、n,从键盘输入两个正整数赋值给a、n,a代表首项,n代表前n项,输入每项数值为:x1=a,x2=a10+a,x3=x210+a,…以此类推,编写应用程序,求前n项之和。

    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); //TODO:调用sum方法传入a,n参数 } /* TODO:求和方法 功能描述:编写方法求前n项的和,并打印输出:System.out.println("求和:"+sum); 参数说明:a为首项,项数是n 返回值说明:无 */ public static void sum(int a,int n){ long sum=0; if(n>0){ long[] fx = new long[n]; for(int i=0;i<n;i++){ if(i==0){ fx[i]=a; } else{ fx[i]=fx[i-1]*10 + a; } sum += fx[i]; } } System.out.println("求和:"+sum); }}

    求素数 获取从键盘输入的数值n,编写方法计算出2~n之间的所有素数,并打印输出。

    import java.util.Scanner; public class Example3_7 { public static void main(String args[]) { Scanner reader = new Scanner(System.in); System.out.println("输入n:"); int n = reader.nextInt(); //TODO:调用prime方法传入需要判断的数n prime( n); } /* TODO:求素数方法 功能描述:编写方法求n以内的所有素数,并打印输出 参数说明:int型变量n 返回值说明:无 提示:打印语句为System.out.println(j+"是素数"); */ public static void prime(int n){ for(int i=2;i<=n;i++){ int flag=0; for(int j=2;j<i;j++){ if(i%j==0){ flag=1;break; } } if(flag==0){ System.out.println(i+"是素数"); } } }}

    遍历数组 定义一个int型数组,从键盘输入四个正整数存入数组中,每个数字按回车键确认,最后将该数组遍历输出。

    import java.util.Scanner; public class Example3_8 { 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(); } //TODO:调用tArray方法,参数为arr[]数组 tArray( arr); } /* TODO:遍历数组的方法 功能描述:遍历数组中的所有元素打印输出 参数说明:a[]要遍历的数组 返回值说明:无 输出语句提示:System.out.print( 数组内容 +" "); */ public static void tArray(int a[]){ System.out.print("请输出数组内容:"); for(int i=0;i<a.length;i++){ System.out.print(a[i] +" "); } } }

    二进制转换十进制 用户输入一个二进制数值,将其转化成十进制后打印输出。

    import java.util.Scanner;/* 输入一个二进制数值,将其转化成十进制后输出。 如:输入:01,输出:1. 如:输入:011,输出:3. */class Example7_95 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("输入1个二进制字符:"); String s = input.nextLine(); try { //TODO:通过Integer类的valueOf方法将二进制字符转换int数值 int a=Integer.valueOf(s,2); System.out.print(a); } catch (Exception e) { System.out.print("您输入的字符不是二进制字符"); } }}

    求三个实数的和以及平均值 在键盘依次输入三个数字,每个数字按回车键确认,最后在键盘输入一个非数字的字符串结束整个操作,该三个数字求和以及平均值。

    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(m<3 /** TODO: 循环条件 **/){ double x=reader.nextDouble(); m=m+1; /** TODO: 编写求和内容 **/ sum +=x; } System.out.printf("%d个数的和为%f\n",m,sum); System.out.printf("%d个数的平均值是%f\n",m,sum/m); }}
    Processed: 0.054, SQL: 12