必做题 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) { System.out.println("输入半径r,圆柱高h:" ); Scanner sc = new Scanner(System.in); Double r = sc.nextDouble(); Double h = sc.nextDouble(); Double yzl,mj,bmj,tj,ztj; yzl = 2 * Math.PI * r; 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); 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(); 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(); 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(); int b = sc.nextInt(); int c = sc.nextInt(); int x = Math.abs(a); 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)); } }
结果: