首页 > 代码库 > java基本语法练习
java基本语法练习
1.编写程序,求100以内的全部素数。
实验源码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | public class FirstClass { public static void main(String[] args) { int iTemp; //临时标记变量 System.out.print( "100以内的素数为:" ); for ( int i = 2 ; i <= 100 ; i++) { iTemp = 1 ; for ( int j = 2 ; j <= (i/ 2 ); j ++) { if (i%j == 0 ) { iTemp = 0 ; //不为素数iTemp标记为零 break ; //为了提高效率结束二级循环 } } if (iTemp == 1 ) { System.out.print( " " +i); } } } } |
实验输出结果:100以内的素数为: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
2.从键盘随机输入20个整数,按从小到大进行排序后输出。
实验源码:
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 40 41 | import java.util.*; public class SecondClass { public static void main(String[] args) { //定义整数数组 int [] aNum = new int [ 20 ]; //实例化输入对象 Scanner sc = new Scanner(System.in); //输入整数 for ( int i = 0 ; i < 20 ; i++) { aNum[i] = sc.nextInt(); } //冒泡排序 for ( int i = 1 ; i < 20 ; i++) { for ( int j = 19 ; j >= i; j--) { if (aNum[j] < aNum[j- 1 ]) { //为了节省内存和提高效率所以用异或对两值交换 aNum[j] = aNum[j] ^ aNum[j- 1 ]; aNum[j- 1 ] = aNum[j] ^ aNum[j- 1 ]; aNum[j] = aNum[j] ^ aNum[j- 1 ]; } } } //输出结果 System.out.print( "从小到大顺序为:" ); for ( int i = 0 ; i < 20 ; i++) { System.out.print(aNum[i]+ " " ); } } } |
实验结果:
请输入20个整数:10 20 40 90 80 78 38 24 84 29 49 50 10 28 19 48 59 29 48 29
从小到大顺序为:10 10 19 20 24 28 29 29 29 38 40 48 48 49 50 59 78 80 84 90
3.找出所有1-100之间能够被2,3,5同时整除的整数,并计算其总和。
实验代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public class ThirdClass { public static void main(String[] args) { int iSum = 0 ; System.out.print( "满足条件的数字有:" ); for ( int i = 1 ; i <= 100 ; i++) { if (i% 2 == 0 && i% 3 == 0 && i% 5 == 0 ) { iSum += i; System.out.print(i+ " " ); } } System.out.println( "\n总和为:" +iSum); } } |
实验结果:
满足条件的数字有:30 60 90
总和为:180
4.从键盘上输入10个学生的成绩,将考试成绩百分制转五级制并输出。
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 40 41 42 | import java.util.*; public class ForthClass { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int [] aScore = new int [ 10 ]; System.out.print( "请输入10位同学的成绩:" ); for ( int i = 0 ; i < 10 ; i++) { aScore[i] = sc.nextInt(); switch (aScore[i]/ 10 ) { case 10 : case 9 : System.out.print( "A " ); break ; case 8 : System.out.print( "B " ); break ; case 7 : System.out.print( "C " ); break ; case 6 : System.out.print( "D " ); break ; case 5 : case 4 : case 3 : case 2 : case 1 : case 0 : System.out.print( "E " ); break ; default : System.out.print( "输入有误!!" ); } } } } |
实验结果:
请输入10位同学的成绩:100 20 79 85 89 60 30 60 90 40
A E C B B D E D A E
5、输入学生的数量,分别输入学生的成绩,排序,求最小值、最大值;根据某成绩查询其名次。
实验代码:
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 40 | import java.util.Arrays; import java.util.Scanner; public class FifthClass { public static void main(String[] args) { //学生人数 int iCount = 0 ; //初始化输入类 Scanner sc = new Scanner(System.in); System.out.print( "请输入学生个数以回车键结束:" ); iCount = sc.nextInt(); int [] aScore = new int [iCount]; System.out.print( "请输入每个学生的分数以回车键结束:" ); for ( int i = 0 ; i < iCount; i++) { aScore[i] = sc.nextInt(); } //对分数进行排序 Arrays.sort(aScore); System.out.print( "分数升序排序结果为:" ); for ( int i = 0 ; i < iCount; i++) { System.out.print(aScore[i]+ " " ); } System.out.println(); //输出最小值 System.out.println( "最小值为:" + aScore[ 0 ]); //输出最大值 System.out.println( "最大值为:" + aScore[iCount- 1 ]); //查询名次 System.out.print( "请输入所要查询名次的成绩:" ); int iScore = sc.nextInt(); int iKey = Arrays.binarySearch(aScore,iScore) + 1 ; System.out.println( "其对应的名次为:" +iKey); } } |
实验结果:
请输入学生个数以回车键结束:5
请输入每个学生的分数以回车键结束:98 93 86 74 25
分数升序排序结果为:25 74 86 93 98
最小值为:25
最大值为:98
请输入所要查询名次的成绩:74
其对应的名次为:2
6.编写程序,求1!+2!+……+10!
实验代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class SixthClass { public static void main(String[] args) { int iSum = 0 ; int iMul = 1 ; for ( int i = 1 ; i <= 10 ;i++) { iMul*=i; iSum += iMul; } System.out.println( "结果为:" +iSum); } } |
实验结果:结果为:4037913
7、从键盘上输入字符串,判断其是否是合法的标识符。
实验源码:
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 40 41 | import java.util.Scanner; public class SeventhClass { public static void main(String[] args) { String sId; Scanner sc = new Scanner(System.in); System.out.print( "请输入字符串:" ); //输入字符串以换行结束 sId = sc.nextLine(); int flag = 1 ; //判断首个字符 if (sId.charAt( 0 )>= ‘0‘ && sId.charAt( 0 )<= ‘9‘ ) { flag = 0 ; } else { for ( int i = 0 ;i < sId.length();i++) { //判断是否为标识符 if (sId.charAt(i) != ‘_‘ && sId.charAt(i) != ‘$‘ && !(sId.charAt(i) >= ‘0‘ && sId.charAt(i) <= ‘9‘ ) && !(sId.charAt(i)>= ‘a‘ && sId.charAt(i) <= ‘z‘ ) && !(sId.charAt(i)>= ‘A‘ && sId.charAt(i) <= ‘Z‘ )) { flag = 0 ; break ; } } } if (flag == 1 ) { System.out.println( "标识符合法!" ); } else { System.out.println( "标识符不合法!" ); } } } |
实验结果:
请输入字符串:2$da
标识符不合法!
8、从键盘上输入一个字符、字符串、浮点数、双精度数、布尔量、整数,然后输出出来。
实验代码:
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 | import java.util.Scanner; public class EighthClass { public static void main(String[] args) { char ch; String str; int iNum; float fNum; double dNum; boolean bNum; Scanner sc = new Scanner(System.in); System.out.print( "请输入一个字符以回车键结束:" ); ch = sc.nextLine().charAt( 0 ); System.out.print( "请输入一个字符串以回车键结束:" ); str = sc.next(); System.out.print( "请输入一个整数以回车键结束:" ); iNum = sc.nextInt(); System.out.print( "请输入一个浮点数以回车键结束:" ); fNum = sc.nextFloat(); System.out.print( "请输入一个双精度数以回车键结束:" ); dNum = sc.nextDouble(); System.out.print( "请输入一个布尔量以回车键结束:" ); bNum = sc.nextBoolean(); System.out.println( "字符:" +ch); System.out.println( "字符串:" +str); System.out.println( "整数:" +iNum); System.out.println( "浮点数:" +fNum); System.out.println( "双精度数" +dNum); System.out.println( "布尔数:" +bNum); } } |
实验结果:
请输入一个字符以回车键结束:a
请输入一个字符串以回车键结束:asdf
请输入一个整数以回车键结束:22
请输入一个浮点数以回车键结束:2.343
请输入一个双精度数以回车键结束:2.32323
请输入一个布尔量以回车键结束:true
字符:a
字符串:asdf
整数:22
浮点数:2.343
双精度数2.32323
布尔数:true
9.编写一个程序:给定一个整数,在控制窗口中分别输出这个整数的补码形式的二进制数、八进制数和十六进制数。
实验代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import java.util.Scanner; public class NitthClass { public static void main(String[] args) { int iNum = 0 ; Scanner sc = new Scanner(System.in); System.out.print( "请输入一个整数:" ); iNum = sc.nextInt(); System.out.println( "二进制数:" +Integer.toBinaryString(iNum)); System.out.println( "八进制数:" +Integer.toOctalString(iNum)); System.out.println( "十六进制进制数:" +Integer.toHexString(iNum)); } } |
实验结果1:
请输入一个整数:-20
二进制数:11111111111111111111111111101100
八进制数:37777777754
十六进制进制数:ffffffec
实验结果2:
请输入一个整数:20
二进制数:10100
八进制数:24
十六进制进制数:14
10.求两个数的最小公倍数和最大公约数。
实验代码:
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 | import java.util.Scanner; public class TenthClass { public static void main(String[] args) { int iNum1; int iNum2; int iMul; int iTemp; Scanner sc = new Scanner(System.in); System.out.print( "请输入第一个整数以回车键结束:" ); iNum1 = sc.nextInt(); System.out.print( "请输入第二个整数以回车键结束:" ); iNum2 = sc.nextInt(); iMul = iNum1 * iNum2; if (iNum1 > iNum2) { iTemp = iNum1; iNum1 = iNum2; iNum2 = iTemp; } while (iNum1 != 0 ) { iTemp = iNum2 % iNum1; iNum2 = iNum1; iNum1 = iTemp; } System.out.println( "最大公约数:" +iNum2); System.out.println( "最小公倍数:" +iMul/iNum2); } } |
实验结果:
请输入第一个整数以回车键结束:36
请输入第二个整数以回车键结束:96
最大公约数:12
最小公倍数:288