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

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

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

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

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[])

{

System.out.println("WelcometoNanjingCity!

");

}

}

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

publicclassHello{

publicstaticvoidmain(Stringargs[])

{

System.out.println("Welcome");

System.out.println("to");

System.out.println("Nanjing");

System.out.println("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=11.5;

shortb;

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

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

不能。

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

第3章

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

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

publicclassTest

{

publicstaticvoidmain(String[]args)throwsIOException

{

floatw,fee;

//以下代码为通过控制台交互输入行李重量

InputStreamReaderreader=newInputStreamReader(System.in);

BufferedReaderinput=newBufferedReader(reader);

System.out.println("请输入旅客的行李重量:

");

Stringtemp=input.readLine();

w=Float.parseFloat(temp);//字符串转换为单精度浮点型

fee=0;

if(w>20);

fee=(float)1.2*(w-20);

System.out.println("该旅客需交纳的托运费用:

"+fee+"元");

}

}

缺少importjava.io.*;语句

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++;

}

System.out.println("这条阶梯最少有:

"+i+"阶");

}

}

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

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

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

importjava.io.*;

importjava.lang.*;

publicclassTest

{publicstaticvoidmain(String[]args)throwsIOException

{

floatx;

InputStreamReaderreader=newInputStreamReader(System.in);

BufferedReaderinput=newBufferedReader(reader);

System.out.println("请输入x:

");

Stringtemp=input.readLine();

x=Float.parseFloat(temp);//字符串转换为单精度浮点型

if(x>0)

System.out.println("平方根值"+Math.sqrt(x));

}

}

4.从键盘读入两个字符,按照字母表排序顺序,将前面的字符置于A,排后面的字符置于B。

请设计实现该程序。

importjava.io.*;

publicclassTest

{publicstaticvoidmain(String[]args)throwsIOException

{

charA,B,c1,c2;

c1=(char)System.in.read();;

c2=(char)System.in.read();;

if(c1>c2)

{

A=c2;

B=c1;

}else

{

A=c1;

B=c2;

}

System.out.println("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)

System.out.println(x);

x+=1;

}

}

}

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

***********

*********

*******

*****

***

*

publicclassTest

{publicstaticvoidmain(String[]args)

{

inti,j,k;//i控制行数,k控制*的个数,j控制空格数

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

{

for(j=1;j<=i-1;j++)

System.out.print("");//打印空格

for(k=1;k<=13-i*2;k++)

System.out.print("*");//打印*号

System.out.println();//换行

}

}

}

7.统计1至1万共有多少个数是素数。

publicclassTest

{publicstaticvoidmain(String[]args)

{inti,j,count=0;

label:

for(i=1;i<=10000;i++)//查找1到10000以内的素数

{for(j=2;j

if(i%j==0)//不满足

continuelabel;//跳过后面不必要的检验

count++;//计数

}

System.out.println("个数:

"+count);

}

}

8.打印输出斐波纳契数列的前12项。

斐波纳契数列的前12项如下:

第1项:

0

第2项:

1

第3项:

1

第4项:

2

第5项:

3

第6项:

5

第7项:

8

第8项:

13

第9项:

21

第10项:

34

第11项:

55

第12项:

89

publicclassTest

{publicstaticvoidmain(String[]args)

{inti=0,j=1;

for(intk=0;k<6;k++)

{

System.out.print(i+""+j+"");

i=i+j;

j=i+j;

}

}

}

9.读程序,写结果。

importjava.io.*;

publicclassTest

{

publicstaticvoidmain(String[]args)throwsIOException

{

charsex='f';

switch(sex)

{

case'm':

System.out.println("男性");

break;

case'f':

System.out.println("女性");

case'u':

System.out.println("未知");

}

}

}

女性

未知

10.读程序,写结果。

publicclassTest

{publicstaticvoidmain(String[]args)

{

inti,s=0;

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

{

if(i%3==0)

continue;

s+=i;

}

System.out.println("s="+s);

}

}

s=3367

11.读程序,写结果。

publicclassTest

{publicstaticvoidmain(String[]args)

{

inti,s=0;

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

{

s+=i;

if(s>100)

break;

}

System.out.println("s="+s);

}

}

s=105

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

publicclassTest

{publicstaticvoidmain(String[]args)

{

inti=10006,count=0;

while(i<100000)

{if(i%3==0)

count++;

i+=10;

}

System.out.println("符合条件的数共有"+count+"个");

}

}

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

提示:

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

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

importjava.util.*;

publicclassTest

{publicstaticvoidmain(String[]args)throwsInterruptedException

{

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

while(hour<24)

{

while(min<60)

{

while(sec<60)

{sec++;

Thread.sleep(1000);

System.out.println(hour+"时-"+min+"分-"+sec+"秒");

}

sec=0;

min++;

}

min=0;

hour++;

}

}

}

第4章

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

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

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

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

D、在Java中,调用方法可以在System.out.println()语句中完成

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);

   System.out.println(“x=”+x+”y=”+y+”z=”+z);

  }

}

x=100y=200z=300

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

publicbooleanprime(intx)

{

for(intj=2;j

if(x%j==0)//不满足

returnfalse;

returntrue;

}

9.编写两个方法,分别求两个整数的最大公约数和最小公倍数,在主方法中由键盘输入两个整数并调用这两个方法,最后输出相应的结果。

importjava.io.*;

publicclassTest

{publicstaticvoidmain(String[]args)

{inta=0;

System.out.print("请输入数a:

");

try{

BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));

a=Integer.parseInt(br.readLine());

}catch(IOExceptione){}

intb=0;

System.out.print("请输入数b:

");

try

{BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));

b=Integer.parseInt(br.readLine());

}catch(IOExceptione){}

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

System.out.println("输入不合法!

");

System.out.println("最大公约数为:

"+Gys(a,b));

System.out.println("最小公倍数为:

"+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);

System.out.println("z="+z);

}

}

z=0

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

importjava.io.*;

publicclassTest

{publicstaticvoidmain(String[]args)

{inti,a=0,s=0;

System.out.print("请输入数a:

");

try{

BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));

a=Integer.parseInt(br.readLine());

}catch(IOExceptione){}

for(i=10;a%i!

=a;i*=10)

{

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

}

s+=a/(i/10);

System.out.println("各位数之和为"+s);

}

}

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

importjava.io.*;

publicclassTest

{publicstaticvoidmain(String[]args)

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

System.out.print("请输入数:

");

try{

BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));

a=Integer.parseInt(br.readLine());

}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;

}

System.out.println("八进制数为"+s);

}

}

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

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

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

24

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

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

则scores.length的值为:

,scores[1].length的值为:

scores[1][1]的值为:

二维;3;2;5。

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

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

importjava.io.*;

publicclassTest

{

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

当前位置:首页 > 工作范文 > 行政公文

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

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