Java语言程序设计(第三版)第二章课后习题答案(仅供参考)

2.1   注意不同类型转换

1 import java.util.Scanner;
2
3 public class Ch02 {
4     public static void main(String[] args) {
5         Scanner sc = new Scanner(System.in);
6         double f = sc.nextDouble();
7         double t = (5.0/9)*(f-32);   //  注意 (5/9) 结果为 整形 要写成 (5.0/9)
8         System.out.println(t)
9 }

2.2

 1 import java.util.Scanner;
 2
 3 public class Ch02 {
 4     public static void main(String[] args) {
 5         Scanner sc = new Scanner(System.in);
 6         System.out.println("请输入圆柱体半径和高:");
 7         double r = sc.nextDouble();
 8         double h = sc.nextDouble();
 9         double v = Math.PI * r * r * h;  //圆周率方法  Math.PI
10         System.out.println(v);
11 }

2.3

 1 import java.util.Scanner;
 2
 3 public class Ch02 {
 4     public static void main(String[] args) {
 5         Scanner sc = new Scanner(System.in);
 6         System.out.println("请输入体重和身高:");
 7         double g = sc.nextDouble();
 8         double h = sc.nextDouble();
 9         double BMI = g / (h * h);
10         System.out.println(BMI);
11 }

2.4  使用 循环 每次对 个位 取数相加 取数后 除以10 使前一位 变为 个位 继续 判断小于等于0时停止

 1 import java.util.Scanner;
 2
 3 public class Ch02 {
 4     public static void main(String[] args) {
 5         int sum = 0;
 6         Scanner sc = new Scanner(System.in);
 7         int num1 = sc.nextInt();
 8         while (num1 > 0)        // 与 0 比较 判断 是否 需要 取数
 9         {
10             sum += (num1%10);   // 通过取余  获得个位数字
11             num1 /= 10;         // 每次取余后 除以10
12         }
13         System.out.println(sum);
14 }

2.5  注意 System.currentTimeMillis()方法 返回 long 形 需要转换为 int 形

 1 public class Ch02 {
 2     public static void main(String[] args) {
 3         // 通过 System.currentTimeMillis() 方法 获得 从1970年1月1日 00:00:00 到现在的 毫秒数
 4         // 28800000 是 格林时间 与 我们 时区 的 时间差值
 5         // 对 86400000 取余 是 把 满一天的时间都去掉 获取多出来的不足一天的时间
 6         int t = (int)((System.currentTimeMillis()+28800000)%86400000);
 7         int hour = t/3600000;               // 除 3600000 获取满小时的个数 即 求小时 为几点
 8         int mine = t%3600000/60000;         // 计算 不足一小时 的时间 里 有多少分钟
 9         int s = t%3600000%60000/1000;        // 计算不足一分钟的时间里 有多少秒  不要忘记 除以 1000 (因为 单位 为 毫秒)
10         System.out.println("当前时间: "+hour+":"+mine+":"+s+"  GMT");
11 }

2.6  a 不能为 0

  b2 - 4 * a * c  不能为 0

 1 import java.util.Scanner;
 2
 3 public class Ch02 {
 4     public static void main(String[] args) {
 5         double sum,a,b,c,t;
 6         Scanner sc = new Scanner(System.in);
 7         while (true) {
 8             a = sc.nextDouble();
 9             b = sc.nextDouble();
10             c = sc.nextDouble();
11             t = b*b-4*a*c;
12             if (a == 0) {
13                 System.out.println("a 不能为 0,请重新测试 ^_^");
14             } else if (t < 0) {
15                 System.out.println("b*b-4*a*c不能为0,请重新测试");
16             }
17             else
18             {
19                 break;
20             }
21         }
22         sum = ((-b+Math.sqrt(t)/(2*a)));     //( 2*a )  注意加括号
23         System.out.println(sum);

2.7  注意计算公式先后顺序  多使用小括号

 1 import java.util.Scanner;
 2
 3 public class Ch02 {
 4     public static void main(String[] args) {
 5         Scanner sc = new Scanner(System.in);
 6         double yrate = sc.nextDouble();
 7         double amount = sc.nextDouble();
 8         double year = sc.nextDouble();
 9         double month = (amount * (yrate/12))/(1-(1/Math.pow(1+yrate/12,year*12)));
10         double sumamount = month*12*year;
11         System.out.println("月支付金额:"+month+"\n总偿还金额:"+sumamount);
12 }

原文地址:https://www.cnblogs.com/yqcg/p/10865198.html

时间: 2024-08-29 09:10:24

Java语言程序设计(第三版)第二章课后习题答案(仅供参考)的相关文章

第二章课后习题答案

2.为方便储户,某银行拟开发计算机储蓄系统.储户填写的存款单或取款单由业务员输入系统,如果是存款,系统记录存款人姓名.住址.存款类型.存款日期.利率等信息,并印出存款单给储户:如果是取款,系统计算利息并印出利息清单给储户. 写出问题定义并分析系统的可行性. 答:如果是存款,储户填写存款单,然后交给业务员键入系统,同时系统还要记录存款人姓名.住址(或电话号码).身份证号码.存款类型.存款日期.利率等信息,完成后由系统打印存款单给储户. 如果是取款,储户填写取款单,然后交给业务员,业务员把取款金额输

Java高级程序设计第三版:基本概念

严格模式 ? 1 2 3 4 5 6 function fun(){   "use strict";  //启用严格模式,作用域函数  }   "use strict";  //全局 变量 变量定义需要用var,如果没有通过var定义的变量会由于相应变量不会马上有定义而导致不必要的混乱. 数据类型 5种基本数据类型:Undefined.Null.Boolean.NUmber.String 1种复杂数据类型:Object typeof 对未初始化的和未声明的变量执行t

《鸟哥linux》--第十一章课后习题答案

1.在linux上可以找到哪些shell?哪个档案记录可用的shell?儿linux预设的shell是? 1./bin/bash,/bin/tcsh,/bin/csh 2./etc/shells 3.bash,亦即是/bin/bash 2.在shell环境下,有个提示符(prompt),他可以修改吗?要改什么?默认的提示符内容是? 可以修改,改PS1变量,这个PS1的变量默认的内容为:[\[email protected]\h\W]\$ 3.如何显示HOME这个变量 echo $HOME 4.如

Python核心编程第三版第二章学习笔记

第二章 网络编程 1.学习笔记 2.课后习题 答案是按照自己理解和查阅资料来的,不保证正确性.如由错误欢迎指出,谢谢 1. 套接字:A network socket is an endpoint of a connection across a computer network,Sockets are often represented internally as simple integers, which identify which connection to use. 套接字是网络通信的

王爽《汇编语言》第三版 第二章 寄存器

CPU概述 一个典型的CPU由运算器.控制器.寄存器等器件组成,这些器件靠内部总线相连. 内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其它器件的联系. 8086CPU有14个寄存器 它们的名称为:AX.BX.CX.DX.SI.DI.SP.BP.IP.CS.SS.DS.ES.PSW. 2.1 通用寄存器 8086CPU所有的寄存器都是16位的,可以存放两个字节. 8086上一代CPU中的寄存器都是8位的: 为保证兼容性,这四个寄存器都可以分为两个独立的8位寄存器使用. 1.

第二章课后习题

1.简述Java中变量的命名规则. 变量命名规则 序号 条件 例如 1 变量必须以字母.下划线"_"或者或者"$"符号开头 _myCar scorel $score myCar_1 2 变量可以包扩数字,但是不能以数字开头 3 除了以"_"或"$"符号以外,变量名不能包括任何特殊字符 4 不能用Java语言中的关键字.如 int.class.public等 Java变量名的长度没有任何限制,但是Java语言区分大小写,所以gr

Java编程思想第四版第二章练习题答案

练习1:创建一个类,它包含一个int域和一个char域,它们都没有被初始化.将他们的值打印出来,以验证Java执行了默认初始化 public class JavaThinking { private static int i; private static char c; public static void main(String[] args){ System.out.println(i); System.out.println(c); //这里char的默认值为'\u0000'可以这样输出

Java语言程序设计(基础篇) 第四章 数学函数、字符和字符串

第四章 数学函数.字符和字符串 4.2 常用数学函数 方法分三类:三角函数方法(trigonometric method).指数函数方法(exponent method)和服务方法(service method) 4.4 String类型 String类型不是基本类型,而是引用类型(reference type).

汇编语言第三版 第二章 寄存器

问题1.8086CPU的地址总线为20bit,而数据总线为16bit--也就是说每次传输的数据为16bit,那么如何使用16bit的数据总线来实现20bit的地址总线的地址传输? 答:8086CPU使用两个16bit的地址合成一个20bit的物理地址. 16bit A: XXXX 16bit B: XXXX 20bit物理地址的合成 A *16 也就是将A(16进制表示的数值),向左移动一位,然后加上B.A * 16  +  B.物理地址 = 段地址 * 16 + 偏移地址 16bit A: X