Java课后习题答案-.pdf
《Java课后习题答案-.pdf》由会员分享,可在线阅读,更多相关《Java课后习题答案-.pdf(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 1第一章 Java 语言基础1.11.指出 Java 语言的主要特点和ava 程序的执行过程。答:强类型。编译和解释。自动无用内存回收功能。面向对象。与平台无关。安全性。分布式计算。多线程。1.22.说出开发与运行 Java 程序的主要步骤。答:安装 SUN 的 JDK,配置 classpath 编写源文件。编译。运行。1.33.如何区分应用程序和小应用程序。答:应用程序必须在一类中定义一个main()方法,该方法代表应用程序的入口。小应用程序不必定义main()方法,但是必须继承applet 类。2 1.44.说出 Java 源文件的命名规则。答:和类命名规则一样,首字母大写。1.55.
2、选择一种上机环境,参照实例,编写一个输出“hello world!”字样的 Java 程序。答:选择 SUN 的 IDE,用 UltraEdit-32编写如下:/HelloWorld.java/*这是第一个程序 */class HelloWorld public static void main(String args)System.out.println(Hello World!);1.66.Java 用什么字符集?共有多少个不同的字符?答:Java 语言使用 Unicode字符集,共有 65535 个字符。3 1.77.Java 语言标识符的命名规则是什么?答:由字母(包括英文字母、下划线
3、、美元字符、文字字符)和数字字符组成。限定标识符的第一个字符不能是数字。1.88.Java有哪些基本的数据类型,它们的常量又是如何书写的?答:基本的数据类型也称为原始数据类型,是系统预先规定的一些常用类型。它们是:整数类型、浮点数(实数)类型、字符(文字)类型、逻辑类型(布尔型)。1.99.指出下列内容那些事Java语言的整形常量,哪些是浮点数类型常量,那些两者都不是?1)E-4 2)A423 3)-1E-31 4)0 xABCL 5).32E316)087 7)0 x L 8)003 9)0 x12.5 10)077 11)11E 12)056L 13)0.14).0 答:整形常量:4,5,
4、6,8,10,12 浮点型:1,3,9,13,14 两者都不是:2,7,11 4 2第二章运算和语句2.11.Java 字符能参加算术运算吗?答:能,例如 char 类型 a 自加后变 b 2.22.占字节多的变量能直接赋给占字节少的变量吗?答:不能,需强制类型转换。2.33.试用 Java 语言表达式描述以下数学计算式或逻辑条件:1)V=(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.co
5、s(*x/2)0?Math.cos(*x/2):-Math.cos(*x/2);6)0 a 0&a 10 5 7)条件 x=1 与 y=2 有且只有一个成立(x=1&y!=2)|(x!=1&y=2)2.44.设再求以下表达式之前,整形变量a 的值是 4,试指出在求表达式之后变量a,b 和 c 的值。1)b=a*a+;b=16,a=5;2)c=+a+a;c=10,a=5;2.55.编写一个程序示意前缀+和后缀+的区别,前缀和后缀的区别。答:领悟第四题完全就可以理解前缀+后缀+亦如此。2.66.若一个数恰好等于它的因子之和,则这个数称为“完全数”。编写程序求1000 之内的所有完全数。解析:什么是
6、数的因子?因子就是所有可以整除这个数的数,但是不包括这个数自身./HelloWorld.java/*这是第二个程序 6*/public class Praxis2_6 public static void 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+);7 2.77.编写输入正实数x,求平方不超过x 的最大正整数n,并输出。解析:/*这是第三个程序 */import java.u
7、til.*;public class Praxis2_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=+y);8 2.88.输入正整数 n 输出 n 行 n 列星号字符组成三角图案。/*这是第四个程序 *see*/import java.util.*;public cla
8、ss 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();for(int n=0;n y+1;n+)System.out.print(*);System.out.println();9 2.99.设有整形变量 x 和 y 的值分别为 5 和 110.指出执行了下列语句后,变量
9、 x 和 y 后的值分别是多少?1)while(x =1);X=18,y=0;2.1010.水仙花数是一个 n(=3)位的数,它等于每个数字的n次幂之和。例如,153是一个水仙花数,153=13+53+33,是编写一个程序,求小于999 的所有水仙花数。/*这是第五个程序 *see*/public class Praxis2_10 public static void main(String args)int x,y,z;10 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)Syst
10、em.out.print(m+);2.1111.编程序解百鸡问题:鸡翁一,值钱五,鸡母一,值钱三,鸡邹三,值钱一,百钱买百鸡,求鸡翁,鸡母,鸡邹各几何?/*这是第六个程序 *see*/public class Praxis2_11 public static void main(String args)11 for(int i=0;i=100;i+)for(int j=0;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+;
11、鸡雏:+k);2.1212.编写程序,按下面的公式计算自然对数底e 的值:e=1+1/1!+1/2!+1/3!./*这是第七个程序 *see*/public class Praxis2_12 public static void main(String args)12 int n=1000;/计算精度double 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(in
12、t j=1;j=a;j+)f=f*j;return f;13 2.1313.编写程序,用如下公式计算圆周率的近似值:2.1414.回文整数是正读反读相同的整数,编写一个程序,输入一个整数,判断是否为回文整数。/*这是第八个程序 *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);
13、System.out.print(请输入一个 int 型整数:);int x=consoleScanner.nextInt();int test=x;while(test0)/把整数的各个位上的数存到数组里14 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+是回文整数);else System.out.println(x+并不是回文整数);2.1515.草地上有一堆野果,有一只猴子每天要吃掉一半又一个,五天后刚好吃完,问有多少个,猴子每天吃多
14、少个?/*15*这是第九个程序 *see*/public class Praxis2_15 public static void main(String args)int day,x1,x2;day=5;x2=0;while(day 0)x1=(x2+1)*2;x2=x1;day-;System.out.println(共有+x2+个桃子。);System.out.println(-);for(int i=1;i0?+:)+(b!=0?this.b+i:);return result;public Complex add(Complex val)Complex result=new Compl
15、ex();result.a=this.a+val.a;result.b=this.b+val.b;return result;21 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();4第四章数组和字符串4.11.举例说明如何声明、创建初始化数组。答:有三种方法。书P69,不一
16、一举例了。4.22.略4.33.一个数组能存储不同类型的元素吗?答:不能。4.44.编写一个Java程序,形成以下形式的二维数组,并输出。解析:22 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+)if(aij);String b=new String();System.out.printl
17、n(a.concat(b);24 4.99.试利用 java.util.Date类继承声明实现MyDate 类。解析:4.1010.略4.1111.编写实现从两字符串找出最长的相同字符序列的代码。解析:得到字符串str1,str2后,有一个为空则子列为空。如果都不为空,开始下面的步骤。求得两列的长度分别为n1,n2。动态生 n2 行 n1 列矩阵(二维数组)。取 str2 中每个元素(记位置为i)与 str1 中元素(记位置为 j)逐个比较,如果相等则为矩阵中相应行列坐标的元素赋值为1,否则为 0(可用循环嵌套完成)。比如 str1(abc0cbad)str2(cba1abc)两串的话,可以得
18、到如图所示矩阵。然后,不难看出,要进行如下步骤。定义 strax,用来记录最大子列中元素个数。定义数组 ln2,用来记录最大子列的首字符地址(因为可能有不同最大子列,故用数组,而不是单个变量)。25 判断矩阵中每一个元素,是否为1,如果是则记下此时行地址到l 数组,然后判断相对于这个元素的下一行下一列的元素是否为1,如果是则继续判断,一直到为0。记下此次判断(即一个while 循环)中“1”的个数 n,存入变量 strax。对于矩阵中的每一个元素都这么判断,如果判断中n 的值大于strax 那么把 n 付给 strax,同时把这个子列的首地址付给l0,l0后面的元素全赋值为-1。如果,某次判断
19、得到的n 与 strax 相同,即有相同最大子列,那么把它的首地址存入l 数组的下一个位置。当这个矩阵的每一个元素都判断完毕后,会得到strax,和数组l,然后用循环做如下输出过程:依次以 l 数组中的每个元素为首地址,输出 str2 字符串中以相应序号开头的strax个字符,那么完成所有最大子列的输出。例子:输入:aabcbcb bcabcbac 输出:abcb public class test1 public static void main(String args)int max=0;int current=0;26 String str1=new String(aabcbcb);St
20、ring str2=new String(bcabcbac);int len1=str1.length();int len2=str2.length();int arr;arr=new intlen1len2;/初始化数组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);if(a=b)arrkl=
21、1;else arrkl=0;27 for(int i=0;i str1.length();i+)for(int j=0;j str2.length();j+)if(arrij=1&arri-1j-1=1)arrij=arri-1j-1+1;if(max Welcome to;System.out.println(原来为:+s);s=s.trim();s=s.replaceAll(s+,#);String ss=s.split(#);System.out.print(替换后:);for(int i=0;iss.length;i+)System.out.print(ssi+);29 4.1313
22、.略5第五章图形界面设计(一)5.11.Swing与 AWT 有何关系?答:Swing 是 AWT 的提高和扩展,共存于Java 基础类。AWT 依赖于平台绘制用户界面组件,而Swing 有自己的机制。5.22.什么是组件对象?什么是容器?容器和其它类型的组件有什么不同?答:略 P86 5.33.略5.44.略5.55.略5.66.编一小应用程序,小应用程序窗口有一个按钮,当点击时点击的次数会显示在按钮上。解析:先用javac 编译成 class字节码,再在当前文件夹下建一个html页面源文件如下.。import java.applet.*;import javax.swing.*;impor
23、t java.awt.event.*;30 public class Praxis5_6 extends Applet implements ActionListener int num=0;JButton button1;public void init()setSize(300,200);button1=new JButton(+num);button1.addActionListener(this);add(button1);public void actionPerformed(ActionEvent e)button1.setText(+num+);/*html页面 31 */5.7
24、7.创建一个有文本框和三个按钮的程序当按下某个按钮时使不同的文字显示在文本框中。解析:import java.awt.*;import javax.swing.*;import java.awt.event.*;public class Praxis5_7 public static void main(String args)ButtonDemo buttondemo=new ButtonDemo();class ButtonDemo extends JFrame implements ActionListener JTextField text;32 JButton button1,but
25、ton2;ButtonDemo()super(Praxis5_8);Container con=this.getContentPane();setLayout(new FlowLayout();text=new JTextField(10);button1=new JButton(raoliv);button2=new JButton(欢迎来到);button1.addActionListener(this);button2.addActionListener(this);con.add(text);con.add(button1);con.add(button2);setSize(300,2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 课后 习题 答案
限制150内