收藏 分享(赏)

自考教材《java语言程序设计(一)》第二章习题解答.doc

上传人:dreamzhangning 文档编号:2738848 上传时间:2018-09-26 格式:DOC 页数:12 大小:150.86KB
下载 相关 举报
自考教材《java语言程序设计(一)》第二章习题解答.doc_第1页
第1页 / 共12页
自考教材《java语言程序设计(一)》第二章习题解答.doc_第2页
第2页 / 共12页
自考教材《java语言程序设计(一)》第二章习题解答.doc_第3页
第3页 / 共12页
自考教材《java语言程序设计(一)》第二章习题解答.doc_第4页
第4页 / 共12页
自考教材《java语言程序设计(一)》第二章习题解答.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、1第二章习题解答2.1 Java 的字符能参加算术运算吗?可以。(1)字符与整型数据运算,结果为整型数据,只能附给整型变量,如果附给字符型变量会损失精度,需要强制类型装换; (2)字符与字符运算,结果为字符型数据,可以直接附给字符型或整型变量。2.2 占字节多的变量能直接赋值给占字节少的变量么? 答:不能直接赋值,需要强制类型转换。2.3 试用 Java 语言表达式描述以下数学计算式或逻辑条件:1)3)4(rV解:V = (4.0/3)*Math.PI*Math.pow(r,3);2) )12R解:R = 1.0 / (1.0/R1+1.0/R2);3) 635xy解:y = Math.pow

2、(x,5) + Math.pow(x,3) + 6;4)21MF解:F = 1.0 * M1 * M2 / (R * R);5) |cos|/sinxax解:Math.sin(x) / a * x + Math.abs( Math.cos( * x / 2) );6)0 0 解:x=18; y=0; (循环体总共执行 8 次)52.10 水仙花数是一个 n(=3)位数字的数,它等于每个数字的 n 次幂之和。例如 153 是一个水仙花数,3351。试编写一个程序,求小于 999 的所有水仙花数。分析:先用 for 循环将数 n 有各位取出来,再进行计算。此为本题关键!思考:能否用 while 循

3、环?解法 1 与解法 2 哪种通用性强?解法1public class Xt210_1 public static void main(String args) int i,a,b,c;for(i=100; i 0)/ 通过循环得到m 每个位上的数,存到数 组中aamount = m % 10;/取余数m = m / 10;/整除10amount+;int sum = 0;for (int j = 0; j 1e-6)/不定次数循环,最后一项小于1e-6时停止循环s=1.0/m;/使用1.0做分子是因为s的数据类型为双精度浮点数,如果只写1,则 此处的值将为整数,不合题目要求8e+=s;/每次

4、求和送变量en+;/n每次自增1m*=n;/计算阶乘,此处是采用累乘的方式获得阶乘,为下一次循环计算s的值做好准备,注意学习此技巧 System.out.println(“自然对数底e的近似值为:“+e+“,精度为0.000001,最后一项为“1/“+n-1+“ !”“ );/注意为什么 n要减1?运行结果自然对数底 e 的近似值为:2.7182818011463845,精度为 0.000001,最后一项为“1/10!”解法 2:使用专门的函数计算数的阶乘,在主函数中调用此函数public class Xt212_2 public static void main(String args) /

5、主函数int n=1;double s=1.0,e=1.0;while (s1e-6)s=1.0/factorial(n);/调用计算阶乘的函数factoriale+=s;/将每次项进行累加送变量e中n+;System.out.println(“自然对数底e的近似值为:“+e+“,精度为0.000001,最后一项为“1/“+n-1+“!”“);/注意为什么 n要减1?static double factorial(int a)/计算阶乘的函数,要求很熟练地使用double f = 1.0;for (int j = 1; j args_v)/使用不定次数的循环,循环检测条件为计算的项的值大于控制

6、精度temp=4.0/n;/temp存储每项运算结果pi+=sign*temp;/计算各项值并累加后送pi变量中n+=2;/保持n值为奇数:3,5,7,(在第一次循环中n值为1)sign=-sign;/每次更改符号loop+;/记录循环次数,即计算的项数System.out.print(pi_args+“是计算“+loop+“项后的结果,“);/输出循环次数即计算项数return pi;/返回函数值给调用者运行结果3.14是计算624项后的结果,四舍五入前的值为3.13999009051615863.141是 计算1686项后的结果,四舍五入前的值为3.14099953383175423.14

7、15是计算10782项后的结果,四舍五入前的值为3.14149990641877033.14159是计算375434项后的结果,四舍五入前的值为3.14158999000573542.14 回文整数是指正读法和反读相同的整数,编写一个程序,输入一个整数,判断他是否为回文整数。分析:本题的关键在判断回文数的方法。可以用循环不断对 10 取方法得到各位上的数字和该数的总位数,并将各位上的数存入数组中,为后面判断是否回文作铺垫,循环的维持条件是不断整除 10 且结果不为0,要注意记录下循环次数,此次数就是要判断的数的位数。再以此位数作为循环次数,在循环中对数组进行检测看是否是回文数。以上工作可以放在

8、一个函数中做。此外,还应像 2.10 题那样对用户输入的要判断的数进行合法性检查。import javax.swing.JOptionPane;10public class Xt214 public static void main(String args) int x;boolean yesno;String result=(String)JOptionPane.showInputDialog(null,“请输入一个大于等于1 的正整数“,“ 输入对话框“,JOptionPane.PLAIN_MESSAGE,null,null,null );try /使用异常处理测试输入的数是否合法x =

9、Integer.parseInt(result);/将输入字符串 转换为整数catch( NumberFormatException e ) JOptionPane.showMessageDialog(null, “输入非法字符,程序结束“ ,“错误警告“, JOptionPane.ERROR_MESSAGE);return;if (x 0) / 不定次循环把整数的各个位上的数存到数组里ai = test % 10;/对10取余数test = test / 10;/整除10i+;/ 累计整数位数for (int j = 0; j i; j+)11if (aj != ai - j - 1)/ 有

10、对应不相等的,肯定不是,直接跳出并返回falsereturn false;return true;/ 如果一直相等,则if 里边的语 句不能被执行,返回true2.15 草地上有一堆野果,有一只猴子每天吃掉这堆野果的一半又一个,5 天后刚好吃完这堆野果,求这堆野果原来共有多少个?猴子每天吃多少个野果?分析:问题的关键在于找到这样一个整数 n,它满足这样的条件:for 循环 5 次执行表达式“n-(n/2+1)”后,表达式的值为 0。如何找?我们可以从 1 开始,不断让其自增 1,进行试验就行了。用不定次循环,试验到满足条件后,就停止,并输出该数。与此同时,再用该数计算第几天猴子吃了多少个野果。

11、public class Xt215 public static void main(String args) int i=0,test,j;/注意体会i的初值为什么是0,如果改 为1,则循环应怎样改?do/此循 环实际上是从1开始穷举每个数字i来试验是否能让猴子在5天刚好吃完,如果是,则i就是野果数i+;/请回答为什么要进行自增运算(注意与其初值的赋值相联系) ,如果把村条语句放到for循环的后面,会发生什么样的错误?test=i;for(j=1;j=5;j+)/循环5次表示吃了5天test=test/2-1;/每天吃一半多一个,则 剩下的为一半少一个while(test!=0);/如果吃完了,则停止循环System.out.println(“野果总数为:“+i);/下面的代码是根据已经求出的i来计算猴子5天中每天吃了多少野果for (j=1;j=5;j+)int temp;/定义变量temp,存储每天吃的野果数temp=i/2+1;/每天吃了一半多一个i=i/2-1;/每天剩下的野果数System.out.println(“猴子第“+j+ “天吃了“ +temp+“只野果“);运行结果野果总数为:62猴子第1天吃了32只野果猴子第2天吃了16只野果猴子第3天吃了8只野果12猴子第4天吃了4只野果猴子第 5 天吃了 2 只野果

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 自考

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报