袁兆山版JAVA程序设计课后习题答案_第1页
袁兆山版JAVA程序设计课后习题答案_第2页
袁兆山版JAVA程序设计课后习题答案_第3页
袁兆山版JAVA程序设计课后习题答案_第4页
袁兆山版JAVA程序设计课后习题答案_第5页
已阅读5页,还剩36页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

习题答案

第一章

1填空题:

(1)简单、面向对象、分布式、解释性、健壮性、安全性、体系结构中立、可移植性、

高性能、多线程、动态性。

(2)字节码、虚拟机

(3)appletviewer

(4)java

(5)javac

(6).java

(7).class

2程序运行题:

⑴略

(2)略

第一章

1.合法的标识符:

aChar>String、NUM、_num、two2

2.

publicclassWelcome{

publicstaticvoidmain(Stringargs[]){

Stringname;

name=",Lilyn;

System.out.printin("Welcometon+name+n1swebsite!");

3.

publicclassTriangular{

publicstaticvoidmain(Stringargs[]){

doublea=5.0,b=12.0,c;

c=Math.sqrt(a*a+b*b);

System.out.printin(c);

4.结果如下所示:

因命令提示符

D:\jaua\bin>jauaUarScope上J

Thefirstx=12

Thefirsty=5

Thesecondx=5

Thesecondy=4

Thethirdx=12

Thethirdy=5

D:\jaua\bin>W

I"I3/

5.判断下列代码段中a的值:

inta=l,b=4;

if(a>b&&a++<8)〃此时a=[

if(a>b&a++<8)//上匕时a=2

if(a<bl|a++<8)//此时a=2

if(a<b|a++<8)//此时a=3

6.代码为:

publicclassCalculation{

publicstaticvoidmain(Stringargs[]){

inta,b,c;

a=3<<4;

b=8»>2;

System.out.printin("3xl6=n+a);

System.out.printin(“8:4="+b);

}

)

7.应如下改正:

实例变量必须要通过类创建的实例来访问。应改为

publicclassFindFaultl{

publicintx=0;

publicintxMethod(){

returnx;

)

publicstaticvoidmain(Stringargs[]){

FindFaultlinstance=newFindFaultl();

instance.x=l;

System.out.printin(instance.xMethod());

)

}

(2)

publicclassFindFault{

publicstaticvoidmain(Stringargs[]){

for(inti=l;i<101;i++){

29(。Java程序设计

if(i%5==0|i%3==0)

System.out.print(nn+i);

)

}

}

8.代码如下:

classPo{

doublepower(doublex,intn){

if(n>l){

returnx*power(x,n-1);

}

else{

if(n<0){

return1.0/power(x,-n);

)

else

if(n==0)return1;

elsereturnx;

)

)

}

publicclassPowercalculation{

publicstaticvoidmain(Stringargs[]){

Pop=newPo();

System.out.printin("4的五次幕是:n+p.power(4.0,5));

n

System.out.printin("5的-3次赛是:+p.power(5.0z-3));

System.out.printin("7.5的3次赛是:n+p.power(7.5,3));

)

}

弟—早

1.程序设计题:

(1)publicclassJudgeRandomNumber{

publicstaticvoidmain(Stringargs[]){

inta,b;

a=(int)(Math.random()*100);//Math.random()会产生一个0至11之间的值

for(inti=l;i<25;i++){

b=(int)(Math.random()*100);

if(a>b)

System.out.printIn(a+nislargethan"+b+"!”);

else

if(a==b)

System.out.printIn(a+nequals”+b+“!”);

else

System.out.printIn(a+nissmallerthan”+b+”!”);

a=b;

)

)

}

3、程序如下:

classEx3{

publicstaticvoidmain(Stringargs[]){

intweek=0;

System.out.printin(”请输入1~7中的一个:”)

try(

week=System.in.read();

)

catch(Exceptione){}

switch(week){

case*1*:

System.out.printin("Monday");

break;

case,21:

System.out.printIn(nTuesday11);

break;

case*3*:

System.out.printIn("Wednesday");

break;

case*4*:

System.out.printin("Thursday");

break;

case*5*:

System.out.printIn(nFriday,*);

break;

case*6*:

System.out.printIn(nSaturday1,);

break;

case*71:

System.out.printin("Sunday");

break;

default:

System.out.printin("输入数值非法”);

|

)

}

4、代码如下:

publicclassPrintNumber2{

publicstaticvoidmain(Stringargs[]){

for(inti=l;i<101;i++){

System.out.print(i+nn);

if(i%10==0)

System.out.printin();

)

)

)

5、publicclassPrintPrime{

publicstaticvoidmain(Stringargs[]){

Java程序设计

inti;

a:

for(i=2;i<100;i++){

for(intj=2;j<9;j++){

if(i%j==0){

if(i!=j)continuea;

elsebreak;

}

)

System.out.print(nn+i);

|

)

}

6.代码如下:

(1)

publicclassPrintGral{

publicstaticvoidmain(Stringargs[]){

inti,j,k;

for(i=0;i<8;i++){

for(j=0;j<=i+l;j++)

System.out.print(nH;

for(k=i;k<8;k++)

System.out.print("#");

System.out.printin();

)

)

}

(2)

publicclassPrintGra2{

publicstaticvoidmain(Stringargs[]){

inti,j,k;

for(i=0;i<8;i++){

for(j=0;j<=i+l;j++)

System.out.print(n11);

for(k=i;k<15-i;k++)

System.out.print("#");

System.out.printin();

7.代码如下:

publicclassFibonacci{

publicstaticvoidmain(Stringargs[]){

intf[]=newint[16];

inti;

for(i=0;i<15;i++){

if(i==0||i==l)

f[i+l]=l;

elsef[i+l]=f[i]+f[i-1];

for(i=0;i<15;i++){

intk=i+l;

System.out.printin("F[n+k+n]="+f[k]);

)

)

}

第四章

1.判断题

(1)错误,一个数组只能存放同一类型数值。

(2)错误,一个数组下标应为整数或整数表达式。

(3)错误,数组声明不为数组预分配空间,只是定义了数组名。

(4)错误,要访问数组的某一元素,需要指明数组名和下标。

(5)错误,应声明:intp[J=newint[100|;

(6)错误,可以用一个整型数组的自动初始化来完成,而不用使用for语句。

(7)错误,不规则数组一定是多维的。

2.程序设计题

1publicclassPrintMonth_day{

2publicstaticvoidmain(Stringargs[]){

3intMonth_day[]={31,28,31z30z31,30,31,31z30,31z30,31);

4intmonth=0;

5System.out.printIn("2月有28或29天“);

6System.out.printIn("8月有"+Month_day口]+“天”);

7System.out.printIn(“12月有"+Month_day[11]+“天”);

8}

9}

3.(1)

1publicclassCharArray{

2publicstaticvoidmain(Stringargs[]){

3charcharArray[]={*W*,*e*,*1*/*c*,*o*z'm*,*e*,*

4七,。J'm1,'y*,••W1,'e1,

5b,*s-i-L,'e1,'!,};

6for(inti=0;i<charArray.length;i++){

7System.out.print(charArray[i]);

8)

9}

10}

(2)字符数组就是一串字符的集合,用String实现比用字符数组实现要简单和直观得多。

(4)

1publicclassRecursive?rintArray{

2staticvoidprintArray(intarray[],intsize){

3if(size==0){

4return;

Java程序设计

5}

6else{

7printArray(array,size-1);

8System.out.print(array[size-1]+"”);

9)

10)

11

12publicstaticvoidmain(Stringargs[]){

13intintArray[]={1,2Z3,4Z5,6};

14printArray(intArray,intArray.length);

15}

16}

(5)

1publicclassReversePrintArray{

2staticvoidreversePrintArray(intarray[],intsize){

3if(size==0){

4return;

5}

6else{

7System.out.print(array[size-1]+"”);

8reversePrintArray(array,size-1);

9)

10}

11

12publicstaticvoidmain(Stringargs[]){

13intintArray[]={1,2,3,4,5,6};

14reversePrintArray(intArray,intArray.length);

15)

16}

(6)

1publicclassRecursiveSelectionSort{

2staticvoidselectionsort(intarray[],intsize){

3intvalue,index=array.length-size,i;

4if(size==l){

5return;

6)

7else{

8value=array[array.length-size];

9for(i=array.length-size;i<array.length;i++){

10if(value>array[i]){

11value=array[i];

12index=i;

13)

14)

15swap(array,array.length-size,index);

16selectionsort(array,size-1);

17)

18)

19

20staticvoidswap(intarray[],inti,intj){

21inttemp;

22temp=array[i];

23array[i]=array[j];

24array[j]=temp;

25}

26

27publicstaticvoidmain(Stringargs[]){

28intintArray[]={25,32,5,8,-6,15,76,-38,210,56};

29selectionSort(intArray,intArray.length);

30

31for(inti=0;i<intArray.length;i++)

32System.out.print(intArray[i]+n");

33)

34}

(7)

publicclassPrintAndCalculation{

staticvoidprintArray(intarray[][]){

inti,j;

for(i=0;i<array.length;i++){

for(j=0;j<array[i].length;j++){

System.out.print(array[i][j]+n");

)

System.out.printIn();

)

)

staticvoidrowCalculation(intarray[][]){

intsum,row;

for(inti=0;i<array.length;i++){

sum=0;

for(intj=0;j〈array[i].length;j++){

sum+=array[i][j];

}

row=i+l;

System,out.printIn("该数组第"+row+”行的和为"+sum);

}

)

staticvoidcolumncalculation(intarray[][]){

intsum,column,max;

max=array[0].length;

1for(inti=l;i<array.length;i++){

2if(array[i].length>max){

3max=array[i].length;

4}

5}

6

7for(inti=0;i<max;i++){

8sum=0;

Java程序设计

9for(intj=0;j<array.length;j++){

10if(array[j].length〉i){

11sum+=array[j][i];

12}

13)

14column=i+l;

15System.out.printin("该数组第”+column+”列的和为“+sum);

16}

17)

18

19publicstaticvoidmain(Stringargs[]){

20intintArray[][]={{4,6,23,8},{8,3},{10,9,72},{29,6,12,27,34}};

21inti,jztemp=0;

22printArray(intArray);

23rowCalculation(intArray);

24columncalculation(intArray);

25}

26)

第五章

1.程序设计题

(1)

publicclassRectangle{

privatefloatlength;

privatefloatheight;

publicvoidsetLength(float1){

length=l;

}

publicvoidsetHeight(floath){

height=h;

}

publicfloatreturnArea(){

returnlength*height;

}

}

publicclassUseRectangle{

publicstaticvoidmain(Stringargs[]){

RectanglemyRectangle=newRectangle();

myRectangle.setLength(50);

myRectangle.setHeight(40);

System.out.printIn("Theareaofrectangle:40,50is:

n+myRectangle.returnArea());

)

}

publicclassMyTime{

privateinthour;

privateintminute;

privateintsecond;

MyTime(inth,intm,ints){

hour=h;

minute=m;

second=s;

}

MyTime(inth,intm){

hour=h;

minute=m;

)

MyTime(inth){

hour=h;

}

publicintgetHour(){

returnhour;

}

publicintgetMinute(){

returnminute;

)

publicintgetSecond(){

returnsecond;

publicclassUseMyTime{

publicstaticvoidmain(Stringargs[]){

MyTimemyTimel,myTime2,myTime3;

myTimel=newMyTime(9,20,15);

myTime2=newMyTime(15,20);

myTime3=newMyTime(24);

System.out.printIn(nmyTimel:n+myTimel.getHour()+”

n+myTimel.getMinute()+*':H+myTimel.getSecond());

System.out.printIn(nmyTime2:"+myTime2.getHour()+”

n+myTime2.getMinute()+n:n+myTime2.getSecond());

System.out.printIn(nmyTime3:"+myTime3.getHour()+”

H+myTime3.getMinute()+n:n+myTime3.getSecond());

)

}

(2)

publicclassPosition{

privatefloatx;

privatefloaty;

privatefloatz;

Position(floatxPosition,floatyPosition,floatzPosition){

x=xPosition;

y=yPosition;

z=zPosition;

publicfloatgetx(){

returnx;

Java程序设计

publicfloatgetY(){

returny;

)

publicfloatgetZ(){

returnz;

publicclassUsePosition{

publicstaticvoidmain(Stringargs[]){

Positionpointl,point2;

pointl=newPosition(100,50z-100);

point2=newPosition(lz1,1);

System.out.printin("Pointl:

(n+pointl.getX()+”,n+pointl.getY()+",n+pointl.getZ()+“)”);

System.out.printin("Point2:

(n+point2.getX()+n,n+point2.getY()+•',n+point2.getZ()+“)”);

)

}

(3)

publicclassMyTime{

privateinthour;

privateintminute;

privateintsecond;

MyTime(inth,intm,ints){

hour=h;

minute=m;

second=s;

}

MyTime(inth,intm){

hour=h;

minute=m;

)

MyTime(inth){

hour=h;

}

publicintgetHour(){

returnhour;

}

publicintgetMinute(){

returnminute;

)

publicintgetSecond(){

returnsecond;

publicclassUseMyTime{

publicstaticvoidmain(Stringargs[]){

MyTimemyTimel,myTime2zmyTime3;

myTimel=newMyTime(9,20,15);

myTime2=newMyTime(15,20);

myTime3=newMyTime(24);

System.out.printin("myTimel:"+myTimel.getHour()+

n+myTimel.getMinute()+n:n+myTimel.getSecond());

System.out.printin(nmyTime2:,T+myTime2.getHour()+“

n+myTime2.getMinute()+*':*'+myTime2.getSecond());

System.out.printin(umyTime3:"+myTime3.getHour()+

n+myTime3.getMinute()+*':*'+myTime3.getSecond());

(4)

publicclassComplexNumber{

privatedoublerealPart;

privatedoubleimaginPart;

ComplexNumber(doublexzdoubley){

realPart=x;

imaginPart=y;

publicdoublegetRealPart(){

returnrealPart;

)

publicdoublegetImaginPart(){

returnimaginPart;

}

publicComplexNumberadd(ComplexNumberother){

doubler,i;

r=realPart+other.realPart;

i=imaginPart+other.imaginPart;

returnnewComplexNumber(r,i);

publicComplexNumberminus(ComplexNumberother){

doubler,i;

r=realPart-other.realPart;

i=imaginPart-other.imaginPart;

returnnewComplexNumber(r,i);

publicComplexNumbermulti(ComplexNumberother){

doublerfi;

r=realPart*other.realPart-imaginPart*other.imaginPart;

i=imaginPart*other.realPart+realPart*other.imaginPart;

returnnewComplexNumber(r,i);

publicvoidprint(){

System.out.printin(realPart+n+n+imaginPart+nin);

Java程序设计

publicclassUseComplexNumber{

publicstaticvoidmain(Stringargs[]){

ComplexNumbercl,c2,c3;

cl=newComplexNumber(2,5);

c2=newComplexNumber(3,4);

c3=newComplexNumber(0,0);

System,out.printin(ncl:'*);

cl.print();

System.out.printin(nc2:");

c2.print();

c3=cl.add(c2);

System.out.printin(ncl+c2:*');

c3.print();

c3=cl.minus(c2);

System.out.printin(ncl-c2:n);

c3.print();

c3=cl.multi(c2);

System.out.printin(ncl*c2:n);

c3.print();

}

}

第六章

1.填空题

(1)超

(2)抽象(abstract)

(3)private,protected>public和无关键字(缺省)

(4)组合、继承

(5)动态

2.判断题

1)F

2)T

3)T

4)F

5)F

3.程序改错题

(1)程序的第19行应改为super(n);

原因:Employee类的超类Person将name变量定义为私有变量,因此name对子类不可

见。并且由于构造函数不能继承,所以要用super关键字引用超类的构造函数对name进行赋

值。

(2)在Employee类中覆盖超类中的getlnformation方法,或将Employee类显式定义为

抽象类,即将第15行的语句改为:classEmployeeextendsPerson{。

原因:含有抽象方法的类必须用abstract关键字显式定义为抽象类。

4.程序设计题

(1)

importjavax.swing.*;

//importjava.awt.Graphics;

publicclassExercise6_l{

publicstaticvoidmain(String[]args){

StringinputNumber;

intwh;

inputNumber=JOptionPane.show工nputDialog(”请输入兼职员工的工作小时数:n);

wh=Integer.parselnt(inputNumber);

if(wh<0){

inputNumber=JOptionPane.show工nputDialog("输入的小时数不正确\n"

+”请输入兼职员工的工作小时数:“);

)

PartTimept=newPartTime(“王五”,0);

pt.setWorkingHours(wh);

JOptionPane.showMessageDialog(null,"个人信息=姓名:"+

pt.getName()+""+pt.getInformation(),

“习题6_ln,JOptionPane.INFORMATION_MESSAGE);

System.exit(0);

)

}

abstractclassPerson{

privateStringname;

publicPerson(Stringn){

name=n;

)

publicStringgetName(){

returnname;

)

publicabstractStringgetInformation();

}

classEmployeeextendsPerson{

privatedoublesalary;

publicEmployee(Stringn,doubles){

Java程序设计

super(n);

salary=s;

)

publicdoublegetSalary(){

returnsalary;

)

publicStringgetlnformation(){

return("级另U:员工、工资:*'+salary);

)

}

classPartTimeextendsEmployee{

privateintworkingHours;

publicPartTime(Stringn,inth){

super(n,0);

workingHours=h;

}

publicdoublegetSalary(){

return30*workingHours;

)

publicvoidsetWorkingHours(inth){

workingHours=h;

}

publicStringgetlnformation(){

return(”级另U:兼职员工、工资:"+30*workingHours);

)

}

(1)

1importjavax.swing.*;

2

3publicclassExercise6_2_l{

4publicstaticvoidmain(String[]args){

5Stringoutput=

6Managerboss=newManager(“王二”,6000);

7boss.setBonus(2000);

8

9Person[]staff=newPerson[3];

10staff[0]=newEmployee(“张三”,5000);

11staff[1]=boss;

12staff[2]=newPartTime(“王五”,60);

13

14for(inti=0;i<staff.length;i++){

15output+="staff[n+i+n]姓名:"+staff[i].getName()

16+'••'+staff[i].getlnformation()+n\nH;

17)

18

19JOptionPane.showMessageDialog(null,output,“习题6_2_1n,

20JOptionPane.INFORMATION_MESSAGE);

21System.exit(0);

22

23

24

25abstractclassPerson{

26privateStringname;

27

28publicPerson(Stringn){

29name=n;

30)

31

32publicStringgetName(){

33returnname;

34}

35

36publicabstractStringgetlnformation();

37)

38

39classEmployeeextendsPerson{

40privatedoublesalary;

41

42publicEmployee(Stringn,doubles){

43super(n);

44salary=s;

45)

46

47publicdoublegetSalary(){

48returnsalary;

49}

50

51publicStringgetInformation(){

52return(”级另I:员工、工资:”+salary);

53

54

55

56classManagerextendsEmployee{

57privatedoublebonus;

58

59publicManager(Stringn,doubles){

60super(n,s);

61bonus=0;

62}

63

64publicdoublegetSalary(){

65returnsuper.getSalary()+bonus;

66)

Java程序设计

67

68publicvoidsetBonus(doubleb){

69bonus=b;

70}

71

72publicStringgetInformation(){

73return("级另U:经理、工资:n+super.getSalary()+”奖金:+bonus);

74}

75)

76

77classPartTimeextendsEmployee{

78privateintworkingHours;

79

80publicPartTime(Stringn,inth){

81super(nz0);

82workingHours=h;

83)

84

85publicdoublegetSalary(){

86return30*workingHours;

87}

88

89publicvoidsetWorkingHours(inth){

90workingHours=h;

91}

92

93publicStringgetInformation(){

94return("级别:兼职员工、工资:»'+30*workingHours);

95}

96}

2)

1importjavax.swing.*;

2

3publicclassExercise6_2_2{

4publicstaticvoidmain(String[]args){

5Testt=newTest();

6}

7}

8

9abstractclassPerson{

10privateStringname;

11

12publicPerson(Stringn){

13name=n;

14)

15

16publicStringgetName(){

17returnname;

18}

19

20publicabstractStringgetlnformation();

21

22

23classEmployeeextendsPerson{

24privatedoublesalary;

25

26publicEmployee(Stringn,doubles){

27super(n);

28salary=s;

29)

30

31publicdoublegetSalary(){

32returnsalary;

33)

34

35publicStringgetlnformation(){

36return("级别:员工、工资:"+salary);

37

38

39

40finalclassPartTimeextendsEmployee{

41privateintworkingHours;

42

43publicPartTime(Stringn,inth){

44super(n,0);

45workingHours=h;

46}

47

48publicdoublegetSalary(){

49return30*workingHours;

50}

51

52publicvoidsetWorkingHours(inth){

53workingHours=h;

54}

55

56publicStringgetlnformation(){

57return("级另兼职员工、工资:n+30*workingHours);

58}

59}

60

61classTestextendsPartTime{

62publicTest()

63(

64JOptionPane.showMessageDialog(null这是一个测试!”,

65”习题6_2_1n,JOptionPane.INFORMATION_MESSAGE);

66System.exit(0);

67}

68

3)

Java程序设计

1publicclassExercise6_3{

2publicstaticvoidmain(Stringargs[]){

3Cardcardl=newCard(“4","Diamonds”);

4System.out.printin(cardl.toString());

5System.out.printin();

6

7DeckOfCardsdeckl=newDeckOfCards();

8System.out.printin(deckl.toString());

9}

10)

11

12classCard{

13privateStringface;

14privateStringsuit;

15

16publicCard(StringfzStrings){

17face=f;

18suit=s;

19)

20

21publicStringtoString(){

22return(face+'*of”+suit);

23}

24}

25

26classDeckOfCards{

27privateCarddeck[];

28

29publicDeckOfCards(){

30Stringfaces[]={”1",“2”,”3”,"4”,"5”,“6”,”7”

31“9“,“10“,”J”,”Q”,;

32Stringsuits[]={"Hearts'*,"Diamonds”,

33'•Clubs'1,"Spades"};

34

35deck=newCard[52];

36

37for(inti=0;i<deck.length;i++)

38deck[i]=newCard(faces[i%13],

39suits[i/13]);

40}

41

42publicStringtoString(){

43Strings=nn;

44

45for(inti=0;i<deck.length;i++)

46s=s+(i+1)+”:"+deck[i].toString()

47returns;

48}

49}

4)

1importjavax.swing.*;

2

3publicclassExercise6_4{

4publicstaticvoidmain(String[]args){

5Circlec=newCircle(20);

6Cylindercy=newCylinder(10,20);

7

8Stringoutput=nn;

9output+="对象c”+c.getInformation()

10+”面积为:"+c.getArea()+n\nn;

11

12output+="对象cy"+cy.getlnformation()+”面积为:"

13+c.getArea()+"体积为:n+cy.getVolume()+n\nn;

14JOptionPane.showMessageDialog(null,output,”习题6_4”,

15JOptionPane.INFORMATION_MESSAGE)

16}

17)

18

19abstractclassShape{

20publicabstractStringgetlnformation();

21}

22

23

24abstractclassTwoDimensionalShapeextendsShape{

25publicabstractdoublegetArea();

26

27}

28

29abstractclassThreeDimensionalShapeextendsShape{

30publicabstractdoublegetArea();

31

32publicabstractdoublegetVolume();

33

34}

35

36classCircleextendsTwoDimensionalShape{

37intradius;

38

39publicCircle(intr){

40radius=r;

41)

42

43publicintgetRadius()

温馨提示

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

评论

0/150

提交评论