复习题
2.1 指出并修改以下代码中的错误:
public class Test {
public void main(string[] args) {
double i = 50.0;
double k = i + 50.0;
double j = k + 1;
System.out.println("j is " + j + " and
k is " + k);
}
}
缺少关键字 static,String首字符应该大写,双引号字符串无法在代码中换行。修正如下:
public class Test {
public static void main(String[] args) {
double i = 50.0;
double k = i + 50.0;
double j = k + 1;
System.out.println("j is " + j + " and k is " + k);
}
}
2.2 如何编写一条语句,让那个用户从键盘输入一个双精度值?在执行下面代码的时候,如果你输入5a,将发生什么?
double radius = input.nextDouble();
Scanner input = new Scanner(System.in)
double d = input.nextDouble()
输入5a将报错,类型有误
2.3 下面两个import语句之间有什么执行的不同吗?
import java.util.Scanner;
import java.util.*;
前者只单独引入了java.util下面的Scanner类。
后者将java.util下的所有类都进行了引入。
2.4 以下标识符哪些是合法的?哪些是Java的关键字?
miles(合法), Test(合法), a++(不合法), --a(不合法), 4#R(不合法), $4(合法), #44(不合法), apps(合法)
class(关键字), public (关键字),int(关键字), x(合法), y(合法), radius(合法)
2.5 请指出并修改下面代码中的错误:
public class Test {
public static void main(String[] args) {
int i = k + 2;
System.out.println(i);
}
}
k没有进行声明,没有初始值,修正如下
public class Test {
public static void main(String[] args) {
int k = 1;
int i = k + 2;
System.out.println(i);
}
}
2.6 请指出并修改下面代码中的错误:
public class Test {
public static void main(String[] args) {
int i = j = k = 2;
System.out.println(i + " " + j + " " + k);
}
}
j和k没有进行声明,修正如下:
public class Test {
public static void main(String[] args) {
int i , j , k;
i = j = k = 2;
System.out.println(i + " " + j + " " + k);
}
}
2.7 使用常量的好处是什么?声明一个int类型的常量SIZE,并且值为20。
好处如下:
不必重复输入同一个值
如果必须修改常量值,只需在源代码中的一个地方做改动
给常量赋一个描述性名字会提高程序易读性
final int SIZE = 20;
2.8 类名、方法名、常量和变量的命名习惯是什么?按照Java的命名习惯,以下哪些项可以作为常量、方法、变量或者一个类?
MAX_VALUE(常量), Test(类), read(变量), readDouble(方法)
2.9 将以下算法翻译成Java代码。
第一步:声明一个双精度型变量miles,初始值为100.
第二步:声明一个双精度型常量KILOMETERS_PER_MILE,初始值为1.609。
第三步:声明一个双精度型变量kilometers,将miles和KILOMETERS_PER_MILE相乘,并且将结果赋值给kilometers。
第四步:在控制台显示kilometers。
在第四步之后,kilometers是多少?
public class ComputeAreaWithConstant {
public static void main(String[] args) {
double miles = 100.0;
final double KILOMETERS_PER_MILE = 1.609;
double kilometers = miles * KILOMETERS_PER_MILE;
System.out.println(kilometers);
}
}
显示160.9
2.10 找到最大和最小的byte, short, int ,long , float 以及double。这些数据类型中,哪个需要的内存最小?
最小的byte: -2^7
最大的byte: 2^7 - 1
最小的short: -2^15
最大的short: 2^15 - 1
最小的int: -2^31
最大的int: 2^31 - 1
最小的long: -2^63
最大的long: 2^63 - 1
最小的float: -3.4028235E+38
最大的float: 3.4028235E+38
最小的double:-1.7976931348623157E+308
最大的double: 1.7976931348623157E+308
byte内存最小。
2.11 给出以下求余计算的结果。
56 % 6 = 2
78 % -4 = 2
-34 % 5 = -4
-34 % -5 = -4
5 % 1 = 1
1 % 5 = 0
假设今天是周二,100天后将是周几?
(2 + 100) % 7 = 4
周四
2.13 25/4的结果是多少? 如果你希望得到浮点数结果,如何重写表达式。
6
25.0 / 4
2.14 给出以下代码的结果:
System.out.println(2 * ( 5 / 2 + 5 / 2));
System.out.println(2 * 5 / 2 + 5 / 2);
System.out.println(2 * ( 5 / 2));
System.out.println(2 * 5 / 2);
8
7
4
5
2.15 下面的语句正确吗?如果正确的话,给出输出。
System.out.println("25 / 4 is " + 25 / 4);
System.out.println("25 / 4.0 is " + 25 / 4.0);
System.out.println(“3 * 2 / 4 is " + 3 * 2 / 4);
System.out.println("3.0 * 2 / 4 is " + 3.0 * 2 / 4);
25 / 4 is 6
25 / 4.0 is 6.25
3 * 2 / 4 is 1
3.0 * 2 / 4 is 1.5
2.16 写一个显示2^3.5的计算结果的语句。
a = Math.pow(2, 3.5)
2.17 假设m和r是整数。编写一个java表达式,使得mr^2可以得到一个浮点数类型的结果。
double result = m * r * r;
2.18 在float和doubel类型的变量中保存了多少个精确位?
float保存了7到8位
double保存了15到17位
2.19 以下哪些是正确的浮点数类型直接量?
12.3(是), 12.3e+2(是), 23.4e-2(是), -334.4(是), 20.5(是), 39F(不是), 40D(不是)
2.20 以下哪些和52.534是等价的?
5.2534e+1, 0.52534e+2, 525.34e-1, 5.2534e+0
前三个等价,最后一个不等价
2.21 以下哪些是正确的直接量?
5_2534e+1, 2534, 5_2, 5_
前三个正确,最后一