浙大JAVA 实验题答案05answer1

更新时间:2023-11-18 01:33:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验5 分支结构程序的设计

1. 程序填空题,不要改变与输入输出有关的语句。

20004 计算旅途时间

输入2个整数time1和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。 有效的时间范围是0000到2359,不需要考虑出发时间晚于到达时间的情况。

例:括号内是说明 输入

712 1411(出发时间是7:12,到达时间是14:11) 输出

The train journey time is 6 hrs 59 mins.

import java.util.Scanner; public class Test20004 {

public static void main(String[] args) { Scanner in=new Scanner(System.in); int time1, time2, hours, mins; time1=in.nextInt(); time2=in.nextInt(); /*------------------*/

/*计算两个时间之间的小时数和分钟数*/

hours=time2/100-time1/100; mins=time20-time10;

/*当计算得到的分钟数为负数时进行调整*/ hours=mins>0?hours:hours-1; mins=mins>0?mins:mins+60;

//或:if(mins<0){hours-=1;mins+=60;}

System.out.println(\+hours+\+ mins+\); } }

30001 显示两级成绩

输入一个正整数repeat (0

输入一个学生的数学成绩,如果它低于60,输出“Fail”,否则,输出“Pass”。 输出使用System.out.println(\及System.out.println(\

例:括号内是说明 输入

2 (repeat=2) 60 59 输出 Pass Fail

import java.util.Scanner; public class Test30001{

public static void main(String[] args){ int ri, repeat; int mark; Scanner in=new Scanner(System.in); repeat=in.nextInt();

for(ri=1; ri<=repeat; ri++){ mark=in.nextInt(); mark=in.nextInt();

/*------------------*/ if (mark<60)

System.out.println(\); else

System.out.println(\); } } }

30002 找最小值

输入一个正整数repeat (0

例:括号内是说明 输入

3 (repeat=3) 12 6 1 90 10 40 30 20 -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 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; ri<=repeat; ri++){ a=in.nextInt(); b=in.nextInt(); c=in.nextInt(); d=in.nextInt();

/*------------------*/ min=a;

if(min>b) min=b; if(min>c) min=c; if(min>d) min=d;

System.out.println(\ } } }

30004 判断数的符号

输入一个正整数repeat (0

输入整数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)

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; ri<=repeat; ri++){ x=in.nextInt();

/*------------------*/ if(x>0)y=1;

else if(x==0)y=0; else y=-1;

System.out.println(y); } } }

30005 计算个人所得税

输入一个职工的月薪salary,输出应交的个人所得税tax。 tax = rate * (salary-850)

当 salary <= 850 时,rate = 0%;

当 850 < salary <= 1350 时,rate = 5%; //写成0.05f 当 1350 < salary <= 2850 时,rate = 10%; 当 2850 < salary <= 5850 时,rate = 15%; 当 5850 < salary 时,rate = 20%;

例:括号内是说明 输入

5 (repeat=5) 1010.87 32098.76 800 4010 2850 输出 tax=8.04 tax=6249.75 tax=0.0 tax=474.0 tax=200.0

import java.util.Scanner; public class Test30005 {

public static void main(String[] args){ int ri, repeat;

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;

else if(salary<=1350) rate=0.05f; else if(salary<=2850) rate=0.1f;

else if(salary<=5850) rate=0.15f; else

rate=0.2f; tax=rate*(salary-850);

System.out.println(\ } } }

30006 显示水果的价格

输入一个正整数repeat (0

以下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 [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.in); repeat=in.nextInt();

for(ri=1; ri<=repeat; ri++){ System.out.println(\ System.out.println(\ System.out.println(\ System.out.println(\ 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:price=10.2f;break; default: price=0; }

System.out.println(\ } } }

30008 计算函数的值(分支)

输入一个正整数repeat (0

例:括号内是说明 输入

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;

Scanner in=new Scanner(System.in); repeat=in.nextInt();

for(ri = 1; ri <= repeat; ri++){ x=in.nextInt(); /*---------*/ if(x==0) y=0;

else y=(int)((1.0/x)*100+0.5)/100.;

//或:y=Math.round((1.0/x)*100)/100.;

System.out.println(\ } } }

30010 显示五级记分制成绩所对应的百分制成绩区间

输入一个正整数 repeat (0

输入五级制成绩(A-E),输出相应的百分制成绩(0-100)区间,要求使用switch语句。

五级制成绩对应的百分制成绩区间为:A(90-100)、B(80-89)、C(70-79)、D(60-69)和E(0-59),如果输入不正确的成绩,显示\。

例:括号内是说明 输入 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 <= repeat; ri++){ ch=(in.next()).charAt(0); /*输入1个字符*/

/*---------*/ switch(ch){

case 'A':System.out.println(\);break; case 'B':System.out.println(\);break; case 'C':System.out.println(\);break; case 'D':System.out.println(\);break; case 'E':System.out.println(\);break; default: System.out.println(\); } } } }

说明:ch=s.CharAt(i);

作用是:从字符串变量s中读取第i个字符,保存到字符变量ch中

本文来源:https://www.bwwdw.com/article/x2vv.html

Top