java表达式和流程控制语句题目实战

  1. 1. 题目一
  2. 2. 题目二
  3. 3. 题目三
  4. 4. 题目四
  5. 5. 题目五
  6. 6. 题目六

本次设计的知识点:顺序控制语句、条件分支语句、循环控制语句、数组、方法。

题目

1、编写程序,接受用户输入的1~12之间的整数(如果用户输入的数据不满足这个条件,则要求用户重新输入),利用switch语句输出对应月份对应的英文单词。

2、编写程序,输出百位数以内的所有”水仙花数”,所谓”水仙花数”是指一个3位数,其各为数字的立方和等于该数本身。例如 153 = (1* 1 * 1)+(5* 5* 5)+(3* 3 * 3)。

3、编写程序,输出10~100之间的素数。

4、编写程序,输出1~10的阶乘相加的数。

5、编写程序,输出9*9乘法表。

6、歌唱比赛中有10个评委打分,要求去掉一个最高分和一个最低分,求给选手打了多少分?

题目一

题目一基本没什么难度,使用swich语句就可以写出来了,这边只要注意的是如何接受用户输入的数,从键盘输入一般使用Scanner语句进行实现,并通过improt导入Scanner语句所需要的模块。

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
package practice3;

import java.util.Scanner;

public class homework {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int month = sc.nextInt();
//这里使用的是另一种方法进行判断。
//if (month>= 1 && month <= 12) {
// System.out.println("您输入的数字不符合条件,请重新输入!!");
//}
switch (month) {
case 1 : System.out.println("January");break;
case 2 : System.out.println("February");break;
case 3 : System.out.println("March");break;
case 4 : System.out.println("April");break;
case 5 : System.out.println("May");break;
case 6 : System.out.println("June");break;
case 7 : System.out.println("July");break;
case 8 : System.out.println("August");break;
case 9 : System.out.println("September");break;
case 10 : System.out.println("October");break;
case 11 : System.out.println("November");break;
case 12 : System.out.println("December");break;
default : System.out.println("您输入的数字不符合条件,请重新输入!!");
}
}
}

题目二

这道题的思路就是通过for循环遍历所有百位数,在通过除法取余的方法,得到个位数、十分位数和百分位数,最后在通过简单的公式进行判断,然后输出。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package practice3;

//水仙花数
public class homework2 {
public static void main(String[] args) {
int a;
for (a = 100; a <= 999; a++) {
int b = a % 10; //个位
int c = a / 10 % 10; //十分位
int d = a / 100 % 10; //百分位
if (a == (b*b*b) + (c*c*c) + (d*d*d)) {
System.out.println(a);
}
}
}
}

题目三

求素数没什么好说的,只要知道素数是什么就好。素数是指在大于1的自然数中,除了1和它本身以外,不能被其他自然数整除的数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package practice3;

//素数
public class homework3 {
public static void main(String[] args) {
for (int i = 10; i <= 100; i++) {
boolean f = true;
for (int j = 2; j < i -1 ; j++) {
if (i % j == 0) {
f = false;
break;
}
}
if (f) {
System.out.println(i);
}
}
}
}

不过这里我使用的是通过布尔类型的语句和break语句进行实现素数输出的方法。

题目四

通过数值的阶乘实现数值的总和的判断,这个题目我使用的是复合运算符来进行实现,通过它本身来进行相乘的同时进行加减的操作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package practice3;

//1到10的阶乘
public class homework4 {
public static void main(String[] args) {
int sum =0;
for (int i =1; i <=10; i++) {
int point =1;
for (int j =1; j <= i; j++) {
//自身相加且相乘
point = point * j;
}
sum += point;
}
System.out.println(sum);
}
}

题目五

九九乘法表也比较简单,需要的注意的是不要搞错外层循环和内层循环就行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package practice3;

//9*9乘法表
public class homework5 {
public static void main(String[] args) {
//外层循环
for (int i = 1; i <= 9; i++) {
//内层循环
for (int j = 1; j <= i; j++) {
int num = i * j;
System.out.print(i + "*" + j + "=" + num + " ");
}
System.out.println();
}
}
}

题目六

这道有点复杂,但是也不是很难,我是使用方法来进行实现最高分和最低分的判断,也用方法来对除最高分和最低分的数值进行整合,最后得出选手分数的总和。

需要注意的是这道使用数组去解决会方便很多,而最后得分需要对总和的分数去减去最高和最低分,最后得到结果。

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
43
44
45
46
47
48
49
50
51
package practice3;

//去掉最高分和最低分,之后的数加起来
import java.util.Arrays;
import java.util.Scanner;

public class homework6 {
public static void main(String[] args) {
int []a = new int[10];
for (int i = 0; i < 10; i++) {
//用户需要需要输入是个数值
Scanner num = new Scanner(System.in);
//通过输入的数值输入到数组中去
a[i] = num.nextInt();
}
System.out.println(Arrays.toString(a)); //输出列表的值
//在main函数中使用构成的方法
int max = Max(a);
int min = Min(a);
int sum = Sum(a);
System.out.println(sum-(max+min));
}
//判断最大值的方法
public static int Max(int []a) {
int max = a[0];
for (int i = 1; i < 10; i++) {
if (max < a[i]) {
max = a[i];
}
}
return max;
}
//判断最小值的方法
public static int Min(int []a) {
int min = a[0];
for (int i = 1; i < 10; i++) {
if (min > a[i]) {
min = a[i];
}
}
return min;
}
//所有数值的总和
public static int Sum(int []a) {
int sum = a[0];
for (int i = 1; i < 10; i++) {
sum += a[i];
}
return sum;
}
}