Java简明教程习题参考答案.docx

上传人:b****4 文档编号:11718531 上传时间:2023-03-31 格式:DOCX 页数:74 大小:111.31KB
下载 相关 举报
Java简明教程习题参考答案.docx_第1页
第1页 / 共74页
Java简明教程习题参考答案.docx_第2页
第2页 / 共74页
Java简明教程习题参考答案.docx_第3页
第3页 / 共74页
Java简明教程习题参考答案.docx_第4页
第4页 / 共74页
Java简明教程习题参考答案.docx_第5页
第5页 / 共74页
点击查看更多>>
下载资源
资源描述

Java简明教程习题参考答案.docx

《Java简明教程习题参考答案.docx》由会员分享,可在线阅读,更多相关《Java简明教程习题参考答案.docx(74页珍藏版)》请在冰豆网上搜索。

Java简明教程习题参考答案.docx

Java简明教程习题参考答案

参考答案

第1章

1.Java语言有哪些主要特点。

平台独立性

安全性

多线程

网络化

面向对象

2.目前美国Sun公司提供的适用不同开发规模的JDK有哪些。

目前Sun共提供了三种不同的版本:

微平台版J2ME(Java2PlatformMicroEdition),标准版J2SE(Java2PlatformStandardEdition)和企业版J2EE(Java2PlatformEnterpriseEdition),这三种版本分别适用于不同的开发规模和类型,对于普通Java开发人员和一般学习者来说,选用标准版J2SE就可以了,学会了J2SE,再学J2ME或J2EE就比较容易上手,因为它们之间虽有所侧重,但相似之处很多,尤其是语言本身是一样的,都是Java。

3.JavaApplication的开发步骤有哪些。

JavaApplication的开发步骤:

(1)下载JDK软件并安装;

(2)配置相应的环境变量(path和classpath);

(3)编写Java源程序(文本编辑器或集成开发环境IDE);

(4)编译Java源程序,得到字节码文件(javac*.java);

(5)执行字节码文件(java字节码文件名)。

4.什么是环境变量,设置环境变量的主要目的是什么。

环境变量的配置主要是为了进行“寻径”,也即让程序能找到它需要的文件,所以设置的内容就是一些路径。

5.不参考书本,试着编写一个简单的JavaApplication程序,实现在Dos窗口输出“WelcometoNanjingCity!

”字符串。

并对该程序进行编译和运行。

\

publicclassHello{

publicstaticvoidmain(Stringargs[])

{

"WelcometoNanjingCity!

");

}

}

6.编写一个JavaApplication程序,实现分行显示字符串“WelcometoNanjingCity”中的四个单词。

\

publicclassHello{

publicstaticvoidmain(Stringargs[])

{

"Welcome");

"to");

"Nanjing");

"City!

");

}

`

}

第2章

1.Java语言对于合法标识符的规定是什么指出以下哪些为合法标识符。

aa23a*a_a$ainta%

在Java语言中,标识符必须以字母、美元符号或者下划线打头,后接字母、数字、下划线或美元符号串。

另外,Java语言对标识符的有效字符个数不做限定。

合法的标识符:

·

aa2_a$a

2.变量的涵义是什么变量名与变量值的关系

在程序执行过程中其值可以改变的数据,称为变量,它本质上代表了内存中的一小块空间。

每个变量都必须有对应的名称来标识它,即变量名,而变量空间所存放的数据则称为变量值。

3.Java语言提供哪些基本的数据类型,为什么要提供这些不同的数据类型

布尔型:

boolean

整型:

byte、short、int以及long

浮点型(实型):

float以及double

字符型:

char

数据类型代表了数据的存储格式和处理方式,虽然严格来说计算机只能识别“0”和“1”,但是,有了数据类型以后,计算机的识别能力就被人为扩展了,它能够识别整数、实数以及字符等。

4.赋值语句的涵义是什么

数据传递。

5.数据类型强制转换的原则是什么如何转换

"

对于变窄转换,如long到short、double到float,或者不兼容转换:

float到short、char到short等,则需要进行强制转换。

floatf=;

shortb;

b=(short)f;(强制转换)

6.每一条程序语句都应以分号来结束,这个分号能否用中文输入模式下输入的分号,为什么

不能。

首先中英文输入模式下输入的分号是不同的,不但外观不同,其存储所需的空间也是不同的,Java编译器只能识别英文的分号,对于中文分号,将会报错。

%

第3章

1.假定乘坐飞机时,每位顾客可以免费托运20kg以内的行李,超过部分按每公斤收费元,以下是相应的计算收费程序。

该程序存在错误,请找出。

publicclassTest

{

publicstaticvoidmain(String[]args)throwsIOException

{

floatw,fee;

;语句

2.有一条长的阶梯,如果每步2阶,则最后剩1阶,每步3阶则剩2阶,每步5阶则剩4阶,每步6阶则剩5阶,只有每步7阶的最后才刚好走完,一阶不剩,问这条阶梯最少共有多少阶找出以下求解程序的错误所在。

publicclassTest

{publicstaticvoidmain(String[]args)

{

inti;

while(i%2==1&&i%3==2&&i%5==4&&i%6==5&&i%7==0)

{

;

i++;

}

"这条阶梯最少有:

"+i+"阶");

}

}

1)变量i应进行初始化。

2)while循环的条件表达式应再加上“非”,这样才符合逻辑。

`

3.试用单分支结构设计一判断用户输入值X,当X大于零时求X值平方根,否则不执行任何操作的程序。

import.*;

import.*;

publicclassTest

{publicstaticvoidmain(String[]args)throwsIOException

{

<

floatx;

InputStreamReaderreader=newInputStreamReader;

BufferedReaderinput=newBufferedReader(reader);

"请输入x:

");

Stringtemp=();

x=(temp);;

publicclassTest

{publicstaticvoidmain(String[]args)throwsIOException

^

{

charA,B,c1,c2;

c1=(char)

c2=(char)

if(c1>c2)

{

A=c2;

B=c1;

"

}else

{

A=c1;

B=c2;

}

"A="+A+"B="+B);

}

}

5.用穷举法求出3位数中百、十、个位数的立方和就是该数的数。

publicclassTest

{publicstaticvoidmain(String[]args)

{

inta,b,c,x=100;

while(x<1000){

]

a=x%10;

b=(x%100-a)/10;

c=(x-x%100)/100;

if(a*a*a+b*b*b+c*c*c==x)

x+=1;

}

}

}

?

6.编程实现打印以下图案:

***********

*********

*******

*****

***

*

.

publicclassTest

{publicstaticvoidmain(String[]args)

{

inti,j,k;;

publicclassTest

{

publicstaticvoidmain(String[]args)throwsIOException

]

{

charsex='f';

switch(sex)

{

case'm':

"男性");

break;

case'f':

"女性");

case'u':

"未知");

*

}

}

}

女性

未知

10.读程序,写结果。

"

publicclassTest

{publicstaticvoidmain(String[]args)

{

inti,s=0;

for(i=1;i<=100;i++)

{

if(i%3==0)

continue;

<

s+=i;

}

"s="+s);

}

}

s=3367

11.读程序,写结果。

publicclassTest

{publicstaticvoidmain(String[]args)

{

inti,s=0;

for(i=1;i<=100;i++)

{

s+=i;

if(s>100)

break;

}

"s="+s);

}

}

s=105

12.个位数是6,且能被3整除的5位数有多少

publicclassTest

{publicstaticvoidmain(String[]args)

{

inti=10006,count=0;

while(i<)

|

{if(i%3==0)

count++;

i+=10;

}

"符合条件的数共有"+count+"个");

}

}

13.用嵌套循环结构,设计一模拟电子钟的程序。

提示:

定义三个变量分别代表“小时”、“分”和“秒”,根据电子钟分、秒、小时之间的关系,采用三重循环来控制各量的增加,并由输出语句将变化中的三个量分别予以输出显示,即为一模拟数字电子钟。

此外,Java语言提供的延时方法为(1000);1000的单位为毫秒,即延时1秒。

import.*;

publicclassTest

{publicstaticvoidmain(String[]args)throwsInterruptedException

{

inthour=12,min=0,sec=0;

while(hour<24)

{

while(min<60)

{

while(sec<60)

{sec++;

(1000);

"时-"+min+"分-"+sec+"秒");

&

}

sec=0;

min++;

}

min=0;

hour++;

}

}

\

}

第4章

1.以下叙述中不正确的是______。

A、在方法中,通过return语句传回方法值

B、在一个方法中,可以执行有多条return语句,并返回多个值

C、在Java中,主方法main()后的一对圆括号中也可以带有参数

D、在Java中,调用方法可以在语句中完成

[

B

2.以下正确的描述是______。

A、方法的定义不可以嵌套,但方法的调用可以嵌套

B、方法的定义可以嵌套,但方法的调用不可以嵌套

C、方法的定义和方法的调用均不可以嵌套

D、方法的定义和方法的调用均可以嵌套

A

3.以下正确的说法为______。

>

A、在不同方法中不可以使用相同名字的变量

B、实际参数可以在被调方法中直接使用

C、在方法内定义的任何变量只在本方法范围内有效

D、在方法内的复合语句中定义的变量只在本方法语句范围内有效

C

4.按Java语言的规定,以下正确的说法是______。

A、实参不可以是常量,变量或表达式

B、形参不可以是常量,变量或表达式

\

C、实参与其对应的形参占用同一个存储单元

D、形参是虚拟的,不占用存储单元

D

5.一个JavaApplication程序中有且只有一个方法,它是整个程序的执行入口。

main()方法

6.方法通常可以认为由两部分组成,它们是和。

方法头和方法体

"

7.读程序写结果。

publicclassTest{

  staticvoidm(intx,inty,intz)

  {x=111;y=222;z=333;

  }

  publicstaticvoidmain(Stringargs[])

  {intx=100,y=200,z=300;

-

  m(x,y,z);

     }

}

x=100y=200z=300

8.编写一个判断某个整数是否为素数的方法。

publicbooleanprime(intx)

·

{

for(intj=2;j

publicclassTest

{publicstaticvoidmain(String[]args)

{inta=0;

"请输入数a:

");

try{

BufferedReaderbr=newBufferedReader(newInputStreamReader);

a=());

}catch(IOExceptione){}

intb=0;

"请输入数b:

");

try

{BufferedReaderbr=newBufferedReader(newInputStreamReader);

b=());

}catch(IOExceptione){}

if(a<=0||b<=0)

"输入不合法!

");

"最大公约数为:

"+Gys(a,b));

"最小公倍数为:

"+Gbs(a,b));

}

publicstaticintGys(inta,intb)

{

intr=0;

if(a

{r=a;

b=a;

a=r;}

inti=1;

while(i!

=0)

{i=a%b;

a=b;

b=i;

}

returna;

}

publicstaticintGbs(inta,intb)

{

intab=a*b;

intr=0;

?

if(a

{r=a;

b=a;

a=r;}

inti=1;

while(i!

=0)

{i=a%b;

a=b;

$

b=i;

}

returnab/a;

}

}

10.以下程序执行后的输出为。

publicclassTest

{

staticintm1(inta,intb)

{

intc;

a+=a;

b+=b;

c=m2(a,b);

return(c*c);

~

}

staticintm2(inta,intb)

{

intc;

c=a*b%3;

return(c);

}

publicstaticvoidmain(String[]args)

{

intx=1,y=3,z;

z=m1(x,y);

"z="+z);

}

}

z=0

11.编写一个方法,实现求某整数的各位数字之和的功能。

import.*;

publicclassTest

{publicstaticvoidmain(String[]args)

{inti,a=0,s=0;

"请输入数a:

");

try{

:

BufferedReaderbr=newBufferedReader(newInputStreamReader);

a=());

}catch(IOExceptione){}

for(i=10;a%i!

=a;i*=10)

{

s+=(a%i)/(i/10);

}

s+=a/(i/10);

:

"各位数之和为"+s);

}

}

12.编写完成十进制整数到八进制的转换方法。

import.*;

publicclassTest

{publicstaticvoidmain(String[]args)

{inti,k,a=0,d,s=0;

"请输入数:

");

try{

BufferedReaderbr=newBufferedReader(newInputStreamReader);

a=());

}catch(IOExceptione){}

d=a%8;

s+=d;

/

k=10;

for(i=64;a-d!

=0;i*=8)

{

s+=(a-d)%i*8/i*k;

k*=10;

d=a%i;

}

"八进制数为"+s);

#

}

}

13.用于指出数组中某个元素的数字被叫做;数组元素之所以相关,是因为它们具有相同的和。

下标;数组名和数据类型。

14.数组intresults[]=newint[6]所占存储空间是字节。

]

24

15.使用两个下标的数组被称为数组,假定有如下语句:

floatscores[][]={{1,2,3},{4,5},{6,7,8,9}};

则的值为:

,scores[1].length的值为:

scores[1][1]的值为:

二维;3;2;5。

16.从键盘上输入10个双精度浮点数后,求出这10个数的和以及它们的平均值。

要求分别编写相应求和及求平均值的方法。

import.*;

publicclassTest

{

publicstaticvoidmain(String[]args)throwsIOException

{

InputStreamReaderreader=newInputStreamReader;

BufferedReaderinput=newBufferedReader(reader);

Stringtemp;

doublex[]=newdouble[10];

for(inti=0;i<10;i++)

{

temp=();

x[i]=(temp);

}

S(x);

Avg(x);

}

publicstaticvoidS(doublex[])

{

;

publicclassScores

{

publicstaticvoidmain(String[]args)throwsIOException

{

intsum=0;;

publicclassTest

{

publicstaticvoidmain(String[]args)throwsIOException

{

charc[]={'O','l','y','m','p','i','c','','G','a','m','e','s'};

·

rever(c);

}

publicstaticvoidrever(charc[])

{

chart;

for(inti=0,j=;i

{

<

t=c[i];

c[i]=c[j];

c[j]=t;

}

}

}

19.Java语言为什么要引入方法这种编程结构

提高复用度,减少程序代码量

促进程序结构化,提高可读性和可维护性

20.为什么要引入数组结构,数组有哪些特点,Java语言创建数组的方式有哪些

为了便于处理一批同类型的数据,Java语言引入了数组类型;

首先,数组中的每个元素都是相同数据类型的;其次,数组中的这些相同数据类型元素是通过数组下标来标识的,并且该下标是从0开始的;最后,数组元素在内存中的存放是连续的。

Java语言规定,创建数组可以有两种方式:

初始化方式和new操作符方式。

初始化方式是指直接给数组的每一个元素指定一个初始值,系统自动根据所给出的数据个数为数组分配相应的存储空间,通常这样创建数组的方式适用于数组元素较少的情形。

对于数组比较大的情形,即数组元素过多,用初始化方式显然不妥,这时应采用第二种方式,即new操作符方式。

`

第5章

1.实现类MyClass的源码如下:

classMyClassextendsObject{

privateintx;

privateinty;

publicMyClass(){

x=0;

y=0;

}

publicMyClass(intx,inty){

.........

}

publicvoidshow(){

"\nx="+x+"y="+y);

}

publicvoidshow(booleanflag){

}

if(flag)"\nx="+x+"y="+y);

else"\ny="+y+"x="+x);

}

protectedvoidfinalize()throwsthrowable{

();

}

}

        在以上的源代码中,类MyClass的成员变量是____;构造方法是____;对该类的一个实例对象进行释放时将调用的方法是____。

(多选)

(A)privateintx;

(B)privateinty;

(C)publicMyClass()

(D)publicMyClass(intx,inty)

(E)publicvoidshow()

(F)publicvoidshow(booleanflag)

(G)protectedvoidfinalize()throwsthrowable

答案:

ABCDG

}

2.上题所声明的类MyClass的构造方法MyClass(intx,inty)的目的是使MyClass的成员变量privateintx,privateinty的值分别等于方法参数表中所给的值intx,inty。

请写出MyClass(intx,inty)的方法体(用两条语句):

__________________________;

__________________________;

答案:

=x=y

3.MyClass声明同第一题。

   设publicstaticvoidmain(Stringargs[])方法体如下:

{

MyClassmyclass;

();

}

 编译运行该程序将会有何结果

(A)x=0y=0

(B)y=0x=0

(C)x=...y=...(x,y具体为何值是随机的)

/

(D)源程序有错

答案:

D

4.MyClass声明同第一题。

 设publics

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

当前位置:首页 > 人文社科 > 法律资料

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

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