Java-2实用教程(第5版)习题解答 下载本文

习题解答

习题1(第1章)

一、 问答题

1.Java语言的主要贡献者是谁?

2.开发Java应用程序需要经过哪些主要步骤?

3.Java源文件是由什么组成的?一个源文件中必须要有public类吗? 4.如果JDK的安装目录为D:\\jdk,应当怎样设置path和classpath的值? 5.Java源文件的扩展名是什么?Java字节码的扩展名是什么?

6.如果Java应用程序主类的名字是Bird,编译之后,应当怎样运行该程序? 7.有哪两种编程风格,在格式上各有怎样的特点? 1.James Gosling 2.需3个步骤:

1) 用文本编辑器编写源文件。

2) 使用javac编译源文件,得到字节码文件。 3) 使用解释器运行程序。

3.源文件由若干个类所构成。对于应用程序,必须有一个类含有public static void main(String args[])的方法,含有该方法的类称为应用程序的主类。不一定,但至多有一个public类。

4.set classpath=D:\\jdk\\jre\\lib\\rt.jar;.; 5. java和class 6. java Bird

7. 独行风格(大括号独占行)和行尾风格(左大扩号在上一行行尾,右大括号独占行)

二、选择题 1.B。2.D。

1.下列哪个是JDK提供的编译器? A) java.exe B) javac.exe C) javap.exe D) javaw.exe

2.下列哪个是Java应用程序主类中正确的main方法? A) public void main (String args[ ]) B) static void main (String args[ ])

C) public static void Main (String args[]) D) public static void main (String args[ ]) 三、阅读程序

阅读下列Java源文件,并回答问题。 public class Person {

void speakHello() {

System.out.print(\您好,很高兴认识您\System.out.println(\ } }

class Xiti {

public static void main(String args[]) { Person zhang = new Person(); zhang.speakHello(); } }

(a)上述源文件的名字是什么?

(b)编译上述源文件将生成几个字节码文件?这些字节码文件的名字都是什么? (c)在命令行执行java Person得到怎样的错误提示?执行java xiti得到怎样的错误提示?执行java Xiti.class得到怎样的错误提示?执行java Xiti得到怎样的输出结果? 1.(a)Person.java。(b)两个字节码,分别是Person.class和Xiti.class。(c)得到“NoSuchMethodError”,得到“NoClassDefFoundError: Xiti/class”,得到“您好,很高兴认识您 nice to meet you”

习题2(第2章)

一、问答题

1. 什么叫标识符?标识符的规则是什么?false是否可以作为标识符。 2. 什么叫关键字?true和false是否是关键字?请说出6个关键字。

3. Java的基本数据类型都是什么?

4. float型常量和double型常量在表示上有什么区别?

5. 怎样获取一维数组的长度,怎样获取二维数组中一维数组的个数。

1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。

标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。false不是标识符。 2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。true和false不是关键字。6个关键字:class implements interface enum extends abstract。 3.boolean,char,byte,short,int,long,float,double。

4.float常量必须用F或f为后缀。double常量用D或d为后缀,但允许省略后缀。 5.一维数组名.length。二维数组名.length。 二、选择题

2.下列哪三项是正确的float变量的声明?adf A. float foo = -1; B. float foo = 1.0; C. float foo = 42e1; D. float foo = 2.02f; E. float foo = 3.03d; F. float foo = 0x0123; 3.下列哪一项叙述是正确的?b

A. char型字符在Unicode表中的位置范围是0至32767 B. char型字符在Unicode表中的位置范围是0至65535 C. char型字符在Unicode表中的位置范围是0至65536

D. char型字符在Unicode表中的位置范围是-32768至32767 4.以下哪两项是正确的char型变量的声明?be A. char ch = \B. char ch = '\\\\' C. char ch = 'ABCD'; D. char ch = \E. char ch = '\?'; F. char ch = '\?0'

5.下列程序中哪些【代码】是错误的?2345 public class E {

public static void main(String args[]) { int x = 8;

byte b = 127; //【代码1】 b = x; //【代码2】 x = 12L; //【代码3】 long y=8.0; //【代码4】

float z=6.89 ; //【代码5】 } }

6.对于int a[] = new int[3];下列哪个叙述是错误的?b A. a.length的值是3。 B. a[1]的值是1。 C. a[0]的值是0。

D. a[a.length-1]的值等于a[2]的值。

1.C。2.ADF。3.B。4.BE。5.【代码2】【代码3】【代码4】【代码5】。6.B。 三、阅读或调试程序

1.属于操作题,解答略。 2.属于操作题,解答略。 3.属于操作题,解答略。 4.下列程序标注的【代码1】,【代码2】的输出结果是什么? public class E {

public static void main (String args[ ]){ long[] a = {1,2,3,4};

long[] b = {100,200,300,400,500}; b = a;

System.out.println(\数组b的长度:\【代码1】 System.out.println(\【代码2】 } }

5.下列程序标注的【代码1】,【代码2】的输出结果是什么? public class E {

public static void main(String args[]) {

int [] a={10,20,30,40},b[]={{1,2},{4,5,6,7}}; b[0] = a;

b[0][1] = b[1][3];

System.out.println(b[0][3]); //【代码1】 System.out.println(a[1]); //【代码2】 } } 4.【代码1】:4。【代码2】:b[0]=1。 5.【代码1】:40。【代码2】:7

四、编写程序