JAVA课后习题答案Word格式.docx

上传人:b****5 文档编号:8463133 上传时间:2023-05-11 格式:DOCX 页数:59 大小:374.15KB
下载 相关 举报
JAVA课后习题答案Word格式.docx_第1页
第1页 / 共59页
JAVA课后习题答案Word格式.docx_第2页
第2页 / 共59页
JAVA课后习题答案Word格式.docx_第3页
第3页 / 共59页
JAVA课后习题答案Word格式.docx_第4页
第4页 / 共59页
JAVA课后习题答案Word格式.docx_第5页
第5页 / 共59页
JAVA课后习题答案Word格式.docx_第6页
第6页 / 共59页
JAVA课后习题答案Word格式.docx_第7页
第7页 / 共59页
JAVA课后习题答案Word格式.docx_第8页
第8页 / 共59页
JAVA课后习题答案Word格式.docx_第9页
第9页 / 共59页
JAVA课后习题答案Word格式.docx_第10页
第10页 / 共59页
JAVA课后习题答案Word格式.docx_第11页
第11页 / 共59页
JAVA课后习题答案Word格式.docx_第12页
第12页 / 共59页
JAVA课后习题答案Word格式.docx_第13页
第13页 / 共59页
JAVA课后习题答案Word格式.docx_第14页
第14页 / 共59页
JAVA课后习题答案Word格式.docx_第15页
第15页 / 共59页
JAVA课后习题答案Word格式.docx_第16页
第16页 / 共59页
JAVA课后习题答案Word格式.docx_第17页
第17页 / 共59页
JAVA课后习题答案Word格式.docx_第18页
第18页 / 共59页
JAVA课后习题答案Word格式.docx_第19页
第19页 / 共59页
JAVA课后习题答案Word格式.docx_第20页
第20页 / 共59页
亲,该文档总共59页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

JAVA课后习题答案Word格式.docx

《JAVA课后习题答案Word格式.docx》由会员分享,可在线阅读,更多相关《JAVA课后习题答案Word格式.docx(59页珍藏版)》请在冰点文库上搜索。

JAVA课后习题答案Word格式.docx

Java语言使用Unicode字符集,共有65535个字符。

7.Java语言标识符的命名规则是什么?

由字母(包括英文字母、下划线、美元字符、文字字符)和数字字符组成。

限定标识符的第一个字符不能是数字。

8.Java有哪些基本的数据类型,它们的常量又是如何书写的?

基本的数据类型也称为原始数据类型,是系统预先规定的一些常用类型。

它们是:

整数类型、浮点数(实数)类型、字符(文字)类型、逻辑类型(布尔型)。

9.指出下列内容那些事Java语言的整形常量,哪些是浮点数类型常量,那些两者都不是?

1)E-42)A4233)-1E-314)0xABCL5).32E316)0877)0xL

8)0039)0x12.510)07711)11E12)056L13)0.14).0

整形常量:

4,5,6,8,10,12

浮点型:

1,3,9,13,14

两者都不是:

2,7,11

第二章运算和语句

1.Java字符能参加算术运算吗?

能,例如char类型a自加后变b

2.占字节多的变量能直接赋给占字节少的变量吗?

不能,需强制类型转换。

3.试用Java语言表达式描述以下数学计算式或逻辑条件:

1)

V=(4/3)*math.PI*math.pow(r,3);

2)R=1/(1/R1+1/R2)

原式

3)y=x5+x3+6

y=pow(x,5)+pow(x,3)+6;

4)F=M1M2/R2

F=M1*M2/R*R

5)

Math.sin(x)/ax+Math.cos(π*x/2)>

0?

Math.cos(π*x/2):

-Math.cos(π*x/2);

6)0<

a<

10

a>

0&

&

10

7)条件x=1与y=2有且只有一个成立

(x==1&

y!

=2)||(x!

=1&

y==2)

4.设再求以下表达式之前,整形变量a的值是4,试指出在求表达式之后变量a,b和c的值。

1)b=a*a++;

b=16,a=5;

2)c=++a+a;

c=10,a=5;

5.编写一个程序示意前缀++和后缀++的区别,前缀—和后缀—的区别。

领悟第四题完全就可以理解前缀++后缀++

--亦如此。

6.若一个数恰好等于它的因子之和,则这个数称为“完全数”。

编写程序求1000之内的所有完全数。

解析:

什么是数的因子?

因子就是所有可以整除这个数的数,但是不包括这个数自身.

//HelloWorld.java

/**

这是第二个程序<

publicclassPraxis2_6{

inti,j,sum;

for(i=1;

i<

=1000;

i++){

//sum归0必须在此处

sum=0;

for(j=1;

j<

=i/2;

j++){

if((i%j)==0)

sum=sum+j;

}

if(i==sum)

System.out.print(i+"

"

}

7.编写输入正实数x,求平方不超过x的最大正整数n,并输出。

这是第三个程序<

importjava.util.*;

publicclassPraxis2_7

{

publicstaticvoidmain(String[]args)

{

ScannerconsoleScanner=newScanner(System.in);

System.out.print("

请输入正实数X:

);

intx=consoleScanner.nextInt();

inty=(int)(Math.sqrt(x));

n="

+y);

8.输入正整数n输出n行n列星号字符组成三角图案。

这是第四个程序<

publicclassPraxis2_8{

publicstaticvoidmain(String[]args){

ScannerconsoleScanner=newScanner(System.in);

请输入正整数x:

for(inty=0;

y<

x;

y++){

for(intm=x-y-1;

m>

0;

m--){

System.out.print("

for(intn=0;

n<

y+1;

n++){

*"

System.out.println();

9.设有整形变量x和y的值分别为5和110.指出执行了下列语句后,变量x和y后的值分别是多少?

1)while(x<

=y)x*=2;

X=160,y=110;

2)do{x=y/x;

y=y-x;

}while(y>

=1);

X=18,y=0;

10.水仙花数是一个n(>

=3)位的数,它等于每个数字的n次幂之和。

例如,153是一个水仙花数,153=13+53+33,是编写一个程序,求小于999的所有水仙花数。

这是第五个程序<

publicclassPraxis2_10{

intx,y,z;

for(intm=100;

m<

999;

m++){

x=m/100;

y=(m%100)/10;

z=(m%100)%10;

if(m==x*x*x+y*y*y+z*z*z)

System.out.print(m+"

11.编程序解百鸡问题:

鸡翁一,值钱五,鸡母一,值钱三,鸡邹三,值钱一,百钱买百鸡,求鸡翁,鸡母,鸡邹各几何?

这是第六个程序<

publicclassPraxis2_11

publicstaticvoidmain(Stringargs[])

for(inti=0;

i<

=100;

i++)

for(intj=0;

j<

j++)

for(intk=0;

k<

k+=3)//鸡雏的个数必须使3的倍数

{

if(((5*i+3*j+k/3)==100)&

(i+j+k==100))

System.out.println("

鸡翁:

+i+"

;

鸡母:

+j+"

鸡雏:

+k);

}

12.编写程序,按下面的公式计算自然对数底e的值:

e=1+1/1!

+1/2!

+1/3!

......

这是第七个程序<

publicclassPraxis2_12

intn=1000;

//计算精度

doublee=1.0;

for(inti=1;

=n;

{

e=e+1.0/Praxis2_12.factorial(i);

System.out.println("

e="

+e);

staticdoublefactorial(inta)//计算阶乘的静态方法

doublef=1.0;

for(intj=1;

=a;

f=f*j;

returnf;

13.编写程序,用如下公式计算圆周率的近似值:

14.回文整数是正读反读相同的整数,编写一个程序,输入一个整数,判断是否为回文整数。

这是第八个程序<

publicclassPraxis2_14//输入整数,判断是否是回文整数

inta[]=newint[100];

inti=0;

booleanb=true;

请输入一个int型整数:

inttest=x;

while(test>

0)//把整数的各个位上的数存到数组里

a[i]=test%10;

test=test/10;

i++;

for(intj=0;

i;

j++)

if(a[j]!

=a[i-j-1])

{

b=false;

break;

}

if(b)System.out.println(x+"

是回文整数"

elseSystem.out.println(x+"

并不是回文整数"

15.草地上有一堆野果,有一只猴子每天要吃掉一半又一个,五天后刚好吃完,问有多少个,猴子每天吃多少个?

这是第九个程序<

publicclassPraxis2_15{

intday,x1,x2;

day=5;

x2=0;

while(day>

0){

x1=(x2+1)*2;

x2=x1;

day--;

共有"

+x2+"

个桃子。

----------------------------"

i<

6;

inteast;

east=x2/2+1;

x2=x2/2-1;

第"

+i+"

天吃"

+east+"

个。

第三章面向对象编程基础

1.什么是面向对象技术?

它有什么优点?

程序设计者考虑的是对象的描述,对象间的关系,类的管理、什么时候什么地方调用对象的那一种方法。

最大的优点是面向对象编程能有效地支持重用,是超大规模的程序也变得相对容易维护。

2.面向对象的程序设计与面向过程的程序设计有什么区别?

面向过程的语言编程编程模式是:

程序=数据结构+算法

编程时需要考虑的是程序做什么,怎么做,重点考虑每个实现的细节。

面向对象的编程模式:

程序=对象+消息

程序设计者考虑的是对象的描述、对象间的关系、类的管理、什么时候和什么地方调用对象的那一种方法。

3.在程序中对象有什么区别?

类是对同一种对象的描述,类概括了同类对象的共有性质:

数据和方法。

类的每个对象都有自己的标识,但它们具有相同的一组属性和提供相同的一组方法。

4.举例说明类方法和实例方法,以及类变量和实例变量的区别。

什么情况下用实例变量?

什么情况下用类变量?

一般静态的数据和方法使用类变量。

5.子类能继承超类的那些成员变量和方法?

超类

子类

Private

No

(默认)

Yes

Protect

Public

6.子类在什么情况下能隐藏超类的成员变量和方法?

重写

7.在子类中是否允许有一个方法和超类的方法名字相同,而类型不同?

不应许,子类中定义一个方法,并且这个方法的名字、返回类型、参数个数、和类型与从父类继承的方法完全相同。

例如:

classR{

intadd(){

inta=2;

returna++;

publicclassRRextendsR{

floatadd(){

floata=2.0;

returna;

System.out.println(add());

8.试说出对象、类、继承和多态性的概念。

9.略

10.接口与抽象类的区别。

抽象类:

whatcanIdo?

接口:

Icandoit.

例子:

就像铁门木门都是门(抽象类),你想要个门我给不了(不能实例化),但我可以给你个具体的铁门或木门(多态);

而且只能是门,你不能说它是窗(单继承);

一个门可以有锁(接口)也可以有门铃(多实现)。

门(抽象类)定义了你是什么,接口(锁)规定了你能做什么(一个接口最好只能做一件事,你不能要求锁也能发出声音吧(接口污染))。

11.指出Applet的程序结构及各方法的作用。

JavaAPI的Applet类为您提供设计applet程序外观并管理其动作时所需要的支持。

该类提供一种叫做Panel(面板)的图形用户界面(GUI)组件以及大量方法。

要创建一个applet程序,就需要扩展该Applet类(或创建子类)并实现您所需要的外观和动作。

12.以下程序的错误:

Takecare.java:

5:

无法从静态上下文中引用非静态变量a

floatc=a+b;

^

13.试声明一个复数类Complex。

//样例大家扩展

classComplex{

doublea,b;

Complex(){}

Complex(doublea,doubleb){

this.a=a;

this.b=b;

publicStringPrint(){

Stringresult=newString(this.a+(b>

0?

+"

:

)+(b!

=0?

this.b+"

i"

:

));

returnresult;

publicComplexadd(Complexval){

Complexresult=newComplex();

result.a=this.a+val.a;

result.b=this.b+val.b;

publicclassTestComplex{

Complexcomplex1=newComplex(1.0,2.0);

Complexcomplex2=newComplex(2.0,3.0);

System.out.println(complex1.add(complex2).Print());

第四章数组和字符串

1.举例说明如何声明、创建初始化数组。

有三种方法。

书P69,不一一举例了。

2.略

3.一个数组能存储不同类型的元素吗?

不能。

4.编写一个Java程序,形成以下形式的二维数组,并输出。

publicclassArry{

int[][]a={{1,2,9,10,25},

{4,3,8,11,24},

{5,6,7,12,23},

{16,15,14,13,22},

{17,18,19,20,21}};

a.length;

for(intj=0;

a[i].length;

if(a[i][j]<

10){

System.out.print("

+a[i][j]+"

}else

System.out.print(a[i][j]+"

5.Java中字符数组与字符串有什么区别?

数组是一个容器。

6.确定一个字符数组长度与确定一个Sting对象的长度有什么区别?

确定字符数组的长度用属性length,而String对象用方法length()。

7.String类的方法转换。

publicclassConvert{

Stringa="

StrIng"

System.out.println(a.toUpperCase());

System.out.println(newString(a.toLowerCase()));

8.使用String类的concat方法:

例:

publicclassTestConcat{

Stringa=newString("

raoliv->

Stringb=newString("

System.out.println(a.concat(b));

9.试利用java.util.Date类继承声明实现MyDate类。

10.略

11.编写实现从两字符串找出最长的相同字符序列的代码。

得到字符串str1,str2后,有一个为空则子列为空。

如果都不为空,开始下面的步骤。

求得两列的长度分别为n1,n2。

动态生n2行n1列矩阵(二维数组)。

取str2中每个元素(记位置为i)与str1中元素(记位置为j)逐个比较,如果相等则为矩阵中相应行列坐标的元素赋值为1,否则为0(可用循环嵌套完成)。

比如str1(abc0cbad)str2(cba1abc)两串的话,可以得到如图所示矩阵。

然后,不难看出,要进行如下步骤。

定义strax,用来记录最大子列中元素个数。

定义数组l[n2],用来记录最大子列的首字符地址(因为可能有不同最大子列,故用数组,而不是单个变量)。

判断矩阵中每一个元素,是否为1,如果是则记下此时行地址到l数组,然后判断相对于这个元素的下一行下一列的元素是否为1,如果是则继续判断,一直到为0。

记下此次判断(即一个while循环)中“1”的个数n,存入变量strax。

对于矩阵中的每一个元素都这么判断,如果判断中n的值大于strax那么把n付给strax,同时把这个子列的首地址付给l[0],l[0]后面的元素全赋值为-1。

如果,某次判断得到的n与strax相同,即有相同最大子列,那么把它的首地址存入l数组的下一个位置。

当这个矩阵的每一个元素都判断完毕后,会得到strax,和数组l,然后用循环做如下输出过程:

依次以l数组中的每个元素为首地址,输出str2字符串中以相应序号开头的strax个字符,那么完成所有最大子列的输出。

输入:

aabcbcb

bcabcbac

输出:

abcb

publicclasstest1{

intmax=0;

intcurrent=0;

Stringstr1=newString("

aabcbcb"

Stringstr2=newString("

bcabcbac"

intlen1=str1.length();

intlen2=str2.length();

intarr[][];

arr=newint[len1][len2];

//初始化数组

for(inti=0;

str1.length();

i++)

str2.length();

j++)

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2