浙江大学java上机参考答案_第1页
浙江大学java上机参考答案_第2页
浙江大学java上机参考答案_第3页
浙江大学java上机参考答案_第4页
浙江大学java上机参考答案_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、求两个数的和与差。程序填空,不要改变与输入输出有关的语句。 输入整数a和b,计算并输出a、b的和与差。import java.io.*;import java.util.Sca nner; public class Test20001p ublic static void main( Stri ng args) int a, b, sum, diff;Scanner in=new Sca nn er(System.i n); a=in.n ext In t();b=in.n ext In t();*/*sum=a+b; diff=a-b;System.out .printin (The s

2、um is +sum); System.out .prin tl n(The differe nee is +diff);二、求平方根。程序填空,不要改变与输入输出有关的语句。 输入1个实数X,计算并输出其平方根。例:输入 1.21 输出 The square root of 1.21 is 1.1import java.io.*;import java.util.Sca nner;public class Test20002p ublic static void main( Stri ng args) double X, root;Scanner in=new Sca nn er(Syste

3、m.i n); x=in.n extDouble();/*/root=Math.sqrt(x);System.out. printin (The square root of +x+ is +root);三、华氏温度转换为摄氏温度。程序填空,不要改变与输入输出有关的语句。 输入华氏温度f,计算并输出相应的摄氏温度c。c = 5/9(f-32).例:括号内是说明:输入17.2 (华氏温度)输出The temprature is -8.222222222222223import java.util.Sca nner;public class Test20003 p ublic static voi

4、d main( Stri ng args) Scanner in=new Scann er(System.i n);double f, c;f=i n.n extDouble();/*/c=5.0/9*(f-32);System.out. prin tl n(The temp rature is +c);四、计算旅途时间。程序填空,不要改变与输入输出有关的语句。输入2个整数time1和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。有效的时间范围是 0000到2359,不需要考虑出发时间晚于到达时间的情况。14 : 11 )例:括号内是说明:输入712 1411 (出发时间是7

5、: 12,到达时间是输出 The train journey time is 6 hrs 59 mi ns.import java.util.Sca nner;public class Test20004 p ublic static void main( Stri ng args) Scanner in=new Scann er(System.i n);int time1, time2, hours, mins;time1=i n.n extI nt();time2=i n.n extI nt();/*/*计算两个时间之间的小时数和分钟数*/ hours=time2/100-time1/10

6、0;min s=time2%100-time1%100;/*当计算得到的分钟数为负数时进行如下处理*/hours=min s0?hours:hours-1;mi ns=mi ns0?mi ns:mi ns+60;System.out. println (The train journey time is +hours+ hrs + min s+ min s.);五、数字加密。程序填空,不要改变与输入输出有关的语句。9,然后除以10第2位和第4位上输入1个四位数,将其加密后输出。方法是将该数每一位上的数字加 取余,做为该位上的新数字, 最后将第1位和第3位上的数字互换, 的数字互换,组成加密后的

7、新数。例:括号内是说明:输入1257输出The encrypted number is 4601(每一位上的数字加 9除以10取余后,得0146,交换后得到4601)import java.util.Sca nner;public class Test20005 p ublic static void main( Stri ng args) Scanner in=new Scann er(System.i n);int nu mber, digit1, digit2, digit3, digit4, newnum;nu mber =in.n ext In t();/*/*先分离出各位上的数字*

8、/digit仁nu mber/1000;(是这样来取得位数的)digit2=number/100%10;/或 digit2=(number-digit1*1000)/100;digit3=number/10%10;/ 或digit3=( nu mber-digit1*1000-digit2*100)/10;digit4=nu mber%10;/*再调整各位上的数字*/ digit1=(digit1+9)%10;digit2=(digit2+9)%10;digit3=(digit3+9)%10;digit4=(digit4+9)%10;/*最后组成加密后的新数*/new nu m=digit3*

9、1000+digit4*100+digit1*10+digit2;(注意这里是这样来实现交换的)System.out. prin tl n(The encryp ted nu mber is +newnu m);六、大写字母转换成小写字母。程序填空,不要改变与输入输出有关的语句。 输入一个大写英文字母,输出相应的小写字母。例:输入G输出gimport java.io.*;public class Test20006 p ublic static void main( Stri ng args) throws IOExce pti on char ch;ch=(char)System.i n.

10、read();/*/ch=(char)(ch+32);System.out .prin tl n( ch);七、计算三门课程的平均成绩。程序填空,不要改变与输入输出有关的语句。已知某位学生的数学、英语和计算机课程的成绩分别是87分、72分和93分,求该生3门课程的平均分。本题无输入。输出示例:math = 87, eng = 72, comp = 93 ,average = 84public class test20007 p ublic static void main( Stri ng args) int math, eng, comp, average;/*/math=87;en g=7

11、2;comp=93;average=(math+e ng+co mp)/3;System.out. printin (math = +math+, eng = +e ng+, comp = +co mp);System.out. prin tl n(average = + average);八、计算存款利息。程序填空,不要改变与输入输出有关的语句。输入存款金额 money、存期year和年利率rate,根据下列公式计算存款到期时的利 息interest(税前),输出时保留2位小数。in terest = mon ey(1+rate)year - money输入输出示例:括号内为说明输入 100

12、0 3 0.025(money = 1000, year = 3, rate = 0.025)输出 interest = 76.89import java.util.Sca nner;public class test20008 p ublic static void main( Stri ng args)int mon ey, year;double in terest, rate;Scanner in=new Scann er(System.i n);/*使用 in.nextDouble()和 in.nextlnt()输入 double 和 int 型数据 */*/mon ey=i n.n

13、 extl nt();year=i n.n extl ntO; rate=in.n extDouble();in terest=mon ey*Math. po w(1+rate), year )- money; 表示的是1+rate的year方幕/保留两位System.out .prin tl n(in terest = + (in t)(i nterest*100+0.5)/100.0);小数实验5分支结构程序的设计一、显示两级成绩,程序填空,不要改变与输入输出有关的语句。输入一个正整数 rep eat (0re peat10),做rep eat次下列运算:输入一个学生的数学成绩,如果它低于

14、60,输出“Fail,”否则,输出“Pass”输出使用 System.out.println(Pass);及 System.out.println(Fail);例:括号内是说明:输入2 (repeat=2) 6059输出PassFail import java.util.Sca nner;public class Test30001p ublic static void main( Stri ng args)int ri, rep eat;int mark;Scanner in=new Sca nn er(System.i n); rep eat=in.n ext In t();for(ri=

15、1; ri=re peat; ri+)mark=i n.n extl nt();/*/if (markv60)System. out. printin (Fail); elseSystem. out .println(Pass);二、找最小值,程序填空,不要改变与输入输出有关的语句。输入一个正整数rep eat (0re peatvIO),做rep eat次下列运算:输入四个整数,输出其中的最小值。 例:括号内是说明输入3 (rep eat=3)12 6 1 9010 40 30 20 -1-3 -4 -5输出min is 1 (12 6 1 90中的最小值是 1)min is 10 (10

16、40 30 20中的最小值是 10)min is -5 (-1 -3 -4 -5 中的最小值是-5)import java.util.Sca nner;public class Test30002 p ublic static void main( Stri ng args)int ri, rep eat;int a, b, c, d, min;Scanner in=new Scann er(System.i n); rep eat=i n.n extl nt();for(ri=1; rib) min=b; if(mi nc) min=c; if(mi nd) min=d;System.out

17、 .prin tl n(” min is +mi n);三、求三角形的面积和周长,程序填空,不要改变与输入输出有关的语句。area 禾R周长 perimeter ; 否输入一个正整数 rep eat (0re peat10),做rep eat次下列运算: 输入三角形的三条边a, b, c,如果能构成一个三角形,输出面积贝y,输出 “ These sides do not corres pond to a valid tria ngle 在一个三角形中,任意两边之和大于第三边。三角形的面积计算公式:aere*area = s(s-a)(s-b)(s-c)其中:s = (a+b+c)/2输出代码:

18、System.out .printin (area=+(i nt)(area*100+0.5)/100.+; perimeter=+(i nt)( perimeter*100+0 .5)/100.);System.out. println (These sides do not corres pond to a valid tria ngle);例:括号内是说明 输入2 (rep eat=2)5 5 31 1 4输出area=7.15 ;p erimeter=13.0These sides do not corres pond to a valid tria ngle import java.

19、util.Sca nner;public class Test30003 p ublic static void main( Stri ng args)int ri, rep eat;float a, b, c, area, p erimeter, s;Scanner in=new Scann er(System.i n); rep eat=i n.n extI nt();for(ri=1; ric&a+cb&b+ca) s=(a+b+c)/2;area=(float)Math. sqrt(s*(s-a)*(s-b)*(s-c); p erimeter=a+b+c;System.out .pr

20、intin (area=+(i nt)(area*100+0.5)/100.+; perimeter=+(i nt)( 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。import java.util.Sca nner;public class Test30004p ublic static void

21、 main( Stri ng args)int ri, rep eat;int X, y;Scanner in=new Scann er(System.i n); rep eat=i n.n extI nt();for(ri=1; ri0)y=1;else if(x=0)y=0; else y=-1; System.out .prin tl n( y);if (x0)y=1;if (x0)y=-1;elsey=0;(这样是错的。这是为什么?)五、计算个人所得税,程序填空,不要改变与输入输出有关的语句。 输入一个正整数 rep eat (0re peat10),做rep eat次下列运算: 输入

22、一个职工的月薪 salary,输出应交的个人所得税tax。当 当 当 当 当tax = rate * (salary-850)时,rate = 5%; 时,rate = 10%;时,rate = 15%;salary = 850 时,rate = 0%;850 salary = 13501350 salary = 28502850 salary = 5850 5850 salary 时,rate = 20%;例:括号内是说明 输入5 (rep eat=5) 1010.87 32098.768004010 2850输出tax=8.04 tax=6249.75 tax=0.0 tax=474.0

23、tax=200.0 import java.util.Sca nner; public class Test30005 p ublic static void main( Stri ng args)int ri, rep eat;float rate, salary, tax;Scanner in=new Scann er(System.i n); rep eat=i n.n extI nt();for(ri=1; ri=re peat; ri+) salary=in.n extFloat();/*/if(salaryv=850) rate=0;else if(salary=1350) rat

24、e=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. printin (tax=+(i nt)(tax*100+0.5)/100.0);六、显示水果的价格,程序填空,不要改变与输入输出有关的语句。输入一个正整数 rep eat (0re peat10),做rep eat次下列运算:以下4种水果的单价分别是 3.00元/公斤,2.50元/公斤,4.10元/公斤,10.20元/公斤。1 apples2 P ear

25、s3 oran ges4 grapes输入水果的编号,输出该水果的单价。如果输入不正确的编号,显示单价为 例:括号内是说明 输入1(rep eat=1)3(oranges 的编号)输出1 apples2 p ears3 oran ges4 grapes p rice=4.1import java.util.Sca nner;public class Test30006p ublic static void main( Stri ng args)int ri, rep eat;int choice;float p rice;Scanner in=new Sca nn er(System.i n)

26、; rep eat=in.n ext In t();for(ri=1; ri=re peat; ri+)System.out .prin tl n(1 a pp les);System.out .prin tl n(2 p ears);System.out. println (3 oran ges);System.out .println (4 grap es); choice=in.n ext In t();/*/switch(choice)case 1:p rice=3.0f;break;case 2:p rice=2.5f;break;case 3:p rice=4.1f;break;c

27、ase 4:p rice=10.2f;break; default: price=0; System.out .println (” pnce=+price);七、字母转换,程序填空,不要改变与输入输出有关的语句。输入一批以问号 “ ?”束的字符,对 “ ?”前的每一个字符,如果它是大写字母,输出相应的 小写字母;如果它是小写字母,输出相应的大写字母;否则,原样输出。import java.io.*;public class Test30007 p ublic static void main( Stri ng args)throws IOExce pti on char ch;ch=(cha

28、r)System.i n. read(); while(ch!=?)/*/if(A=ch&ch=Z)ch+=32;else if(a=ch&ch=z) /此处必须使用if结构的嵌套 ch-=32;System.out. prin t(ch); ch=(chaijSystem.i n. read();实验6循环结构程序的设计(一)第8题可考虑放到下次再做1.求1 + 1/2 + 1/3 +1/n 程序填空,不要改变与输入输出有关的语句。 输入一个正整数 rep eat (0re peat10),做rep eat次下列运算: 读入i=1;个正整数 n(*=100),计算并输出 1 + 1/2 +

29、1/3 + 1/n 。i=n; sum=0;doi=i+1;sum=sum+1/i; while (n=100);System. out .println(int )(sumT000+0.5)/1000.);import java.util.Sca nner;public class Test40001 p ublic static void main( Stri ng args) int ri, rep eat;int i, n;float sum;Scanner in=new Sca nn er(System.i n);rep eat=in.n ext In t();for(ri=1; r

30、i=re peat; ri+)n=in.n extI nt();/*/以下if语句用于检查输入数据的正确性,可以不写if(n100) /输入0、负数或大于100的数时结束程序的运行System.out.printing输入数据出错,程序退出);System.exit(0);sum=0;注意这条赋初值语句的位置for(i=1;i=n;i+)sum+=1.0f/i;System.out .printin (i nt)(sum*1000+0.5)/1000.);2.求n! 程序填空,不要改变与输入输出有关的语句。输入一个正整数 rep eat (0re peat10),做rep eat次下列运算:

31、读入1个正整数n(*=50),计算并输出n!。import java.util.Sca nner;public class Test40002 p ublic static void main( Stri ng args) int ri, rep eat;int i, n;double fact;/ 这里的double在编写中是用不到的吧 Scanner in=new Scann er(System.i n);rep eat=i n.n extl nt();for(ri=1; ri=re peat; ri+) n=in.n extl nt();*/*fact=1; for(i=1;i=n ;i

32、+) fact*=i;3.求x的n次幕输入一个正整数读入1个正实数System.out. prin tl n( fact);程序填空,不要改变与输入输出有关的语句。rep eat (0re peat10),做 rep eat 次下列运算:x和1个正整数n(*=50),计算并输出x的n次幕。import java.util.Sca nner;public class Test40003 p ublic static void main( Stri ng args) int ri, rep eat;int i, n;double x, mypow;Scanner in=new Scann er(S

33、ystem.i n); rep eat=i n.n extI nt();for(ri=1; ri=re peat; ri+)x=in.n extDouble();n=in.n extI nt();*/*mypo w=1; for(i=1;i=n ;i+) mypo w*=x;System.out. println(mypo w); /这个,怎么感觉有些不对?4.求1 + 1/3 + 1/5 + 1/7 +程序填空,不要改变与输入输出有关的语句。输入一个正整数 rep eat (0re peat10),做rep eat次下列运算:读入1个正整数n(*=100),计算并输出1 + 1/3 + 1/

34、5 + 1/7 +的前n项和。import java.util.Sca nner; public class Test40005 p ublic static void main( Stri ng args) int ri, rep eat;int i, n, temp; float sum;Scanner in=new Scann er(System.i n); rep eat=i n.n extI nt();for(ri=1; ri=re peat; ri+) n=in.n ext In t();*/*temp =1;sum=0;次!for(i=1;i=n;i+)/那这里i是什么用的么?循

35、环N!4sum+=1.0f/te mp;temp+=2;System.out. pnntln( sum);解法二:temp=2* n-1;sum=0;for(i=1;i=te mp ;i+=2) sum+=1.0f/i;5.摄氏温度和华氏温度转换表。程序填空,不要改变与输入输出有关的语句。输入一个正整数 rep eat (0re peat10),做rep eat次下列运算:输入2个整数begin和end,分别代表摄氏温度的起止值,输出该范围内摄氏温度C和华氏温度F的转换表。F = 32 + C * 9 / 5 输出语句:System.out .prin tl n( c+t+f);import

36、java.util.Sca nner;public class Test40007 p ublic static void main( Stri ng args)int ri, rep eat;int begi n, c, end, f;Scanner in=new Sca nn er(System.i n);rep eat=in.n ext In t();for(ri=1; ri=re peat; ri+)begi n=in.n extI nt();end=in.n ext In t();System.out. printin (Celsius Fahre nheit);/这一条在最后他是自

37、会输出的!/*/加引号!for(c=begi n;c=en d;c+) f=32+c*9/5; I System.out. println( c+t+f);就算是空格也不要忘了/这样显然也是可以的6.求奇数和。输入一个正整数 rep eat (0re peat10),做rep eat次下列运算: 读入一批正整数(以零或负数为结束标志),求其中的奇数和。程序填空,不要改变与输入输出有关的语句。import java.util.Sca nner;public class Test40008 p ublic static void main( Stri ng args) int ri, rep ea

38、t;int x, sum;一样了呢?Scanner in=new Scann er(System.i n); rep eat=i n.n extI nt();for(ri=1; ri0) if(x%2!=0)sum+=x; x=i n.n extI nt();*/为什么把他放前面顺序就不System.out. pnntln( sum);sum=O;if (x%2!=0)sum+=x;/if 和while之间的区别要分清楚了!*/max=in.n ext In t(); for(i=1;imax)max=x;System.out. println( max);程序填空,不要改变与输入输出有关的语

39、句。7.求最大值。输入一个正整数 rep eat (0re peat10),做rep eat次下列运算: 输入一个正整数n,再输入n个整数,输出最大值。import java.util.Sca nner; public class Test40009 p ublic static void main( Stri ng args) int ri, rep eat;int i , max, n, x;Scanner in=new Sca nn er(System.i n); rep eat=in.n ext In t();for(ri=1; ri=re peat; ri+) n=in.n ext

40、In t();/*8.求整数的位数以及各位数之和。程序填空,不要改变与输入输出有关的语句。 输入一个正整数 rep eat (0re peat10),做rep eat次下列运算: 输入一个整数,输出它的位数以及各位数之和。import java.util.Sca nner; public class Test40010 p ublic static void main( Stri ng args) int ri, rep eat;int nu mber, sum,n;Scanner in=new Scann er(System.i n); rep eat=i n.n extI nt();for

41、(ri=1; ri0);/这个不是很显然的么?为什么还要写?/*如果使用while语句,输入0时输出“number=0,sum=0,其中number的值不正确,应是1 */System.out. prin tl n(” nu mber=+nu mber+, sum=+sum);imp ortpublicpublicjava.util.*;class grade static voidmain( Stri ng args)new Scann er(System.Sca nner in =in );int gcd, lcm, m, nr;intrep eat, ri;rep eat= in.n e

42、xtI nt();for (ri = 1; ri = rep eat; ri+)m=i n.n extI nt(); n=in.n extI nt();r=m;if (m = 0 II n = 0)System. out .println( else lcm=m*n;do if (mn)r=m;m=n;n=r;m = 0 or n = 0);r=m% n ;m=n;n=r;while (r!=0);gcd=m;lcm=lcm/m;System.out .println(greatest com mon divisor:+gcd);the least com mon multi pie:lcm+

43、 , the实验7循环结构程序的设计(二)9.求1 1/2 + 1/3 1/4 + 程序填空,不要改变与输入输出有关的语句。输入一个正整数 rep eat (0re peat10),做rep eat次下列运算:读入1个正整数 n(*=100),计算并输出1 1/2 + 1/3 1/4 +的前n项和(四舍五 入保留小数4位)。import java.util.Sca nner;public class Test40004 p ublic static void main( Stri ng args) int ri, rep eat; int i, n, flag;float sum;Scanne

44、r in=new Sca nn er(System.i n); rep eat= in.n extI nt();for(ri=1; ri=re peat; ri+)n=in.n ext In t();/*sum=0;flag=1;for(i=1;i=n ;i+) sum+=flag*1.Qf/L flag=-flag;*/System.out .printin (Io ng)(sum*10000+0.5)/10000.);10.求1 1/3 + 1/5 1/7 +程序填空,不要改变与输入输出有关的语句。输入一个正整数 rep eat (0re peat10),做rep eat次下列运算:读入1

45、个正实数eps ,计算并输出1 1/3 + 1/5 1/7 +,直到最后一项的绝对值小 于eps为止(要求每一项的绝对值均大于等于eps,并以float类型输出数据)。import java.utiI.Sca nner;public class Test40006 p ublic static void main( Stri ng args) int ri, rep eat;int temp, flag;double ep s, item, sum;Scanner in=new Sca nn er(System.i n);rep eat=in.n ext In t();for(ri=1; ri

46、=e ps) sum+=item;flag=-flag;temp+=2; item=flag*1.0/te mp;System.out .println( (i nt)(sum*10000+0.5)/10000.);11.求2/1 + 3/2 + 5/3 + 8/5 +程序填空,不要改变与输入输出有关的语句。输入一个正整数 rep eat (0re peat10),做rep eat次下列运算:输入一个正整数 n,输出2/1+3/2+5/3+8/5 +.的前n项之和,保留4位小数(不足4位 时,不必用0填满4位)。(该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子)imp

47、ort java.util.Sca nner;p ublic class Test40011 p ublic static void main( Stri ng args) int ri, rep eat;int i,n;float a,b,s,t;Scanner in=new Sca nn er(System.i n);rep eat=in.n ext In t();for(ri=1; ri=re peat; ri+)n=in.n ext In t();/*/a=1;分母这样的题目像兔子数列一样,开始时都定好一些值就好了。b=2; /分子s=0;for(i=1;i=n;i+) s+=b/a;

48、 t=a;a=b;分母是前一项的分子b=t+b; /分子是前一项分子与分母的和s=s+b/a;a=b;b=a+b;/为什么直接这样做他就错了呢?System.out .printin (i nt)(s*10000+.5)/10000.);12.求a + aa + aaa + aaa程序填空,不要改变与输入输出有关的语句。输入一个正整数 rep eat (0re peat10),做rep eat次下列运算: 输入2个正整数a和n,求a+aa+aaa+aaa(n个a)之和。import java.util.Sca nner;public class Test40012p ublic static

49、void main( Stri ng args)int ri, rep eat;int i, n, a, sn, tn;Scanner in=new Scann er(System.i n); rep eat=i n.n extI nt();for(ri=1; ri=re peat; ri+)a=i n.n extI nt();n=i n.n extI nt();/*/tn=a;sn=0;for(i=1;i=n;i+)sn+=t n;tn=tn *10+a;迭代公式 sn=0;tn=0;for (i=1;i=n;i+)tn=t n*10+a;sn=sn+tn;System.out .prin tl n(sn);13.判断素数。程序填空,不要改变与输入输出有关的语句。输入一个正整数 rep eat (0re peat10),做rep eat次下列运算:输入一个正整数 m,如果它是素数,输出YES,否则,输出NO(素数就是只能被1和 自身整除的正整数,1不是素数,2是素数)。import java.util.Sca nner;public c

温馨提示

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

评论

0/150

提交评论