必做题

1

编程:已知半径r,圆柱高h,求圆周长2πr、圆面积πr2、圆球表面积πr3、圆球体积4/3πr3及圆柱体积πr2h。运行程序后输入半径r和高h,输出计算结果。

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
 package java1;
import java.util.Scanner;

public class test4 {

public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("输入半径r,圆柱高h:");
// 给提示,表示需要你从键盘输入参数

Scanner sc = new Scanner(System.in);
//从键盘接收数据

Double r = sc.nextDouble();
Double h = sc.nextDouble();
//定义为double型,并且传给自定义的变量

Double yzl,mj,bmj,tj,ztj;

yzl = 2 * Math.PI * r;
//Math.PI为java自带的参数
mj = Math.PI * r * r;
bmj = Math.PI * r * r * r;
tj = 4/3 * Math.PI * r * r * r;
ztj = Math.PI * r * r * h;
//以上都是数学算数

System.out.println("圆的周长为" + yzl);
System.out.println("圆的面积为" + mj);
System.out.println("圆的表面积为" + bmj);
System.out.println("圆球体积为" + tj);
System.out.println("圆柱体积为" + ztj);

}

}

结果:

2

输入一个华氏温度F,要求输出对应的摄氏温度c。公式为c=5/9(F-32)。

1
2
3
4
5
6
7
8
9
10
11
package com.company;
import java.util.Scanner;
public class test22 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
float f = sc.nextFloat();
float c = 5/(9*(f-32));
System.out.println(c);

}
}

结果:

3

编写程序计算下面分段函数的值:

具体要求如下:

(1) 用if语句实现分支,变量x和y值均用双精度实型。

(2) 变量x运行后输入,给一些输入提示。

(3) 分别输入三种区间中x的值,检查输出y值是否正确。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.company;
import java.util.Scanner;
public class test22 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
//String r1 = sc.next();
//System.out.println();
double x = sc.nextDouble();
double y = 0;
if (x < 1){
y = x;
}else if(x >= 1 && x < 10){
y = 2*x - 1;
}
else if(x >= 10) {
y = 3*x - 11;
}
System.out.println(y);
}
}

结果:

4

编写程序,运行后输入一个年份,计算该年是否为闰年。闰年的条件为:年份能被4整除但不能被100整除,或者年份能被400整除。

1
2
3
4
5
6
7
8
9
10
11
12
13
package com.company;
import java.util.Scanner;
public class test22 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
if ((x % 4 == 0 && x % 100 != 0) | (x % 400 == 0)) {
System.out.println(x + "为闰年");
}else {
System.out.println(x + "不为闰年");
}
}
}

结果:

5

有3个整数a,b,c,由键盘输入,输出其中最大的数,请编写程序实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.company;
import java.util.Scanner;
public class test22 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int max;
if (a >= b) {
max = a;
}else {
max = b;
}
if (max >= c) {
max = max;
}else {
max = c;
}
System.out.println(max);

}
}

结果:

6

运行后输入一个百分制成绩,输出成绩等级A、B、C、D、E,其中90100分为A,8089分为B,7079分为C,6069分为D ,60分以下分为E。要求百分制成绩用整数输入,在输入前要有提示“请输入一个百分之成绩:”,输入后要判断成绩的合理性,对不合理的成绩,应输出出错信息。输出结果中应包括百分制和等级成绩,并要有文字说明。分别if语句和switch语句实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.company;
import java.util.Scanner;
public class test22 {
public static void main(String[] args){
System.out.print("请输入成绩:");
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
//其中90~100分为A,80~89分为B,70~79分为C,60~69分为D ,60分以下分为E。
switch (x / 10) {
case 10 :
case 9:
System.out.println("A");break;
case 8:
System.out.println("B");break;
case 7:
System.out.println("C");break;
case 6:
System.out.println("D");break;
default:
System.out.println("E");break;
}

}
}

结果:

思考题

1

输入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
package com.company;
import java.util.Scanner;
public class test22 {
public static void main(String[] args){
System.out .println("输入4个数字(用空格隔开):");
Scanner sc = new Scanner(System.in);
int array[] = new int[4];

for(int i=0;i<4;i++) {
array[i] = sc.nextInt();
}

int temp = 0;

for (int i=1;i<array.length;i++) {
for(int j=0;j<array.length - i;j++) {
if (array[j+1]<array[j]) {
temp = array[j+1];
array[j+1] = array[j];
array[j] = temp;
}
}
}
System.out.print("排列结果为:");
for(int x=0;x<array.length;x++) {
System.out.print(array[x] + " ");
}
System.out.print("\n");

}
}

结果:

2

输入一个不多于5位的正整数,要求:

a) 输出它是几位数

b) 分别输出每一位数字

c) 按逆序输出各位数字,例如原数为321,应输出123。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.company;
import java.util.Scanner;
public class test22 {
public static void main(String[] args){
System.out.print("输入一个不多于5位的正整数:");
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
//System.out.print(x);
String nsc = String.valueOf(x);
int l=nsc.length();
System.out.println("它是 " + l + " 位数");

for(int i=0;i<nsc.length();i++) {
System.out.print("此正整数的第" + (i+1) + "位为:");
System.out.println(nsc.charAt(i));
}
for(int i=nsc.length() - 1; i>=0; i--) {
System.out.print(nsc.charAt(i));
}

}
}

结果:

3

输入a,b,c三个整数,要求将绝对值最大者打印输出。

分析提示: 此题的关键是绝对值如何表示,Math.abs()方法是系统提供的用于计算绝对值的方法,例如计算变量x的绝对值应写为Math.abs (x)。

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
package com.company;
import java.util.Scanner;
public class test22 {
public static void main(String[] args) {
System.out.print("输入3个数(空格隔开):");
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
//System.out.print(a);
int b = sc.nextInt();
int c = sc.nextInt();
int x = Math.abs(a);
//System.out.print(x);
int y = Math.abs(b);
int z = Math.abs(c);
int tmp = 0;
if (x >= y) {
tmp = a;
if (tmp >= z) {
tmp = tmp;
} else {
tmp = c;
}
} else {
tmp = b;
if (tmp >= z) {
tmp = tmp;
} else {
tmp = c;
}
}
System.out.print(tmp + "的绝对值为最大值");
}
}

结果:

4

已知直角三角形的两直角边长为a,b,求斜边长 <img src=https://ckcah.github.io/images/java/44-1.png">的值,保留一位小数。

分析提示: 在这个题中要计算 <img src=https://ckcah.github.io/images/java/44-1.png">,此题的关键是平方根如何表示,Math.sqrt()方法是系统提供的用于计算平方根的方法,例如计算变量x的平方根应写为Math.sqrt(x)。

1
2
3
4
5
6
7
8
9
10
11
12
13
package com.company;
import java.util.Scanner;
public class test22 {
public static void main(String[] args) {
System.out.println("输入两条直角边:");
Scanner sc = new Scanner(System.in);
float a = sc.nextFloat();
float b = sc.nextFloat();
double c = Math.sqrt(a*a + b*b);
System.out.println(String.format("%.1f", c));

}
}

结果: