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语句。