Java核心技术习题答案Word格式.docx

上传人:b****4 文档编号:16710644 上传时间:2022-11-25 格式:DOCX 页数:72 大小:102.61KB
下载 相关 举报
Java核心技术习题答案Word格式.docx_第1页
第1页 / 共72页
Java核心技术习题答案Word格式.docx_第2页
第2页 / 共72页
Java核心技术习题答案Word格式.docx_第3页
第3页 / 共72页
Java核心技术习题答案Word格式.docx_第4页
第4页 / 共72页
Java核心技术习题答案Word格式.docx_第5页
第5页 / 共72页
点击查看更多>>
下载资源
资源描述

Java核心技术习题答案Word格式.docx

《Java核心技术习题答案Word格式.docx》由会员分享,可在线阅读,更多相关《Java核心技术习题答案Word格式.docx(72页珍藏版)》请在冰豆网上搜索。

Java核心技术习题答案Word格式.docx

Test4.java:

Test4类的main方法必须使用static关键字修饰。

第二章Java语法基础

1-5BCADB

6-9DCCC

1.abc,a1,_abc,_1a,ab123

#a,const,$abc,1abc,if,$#1sa,$_a,_$q1

2.题目出现问题:

代码修改为ch=(char)(ch+1);

结果为’B’;

如果直接结果为98。

3.true(真)false(假)

4.4

5.22false2

6.m*20/100(double)m*20/100

三、编程题

1、由命令行输入一个成绩,使用switch结构求出成绩的等级。

A:

90-100;

B:

80-89;

C:

70-79;

D:

60-69;

E:

0-59。

publicclassIfElseTest{

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

intgrade=sc.nextInt();

if(grade<

0||grade>

100){

System.exit(0);

}

inttemp=(int)Math.floor(grade/10);

switch(temp){

case10:

{

break;

}

case9:

case8:

case7:

case6:

default:

}

2、计算圆周率:

PI=4-4/3+4/5-4/7......;

打印出第一个大于3.1415小于3.1416的值。

publicclassPITest{

doubleresult=0.0;

for(inti=1;

;

i++){

doublem=4.0/(2*i-1);

if((i%2)==0){

result-=m;

}else{

result+=m;

if(result>

3.1415&

&

result<

3.1416){

3、输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值。

斐波那契数列:

1、1、2、3、5、8、13、21、34、……。

publicclassFibonacciTest{

Scannersn=newScanner(System.in);

intnum=sn.nextInt();

inti=1;

intn1=1,n2=1;

while(i<

=num){

if(i==1||i==2){

n2=1;

inttemp=n2;

n2=n1+n2;

n1=temp;

i++;

第"

+num+"

个值为:

+n2);

4、计算多项式1-1/3+1/5-1/7+1/9......的值。

1)要求出前50项和值。

2)要求出最后一项绝对值小于1e-5的和值。

publicclassSumTest{

doublesum=0.0;

i<

=50;

if(i%2==0){

sum=sum-1.0/(2*i-1);

sum=sum+1.0/(2*i-1);

前50项和值:

+sum);

doubleitem=0.0;

intj=1;

sum=0.0;

while(item<

0.00001){

item=1.0/(2*j-1);

if(j%2==0){

sum-=item;

sum+=item;

j++;

最后一项绝对值小于1e-5的和值:

5、产生100个0-999之间的随机整数,然后判断这100个随机整数哪些是素数,哪些不是?

publicclassPrimeTest{

PrimeTestt=newPrimeTest();

for(inti=0;

100;

intnum=(int)(Math.random()*1000);

if(t.isPrime(num)){

是素数!

不是素数!

publicbooleanisPrime(intnum){

for(inti=2;

=num/2;

if(num%i==0){

第一个被"

+i+"

整除!

returnfalse;

returntrue;

6、在屏幕上打印出n行的金字塔图案,如,若n=3,则图案如下:

*

***

*****

publicclassPrintStar{

introws=sn.nextInt();

=rows;

for(intj=1;

j<

=rows-i;

j++){

for(intk=1;

k<

=2*i-1;

k++){

7、歌德巴赫猜想,任何一个大于六的偶数可以拆分成两个质数的和,打印出所有的可能。

如输入10,结果为:

10=5+5;

10=3+7。

publicclassGede{

intn=Integer.parseInt(args[0]);

if(n<

=6||n%2!

=0){

错误的参数!

return;

Gedeg=newGede();

//因为1不是素数,n-2是偶数,所以从3开始循环

for(inti=3;

=n/2;

continue;

if(g.isPrime(i)&

g.isPrime(n-i)){

/**

*判断num是否是素数

*/

四、实训题

万年历的设计与实现。

本程序包含两个类CalenderModelA和TestCalenderModelA。

CalenderModelA实现了赛事日期设置等主要功能,程序文件CalenderModelA.java。

publicclassCalenderModelA

//计算从公元始的天数

publicintgetNumberOfDay(intyear,intmonth,intday)

{

inttotal=0;

intlimit=getTotalDaysOfMonth(year,month);

if(day<

=limit)

{

for(inty=1;

y<

year;

y++)

{

total+=(this.isLeapYear(year)?

366:

365);

for(intm=1;

m<

month;

m++)

total+=(this.getTotalDaysOfMonth(year,month));

total+=day;

returntotal;

else

您输入的日期非法"

return-1;

//打印万年历

publicvoidshow(intyear,intmonth)

//计算从公元始到今年之前的总天数

for(inty=1;

total+=(this.isLeapYear(y)?

//计算今年到本月前的总天数

for(intm=1;

total+=(this.getTotalDaysOfMonth(year,m));

//计算本月1日是星期几

total=total%7;

intd1=(total+1)%7;

intd2=this.getTotalDaysOfMonth(year,month);

年"

+month+"

月"

String[]s={"

日"

"

一"

二"

三"

四"

五"

六"

};

for(inti=0;

i<

7;

i++){

d1;

//打印本月日历

for(inti=d1,j=1;

d1+d2;

i++,j++){

if((i+1)%7==0){

}

//判断是否为闰年

publicbooleanisLeapYear(intyear)

return((year%4==0)&

(year%100!

=0))||(year%400==0);

//计算某年某月天数

publicintgetTotalDaysOfMonth(intyear,intmonth)

switch(month){

case1:

case3:

case5:

case7:

case8:

case10:

case12:

total=31;

break;

case2:

total=this.isLeapYear(year)?

29:

28;

case4:

case6:

case9:

case11:

total=30;

returntotal;

TestCalenderModelA实现main方法,具有输入大赛起始和终止日期,输出日历,并计算大赛周期的功能。

程序文件TestCalenderModelA.java。

publicclassTestCalenderModelA

publicstaticvoidmain(String[]args)

Scannerscan=newScanner(System.in);

请输入年份:

intyear=scan.nextInt();

请输入月份:

intmonth=scan.nextInt();

月历如下"

CalenderModelAtestBegin=newCalenderModelA();

testBegin.show(year,month);

第三章面向对象编程

1-5CABDD

2-10DCCBC

11-12CC

1.Packagemypackage 

2.final

3.Object

4.packageimportclass

5.c

2、按下列要求编写程序:

1创建Teacher类

要求:

Teacher类要描述姓名、年龄、薪水,类型分别为String、int、double

2创建TeacherTest类

在TeacherTest类中创建Teacher的对象;

为该对象的属性(姓名、性别、年龄)赋值;

将该对象的属性(姓名、性别、年龄)输出;

3为Teacher类添加一个方法,用于在教师原有薪水的基础上增加5000;

4修改TeacherTest类,增加对教师增加薪水方法的调用,并将增加后的薪水值输出。

Teacher.java:

publicclassTeacher{

publicStringname;

publicintage;

publicdoublesalary;

publicStringgetName(){

returnname;

publicvoidsetName(Stringname){

this.name=name;

publicintgetAge(){

returnage;

publicvoidsetAge(intage){

this.age=age;

publicdoublegetSalary(){

returnsalary;

publicvoidsetSalary(doublesalary){

this.salary=salary;

publicTeacher(){

publicTeacher(Stringname,intage,doublesalary){

this.name=name;

this.age=age;

this.salary=salary;

publicvoidaddSalary(){

this.salary=this.salary+5000;

TeacherTest.java:

publicclassTeacherTest{

Teacherteacher=newTeacher();

teacher.age=35;

teacher.name="

zhangsan"

teacher.salary=1234.5;

teacher.addSalary();

3、定义一个Person类。

1包含以下属性:

Stringname;

intage;

booleangender;

Personpartner。

2定义marry(Personp)方法,代表当前对象和p结婚,如若可以结婚,则输出恭贺信息,否则输出不能结婚原因。

下列情况不能结婚:

结婚年龄,男<

24,女<

22;

3,某一方已婚。

3定义测试类,来测试以上程序。

publicclassPerson{

privateStringname;

privateintage;

privatebooleangender;

Personpartner;

publicPerson(Stringname,intage,booleangender,Personpartner){

this.gender=gender;

this.partner=partner;

publicvoidmarry(Personp){

if(this.gender==p.gender){

同性不能结婚!

if((this.gender==true&

this.age<

24)||(this.gender==false&

22)

||(p.gender==true&

p.age<

24)||(p.gender==false&

22)){

没有达到结婚年龄!

if(this.partner!

=null||p.partner!

=null){

有一方已经结婚!

祝你们新婚愉快!

this.partner=p;

p.partner=this;

Personp1=newPerson("

关之琳"

23,false,null);

Personp2=newPerson("

刘德华"

26,true,null);

Personp3=newPerson("

孙楠"

70,true,null);

p1.marry(p2);

p1.marry(p3);

4、定义一个Animal类,该类有两个私有属性,name(代表动物的名字)和legs(代表动物的腿的条数)。

1两个构造方法,一个无参,默认给name赋值为AAA,给legs赋值为4;

另一个需要两个参数,分别用这两个参数给私有属性赋值。

2两个重载的move()方法,其中一个无参,在屏幕上输出一行文字:

XXXMoving!

!

(XXX为该动物的名字);

另一个需要一个int参数n,在屏幕上输出n次XXXMoving!

publicclassAnimal1{

privateintlegs;

publicAnimal1(){

this.name="

AAA"

this.legs=4;

publicAnimal1(Stringname,intlegs){

super();

this.legs=legs;

}

publicintgetLegs(){

returnlegs;

publicvoidsetLegs(intlegs){

this.legs=legs;

publicvoidmove(){

publicvoidmove(intn){

=n){

5、定义一个Fish类,继承自Animal类。

1提供一个构造方法,该构造方法需要一个参数name,并给legs赋默认值0;

2覆盖Animal类中的无参move()方法,要求输出:

XXXSwimming!

publicclassFishextendsAnimal{

publicFish(Stringname){

this.legs=0;

publicclassBirdextendsAnimal{

publicBird(Stringname){

this.legs=2;

6、写一个类Zoo,要求分别生成若干个Animal、Fish和Bird。

并调用他们的属性和方法。

publicclassZoo{

Animala=newAnima

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 交通运输

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1