[高等教育]浙江大学Java语言程序设计实验答案全集

上传人:仙*** 文档编号:34098459 上传时间:2021-10-20 格式:DOC 页数:83 大小:799.76KB
收藏 版权申诉 举报 下载
[高等教育]浙江大学Java语言程序设计实验答案全集_第1页
第1页 / 共83页
[高等教育]浙江大学Java语言程序设计实验答案全集_第2页
第2页 / 共83页
[高等教育]浙江大学Java语言程序设计实验答案全集_第3页
第3页 / 共83页
资源描述:

《[高等教育]浙江大学Java语言程序设计实验答案全集》由会员分享,可在线阅读,更多相关《[高等教育]浙江大学Java语言程序设计实验答案全集(83页珍藏版)》请在装配图网上搜索。

1、Java答案全集实验汇总。实验2 数据类型和变量的使用一、程序填空,在屏幕上显示一个短句“Programming in Java is fun!”import java.io.*;public class Test10001 public static void main(String args) /*-*/System.out.println(Programming in Java is fun!); 二、程序填空,在屏幕上显示如下网格。+-+-+| | | | |+-+-+import java.io.*;public class Test10002 public static void

2、main(String args) /*-*/System.out.println(+-+-+); System.out.println(| | |); System.out.println(| | |); System.out.println(+-+-+); 三、编写程序,在屏幕上显示如下图案。(要求:第1行行首无空格,每行行尾无空格)* * * * * * * * * *public class Test10003 public static void main(String args) /*-*/ System.out.println(* * * *); System.out.print

3、ln( * * *); System.out.println( * *); System.out.println( *); 实验3 运算符和表达式的使用1、运行结果:m=2 k=1x=1.0 y=2.0 z=-3.0ch1=-A ch2=Ach1=-A ch2=aHello,Welcome to core Java!思考题:(1) 字符A的Unicode码比字符a的Unicode码小32。(2) 假设字符型变量ch中保存一个大写字母,执行ch+=(a-A );后,ch中是相应的小写字母。例:若ch=B,执行后ch=b。2、运行结果:m=3 n=2. m大于n吗?truem=2 n=2. m大于

4、n吗?false str1=Hello;str2=Hello! s1和s2相等吗?false思考题:(1)s2比s1多一个字符“!”,所以不相同。(2)s2比s1多一个字符,所以s2比s1大。3、运行结果:逻辑变量b1=true、b2=falseb1b2(异或运算)的结果是:trueb1!b2(b2取反后与b1异或运算)的结果是:falsen=31,m=15; m与n的位与运算结果是:15m、n的位与后左移2位的结果:60思考题:(1)若给b1赋值2,则程序出错。因为类型不匹配:不能从int转换为boolean(2)n是十六进制数,化为二进制为0001 1111;m是八进制数,化为二进制为00

5、00 1111;所以n&m为0000 1111(二进制),就是十进制数15。(3)120(4)左移运算就是乘法运算,左移n位就相当于乘以2n4、运行结果:(m+nk)?(m+):(-m+n+)的运算结果:2float型变量强制转换为int型的结果是:3int型变量运算:(m+2*n)/k的结果是:2(m+2*n)/k的结果赋值给float型变量后x=2.0思考题:(1)因为temp=(-m+n+),等价于依次执行以下命令:-m;temp=(m+n); n+;所以,temp=2,m=0,n=3,k=3(2)因为3.14是double类型,不能赋给float类型的变量x在3.14后面加F或f,将其

6、转换成float类型,就可以赋值了(3)此时m=1,n=3,k=3,所以(m+2*n)/k=7/3=2(4)x=(m+2*n)/(float)k=7/3.0=2.33333335、源程序如下:public class Ball public static void main (String args)float r=6.5f, PI=3.14f,V;V=4f/3f*PI*r*r*r;System.out.println(球的半径为+r);System.out.println(球的体积为+V);运行结果:球的半径为6.5球的体积为1149.7634实验4 顺序结构程序的设计程序填空,不要改变与输

7、入输出有关的语句。一、求两个数的和与差。输入整数a和b,计算并输出a、b的和与差。例:输入2 -8输出The sum is -6The difference is 10import java.io.*;import java.util.Scanner;public class Test20001 public static void main(String args) int a, b, sum, diff; Scanner in=new Scanner(System.in); a=in.nextInt(); b=in.nextInt(); /*-*/ sum=a+b; diff=a-b; S

8、ystem.out.println(The sum is +sum); System.out.println(The difference is +diff); 二、求平方根。输入1个实数x,计算并输出其平方根。例:输入1.21输出The square root of 1.21 is 1.1import java.io.*;import java.util.Scanner;public class Test20002 public static void main(String args) double x, root; Scanner in=new Scanner(System.in); x

9、=in.nextDouble(); /*-*/ root=Math.sqrt(x); System.out.println(The square root of +x+ is +root); 三、华氏温度转换为摄氏温度。输入华氏温度f,计算并输出相应的摄氏温度c。c = 5/9(f-32).例:括号内是说明输入17.2 (华氏温度)输出The temprature is -8.222222222222223import java.util.Scanner;public class Test20003 public static void main(String args) Scanner in

10、=new Scanner(System.in); double f, c; f=in.nextDouble(); /*-*/ c=5.0/9*(f-32); /注意:5/9结果是0 System.out.println(The temprature is +c); 四、计算旅途时间。输入2个整数time1和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。有效的时间范围是0000到2359,不需要考虑出发时间晚于到达时间的情况。例:括号内是说明输入712 1411(出发时间是7:12,到达时间是14:11)输出The train journey time is 6 hrs 59 m

11、ins.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=time2%100-time1%100; /*当计算得到的分钟数为负数时进行如下处理*/ h

12、ours=mins0?hours:hours-1; mins=mins0?mins:mins+60; System.out.println(The train journey time is +hours+ hrs + mins+ mins.); 五、数字加密。输入1个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将第1位和第3位上的数字互换,第2位和第4位上的数字互换,组成加密后的新数。例:括号内是说明输入1257输出The encrypted number is 4601(每一位上的数字加9除以10取余后,得0146,交换后得到4601)

13、import java.util.Scanner;public class Test20005 public static void main(String args) Scanner in=new Scanner(System.in); int number, digit1, digit2, digit3, digit4, newnum; number=in.nextInt(); /*-*/ /*先分离出各位上的数字*/ digit1=number/1000; digit2=number/100%10; /或 digit2=(number-digit1*1000)/100; digit3=n

14、umber/10%10; /或 digit3=(number-digit1*1000-digit2*100)/10; digit4=number%10; /*再调整各位上的数字*/ digit1=(digit1+9)%10; digit2=(digit2+9)%10; digit3=(digit3+9)%10; digit4=(digit4+9)%10; /*最后组成加密后的新数*/ newnum=digit3*1000+digit4*100+digit1*10+digit2; System.out.println(The encrypted number is +newnum); 六、大写字

15、母转换成小写字母。输入一个大写英文字母,输出相应的小写字母。例:输入G输出gimport java.io.*;public class Test20006 public static void main(String args) throws IOException char ch; ch=(char)System.in.read(); /*-*/ ch+=32; /或ch=(char)(ch+32); System.out.println(ch); 七、计算三门课程的平均成绩。已知某位学生的数学、英语和计算机课程的成绩分别是87分、72分和93分,求该生3门课程的平均分。本题无输入。输出示例

16、:math = 87, eng = 72, comp = 93average = 84public class Test20007 public static void main(String args) int math, eng, comp, average; /*/ math=87; eng=72; comp=93; average=(math+eng+comp)/3; System.out.println(math = +math+, eng = +eng+, comp = +comp); System.out.println(average = + average); 八、计算存款利

17、息。输入存款金额 money、存期 year 和年利率 rate,根据下列公式计算存款到期时的利息 interest(税前),输出时保留2位小数。interest = money(1+rate)year - money输入输出示例:括号内为说明输入1000 3 0.025(money = 1000, year = 3, rate = 0.025)输出interest = 76.89import java.util.Scanner;public class Test20008 public static void main(String args) int money, year; double

18、 interest, rate; Scanner in=new Scanner(System.in); /*使用in.nextDouble()和in.nextInt()输入double和int型数据*/ /*/ money=in.nextInt(); year=in.nextInt(); rate=in.nextDouble(); interest=money*Math.pow(1+rate), year )- money; /注意:指数运算没有运算符,应使用数学类的方法pow System.out.println(interest = + (int)(interest*100+0.5)/10

19、0.0); /正数保留两位小数 九、计算两个数的和、差、积、商与余数。输入2个整数 num1 和 num2,计算并输出它们的和、差、积、商与余数。输入输出示例:括号内是说明输入5 3 (num1=5,num2=3)输出5+3=85-3=25*3=155/3=15%3=2import java.util.Scanner;public class Test20010 public static void main(String args) int num1,num2; Scanner in=new Scanner(System.in); num1=in.nextInt(); num2=in.nex

20、tInt(); /*-*/ System.out.println(num1+num2+=+(num1+num2); System.out.println(num1+-+num2+=+(num1-num2); System.out.println(num1+*+num2+=+(num1*num2); System.out.println(num1+/+num2+=+(num1/num2); System.out.println(num1+%+num2+=+(num1%num2); 十、计算一个3位数的各位数字。输入一个3位数n,分别求出 n 的个位数字(c)、十位数字(b)和百位数字(a)的值。

21、输入输出示例:输入:152输出:number152:digit1=2,digit2=5,digit3=1import java.util.Scanner;public class Test20011 public static void main(String args) int a,b,c,n; Scanner in=new Scanner(System.in); n=in.nextInt(); /*-*/ c=n%10; b=(n/10)%10; a=(n/100)%10; System.out.println(number+n+:digit1=+c+,digit2=+b+,digit3=

22、+a); 十一、计算x的平方。输入x,计算x的平方y。并分别以y=x*x和x*x=y的形式输出 x 和 y 的值。输入输出示例:输入:3输出:(输出中不能出现空格)9=3*33*3=9import java.util.Scanner;import java.util.Scanner;public class Test20012 public static void main(String args)int x,y;Scanner in=new Scanner(System.in);x=in.nextInt();/*-*/y=x*x;System.out.println(y+=+x+*+x);S

23、ystem.out.println(x+*+x+=+y);实验5 分支结构程序的设计程序填空,不要改变与输入输出有关的语句。一、显示两级成绩 输入一个正整数repeat (0repeat10),做repeat次下列运算:输入一个学生的数学成绩,如果它低于60,输出“Fail”,否则,输出“Pass”。输出使用System.out.println(Pass);及System.out.println(Fail);例:括号内是说明输入2 (repeat=2) 60 59输出PassFailimport java.util.Scanner;public class Test30001 public s

24、tatic 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(); /*-*/ if (mark60) System.out.println(Fail); else System.out.println(Pass); 二、找最小值输入一个正整数repeat (0repeat10),做repeat次下列运算:输入四个整数,输出其中的最小值。例:括号内是说明

25、输入3 (repeat=3) 12 6 1 9010 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); repe

26、at=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和周长perimeter;否则,输出“These sides do not correspond to a valid triangle”。在一个三角形中,任意两边之和大于第三边。三角形的面积计算公式:area*are

27、a = 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 valid triangle); 例:括号内是说明输入2 (repeat=2) 5 5 31 1 4输出area=7.15;perimeter=13.0These sides do not correspond to a v

28、alid triangleimport java.util.Scanner;public class Test30003 public static void 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);

29、perimeter=a+b+c; System.out.println(area=+(int)(area*100+0.5)/100.+;perimeter=+(int)(perimeter*100+0.5)/100.); else System.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=

30、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; ri0) y=1; else if(x=0) y=0; /注意:=是赋值运算符,=才是比较相等的运算符 else y=-1; System.out.println(y); 五、计算个人所得税输入一个正整数repeat (0repeat10),

31、做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 (repeat=5)1010.8732098.7680040102850输出tax=8.04tax=6249.75tax=0.0ta

32、x=474.0tax=200.0import 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

33、(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(tax=+(int)(tax*100+0.5)/100.0); 六、显示水果的价格输入一个正整数repeat (0repeat10),做repeat次下列运算:以下4种水果的单价分别是3.00元/公斤,2.50元/公斤,4.10元/公斤,10.20元/公斤。1 apples2 pears3 orang

34、es4 grapes输入水果的编号,输出该水果的单价。如果输入不正确的编号,显示单价为0。例:括号内是说明输入1 (repeat=1) 3 (oranges的编号) 输出1 apples2 pears3 oranges4 grapesprice=4.1import 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.nex

35、tInt(); 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:price=10.2f;break; def

36、ault: price=0; System.out.println(price=+price); 七、字母转换输入一批以问号“?”结束的字符,对“?”以前的每一个字符,如果它是大写字母,输出相应的小写字母;如果它是小写字母,输出相应的大写字母;否则,原样输出。例:输入F=y?输出f=Yimport java.io.*;public class Test30007 public static void main(String args)throws IOException char ch; ch=(char)System.in.read(); while(ch!=?) /*-*/ if(A=ch

37、&ch=Z) ch+=32; else if(a=ch&ch=z) /此处必须使用if结构的嵌套 ch-=32; System.out.print(ch); ch=(char)System.in.read(); 八、计算函数的值输入一个正整数repeat (0repeat10),做repeat次下列运算:输入整数 x,计算并输出下列函数 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

38、(6)=0.17f(10)=0.1f(0)=0.0import 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=Ma

39、th.rint(1.0/x)*100)/100.; System.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),输出相应的百分制成绩(0100)区间,要求使用switch语句。五级制成绩对应的百分制成绩区间为:A(90-100)、B(80-89)、C(70-79)、D(60-69)和E(0-59),如果输入不正确

40、的成绩,显示Invalid input。输入输出示例:括号内是说明输入6A B C D E j (repeat=6,输入的五级成绩分别为A、B、C、D、E和无效的字符j) 输出90-10080-8970-7960-690-59Invalid inputimport 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 =

41、 1; ri = repeat; ri+) ch=(in.next().charAt(0); /*输入1个字符*/ /*-*/ switch(ch) case A:System.out.println(90-100);break; case B:System.out.println(80-89);break; case C:System.out.println(70-79);break; case D:System.out.println(60-69);break; case E:System.out.println(0-59);break; default: System.out.print

42、ln(Invalid input); 实验6 循环结构程序的设计(一)程序填空,不要改变与输入输出有关的语句。1. 求11/21/31/n 输入一个正整数repeat (0repeat10),做repeat次下列运算:读入1 个正整数 n(n=100),计算并输出11/21/31/n 。例:括号内是说明输入2 (repeat=1)210输出1.52.9289684import java.util.Scanner;public class Test40001 public static void main(String args) int ri, repeat; int i, n; float

43、sum; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1; ri=repeat; ri+) n=in.nextInt(); /*-*/sum=0;/注意这条赋初值语句的位置for(i=1;i=n;i+)sum+=1.0f/i; System.out.println(int)(sum*1000+0.5)/1000.); 2. 求n! 输入一个正整数repeat (0repeat10),做repeat次下列运算:读入1 个正整数 n(n=50),计算并输出n! 。例:括号内是说明输入3 (repeat=2)1 105

44、输出1.03628800.0120.0import java.util.Scanner;public class Test40002 public static void main(String args) int ri, repeat; int i, n; double fact; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1; ri=repeat; ri+) n=in.nextInt(); /*-*/ fact=1; for(i=1;i=n;i+) fact*=i; System.out.println(f

45、act); 3. 求x的n次幂 输入一个正整数repeat (0repeat10),做repeat次下列运算:读入1 个正实数x和1个正整数 n(n=50),计算并输出x的n次幂。例:括号内是说明输入2 (repeat=2)1.5 22.0 10输出2.251024.0import java.util.Scanner;public class Test40003 public static void main(String args) int ri, repeat; int i, n; double x, mypow; Scanner in=new Scanner(System.in); re

46、peat=in.nextInt(); for(ri=1; ri=repeat; ri+) x=in.nextDouble(); n=in.nextInt(); /*-*/ mypow=1; for(i=1;i=n;i+) mypow*=x; System.out.println(mypow); 4. 求11/31/51/7 输入一个正整数repeat (0repeat10),做repeat次下列运算:读入1 个正整数 n(n=100),计算并输出11/31/51/7的前n项和。例:括号内是说明输入2 (repeat=2)103输出2.1332561.5333334import java.uti

47、l.Scanner;public class Test40005 public static void main(String args) int ri, repeat;int i, n, temp;float sum;Scanner in=new Scanner(System.in);repeat=in.nextInt();for(ri=1; ri=repeat; ri+) n=in.nextInt(); /*-*/temp=1;sum=0;for(i=1;i=n;i+) sum+=1.0f/temp; temp+=2; System.out.println(sum); 解法二:temp=2*n-1; sum=0; for(i=1;i=temp;i+=2) sum+=1.0f/i;5. 摄氏温度和华氏温度转换表输入一个正整数repeat (0repeat10),做repeat次下列运算:输入2个整数begin和end,分别代表摄氏温度的起止值,输出该范围内摄氏温度C和华氏温度F的转换表。F = 32 + C * 9 / 5输出语句:System.out.println(c+t+f);例:括号内是说明输入1 (repeat=1)5 7输出Celsius Fahrenheit541642744import java

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!