《2022年浙大《Java语言程序设计》编程答案 .pdf》由会员分享,可在线阅读,更多相关《2022年浙大《Java语言程序设计》编程答案 .pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验 5 分支结构程序的设计程序填空,不要改变与输入输出有关的语句。一、显示两级成绩输入一个正整数repeat (0repeat10),做 repeat次下列运算:输入一个学生的数学成绩,如果它低于60,输出“ Fail ”,否则,输出“ Pass”。输出使用 System.out.println(Pass);及 System.out.println(Fail);例:括号内是说明输入2 (repeat=2) 60 59 输出Pass Fail import java.util.Scanner; public class Test30001 public static void main(Str
2、ing args) int ri, repeat; int mark; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1; ri=repeat; ri+) mark=in.nextInt(); /*-*/ if (mark60) System.out .println(Fail); else System.out .println(Pass); 二、找最小值输入一个正整数repeat (0repeat10),做 repeat次下列运算:输入四个整数,输出其中的最小值。例:括号内是说明输入3 (repeat=3) 1
3、2 6 1 90 10 40 30 20 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - -1 -3 -4 -5 输出min is 1 (12 6 1 90 中的最小值是1) min is 10 (10 40 30 20 中的最小值是10) min is -5 (-1 -3 -4 -5中的最小值是-5) import java.util.Scanner; public class Test30002 public static
4、void main(String args) int ri, repeat; int a, b, c, d, min; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1; rib) min=b; if(minc) min=c; if(mind) min=d; System.out.println(min is +min); 三、求三角形的面积和周长输入一个正整数repeat (0repeat10),做 repeat次下列运算:输入三角形的三条边a, b, c,如果能构成一个三角形,输出面积area 和周长 peri
5、meter ;否则,输出“ These sides do not correspond to a valid triangle”。在一个三角形中,任意两边之和大于第三边。三角形的面积计算公式:area*area = s(s-a)(s-b)(s-c) 其中 :s = (a+b+c)/2 输出代码 : System.out.println(area=+(int)(area*100+0.5)/100.+;perimeter=+(int)(perimeter*100+0.5)/100.); System.out.println(These sides do not correspond to a va
6、lid triangle);例:括号内是说明输入名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - 2 (repeat=2) 5 5 3 1 1 4 输出area=7.15;perimeter=13.0 These sides do not correspond to a valid triangle import java.util.Scanner; public class Test30003 public static voi
7、d main(String args) int ri, repeat; float a, b, c, area, perimeter, s; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1; ric&a+cb&b+ca) / 注意:复合条件的正确写法 s=(a+b+c)/2; area=(float)Math.sqrt(s*(s-a)*(s-b)*(s-c); perimeter=a+b+c; System.out .println(area=+( int)(area*100+0.5)/100.+;perimet
8、er=+( int)(perimeter*100+0.5)/100.); elseSystem.out .println(These sides do not correspond to a valid triangle); 四、判断数的符号输入整数 x,若 x 大于 0,y=1;若 x 等于 0,y=0;否则, y=-1 ,最后输出y。例:括号内是说明输入3 (repeat=3) 2 -8 0 输出1 (x=2时 y=1) -1 (x=-8时 y=-1) 0 (x=0时 y=0) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -
9、 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - import java.util.Scanner; public class Test30004 public static void main(String args) int ri, repeat; int x, y; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1; ri0) y=1; elseif(x=0) y=0; / 注意: =是赋值运算符, =才是比较相等的运算符else y=-1; System
10、.out.println(y); 五、计算个人所得税输入一个正整数repeat (0repeat10),做 repeat次下列运算:输入一个职工的月薪salary ,输出应交的个人所得税tax 。tax = rate * (salary-850) 当 salary = 850 时, rate = 0%; 当 850 salary = 1350 时, rate = 5%; 当 1350 salary = 2850 时, rate = 10%; 当 2850 salary = 5850 时, rate = 15%; 当 5850 salary 时, rate = 20%; 例:括号内是说明输入5
11、(repeat=5) 1010.87 32098.76 800 4010 2850 输出tax=8.04 tax=6249.75 tax=0.0 tax=474.0 tax=200.0 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - import java.util.Scanner; public class Test30005 public static void main(String args) int ri, repea
12、t; float rate, salary, tax; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1; ri=repeat; ri+) salary=in.nextFloat(); /*-*/ if(salary=850) / 注意:实现分段函数时对条件的简化 rate=0; elseif(salary=1350) rate=0.05f; elseif (salary=2850) rate=0.1f; elseif(salary=5850) rate=0.15f; elserate=0.2f; tax=rate
13、*(salary-850); System.out.println(tax=+(int)(tax*100+0.5)/100.0); 六、显示水果的价格输入一个正整数repeat (0repeat10),做 repeat次下列运算:以下 4 种水果的单价分别是3.00 元/ 公斤, 2.50 元/ 公斤, 4.10 元/ 公斤, 10.20 元/ 公斤。1 apples 2 pears 3 oranges 4 grapes 输入水果的编号,输出该水果的单价。如果输入不正确的编号,显示单价为0。例:括号内是说明输入1 (repeat=1) 3 (oranges的编号 ) 输出1 apples 名师
14、资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - 2 pears 3 oranges 4 grapes price=4.1 import java.util.Scanner; public class Test30006 public static void main(String args) int ri, repeat; int choice; float price; Scanner in=new Scanner(System.
15、in); repeat=in.nextInt(); for(ri=1; ri=repeat; ri+) System.out.println(1 apples); System.out.println(2 pears); System.out.println(3 oranges); System.out.println(4 grapes); choice=in.nextInt(); /*-*/ switch(choice) case 1:price=3.0f;break ; case 2:price=2.5f;break ; case 3:price=4.1f;break ; case 4:p
16、rice=10.2f;break ; default: price=0; System.out.println(price=+price); 七、字母转换输入一批以问号“ ?”结束的字符,对“ ?”以前的每一个字符,如果它是大写字母,输出相应的小写字母;如果它是小写字母,输出相应的大写字母;否则,原样输出。例:输入F=y? 输出f=Y import java.io.*; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - publi
17、c class Test30007 public static void main(String args)throws IOException char ch; ch=(char)System.in.read(); while(ch!=?) /*-*/ if ( A=ch&ch= Z) ch+=32; elseif( a=ch&ch= z)/ 此处必须使用 if 结构的嵌套ch-=32; System.out.print(ch); ch=(char)System.in.read(); 八、计算函数的值输入一个正整数repeat (0repeat10),做 repeat次下列运算:输入整数 x
18、 ,计算并输出下列函数 f(x) 的值 ( 保留 2 位小数 ,如果答案为3.50 ,则直接显示为3.5) 。当 x 等于 0 时, f(x) = 0,当 x 不等于 0时, f(x) = 1/x 。输入输出示例:括号内是说明输入3 (repeat=3) 6 (x=6) 10 (x=10) 0 (x=0) 输出f(6)=0.17 f(10)=0.1 f(0)=0.0 import java.util.Scanner; public class Test30008 public static void main(String args) int repeat, ri,x; double y; S
19、canner in=new Scanner(System.in); repeat=in.nextInt(); for(ri = 1; ri = repeat; ri+) x=in.nextInt(); /*-*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - if(x=0) y=0; else y=( int)(1.0/x)*100+0.5)/100.; / 或y=Math.rint(1.0/x)*100)/100.; Sys
20、tem.out.println(f(+x+)=+y); 说明:对正数 y 保留两位小数的表达式(int)(y*100+0.5)/100.0或Math.rint(1.0/x)*100)/100.0 九、显示五级记分制成绩对应的百分制区间输入一个正整数 repeat (0repeat10),做 repeat 次下列运算:输入五级制成绩(AE),输出相应的百分制成绩(0 100)区间,要求使用switch语句。五级制成绩对应的百分制成绩区间为:A(90-100) 、B(80-89) 、C(70-79) 、D(60-69) 和 E(0-59),如果输入不正确的成绩,显示 Invalid input。输
21、入输出示例:括号内是说明输入6 A B C D E j (repeat=6 ,输入的五级成绩分别为A 、B、C、D、 E和无效的字符j) 输出90-100 80-89 70-79 60-69 0-59 Invalid input import java.util.Scanner; public class Test30010 public static void main(String args) int repeat, ri; char ch; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri = 1; ri = r
22、epeat; ri+) ch=(in.next().charAt(0); /*输入 1 个字符 */ /*-*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - switch(ch) caseA:System.out .println(90-100); break ; caseB:System.out .println(80-89); break ; caseC :System.out .println(70-79); break ; caseD :System.out .println(60-69); break ; caseE:System.out .println(0-59); break ; default: System.out .println(Invalid input); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -