《Java语言程序设计》(基础篇原书第10版)第七章复习题答案

第七章
7.1:声明数组引用变量的语法:
elementType[] arrayRefVar;(元素类型[]数组引用变量 ;)
创建数组:
arrayRefVar = new e1ementType[arrayS1ze]:
elementType[] arrayRefVar = new elementType[arraySize];
7.2:在创建数组时为数组分配内存。
7.3:输出结果为:
x is 60
The size of number is 30
7.4:
True
False
True
False
7.5:
int i = new int(30); 语句无效
double d[] = new double[30]: 语句有效
char[] r = new char(l…30): 语句无效
int 1[] = (3. 4, 3, 2); 语句无效
float f[] = {2.3, 4.S, 6.6}; 语句有效
char [] c = new char(); 语句无效
7.6:通过数组的下标访问数组元素
7.7:数组下标的类型为int 型,最小的下标为 0 ,a【2】表示数组名为a的第三个元素。
7.8:
a) double[] array = new double[10];
b) array[array.length - 1] = 5.5;
c) System.out.println(array[0] + array[1]);
d)
double sum = 0;
for (int i = 0; i < array.length; i++) {
sum += array[i];
}
e)
double min = array[0];
for (int i = 1; i < array.length – 1; i++) {
if (min > array[i]) {
min = array[i];
}
}
f)
System.out.println(array[(int)(Math.random() * array.length)]);
g) double [] array = {3.5, 5.5, 4.52, 5.6};
7.9:会出现运行时异常。
7.10:
public class Test {
public static void main(String[] args) {
double [] r;

	for (int I = 0; I < r.length; i++) {
		r[i] = Math.random() * 100;
	}
} 

}
7.11:输出结果为:
1 1 1 1 1 1
7.12:没有,会同一张不止一次被抽到。
7.13:System.arraycopy(source, 0, t, 0, source.length);
7.14:第二个赋值语句mylist = new int[20] 创建了一个新的数组,并将其引用分配给了mylist,所以mylist数组的大小改变了。
7.15:运行下列的代码,没有达到将数组内容进行反转的效果,因为同一对数交换了两次,也就是没有交换成功;修正结果:
int[] list = {1, 2, 3, 5, 4};

for (int I = 0, j = list.length – 1; I < list.length / 2; i++, j–) {
int temp = list[i];
list[i] = list[j];
list[j] = temp;
}
7.16:假的;当数组传递给方法时,数组的引用值将被传递。没有创建新的数组,实参和形参都指向同一个数组。
7.17:输出结果为:a) number is 0 and numbers[0] is 3
b) 1 2 3 4 5
7.19:方法只能指定一个可变长度参数,该参数必须是最后一个参数。方法返回类型不能是可变长度参数。
7.20:最后一个调用语句 printMax(new int[]{1, 2, 3});是不正确的,因为实参的类型与形参的数据类型不同,只能为double型才符合。
7.21:将(low + high) / 2 改为 (-low + high)/2 + low;
7.22:将10与列表中间值50比较,比它小,则将范围缩小到左半部分,再与左半部分的中间值10比较,可知10所在位置;同样的12也就可知在列表的位置。
7.23:二分法查找关键字的下标返回的是(-low - 1),即 -4 =(-low - 1);故该关键字插入的位置下标为3
7.25:修改结果如下:
for (int i = 0; i < list.length – 1; i++) {
double currentMax = list[i];
int currentMaxIndex = i;
for (int j = i + 1; j < list.length; j++) {
if (currentMax < list[j]) {
currentMax = list[j];
currentMaxIndex = j;
}
}
}
7.26:使用 java.util.Arrays.sort方法可以对除了boolean 类型外的任何类型进行排序,因为该方法的返回值类型是void,所以调用这个sort方法不会创建一个新的数组。
7.27:调用 java.util.Arrays.binarySearch (array , key)数组必须按递增顺序排列。
7.28:输出结果为:
[7, 7, 7, 7]
[2, 4, 7, 10]
False
7.29:main方法可以被替换成下列的:
public static void main(String args[])
public static void main(String[] x)
public static void main(String x[])
7.30:输出结果为:
1)Number of strings is 4
I
have
a
dream
2)Number of string is 1
1 2 3
3) Number of string is 0

你可能感兴趣的:(《Java语言程序设计》(基础篇原书第10版)第七章复习题答案)