《Java黑皮书基础篇第10版》 第2章【习题】

第二章

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)49(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} 2ab+

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值