Java语言程序设计基础篇(第十版 梁勇著)课后习题答案 - 第二章

本文详细解答了Java语言程序设计基础的第二章课后习题,涉及Java语法、数据类型、变量、常量、运算符、输入输出等方面,通过实例解析错误、编写代码和算法转换,帮助读者巩固基本程序设计概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第二章:基本程序设计

复习题

2.1 指出并修改以下代码中的错误:

public class Test {
   
    public void main(String[] args) {
   
        double i = 50.0;
        double k = i + 50.0;
        double j = k + l;

        System.out.println("j is " + j + " and k is " + k);
    }
}

解:
主方法缺少关键字static;l改为i
正确格式如下:

public class Test {
   
    public static void main(String[] args) {
   
        double i = 50.0;
        double k = i + 50.0;
        double j = k + i;

        System.out.println("j is " + j + " and k is " + k);
    }
}

2.2 如何编写一条语句,让用户从键盘输入一个双精度值?在执行下面代码的时候,如果你输入5a,将发生什么?

double radius = input.nextDouble();

解:
输入5a的时候,会报错 InputMismatchException
代码如下:

public class Test2_2 {
   
    public static void main(String[] args) {
   
        Scanner input = new Scanner(System.in);
        System.out.println("请输入双精度值:");
        double radius = input.nextDouble();
        System.out.println(radius);
    }
}

2.3 下面两个import语句之间有什么执行的不同吗?

import java.util.Scanner;
import java.util.*;

解:
第一行只会导入until下的Scanner类,第二行会导入Util下的所有的类。

2.4 以下标识符哪些是合法的?哪些是Java的关键字?
miles,Test,a++,–a,4#R,KaTeX parse error: Expected 'EOF', got '#' at position 3: 4,#̲44,apps class,p…组成,其中只有由字母、下划线、$作为开头,且不能由关键字作为标识符;
所以不合法的标识符及其原因是:a++(有+),–a(有 -)、4#R(有#且以数字为开头)、#44(有 #);
合法的有:miles、Test、$4、apps
关键字有:class、public、int

2.5 指出并修改下面代码中的错误:

public class Test {
   
    public static void main(String[] args) {
   
        int i = k + 2;
        System.out.println(i);
    }
}

解:
变量k没有被赋值。

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。
解:
使用常量有三个好处:

  1. 不必重复输入同一个值;
  2. 如果必须修改常量值(例如,将PI的值从 3.14 改为 3.14159),只需在源代码中的一个地方做改动;
  3. 给常量赋一个描述性名字会提高程序易读性。
final int SIZE = 20;

2.8 类名、方法名、常量和变量的命名习惯是什么?按照Java的命名习惯,以下哪些项可以作为常量、方法、变量或者一个类?
解:

  1. 变量和方法名:使用小写字母命名。如果一个名字包含多个单词,就将它们连在一起,第一个单词的字母为小写,而后面的每个单词的首字母为大写。例如变量 radius 和 area 以及方法 print()。
  2. 类名:每个单词的首字母大写,例如,类名 ComputeArea 和 System。
  3. 常量:所有字母大写,并且两个单词间用下划线_连接,例如,常量 PI 和常量 MAX_VALUE。

2.9 将以下算法翻译成 Java 代码。
第一步:声明一个双精度型变量 miles,初始值为 100。
第二步:声明一个双精度型常量 KILOMETERS_PRE_MILE,初始值为 1.609。
第三步:声明一个双精度变量 kilometers,将 miles 和 KILOMETERS_PRE_MILE 相乘,并且将结果赋值给 kilometers。
第四步:在控制台显示 kilometers。
第四步之后,kilometers 是多少?
解:
代码如下

public class Test2_9 {
   
    public static void main(String[] args) {
   
        double miles = 100;
        final double KILOMETERS_PRE_MILE = 1.609;
        double kilometers = miles * KILOMETERS_PRE_MILE;
        System.out.println(kilometers);
    }
}

2.10 找到最大和最小的 byte、short、int、long、float 以及 double。这些数据类型中,哪个需要的内存最小?
解:
从大到小依次为:double > float > long > int > short > byte
各自所占字节大小为:8 字节、4字节、8字节、4字节、2字节、1字节
即 byte 需要的内存最小。

2.11 给出以下求余计算的结果。
56 % 6
78 % -4
-34 % 5
-34 % -5
5 % 1
1 % 5
解:
代码如下

public class Test2_11 {
   
    public static void main(String[] args) {
   
        System.out.println(56 % 6);
        System.out.println(78 % -4);
        System.out.println(-34 % 5);
        System.out.println(-34 % -5);
        System.out.println(5 % 1);
        System.out.println(1 % 5);
    }
}

结果如下
2,2,-4,-4,0,1

2.12 假设今天是周二,100天后将是周几?
解:
代码如下

public class Test2_12 {
   
    public static void main(String[] args) {
   
        System.out.println("是周" + (2 + 100) % 7);
    }
}

是周 4

2.13、25 / 4 的结果是多少?如果你希望得到浮点数结果,如何重写表达式?
解:
25 / 4 的结果是 6;想要得到浮点数结果的话,表达式应改为 25.0 / 4

2.14 给出以下代码的结果:

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

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 的计算结果的语句。
解:

Math.pow(2, 3.5);

2.17 假设 m 和 r 是整数。编写一个 Java 表达式,使得 mr^2 可以得到一个浮点数类型的结果。
解:

double result = m * r * r;

2.18 在 float 和 double 类型的变量中保存了多少个精确位?
解:
float保存了 7 到 8 位;double 保存了 15 到 17 位。

2.19 以下哪些是正确的浮点数类型直接量?
12.3、12.3e+2、23.4e-2、-334.4、20.5、39F、40D
解:
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
解:
前三个正确,最后一个错误。

2.22 如何在 Java 中表达以下算数表达式?
a.在这里插入图片描述
b.在这里插入图片描述
解:
表达式如下
a、

4 / 3 * (r + 34) - 9 * (a + b * c) + (3 + d * (2 + a)) / (a + b * d);

b、

5.5 *
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值