当前位置:文档之家› JAVA课本课后习题答案

JAVA课本课后习题答案

实验与训练参考代码目录第1章了解Java (2)第2章面向对象的“对象” (8)第3章对象的属性---变量详述 (11)第4章对象的行为---成员方法详述 (15)第5章生命周期及作用域 (21)第6章Java常用类与函数库 (23)第7章对象的进一步探讨--面向对象中的继承 (26)第8章深入多态 (31)第9章使用异常处理 (34)第10章基于Swing的图形界面编程 (36)第11章可视化程序的事件处理 (46)第12章Java多线程机制 (60)第1章了解Java1.编写一个程序,将用户在命令行输入的24小时制时间转换为12小时制。

public class TimeTest{public static void main(String args[]){int time;time = Integer.parseInt(args[0]);if(time<0||time>24)System.out.println("输入的不是一个合法时间!");else if(time>12)System.out.println("12小时制为"+(time-12)+"点");elseSystem.out.println("12小时制为"+time+"点");}}2.用户输入x的数值,根据如下规则输出计算后的结果y值。

x (x<1)Y = 2x -1 (1<=x<10)3x -11 (x>=10)public class CalculateTest{public static void main(String args[]){float x,y;x = Float.parseFloat(args[0]);if(x<1)y = x;else if(1<=x&&x<10)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所示:图1public class PrintGrade {public static void main(String[] args) {double score = Double.parseDouble(args[0]);if(score<0 || score>100)System.out.println("错误,不是一个合法的百分制成绩!");else{int s = ((int)score)/10;char grade;switch(s){case 10:case 9: grade = 'A'; break;case 8: grade = 'B'; break;case 7: grade = 'C'; break;case 6: grade = 'D'; break;default:grade = 'E';}System.out.println("成绩是:"+score+",相应的等级是"+grade);}}}4.假设今天是星期日,编写一个程序,求n天后是星期几。

要求:n的数值由命令行输入;使用switch语句实现。

public class DateTest {public static void main(String[] args) {int n = Integer.parseInt(args[0]);switch (n%7){case 0: System.out.println(n+"天后是星期天"); break;case 1: System.out.println(n+"天后是星期一"); break;case 2: System.out.println(n+"天后是星期二"); break;case 3: System.out.println(n+"天后是星期三"); break;case 4: System.out.println(n+"天后是星期四"); break;case 5: System.out.println(n+"天后是星期五"); break;case 6: System.out.println(n+"天后是星期六"); break;}}}5.用户在命令行输入一个数字,按照数字输出相应个数的星号。

public class PrintStar {public static void main(String[] args) {int n = Integer.parseInt(args[0]);int i;for( i=1; i<=n; i++)System.out.print("*");System.out.println();}}6.编写程序,求0到100之间的偶数和。

要求:分别用while语句、do while语句和for循环语句实现。

while实现:public class SumDemo1 {public static void main(String[] args) {int sum = 0, i = 0;while(i<=100){if(i%2==0)sum = sum+i;i++;}System.out.println("0--100之间所有偶数的和是"+sum);}}do while实现:public class SumDemo2 {public static void main(String[] args) {int sum = 0, i = 0;do{if(i%2==0)sum = sum+i;i++;}while(i<=100);System.out.println("0--100之间所有偶数的和是"+sum);}}for循环实现:public class SumDemo3 {public static void main(String[] args) {int sum = 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实现:public class Factorial1 {public static void main(String[] args) {int num = Integer.parseInt(args[0]);int result = 1;if(num<1)System.out.println("应输入大于1的整数!");else{int i = 1;while(i<=num){result = result*i;i++;}System.out.println(num+"的阶乘是"+result);}}}do while实现:public class Factorial2 {public static void main(String[] args) {int num = Integer.parseInt(args[0]);int result = 1;if(num<1)System.out.println("应输入大于1的整数!");else{int i = 1;do{result = result*i;i++;}while(i<=num);System.out.println(num+"的阶乘是"+result);}}}for循环实现:public class Factorial3 {public static void main(String[] args) {int num = Integer.parseInt(args[0]);int result = 1;if(num<1)System.out.println("应输入大于1的整数!");else{int i;for( i=1; i<=num; i++)result = result*i;System.out.println(num+"的阶乘是"+result);}}}8.用for循环语句打印九九乘法表。

public class Multiplication {public static void main(String[] args) {int i,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,使用类中定义的各个方法,并将其结果输出。

class Box{int length,width,height;public setInfo(int l,int w,int h){length = l;width = w;height = h;}public int volumn(){return length*width*height;}public int area(){return (length*width + length*height + width*height) * 2;}public String toString(){return "Length:" + length + " width:" + width + " height:" + height + " volumn: " + volumn() + " area:" + area();}}public class BoxTest {public static void main(String[] args) {Box b = new Box();b.setInfo(5,2,4);System.out.println(b.toString());}}2. 定义一个圆形类Circle,类中有一个用来描述半径的double型成员变量r,定义setR(double)方法初始化半径;定义getArea()方法求圆形的面积并返回double类型结果;定义getPerimeter()方法求圆形的周长并返回double类型结果。

相关主题