您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > java课后习题答案
第1章了解Java1.编写一个程序,将用户在命令行输入的24小时制时间转换为12小时制。publicclassTimeTest{publicstaticvoidmain(Stringargs[]){inttime;time=Integer.parseInt(args[0]);if(time0||time24)System.out.println(输入的不是一个合法时间!);elseif(time12)System.out.println(12小时制为+(time-12)+点);elseSystem.out.println(12小时制为+time+点);}}2.用户输入x的数值,根据如下规则输出计算后的结果y值。x(x1)Y=2x-1(1=x10)3x-11(x=10)publicclassCalculateTest{publicstaticvoidmain(Stringargs[]){floatx,y;x=Float.parseFloat(args[0]);if(x1)y=x;elseif(1=x&&x10)y=2*x-1;elsey=3*x-11;System.out.println(y);}}3.编写一个Java应用程序,由命令行参数输入一个百分制成绩,要求打印出成绩等级“A”、“B”、“C”、“D”、“E”。90分以上为“A”;80~89分为“B”;70~79分为“C”;60~69分为“D”;60分以下为“E”。要求使用switch语句实现。运行效果如图2所示:图1publicclassPrintGrade{publicstaticvoidmain(String[]args){doublescore=Double.parseDouble(args[0]);if(score0||score100)System.out.println(错误,不是一个合法的百分制成绩!);else{ints=((int)score)/10;chargrade;switch(s){case10:case9:grade='A';break;case8:grade='B';break;case7:grade='C';break;case6:grade='D';break;default:grade='E';}System.out.println(成绩是:+score+,相应的等级是+grade);}}}4.假设今天是星期日,编写一个程序,求n天后是星期几。要求:n的数值由命令行输入;使用switch语句实现。publicclassDateTest{publicstaticvoidmain(String[]args){intn=Integer.parseInt(args[0]);switch(n%7){case0:System.out.println(n+天后是星期天);break;case1:System.out.println(n+天后是星期一);break;case2:System.out.println(n+天后是星期二);break;case3:System.out.println(n+天后是星期三);break;case4:System.out.println(n+天后是星期四);break;case5:System.out.println(n+天后是星期五);break;case6:System.out.println(n+天后是星期六);break;}}}5.用户在命令行输入一个数字,按照数字输出相应个数的星号。publicclassPrintStar{publicstaticvoidmain(String[]args){intn=Integer.parseInt(args[0]);inti;for(i=1;i=n;i++)System.out.print(*);System.out.println();}}6.编写程序,求0到100之间的偶数和。要求:分别用while语句、dowhile语句和for循环语句实现。while实现:publicclassSumDemo1{publicstaticvoidmain(String[]args){intsum=0,i=0;while(i=100){if(i%2==0)sum=sum+i;i++;}System.out.println(0--100之间所有偶数的和是+sum);}}dowhile实现:publicclassSumDemo2{publicstaticvoidmain(String[]args){intsum=0,i=0;do{if(i%2==0)sum=sum+i;i++;}while(i=100);System.out.println(0--100之间所有偶数的和是+sum);}}for循环实现:publicclassSumDemo3{publicstaticvoidmain(String[]args){intsum=0,i=0;for(;i=100;i=i+2)sum=sum+i;System.out.println(0--100之间所有偶数的和是+sum);}}7.输入一个大于1的整数,求1到这个数的阶乘。用三种循环语句实现。提示:5的阶乘表示为5!,计算公式:5!=1*2*3*4*5while实现:publicclassFactorial1{publicstaticvoidmain(String[]args){intnum=Integer.parseInt(args[0]);intresult=1;if(num1)System.out.println(应输入大于1的整数!);else{inti=1;while(i=num){result=result*i;i++;}System.out.println(num+的阶乘是+result);}}}dowhile实现:publicclassFactorial2{publicstaticvoidmain(String[]args){intnum=Integer.parseInt(args[0]);intresult=1;if(num1)System.out.println(应输入大于1的整数!);else{inti=1;do{result=result*i;i++;}while(i=num);System.out.println(num+的阶乘是+result);}}}for循环实现:publicclassFactorial3{publicstaticvoidmain(String[]args){intnum=Integer.parseInt(args[0]);intresult=1;if(num1)System.out.println(应输入大于1的整数!);else{inti;for(i=1;i=num;i++)result=result*i;System.out.println(num+的阶乘是+result);}}}8.用for循环语句打印九九乘法表。publicclassMultiplication{publicstaticvoidmain(String[]args){inti,j;for(i=1;i=9;i++){for(j=1;j=i;j++)System.out.print(i*j+\t);System.out.println();}}}第2章面向对象的“对象”1.定义一个描述长方体的类Box,类中有三个整型的成员变量:length、width和height,分别表示长方体的长、宽和高。定义setInfo(int,int,int)方法设置这三个变量的值;定义volumn()方法求长方体的体积并返回整型结果;定义area()方法求长方体的表面积并返回整型结果;定义toString()方法把长方体的长、宽、高,以及长方体的体积和表面积转化为字符串并返回字符串。编写Java应用程序,测试类Box,使用类中定义的各个方法,并将其结果输出。classBox{intlength,width,height;publicsetInfo(intl,intw,inth){length=l;width=w;height=h;}publicintvolumn(){returnlength*width*height;}publicintarea(){return(length*width+length*height+width*height)*2;}publicStringtoString(){returnLength:+length+width:+width+height:+height+volumn:+volumn()+area:+area();}}publicclassBoxTest{publicstaticvoidmain(String[]args){Boxb=newBox();b.setInfo(5,2,4);System.out.println(b.toString());}}2.定义一个圆形类Circle,类中有一个用来描述半径的double型成员变量r,定义setR(double)方法初始化半径;定义getArea()方法求圆形的面积并返回double类型结果;定义getPerimeter()方法求圆形的周长并返回double类型结果。编写Java应用程序,使用Circle类创建两个对象,通过相应方法分别设置不同的半径值,计算各自的面积及周长并显示结果。classCircle{doubler;voidsetR(doubleradius){r=radius;}doublegetArea(){return3.14*r*r;}doublegetPerimeter(){return2*3.14*r;}}publicclassCircleTest{publicstaticvoidmain(String[]args){Circlec1=newCircle();Circlec2=newCircle();c1.setR(1);c2.setR(2);System.out.println(c1的面积是+c1.getArea()+,c1的周长是+c1.getPerimeter());System.out.println(c2的面积是+c2.getArea()+,c2的周长是+c2.getPerimeter());}}第3章对象的属性---变量详述1.编写程序,计算如下表达式的值,将结果输出。(1)3.5+1/2+56%10(2)3.5+1.0/2+56%10(3)inta=4%3*7+1publicclassTest{publicstaticvoidmain(String[]args){System.out.println(3.5+1/2+56%10);System.out.println(3.5+1.0/2+56%10);inta=4%3*7+1;System.out.println(a);}}程序运行结果:9.510.082.思考下列语句执行后变量a、b、c、d的值分别是多少:inta=5,b=8,c,d;c=(a++)*b;d=(++a)*b;执行后的结果是:a=7b=8c=40d=563.自定义一个字符串数组,提示用户输入5个字符串,通过循环语句实现将用户输入的字符串存放到数组里,然后反向输出这五个字符串。importjava.util.Scanner;publicclassTest{publicstaticvoidmain(String[]args){Scannerreader=newScanner(System.in);Stringstr[]=newString[5];inti;for(i=0;i5;i++){System.out.println(请输入第+(i+1)+个字符串);str[i]=reader.next();}System.out.println(反向输出
本文标题:java课后习题答案
链接地址:https://www.777doc.com/doc-5317475 .html