`
tntxia
  • 浏览: 1517867 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Bigjava 第四章 复习题

 
阅读更多

R4.1 用Java语言写出下面的数学表达式。

答:略

R4.2 用数学符号写出下面的Java表达式。

答:略

R4.3 指出如下二次方程式的错误

R4.4 举例说明整数溢出。若使用浮点数,该示例能正确计算吗?举例说明浮点的传入误差。若使用整数,该示例能正常计算吗?该练习应假设用足够小的单位表示值,如用美分而不是美元来表示,这样这些值就不会有小数部分。

答:可以。

R4.5 编写一个测试程序,以执行下面的语句:

CashRegister register = new CashRegister();
register.recordPurchase(19.93);
register.enterPayment(20,0,0,0,0);
System.out.println("Change="+register.giveChange());

结果是0.070000000000000000000000000000028,解释其原因。给出改进程序的建议,以便用户不会对输出感到迷惑不解。

答:浮点数的问题

R4.6 解释n=(int)x;

n=(int)Math.round(x);当x为何值时,两个表达式的结果相同?当x为何值时,两个表达式的结果不同?

答:当x的小数位小于0.5时,两个表达式的结果相同

R4.7 解释n=(int)(x+0.5);

n=(int)Math.round(x);当x为何值时,两个表达式的结果相同?当x为何值时,两个表达式的结果不同?

答:两个表达式的结果总相同

R4.8 解释2,2.0,'2',"2"和"2.0"之间的差异

答:2是整型,2.0是浮点型,'2'是字符型,"2"和"2.0"是字符串

R4.9 解释下面两个程序各自计算什么?

x=2;

y=x+x;

 

 

s="2";

t=s+s;

答:两个数字相加和两个字符串的拼接

R4.10 未初始化的变量可能是个严重问题。应该用0初始化每个变量吗?解释这么做的优缺点。

答:每个都初始化为0会浪费系统的性能

R4.11 判断对错(x是int型变量,s是String变量)。

a. Integer.parseInt(""+x)与x相同

b.""+Integer.pauseInt(s)与s相同

c.s.substring(0,s.length())与s相同

答:都对

R4.12 怎样获得字符串的第一个字符?怎样获得最后一个字符?怎样删除第一个字符?怎样删除最后一个字符?

答:s.substring(0,1),s.substring(s.length()-1,s.length()),s=s.substring(1,s.length()),s=s.substring(0,s.length()-1)

R4.13 怎样获得整数的最后一位数?怎样获得整数的第一位数?也就是说,若n为23456,怎样找出第一位数2和最后一位数6呢?不要将数字转换成字符串.提示%,Math.log

答:(int)(23456/Math.pow(10, (int)Math.log10(23456)))和23456%10;

R4.14 本章有几个涉及变量和常数使用的建议,这些建议是为了使程序更容易阅读和维护而提出的。请总结这些建议。

答:使用具体变量,常数全部用大写

R4.15 什么是final变量?不提供初值能定义final变量吗?(试一试)

答:不能

R4.16 下面这些表达式的值是什么?每行都假设

double x = 2.5;

double y = -1.5;

int m = 18;

int n=4;

String s = "Hello";

String t = "World";

 

a. x + n*y - (x+n)*y;

b.m/n +m%n;

c.5*x -n/5;

d. Math.sqrt(Math.sqrt(n));

c.(int)Math.round(x)

f.(int)Math.round(x)+(int)Math.round(y)

g.s+t;

h.s+n;

i.1-(1-(1-(1-(1-n))))

j.s.substring(1,3)

k.s.length()+t.length();

答:略

 

0
8
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics