第二章
2.2习题
指出并修改以下代码中的错误:
public class Test{
public void main(string[] args){
double i = 50.0;
double k = double i + 50.0;
double j = k + 1;
System.out.println("j is " + j + " and
k is " + k);
}
}
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.3习题
如何编写一条语句,让用户从键盘输人一个双精度值? 在执行下面代码的时候,如果你输入5a, 将发生什么?
将发生一个运行时错误
下面两个import语句之间有什么执行的不同吗?
Import java.util.Scanner;
Import java.util.*;
.Scanner是明确导入,导入util包中Scanner类;.*是通配符导入,导入util包中所有的类
2.4习题
以下标识符哪些是合法的?哪些是Java的关键字?
合法的:miles、Test、$4、x、y、radius、apps
非法的:a++、–a、4#R、#44、int
关键/保留字:class、public
2.5习题
请指出并修改下面代码中的错误:
int i = k + 2;
System.out.println(i);
int k = 0;
int i = k + 2;
System.out.println(i);
2.6习题
请指出并修改下面代码中的错误:
int i = j = k = 2;
int j;
int k;
int i = j = k = 2;
2.8习题
使用常量的好处是什么? 声明一个int类型的常量SIZE, 并且值为20。
可以不必频繁的写数值,代码改动只需修改一处
final int SIZE = 20;
类名、方法名、常量和变量的命名习惯是什么? 按照Java的命名习惯,以下哪些项可以作为常量、方法 、变量或者一个类?
类名:每个单词首字母大写,直接连接
变量和方法:第一个单词小写,后面每一个单词首字母大写,直接连接
常量:全部大写,下划线连接
类名:Test
变量和方法:read、readDouble
常量:MAX_VALUE
将以下算法翻译成Java代码
第一步:声明一个双精度型变量miles, 初始值为100
第二步:声明一个双精度型常量KILOMETERS_PER_MILE, 初始值1.609
第三步:声明一个双精度型变量kilometers, 将miles和KILOMETERS_PER_MILE相乘,并且将结果赋值给 kilometers
第四步:在控制台显示 kilometers
第四步之后,kilometers 是多少?
public class Main{
public static void main(String[] args){
double miles = 100;
final double KILOMETERS_PER_MILE = 1.609;
double kilometers = miles * KILOMETERS_PER_MILE;
System.out.print(kilometers);
}
}
160.9
2.9习题
找到最大和最小的byte、short、int、long、float以及double。这些数据类型中,哪个需要的内存最小?
byte需要的内存最小
给出以下求余计算的结果。
相对简单
假设今天是周二,100天后将是周几?
(2 + 100)% 7 = 2,所以是星期4
25/4的结果是多少? 如果你希望得到浮点数结果,如何重写表达式?
6,需要将至少一个数字改成浮点数
给出以下代码的结果:
System.out.println(2 * (5 / 2 + 5 / 2));
System.out.println(2 * 5 / 2 + 2 * 5 / 2);
System.out.println(2 * (5 / 2));
System.out.println(2 * 5 / 2);
8
10
4
5
下面的语句正确吗? 如果正确的话,给出输出
System.out.printIn("25 / 4 is " + 25 / 4);
System.out.printIn("25 / 4.0 is " + 25 / 4.0);
System.out.println("3.0 * 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.0 * 2 / 4 is 1
3.0 * 2 / 4 is 1.5
写一个显示 2 3.5 2^{3.5} 23.5的计算结果的语句
public class Main{
public static void main(String[] args){
System.out.println(Math.pow(2, 3.5));
}
}
假设m和r是整数。编写一个Java表达式,使得 m r 2 mr^2 mr2可以得到一个浮点数类型的结果
public class Main{
public static void main(String[] args){
//已经指定了double,进行运算的结果是小数
//没有变量,直接打印结果,必须至少有1位是小数,结果才是小数
double m = 1;
double r = 2;
System.out.print(m * r * r);
}
}
4.0
2.10习题
在float和double类型的变量中保存了多少个精确位?
float中有7-8小数位,double有15-17小数位
以下哪些是正确的浮点数类型直接量?
全都是 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
哪些是正确的直接量?
正确:
5.2534e+1,
5_2
错误:
_2534,
5_
2.11习题
如何在 Java 中表达以下算术表达式?
4 3 ( r + 34 ) − 9 ( a + b c ) + 3 + d ( 2 + a ) a + b d \frac{4}{3(r + 34)} - 9(a + bc) + \frac{3 + d(2+a)}{a+bd} 3(r+34)4−9(a+bc)+a+bd3+d(2+a)
$5.5 $ x $ (r+2.5)^{2.5 + t}$
public class Main{
public static void main(String[] args){
int a;
int b;
int c;
int d;
int r;
int t = a = b = c = d = r = 1;
System.out.println(4/(3 * (r+34)) - 9 * (a + b * c) + (3 + d * (2 + a)) / (a + b * d));
System.out.print(5.5 * Math.pow(r + 2.5, 2.5 + t));
}
}
-15
441.164791259315
2.12 习题
public class Main{
public static void main(String[] args){
//读取当前毫秒时间
long totalMilliseconds = System.currentTimeMillis();
//计算总秒数
long totalSeconds = totalMilliseconds / 1000;
//计算当前秒数
long currentSeconds = totalSeconds % 60;
//计算总分钟数
long totalMinutes = totalSeconds / 60;
//计算当前分钟数
long currentMinutes = totalMinutes % 60;
//计算总小时数
long totalHours = totalMinutes / 60;
//计算当前小时数
long currentHours = totalHours % 24;
System.out.print("The current time is " + currentHours + ":" + currentMinutes + ":" + currentSeconds);
}
}
2.13习题
给出以下代码运行的结果:
double a = 6.5;
a = a+1;
System.out.println(a);
a = 6;
a /= 2;
System.out.println(a);
7.5
3.0
2.14习题
下面的说法哪个为真?
a.任何表达式都可以用作一个语句。
b.表达式 x++ 可以用作一个语句。
c.语句x = x + 5也是一个表达式
d.x = y = x = 0是非法的。
a、b、c正确,d是合法的
给出以下代码的输出
public class Main{
public static void main(String[] args){
int a = 6;
int b = a++;
System.out.println(a);
System.out.println(b);
int c = 6;
int d = ++c;
System.out.println(c);
System.out.println(d);
}
}
7
6
7
7
2.15习题
在一次计算中,各种类型的数值可以一起使用吗?
可以
将一个double类型数值显式类型转换为int时,是如何处理double值的小数部分的? 类型转换改变被类型转换的变量吗?
直接抹去小数部位;不改变
给出以下代码片段的输T出:
float f = 12.5F;
int i = (int)f;
System.out.println("f is " + f);
System.out.println("i is " +i);
f is 12.5
i is 12
给出以下代码的输出:
double amount = 5;
System.out.println(amount / 2);
System.out.println(5 / 2);
2.5
2
2.16习题
如何编写下面的数学表达式的代码?
− b + b 2 − 4 a c 2 a \frac{-b + \sqrt{b^2 - 4ac}}{2a} 2a−b+