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