Java语言程序设计(一)课后习题答案全集.pdf
《Java语言程序设计(一)课后习题答案全集.pdf》由会员分享,可在线阅读,更多相关《Java语言程序设计(一)课后习题答案全集.pdf(128页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、L 1指出J AV A语言的主要特点和J AV A程序的执行过程。答:(1)强类型;(2)编译和解释;(3)自动无用内存回收功能;(4)面向对象;(5)与平台无关;(6)安全性;(7)分布式计算;(8)多线程;程序执行过程如图所示:编写源文件,编译器编译源文件转换成字节码,解释器执行字节码。1.2 说出开发与运行J AV A程序的重要步骤。答:(1)编写源文件:使用一个文本编译器,如E d it或记事本,不可以使用Word.将编好的源文件保存起来,源文件的扩展名必须是.java;(2)编译Java源文件:使用Java编译器(javac.exe)编译源文件得到字节码文件;(3)运 行 J a v
2、 a 程序:Ja v a 程序分为两类一一J a v a 应用程序必须通过J a v a 解释器(java.exe)来解释执行其字节码文件;Jav a小应用程序必须通过支持Jav a标准的浏览器来解释执行。1.3 如何区分应用程序和小应用程序?答:应用程序在与源文件名字相同的类中,有main。方法,该方法代表应用程序的入口;小应用程序必须有一个Applet类的子类,该类称作主类,必须用public修饰。1.4说出J AV A源文件的命名规则。答:源文件命名规则和类命名规则一样,所有的单词首字母都用大写字母,且必须和源文件的public类同名。1.6 J AV A语言使用什么字符集?共有多少个不
3、同的字符?答:Java语言使用Unicode字符集,共有65535个字符。1.7 J AV A语言标识符的命名规则是什么?(D 由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字字符组成(2)限定标识符的第一个字符不能是数字字符(3)不能和关键字重名(4)长度不能超过255个字符1.8 J AV A有那些基本数据类型,它们的常量又是如何书写的?数据类型关键字字节数默认值常量举例范围逻辑类型布尔型boolean1falsefalse,truefalse,true字符型char20a,我,IT0 65535整数类型字节性byte1012,13,45-128 127短整型short2012
4、,13,45-32768 32767整型int8012,13,45-2E31 2E31-1长整型long8OL12L,13L,45L-2E63 2E63-1浮点类型单精度浮点float4OF12.345F,6.7891F-10E38-10E-3810E-38 10E38双精度浮点double80D12.345D,6.789ID-1OE3O8-10E-3081OE-3O8 10E3081.9指出下列内容哪些是JAVA语言的整型常量,哪些是浮点数类型常量,哪些两者都不是。整型常量:4)OxABCL,8)003,10)077,12)056L浮点数类型常量:3)-lE-31,5).32E31 13)0
5、.,14).0两者都不是:1),2),6),7),9),11)2第二章运算和语句2.1 J a v a的字符能参加算术运算吗?可以。(1)字符与整型数据运算,结果为整型数据,只能赋给整型变量,如果附给字符型变量会损失精度,需要强制类型装换;(2)字符与字符运算,结果为字符型数据,可以直接赋给字符型或整型变量。2.2 占字节多的变量能直接赋值给占字节少的变量么?答:不能直接赋值,需要强制类型转换。2.3 试用J a v a语言表达式描述以下数学计算式或逻辑条件:1)丫 =(4/3)乃 3解:V =(4.0/3)*M a t h.P I*M a t h.p o w(r,3);2)解:R =1.0
6、/(1.0/R 1+1.0/R 2);3)y=%+6解:y =M a t h.p o w(x,5)+M a t h.p o w(x,3)+6;4)F=M M lK解:F =1.0 *M l *M 2 /(R *R);5)s i n(x)/a x+1 c o 4;r x/2)|解:M a t h,s i n(x)/a *x +M a t h,a b s (M a t h,c o s (*x /2);6)0 a 0&a J a va d oc|D e cla ra ti on 里 C onsole 笈 te rmi na te d C h a pte rO l J a va A ppli ca t
7、i on C:P rogra m F i l6 的因子有:1+2+32 8 的因子有:1+2+4+7+1 44 96 的因子有:1+2+4+8+1 6+3 1+6 2+1 2 4+2 4 81 O O O 以内,完全数有:6.2 8,4 96/*a u t h o r 段智敏*/pub li c cla ss Work2_6 pub li c sta ti c voi d main(String args)String resultstring=1000以内,完全数有:,最后结果字符串for(i nt i=1;i=1000;i+)i f(isPerfectNumber(i)resultstri
8、ng+=i+”,n;)System.out.printin(resultstring);)pri va te sta ti c b oole a n isPerfectNumber(i nt number)i nt sum=0;/因子的和String str=ne w String(,n);for(i nt i=1;i number;i+)i f(number%i=0)sum+=i;str+=i+)i f(sum=number)/如果因子之和,等于本身,则是完数str=str.substring(0,str.length()-1);/去掉字符串最后一,个多余的 +;System,out.pri
9、ntIn(number+”的因子有:+str);re turn true;)re turn fa lse;2.7编 写 输 入 正 实 数x,求 平 方 不 超 过x的 最 大 整 数n,并 输 出。程序运行结果:请输入正实数X:5 1 d a d 蟹3岁X:“限 非 法 字 部 程 序 结 束!I I平方不超过3 的最大整数,n 1。,请输入正实数X:-4 5 1 5输人的数不是正实数,程序结束!4第一种命令行方式输入import java.util.Scanner;/*编写输入正实数x,求平方不超过x的最大整数n,并输出。*命令行方式,输入正实数,输出结果*author段智敏*/publi
10、c class Work2_7_l(public static void main(String args)Scanner consolescanner=new Scanner(System.in);System.out.print(”请输入正实数 X:n);String str=consolescanner.next();int number=-1;trynumber=Integer.parselnt(str);)catch(NumberFormatException e)System.out.println(输入非法字符,程序结束!”);return;if(number 1)System.
11、out.printin(输入的数不是正实数,程序结束!”);else(int n=(int)(Math.sqrt(number);System.out.printIn(平方不超过+number+”的最大整数,n=H+n+)第二种窗I I方式输入运行结果如下图:/*编写输入正实数X,求平方不超过X的最大整数n,并输出。*弹出窗口方式*author段智敏*/import javax.swing.JOptionPane;public class Work2_7_2(private int number;public Work2_7_2()(number=this.getlntegerNumber(一
12、 个正实数”,if(number 1)1);5return;/非法,程序结束int n=(int)(Math.sqrt(number);showResuIt(平方不超过”+number+”的最大整数 1 1 1 1 =+n+;)/*通过图形界面,得到符合规则的正整数的方法*param message-在弹出的对话框中,显示提示信息message*param min-要求此数必须大于等于min*/public int getlntegerNumber(String message,int min)(String str=JOptionPane.showInputDialog(null,”请输入一
13、个正整数“提示信息”,JOptionPane.INFORMATION_MESSAGE);int number=-1;try(number=Integer.parselnt(str);/得 至 U输入的正整数)catch(Exception e)(JOptionPane.showMessageDialog(nullr”输入非数字字符n 程序结束”错误警告”,JOptionPane.ERROR_MESSAGE);return-1;/输入的不是数字字符,程序结束)if(number min)JOptionPane.showMessageDialog(nullr”输入的数不符合规则,不是正整数 程序结
14、束”,“错误警告”,JOptionPane.ERROR_MESSAGE);return-1;/输入的薮不是大于2 的正整数时候,程序结束)elsereturn number;/*弹出对话框,显示结果*param str-需要显示的字符串*/public void showResult(String str)(JOptionPane.showMessageDialog(nullf str,”输出结果”,JOptionPane.IN FORMAT I ON_MES SAGE);)public static void main(String args)(new Work2_7_2();62.8输入正
15、整数n,输出由n行n列星号字符组成的三角形图案。程序运行结果:请输入正整数n:二*源代码文件:Work2_8.javaimport java.util.*;/*输入正整数n,输出由n 行 n 列星号字符组成的三角形图案。*author段智敏*/public class Work2_8(public static void main(String args)(Scanner consolescanner=new Scanner(System.in);System.out.print(“请输入正整数 n:;String str=consolescanner.next();int n=-1;tryn
16、=Integer.parselnt(str);)catch(NumberFormatException e)System.out.printin(输入非法字符,程序结束!”);return;if(n 1)System.out.print In(输入的数不是正实数,程序结束!else(for(int i=0;in;i+)(for(int j=0;jn-i-l;j+)(System.out.print(”H);for(int k=0;ki+l;k+)(System.out.print(H*);System.out.printIn();)72.9设有整型变量x和y的值分别为5和110。试指出执行了以
17、下循环语句后,变量x和y的值分别多少?1)wh i le(x=1);解:x=1 8;y=0;2.10求小于999的所有水仙花数。程序运行结果:_Problems Javadoc 圉 Declaration 曰 Console 汉 口 Properties(terminated ChapterOl Java Application C:Program FilesJavajdkl.6.11000之前的所宥水仙花数有:153 370 371 40源代码文件:Work20.java/*求小于999的所有水仙花数*author段智敏*/public class Work2_10(public stati
18、c void main(String args)String resultstring=new String(”1000之前的所有水仙花数有:);/用来存结果的字符串for(int i=100;i 0)/通过循环得到m每个位上的数,存到数组中aamount=m%10;m=m/10;amount+;)int sum=0;for(int j =0;j amount;j+)/累加每位上的数的位数次方8su m +=M a th.pow(a j,a m ou nt);)if(nu m b er=su m)/如果累加的和等于这个数本身,则他是水仙花数,返回真return true;return fals
19、e;)2.1 1 编程序解百鸡问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡。求鸡翁、鸡母和鸡雏各几何?程序运行结果:鸡翁:0;鸡母:25;鸡雏:75鸡翁:4;鸡母:18;鸡雏:78鸡翁:8;鸡母:11;鸡雏:81鸡翁:12;鸡母:4;鸡雏:84源代码文件:Work 2l.j a v a/*鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。*百钱买百鸡。求鸡翁、鸡母和鸡雏各几何。*author段智敏/public class Work 2_l l(public static void m a in(S tring a rgs)(for(int i=0;i =1 0 0;i+)(
20、for(int j =0;j =1 0 0;j +)(for(int k =0;k =1 0 0;k +=3)/鸡雏的个数必须使3 的倍数(if (5*i+3*j+k/3)=1 0 0)&(i+j +k =1 0 0)S y stem,ou t.printI n(:n+i+n;鸡母:+j +H;鸡雏:”+k);)2.12 编 写 程 序,按 下 面 的 公 式 计 算 自 然 对 数 底 e的值:e=l+l/l!+1/2!+1/3!+1/4!+.*按公式计算:e=l +l/l!+l/2!+l/3!+l/4 !+.*author段智敏*/public class Work 2_1 2(publi
21、c static void m a in(S tring a rgs)9int n=1000;/计算精度double e=1.0;for(int i=1;i=n;i+)e=e+1.0/Work2_12.fa c to r ia l(i);)System.o u t.p r in tI n(ne=+e);)/*计算阶乘的静态方法*param-需要计算阶乘的数*return-最后结果*/static double f a c to r ia l(int a)(double f=1.0;for(int j=1;j=a;j+)f=f*j;return f;2.1 3 编 写 程 序,用 如 下 公 式
22、 计 算 圆 周 率 PI的 近 似 值:P I =4-4/3+4/5-4/7+4/9-4/1 1.程序运行结果:计算1000000项后圆周率的近似值为3.14159365359077423.14是第6290项,值 为:3.14000029791128873.141 是第 1689 0项,值 为:3,1410002365801593.1415是第10795 0项,值 为:3,14150000952846583.14159是第376851 0项,值 为:3.1415900000140544源代码文件:Work2_13.java*圆周率计算*author段智敏public class Work2_
23、13public static void m ain(S tring a rg s)int num=1000000;/控制计算的项数,越高,越准确System.out.p rin tln (”用公式计算圆周率,n计算”+num+”项后圆周率的近似值为“+Work2_13.g e tP a i(num);System.out.p rin tIn (n3.14+Work2_13.g etlndex(3.14)+“项,t t值为:”+Work2_13.getP ai(Work2_13.g etln d ex(3.1 4);System,out.p rin tin (n3.141+Work2_13.g
24、etlncfex(3.141)+“项,t值为:”+Work2_13.getP ai(Work2_13.g etln d ex(3.1 4 1);System.out.p rin tln (3.1415 是 第 +Work2_13.g etln d ex(3.1415)+”10项,t值为:”+Work2_13.get Pai(Work2_13.getlndex(3.1415);System,out.println(3.14159 是第”+Work2_13.getlndex(3.14159)+”项,t值为+Work2_13.getPai(Work2_13.getlndex(3.14159);/*根
25、据给出的数值,得到需要计算多少项才能得到这个数值*param9-数值*return 一 项数*/public static double getlndex(double p)(int r=1,num=1000000;/控制计算的项数,越高,越准确double i=1.0,pai=00,t=1.0;while(r=p&pai=(p+0.000001)break;)return r;)/*根据给出的数,按公式进行计算圆周率*param num-公式项数*return返回按公式计算出的圆周率*/public static double getPai(double num)(int r=1;doubl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言程序设计 课后 习题 答案 全集
限制150内