习题解答
习题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
四、编写程序