浙江大学java上机参考答案.docx
- 文档编号:27689069
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:97
- 大小:40.97KB
浙江大学java上机参考答案.docx
《浙江大学java上机参考答案.docx》由会员分享,可在线阅读,更多相关《浙江大学java上机参考答案.docx(97页珍藏版)》请在冰豆网上搜索。
浙江大学java上机参考答案
一、求两个数的和与差。
程序填空,不要改变与输入输出有关的语句。
输入整数a和b,计算并输出a、b的和与差。
importjava.io.*;
importjava.util.Scanner;
publicclassTest20001{
publicstaticvoidmain(Stringargs[]){
inta,b,sum,diff;
Scannerin=newScanner(System.in);
a=in.nextInt();
b=in.nextInt();
/*------------------*/
sum=a+b;
diff=a-b;
System.out.println("Thesumis"+sum);
System.out.println("Thedifferenceis"+diff);
}
}
二、求平方根。
程序填空,不要改变与输入输出有关的语句。
输入1个实数x,计算并输出其平方根。
例:
输入1.21输出Thesquarerootof1.21is1.1
importjava.io.*;
importjava.util.Scanner;
publicclassTest20002{
publicstaticvoidmain(Stringargs[]){
doublex,root;
Scannerin=newScanner(System.in);
x=in.nextDouble();
/*------------------*/
root=Math.sqrt(x);
System.out.println("Thesquarerootof"+x+"is"+root);
}
}
三、华氏温度转换为摄氏温度。
程序填空,不要改变与输入输出有关的语句。
输入华氏温度f,计算并输出相应的摄氏温度c。
c=5/9(f-32).
例:
括号内是说明:
输入17.2(华氏温度)输出Thetempratureis-8.222222222222223
importjava.util.Scanner;
publicclassTest20003{
publicstaticvoidmain(String[]args){
Scannerin=newScanner(System.in);
doublef,c;
f=in.nextDouble();
/*------------------*/
c=5.0/9*(f-32);
System.out.println("Thetempratureis"+c);
}
}
四、计算旅途时间。
程序填空,不要改变与输入输出有关的语句。
输入2个整数time1和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。
有效的时间范围是0000到2359,不需要考虑出发时间晚于到达时间的情况。
例:
括号内是说明:
输入7121411(出发时间是7:
12,到达时间是14:
11)
输出Thetrainjourneytimeis6hrs59mins.
importjava.util.Scanner;
publicclassTest20004{
publicstaticvoidmain(String[]args){
Scannerin=newScanner(System.in);
inttime1,time2,hours,mins;
time1=in.nextInt();
time2=in.nextInt();
/*------------------*/
/*计算两个时间之间的小时数和分钟数*/
hours=time2/100-time1/100;
mins=time2%100-time1%100;
/*当计算得到的分钟数为负数时进行如下处理*/
hours=mins>0?
hours:
hours-1;
mins=mins>0?
mins:
mins+60;
System.out.println("Thetrainjourneytimeis"+hours+"hrs"+mins+"mins.");
}
}
五、数字加密。
程序填空,不要改变与输入输出有关的语句。
输入1个四位数,将其加密后输出。
方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将第1位和第3位上的数字互换,第2位和第4位上的数字互换,组成加密后的新数。
例:
括号内是说明:
输入1257输出Theencryptednumberis4601(每一位上的数字加9除以10取余后,得0146,交换后得到4601)
importjava.util.Scanner;
publicclassTest20005{
publicstaticvoidmain(String[]args){
Scannerin=newScanner(System.in);
intnumber,digit1,digit2,digit3,digit4,newnum;
number=in.nextInt();
/*------------------*/
/*先分离出各位上的数字*/
digit1=number/1000;(是这样来取得位数的)
digit2=number/100%10;//或digit2=(number-digit1*1000)/100;
digit3=number/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("Theencryptednumberis"+newnum);
}
}
六、大写字母转换成小写字母。
程序填空,不要改变与输入输出有关的语句。
输入一个大写英文字母,输出相应的小写字母。
例:
输入G输出g
importjava.io.*;
publicclassTest20006{
publicstaticvoidmain(String[]args)throwsIOException{
charch;
ch=(char)System.in.read();
/*------------------*/
ch=(char)(ch+32);
System.out.println(ch);
}
}
七、计算三门课程的平均成绩。
程序填空,不要改变与输入输出有关的语句。
已知某位学生的数学、英语和计算机课程的成绩分别是87分、72分和93分,求该生3门课程的平均分。
本题无输入。
输出示例:
math=87,eng=72,comp=93,average=84
publicclasstest20007{
publicstaticvoidmain(String[]args){
intmath,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);
}
}
八、计算存款利息。
程序填空,不要改变与输入输出有关的语句。
输入存款金额money、存期year和年利率rate,根据下列公式计算存款到期时的利息interest(税前),输出时保留2位小数。
interest=money(1+rate)^year-money
输入输出示例:
括号内为说明
输入100030.025(money=1000,year=3,rate=0.025)
输出interest=76.89
importjava.util.Scanner;
publicclasstest20008{
publicstaticvoidmain(String[]args){
intmoney,year;
doubleinterest,rate;
Scannerin=newScanner(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;
表示的是1+rate的year方幂
System.out.println("interest="+(int)(interest*100+0.5)/100.0);//保留两位小数
}
}
实验5分支结构程序的设计
一、显示两级成绩,程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat(0 输入一个学生的数学成绩,如果它低于60,输出“Fail”,否则,输出“Pass”。 输出使用System.out.println("Pass");及System.out.println("Fail"); 例: 括号内是说明: 输入2(repeat=2)6059输出PassFail importjava.util.Scanner; publicclassTest30001{ publicstaticvoidmain(String[]args){ intri,repeat; intmark; Scannerin=newScanner(System.in); repeat=in.nextInt(); for(ri=1;ri<=repeat;ri++){ mark=in.nextInt(); /*------------------*/ if(mark<60) System.out.println("Fail"); else System.out.println("Pass"); } } } 二、找最小值,程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat(0 输入四个整数,输出其中的最小值。 例: 括号内是说明 输入 3(repeat=3) 126190 10403020 -1-3-4-5 输出 minis1(126190中的最小值是1) minis10(10403020中的最小值是10) minis-5(-1-3-4-5中的最小值是-5) importjava.util.Scanner; publicclassTest30002{ publicstaticvoidmain(String[]args){ intri,repeat; inta,b,c,d,min; Scannerin=newScanner(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("minis"+min); } } } 三、求三角形的面积和周长,程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat(0 输入三角形的三条边a,b,c,如果能构成一个三角形,输出面积area和周长perimeter;否则,输出“Thesesidesdonotcorrespondtoavalidtriangle”。 在一个三角形中,任意两边之和大于第三边。 三角形的面积计算公式: aere*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("Thesesidesdonotcorrespondtoavalidtriangle"); 例: 括号内是说明 输入 2(repeat=2) 553 114 输出 area=7.15;perimeter=13.0 Thesesidesdonotcorrespondtoavalidtriangle importjava.util.Scanner; publicclassTest30003{ publicstaticvoidmain(String[]args){ intri,repeat; floata,b,c,area,perimeter,s; Scannerin=newScanner(System.in); repeat=in.nextInt(); for(ri=1;ri<=repeat;ri++){ a=in.nextFloat(); b=in.nextFloat(); c=in.nextFloat(); /*------------------*/ if(a+b>c&&a+c>b&&b+c>a) {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.+";perimeter="+(int)(perimeter*100+0.5)/100.); } else System.out.println("Thesesidesdonotcorrespondtoavalidtriangle"); } } } 四、判断数的符号,程序填空,不要改变与输入输出有关的语句。 输入整数x,若x大于0,y=1;若x等于0,y=0;否则,y=-1,最后输出y。 importjava.util.Scanner; publicclassTest30004{ publicstaticvoidmain(String[]args){ intri,repeat; intx,y; Scannerin=newScanner(System.in); repeat=in.nextInt(); for(ri=1;ri<=repeat;ri++){ x=in.nextInt(); /*------------------*/ if(x>0)y=1; elseif(x==0)y=0; elsey=-1; System.out.println(y); } } } if(x>0) y=1; if(x<0) y=-1; else y=0; (这样是错的。 。 这是为什么? ) 五、计算个人所得税,程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat(0 输入一个职工的月薪salary,输出应交的个人所得税tax。 tax=rate*(salary-850) 当salary<=850时,rate=0%; 当850 当1350 当2850 当5850 例: 括号内是说明 输入 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 importjava.util.Scanner; publicclassTest30005{ publicstaticvoidmain(String[]args){ intri,repeat; floatrate,salary,tax; Scannerin=newScanner(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; else rate=0.2f; tax=rate*(salary-850); System.out.println("tax="+(int)(tax*100+0.5)/100.0); } } } 六、显示水果的价格,程序填空,不要改变与输入输出有关的语句。 输入一个正整数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 importjava.util.Scanner; publicclassTest30006{ publicstaticvoidmain(String[]args){ intri,repeat; intchoice; floatprice; Scannerin=newScanner(System.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){ case1: price=3.0f;break; case2: price=2.5f;break; case3: price=4.1f;break; case4: price=10.2f;break; default: price=0;} System.out.println("price="+price); } } } 七、字母转换,程序填空,不要改变与输入输出有关的语句。 输入一批以问号“? ”结束的字符,对“? ”以前的每一个字符,如果它是大写字母,输出相应的小写字母;如果它是小写字母,输出相应的大写字母;否则,原样输出。 importjava.io.*; publicclassTest30007{ publicstaticvoidmain(String[]args)throwsIOException{ charch; 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(); } } } 实验6循环结构程序的设计 (一) 第8题可考虑放到下次再做 1.求1+1/2+1/3+……+1/n程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat(0 读入1个正整数n(n<=100),计算并输出1+1/2+1/3+……+1/n。 i=1; i<=n; sum=0; do { i=i+1; sum=sum+1/i;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浙江大学 java 上机 参考答案