2022年Java语言程序设计课后习题答案 .pdf
《2022年Java语言程序设计课后习题答案 .pdf》由会员分享,可在线阅读,更多相关《2022年Java语言程序设计课后习题答案 .pdf(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java语言程序设计(一)课后习题答案1 第一章 Java 语言基础指出 Java 语言的主要特点和ava 程序的执行过程。答:强类型。编译和解释。自动无用内存回收功能。面向对象。与平台无关。安全性。分布式计算。多线程。2.说出开发与运行Java 程序的主要步骤。答:安装SUN 的 JDK,配置 classpath 编写源文件。编译。运行。3.如何区分应用程序和小应用程序。答:应用程序必须在一类中定义一个main()方法,该方法代表应用程序的入口。小应用程序不必定义main()方法,但是必须继承applet 类。4.说出 Java 源文件的命名规则。答:和类命名规则一样,首字母大写。5.选择一
2、种上机环境,参照实例,编写一个输出“hello world !” 字样的 Java 程序。答:选择SUN 的 IDE,用 UltraEdit-32 编写如下:/HelloWorld.java /* * 这是第一个程序 *author 饶林*see */ classHelloWorld public static void main(String args) System.out.println( Hello World! ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,
3、共 42 页 - - - - - - - - - Java语言程序设计(一)课后习题答案2 6.Java 用什么字符集?共有多少个不同的字符?答: Java语言使用Unicode 字符集,共有65535 个字符。7.Java 语言标识符的命名规则是什么?答:由字母(包括英文字母、下划线、美元字符、文字字符)和数字字符组成。限定标识符的第一个字符不能是数字。8.Java 有哪些基本的数据类型,它们的常量又是如何书写的?答:基本的数据类型也称为原始数据类型,是系统预先规定的一些常用类型。它们是:整数类型、浮点数(实数)类型、字符(文字)类型、逻辑类型(布尔型)。9.指出下列内容那些事Java 语言
4、的整形常量,哪些是浮点数类型常量,那些两者都不是?1)E-4 2) A423 3)-1E-31 4)0 xABCL 5).32E31 6)087 7)0 x L 8)003 9)0 x12.5 10)077 11)11E 12)056L 13)0. 14).0 答:整形常量:4,5,6, 8,10, 12 浮点型: 1,3,9,13,14 两者都不是:2,7,11 第二章运算和语句1.Java 字符能参加算术运算吗?答:能,例如char 类型 a自加后变b 2.占字节多的变量能直接赋给占字节少的变量吗?答:不能,需强制类型转换。3.试用 Java 语言表达式描述以下数学计算式或逻辑条件:1)V
5、=(4/3)*math.PI*math.pow(r,3); 2)R=1/(1/R1+1/R2) 原式3)y=x5+x3+6 y=pow(x,5)+pow(x,3)+6; 4)F=M1M2/R2 F=M1 *M2 /R*R 5) Math.sin( x) / ax + Math.cos( *x/2)0 ? Math.cos(*x/2) : - Math.cos(*x/2);6) 0 a 0 & a 10 7) 条件x=1 与 y=2 有且只有一个成立( x = 1 & y != 2) | (x != 1 & y = 2) 4.设再求以下表达式之前,整形变量a 的值是4,试指出在求表达式之后变量a
6、,b和 c 的值。1)b=a*a+; b = 16, a = 5; 2)c = +a+a; c = 10, a = 5; 5.编写一个程序示意前缀+和后缀 +的区别,前缀和后缀 的区别。答:领悟第四题完全就可以理解前缀+后缀 + - 亦如此。6.若一个数恰好等于它的因子之和,则这个数称为“ 完全数 ” 。编写程序求1000 之内的所有完全数。解析:什么是数的因子?因子就是所有可以整除这个数的数,但是不包括这个数自身. /HelloWorld.java /* * 这是第二个程序 *author 饶林*see */ public classPraxis2_6 public static void
7、main( String args) int i,j,sum; for (i = 1; i = 1000; i+) /sum归 0 必须在此处sum=0; for (j=1; j= i/2; j+) if(i%j)=0) sum = sum+j; if(i = sum) System .out.print(i + ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 42 页 - - - - - - - - - Java语言程序设计(一)课后习题答案4 7.编写输入正实数
8、x,求平方不超过x 的最大正整数n,并输出。解析:/* * 这是第三个程序 *author 饶林*see */ import java.util.*; public class Praxis 2_7 public static void main(Stringargs) Scanner consoleScanner = new Scanner( System.in ); System.out.print( 请输入正实数X: ); int x = consoleScanner.nextInt(); int y=(int)(Math.sqrt(x); System.out.println(n =
9、+y); 8.输入正整数n 输出 n 行 n 列星号字符组成三角图案。/* * 这是第四个程序 *author 饶林*see */ import java.util.*; public class Praxis2_8 public static void main(String args) Scanner consoleScanner = new Scanner(System.in); System.out.print( 请输入正整数x:); int x = consoleScanner.nextInt(); for(int y=0; y0; m-) System.out.print( );
10、for(int n=0; n y+1; n+) System.out.print(*); System.out.println(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 42 页 - - - - - - - - - Java语言程序设计(一)课后习题答案5 9.设有整形变量x 和 y 的值分别为5 和 110.指出执行了下列语句后,变量x 和 y 后的值分别是多少?1)while(x = 1); X=18,y=0;10. 水仙花数是一个n( = 3)位的数,它
11、等于每个数字的n 次幂之和。例如,153 是一个水仙花数,153=13+53+33,是编写一个程序,求小于999 的所有水仙花数。/* * 这是第五个程序 *author 饶林*see */ public class Praxis2_10 public static void main(String args) int x,y,z; for(int m=100; m 999; m+) x = m/100; y = (m%100)/10; z = (m%100)%10; if(m= x*x*x+ y*y*y + z*z*z) System.out.print(m + ); 11.编程序解百鸡问题
12、:鸡翁一,值钱五,鸡母一,值钱三,鸡邹三,值钱一,百钱买百鸡,求鸡翁,鸡母,鸡邹各几何?/* * 这是第六个程序 *author 饶林*see */ public class Praxis2_11 public static void main(String args) for(int i=0;i=100;i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 42 页 - - - - - - - - - Java语言程序设计(一)课后习题答案6 for(int j=0;
13、j=100;j+) for(int k=0;k=100;k+=3) /鸡雏的个数必须使3 的倍数 if( (5*i+3*j+k/3)=100 )& (i+j+k=100) System.out.println( 鸡翁 :+i+; 鸡母 :+j+; 鸡雏 :+k); 12. 编写程序,按下面的公式计算自然对数底e 的值:e = 1+1/1! + 1/2! + 1/3!. /* * 这是第七个程序 *author 饶林*see */ public class Praxis2_12 public static void main(String args) int n=1000; /计算精度doubl
14、e e=1.0; for(int i=1;i=n;i+) e=e+1.0/Praxis2_12.factorial(i); System.out.println(e = +e); static double factorial(int a) /计算阶乘的静态方法 double f=1.0; for(int j=1;j=a;j+) f=f*j; return f; 13. 编写程序,用如下公式计算圆周率的近似值:14. 回文整数是正读反读相同的整数,编写一个程序,输入一个整数,判断是否为回文整数。/* 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - -
15、- - - - - 名师精心整理 - - - - - - - 第 6 页,共 42 页 - - - - - - - - - Java语言程序设计(一)课后习题答案7 * 这是第八个程序 *author 饶林*see */ import java.util.*; public class Praxis2_14 /输入整数,判断是否是回文整数 public static void main(String args) int a= new int100; int i=0; boolean b=true; Scanner consoleScanner = new Scanner( System.in
16、); System.out.print( 请输入一个int 型整数 : ); int x = consoleScanner.nextInt(); int test=x; while(test0) /把整数的各个位上的数存到数组里 ai=test%10; test=test/10; i+; for(int j=0;j i;j+) if(aj!=ai-j-1) b=false; break; if(b) System.out.println(x+ 是回文整数 ); elseSystem.out.println(x+ 并不是回文整数); 15. 草地上有一堆野果,有一只猴子每天要吃掉一半又一个,五天
17、后刚好吃完,问有多少个,猴子每天吃多少个?/* * 这是第九个程序 *author 饶林*see */ public class Praxis2_15 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 42 页 - - - - - - - - - Java语言程序设计(一)课后习题答案8 public static void main( String args) int day,x1,x2; day = 5; x2= 0; while( day 0) x1 = (x2+1)
18、*2; x2 = x1; day-; System.out.println( 共有 + x2+ 个桃子。 ); System.out.println (-); for(int i=1; i0?+: ) + (b!=0? this.b + i : ); return result; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 42 页 - - - - - - - - - Java语言程序设计(一)课后习题答案11 public Complex add(Complex
19、val) Complex result = new Complex(); result.a = this.a + val.a; result.b = this.b + val.b; return result; public class TestComplex public static void main(String args) Complex complex1 = new Complex(1.0,2.0); Complex complex2 = new Complex(2.0,3.0); System.out.println(complex1.add(complex2).Print();
20、 第四章数组和字符串1.举例说明如何声明、创建初始化数组。答:有三种方法。书P69,不一一举例了。2.略3.一个数组能存储不同类型的元素吗?答:不能。4.编写一个Java 程序,形成以下形式的二维数组,并输出。解析:public class Arry public static void main(String args) int a = 1,2,9,10,25, 4,3,8,11,24, 5,6,7,12,23, 16,15,14,13,22, 17,18,19,20,21; for(int i=0; i a.length; i+) for(int j= 0; jai.length; j+)
21、 if(aij); String b = new String(); System.out.println(a.concat(b); 9.试利用 java.util.Date类继承声明实现MyDate类。解析:10. 略11.编写实现从两字符串找出最长的相同字符序列的代码。解析:得到字符串str1,str2 后,有一个为空则子列为空。如果都不为空,开始下面的步骤。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 42 页 - - - - - - - - - Java语言程
22、序设计(一)课后习题答案13 求得两列的长度分别为n1,n2。动态生 n2 行 n1 列矩阵(二维数组)。取 str2 中每个元素(记位置为i)与 str1 中元素(记位置为j)逐个比较,如果相等则为矩阵中相应行列坐标的元素赋值为1,否则为0(可用循环嵌套完成)。比如 str1(abc0cbad) str2(cba1abc)两串的话,可以得到如图所示矩阵。然后,不难看出,要进行如下步骤。定义 strax,用来记录最大子列中元素个数。定义数组ln2, 用来记录最大子列的首字符地址(因为可能有不同最大子列,故用数组,而不是单个变量)。判断矩阵中每一个元素,是否为1,如果是则记下此时行地址到l 数组
23、,然后判断相对于这个元素的下一行下一列的元素是否为1,如果是则继续判断,一直到为0。记下此次判断(即一个while 循环)中 “1”的个数 n,存入变量strax。对于矩阵中的每一个元素都这么判断,如果判断中n 的值大于 strax那么把 n付给 strax,同时把这个子列的首地址付给l0 ,l0 后面的元素全赋值为-1。如果,某次判断得到的n与 strax 相同,即有相同最大子列,那么把它的首地址存入l 数组的下一个位置。当这个矩阵的每一个元素都判断完毕后,会得到strax,和数组 l,然后用循环做如下输出过程:依次以 l 数组中的每个元素为首地址,输出str2 字符串中以相应序号开头的st
24、rax 个字符,那么完成所有最大子列的输出。例子:输入:aabcbcb bcabcbac 输出:abcb public class test1 public static void main(String args) int max = 0; int current = 0; String str1 = new String(aabcbcb); String str2 = new String(bcabcbac); int len1 = str1.length(); int len2 = str2.length(); int arr; arr = new intlen1len2; /初始化数组
25、for(int i= 0; i str1.length(); i+) for(int j= 0; j str2.length(); j+) arrij = 0; for(int k = 0; k str1.length(); k+) char a = str1.charAt(k); for(int l= 0; l str2.length(); l+) char b = str2.charAt(l); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 42 页 - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年Java语言程序设计课后习题答案 2022 Java 语言程序设计 课后 习题 答案
限制150内