java程序设计实训教程参考答案

  • 格式:pdf
  • 大小:992.68 KB
  • 文档页数:25

参考答案

第1章

一、判断题

1. ×2. ×3. √4. √

5. √6. ×7. ×8. ×

二、选择题

1. A、B、C、D、E

2. B3. C

4. A5. B

6. B7. E

三、填空题

1. 面向对象的、解释的、结构中立的、可移

植的、多线程的

2. 一种与平台无关的二进制字节码(Byte

code)

3. 可移植性

4. JVM

5. Applet、 Java Application

6. 动态

7. 命令行

8. 慢

9. 大大提高Java字节码的执行效率

10. java、class

四、问答题

1. Java 是一种简单的、面向对象的、分布式

的、解释的、健壮的、安全的、结构中立的、可移植

的、性能优异的、多线程的、动态的语言,它还支

持垃圾自动回收。

Java语言的“动态性”和C++语言相比,Java语

言允许在运行时动态地装入所需要的类,这些类

既可以位于本地,也可以是从Internet上下载的,

这一特性是C++等其他编译型语言所无法实现的。

2.用户应用程序

Java API

JVM

硬件平台

3. (见课本中设置Path一节)五、编程题

1,2都是利用集成化开发环境实际动手操作。

第2章

一、判断题

1. √2. √3. √4. √

5. √6. ×7. ×8. √

二、选择题

1. A、B2. A、C、D

3. C4. C

5. A、D6. C

7. A8. A

三、填空题

1. 0

2. –128 ~ 127

3. 位运算、 关系运算

4. 32,64

5. 保护变量

6. 80

7. 在前面加个‘0’,012

8. while

四、问答题

1. 十进制常数记法就是我们日常生活用的

整数的写法:如365,0,-29456。

八进制常数记法只需要在前面加个‘0’即可。

如012表示八进制数12。它转化为十进制的值是

1×81 + 2×80=10,-012则和十进制数-10相等。

十六进制数记法是开头加上‘0x’ 或者‘0X’,

如0x12表示十六进制数18。-0X10表示十进制数-

16。

2. 在Java程序中,数组具有下列特点:

(1)同一数组中的所有元素均属于相同的数据

类型,该数据类型称为数组的基本类型。

(2)数组一经创建,其元素个数就保持不变,

这个长度称为数组的长度。

(3)数组中的每一个元素均能借助于下标

(Index)来访问。

(4)数

组元素的类型既可以是基本类型(如

int,float等),也可以是复合类型(如2Java程序设计实训教程

String,Object,甚至数组类型),从而可以产生对象

数组、多维数组。

3. 对于一维数组,可以采用如下方法进行初

始化:

方法一:遍历数组元素进行初始化;例:

int[] demoArray = new int[10];

for( int i = 0; i < demoArray.length;

i++)demoArray[i] = someValue;//给

demoArray[i]赋予某个值方法二:采用数组初始化列表进行数组创建和

初始化;例:

boolean[]demoArray =

{false,true,true,false,true};

int[]intArray = {0,1,2,3};其中被“{”和“}”括起来的数值列表称为初始

化列表。

4. 参考下表:

五、编程题

仅供参考:

public class Student{

public final static int

NUM_OF_SCORE = 3;

private String name;

protected int[] scores;

public Student(){

name = "";

scores = new

int[NUM_OF_SCORE];

}

public void setName(String

newName){

name = newName;

}

public String getName(){

return name;}

public void setScore(int scoreNum,

int score){

if (scoreNum < 0 || scoreNum

>= NUM_OF_SCORE)return;

if (score < 0 || score > 100)

return;

scores[scoreNum] = score;

}

public int getScore(int

scoreNum){

if (scoreNum < 0 || scoreNum

>= NUM_OF_SCORE) return -1;

return scores[scoreNum];

}

public int getAverageScore(){

int total = 0;

for (int i = 0; i <

NUM_OF_SCORE; i ++) total = total +

scores[i];

return (int)(total /

NUM_OF_SCORE);

}

}

public class Graduate extends Student{

public String computeGrade(){

int total = 0;

for (int i = 0; i <

NUM_OF_SCORE; i ++)total += scores[i];

if (total / NUM_OF_SCORE > 80)

return "PASS";

else return "NO PASS";

}

}

public class StudentDemo{

public static void main(String[]

args){

Graduate student1 = new

Graduate();

student1.setName("zhang3");

student1.setScore(0, 78);

student1.setScore(1, 92);

student1.setScore(2, 72);

System.out.println("The grade

of graduate student" + student1.getName() +

"is" + student1.computeGrade());

}

}参考答案3

第3章

一、判断题

1. √2. ×3. ×4. √

5. ×6. ×7. ×8. √

二、选择题

1. A、B2. B、C、D

3. A、B4. D

5. C6. C

7. A8. A

三、填空题

1. 顺序结构、选择结构、循环结构

2. for语句、while语句和do-while语句

3. if语句、switch语句

四 问答题

1. 任何复杂的程序均可由三种控制结构表

示,这三种结构是:顺序结构、选择结构和循环结

构。

2. 如果对于有多分支选择结构,使用switch

语句更好。因为如果使用if语句来表示,程序会显

得很臃肿,而且随着分支的增多,可读性也就越来

越差。但是如果使用switch语句,流程容易看懂,

而且程序也不会显得臃肿。

3. switch语句的用法:

switch语法的一般格式如下:

switch(表达式){case1 取值1:

语句块1;

break;case2 取值2:

语句块2;

break;

… caseN 取值N:

语句块N;

break;

default : 语句块N+1;

break;

}(1)case子句中的值“取值i”必须是常量,而且

所有case子句中的值应该是互不相同。

(2)case分支中包括多个执行语句时,可以不

用大括号{}括起。

(3)表达式可以返回任意简单类型的值,多分支语句把表达式返回的值与每个case子句的值进

行比较。如果匹配成功,则执行该case子句后的语

句块。

(4)switch语句的功能可以用if-else来实现,

但在某些情况下,使用switch语句更简练,可读性

强,而且程序的执行效率提高。

(5)break语句用来执行完一个 case分支后,

使程序跳出switch语句,即终止switch语句的执

行。因为case子句只是起到一个标号的作用,用来

查找匹配的入口并从此处开始执行,对后面的case

子句不再进行匹配,而是直接执行其后的语句序

列,因此应该在每个case分支后用break来终止后

面的case分支语句的执行。在一些特殊的情况下,

多个不同的case值要执行一组相同的操作,这时

可以不用break。

(6)default子句是任选的。当表达式的值与任

一case子句中的值都不匹配时,程序执行default

后面的语句;如果表达式的值与任一case子句中

的值都不匹配且没有default子句,则程序不作任

何操作,而是直接跳出switch语句块。

4. for语句的用法:

for语句的一般格式为:

for (初始化表达式; 终止表达式; 迭代表达式)

{循环体;

}(1)控制for循环的变量经常只是用于该循环,

而不用在程序的其他地方。在这种情况下,可以在

循环的初始化部分中声明变量。

(2)for语句通常用来执行循环次数确定的情

况,也可以根据循环结束条件执行循环次数不确

定的情况。

(3)for语句执行时,首先执行初始化操作,然

后判断终止条件是否满足,如果满足,则执行循环

体中的语句,最后执行迭代部分。完成一次循环后,

重新判断终止条件。

(4)初始化、终止以及迭代部分都可以为空语

句(分号不能省),三者均为空的时候,相当于一个

无限循环,如果循环体中不包括break等语句,也

没有可捕获的异常,那么将成为一个死循环,这在

一般的程序设计中是应该能避免的。

(5)可以在for语句的初始化部分声明一个变

量,它的作用域为整个

for语句。