Java课后习题答案-.pdf

上传人:索**** 文档编号:76193088 上传时间:2023-03-08 格式:PDF 页数:50 大小:1.90MB
返回 下载 相关 举报
Java课后习题答案-.pdf_第1页
第1页 / 共50页
Java课后习题答案-.pdf_第2页
第2页 / 共50页
点击查看更多>>
资源描述

《Java课后习题答案-.pdf》由会员分享,可在线阅读,更多相关《Java课后习题答案-.pdf(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

26、00);setVisible(true);public void actionPerformed(ActionEvent e)if(e.getSource()=button1)text.setText(button1.getLabel();else if(e.getSource()=button2)text.setText(button2.getLabel();33 5.88.编写一个有两个文本狂的小应用程序,在第一个文本框输入英文单词,第二个文本框自动显示汉语解释,或在第一个文本框输入单词,第二个文本框显示英语。解析:只增加了一个单词raoliv-饶林饶林-raoliv 可以多写几个.。im

27、port java.awt.*;import javax.swing.*;import java.awt.event.*;public class Praxis5_8 public static void main(String args)MyWindow a=new MyWindow();a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);class MyWindow extends JFrame implements ActionListener JTextField text1,text2;JLabel label;34 MyWindow()

28、super(Praxis5_8);setLayout(new FlowLayout();text1=new JTextField(10);text2=new JTextField(10);text2.setEditable(false);label=new JLabel(输入字符:);this.getContentPane().add(label);this.getContentPane().add(text1);this.getContentPane().add(text2);text1.addActionListener(this);setSize(400,100);setVisible(

29、true);validate();public void actionPerformed(ActionEvent e)String word=text1.getText();if(word.equals(raoliv)text2.setText(饶林);else if(word.equals(饶林)text2.setText(raoliv);else 35 text2.setText(没有找到);5.99.编写一个有标签、有文本框、文本区和两个按钮的小应用程序。,import java.util.*;import java.awt.*;import javax.swing.*;import j

30、ava.awt.event.*;public class Praxis5_9 public static void main(String args)MyWindow a=new MyWindow();a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);class MyWindow extends JFrame implements ActionListener JLabel label;36 JTextField text;JButton button1,button2;JTextArea textArea;JPanel pan1,pan2;My

31、Window()super(Praxis5_9);setSize(300,300);setLayout(new FlowLayout();label=new JLabel();text=new JTextField(15);textArea=new JTextArea(10,10);button1=new JButton(SUM);button2=new JButton(AVG);pan1=new JPanel();pan2=new JPanel();JScrollPane jsp=new JScrollPane(textArea);jsp.setVerticalScrollBarPolicy

32、(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);jsp.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);37 getContentPane().add(jsp);getContentPane().add(button1);getContentPane().add(button2);getContentPane().add(label);getContentPane().add(text);button1.addActionListener(

33、this);button2.addActionListener(this);setVisible(true);validate();public void actionPerformed(ActionEvent e)String s=textArea.getText();StringTokenizer t=new StringTokenizer(s,n,;.);int n=t.countTokens();int a=new intn;for(int i=0;i n;i+)ai=Integer.parseInt(t.nextToken();if(e.getSource()=button1)lab

34、el.setText(输入数的和为:);int sum=0;for(int i=0;i n;i+)38 sum=sum+ai;text.setText(+sum);else if(e.getSource()=button2)label.setText(输入数平均值为:);int sum=0;for(int i=0;i n;i+)sum=sum+ai;text.setText(+sum/n);5.1010.布局如下:import java.awt.*;import javax.swing.*;public class Praxis5_10 39 public static void main(S

35、tring args)window win=new window();win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);class window extends JFrame JScrollPane jsp1,jsp5;JPanel panel2,panel3,panel4,panel6;JTextArea jsp1_Text,jsp5_Text;JLabel panel2_Label;JTextField panel2_Field;JPanel panel3_p1,panel3_p2,panel4_p1,panel4_p2,panel4_p

36、3,panel6_p1,panel6_p2,panel6_p3;JButton panel4_b1,panel4_b2;window()super(Praxis5_10);setSize(600,120);setLayout(new GridLayout(2,3);setVisible(true);40 jsp1_Text=new JTextArea(文本区(带滚动条));JScrollPane jsp1=new JScrollPane(jsp1_Text);panel2=new JPanel();panel2_Label=new JLabel(标签);panel2_Field=new JTe

37、xtField(文本框);panel3=new JPanel();panel3_p1=new JPanel();panel3_p2=new JPanel();panel4=new JPanel();panel4_b1=new JButton(按钮);panel4_b2=new JButton(按钮);panel4_p1=new JPanel();panel4_p2=new JPanel();panel4_p3=new JPanel();jsp5_Text=new JTextArea(文本区(带滚动条));JScrollPane jsp5=new JScrollPane(jsp5_Text);p

38、anel6=new JPanel();41 panel6_p1=new JPanel();panel6_p2=new JPanel();panel6_p3=new JPanel();jsp1.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);jsp1.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);jsp5.setVerticalScrollBarPolicy(ScrollPaneConst

39、ants.VERTICAL_SCROLLBAR_ALWAYS);jsp5.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);panel2.setLayout(new GridLayout(2,1);panel2.add(panel2_Label);panel2.add(panel2_Field);panel3.setLayout(new GridLayout(1,2);panel3_p1.setBackground(Color.BLACK);42 panel3_p2.setBackgrou

40、nd(Color.BLUE);panel3.add(panel3_p1);panel3.add(panel3_p2);panel4.setLayout(new GridLayout(1,3);panel4_p1.setLayout(new GridLayout(2,1);panel4_p1.add(panel4_b1);panel4_p1.add(panel4_b2);panel4_p2.setBackground(Color.BLUE);panel4_p3.setBackground(Color.BLACK);panel4.add(panel4_p1);panel4.add(panel4_p

41、2);panel4.add(panel4_p3);panel6.setLayout(new GridLayout(1,3);panel6_p1.setBackground(Color.RED);panel6_p2.setBackground(Color.GREEN);panel6_p3.setBackground(Color.orange);panel6.add(panel6_p1);panel6.add(panel6_p2);panel6.add(panel6_p3);add(jsp1);add(panel2);43 add(panel3);add(panel4);add(jsp5);add

42、(panel6);validate();6第六章图形界面设计(二)6.11.设计一个面板,该面板中有四个运动项目选择框和一个文本区。当某个选择项目被选中时,在文本区中显示该选择项目。解析:选多个import java.util.*;import java.awt.*;import javax.swing.*;import java.awt.event.*;class panel extends JPanel JCheckBox box1,box2,box3,box4,box5;/ButtonGroup g;JTextArea text;44 panel()setLayout(new GridL

43、ayout(1,6);/g=new ButtonGroup();box1=new JCheckBox(高丽华);box2=new JCheckBox(饶林);box3=new JCheckBox(谌凯);box4=new JCheckBox(韩伟虎);box5=new JCheckBox(梁继杰);text=new JTextArea(5,5);/g.add(box1);g.add(box2);g.add(box3);g.add(box4);g.add(box5);add(box1);add(box2);add(box3);add(box4);add(box5);add(text);class

44、 MyWindow extends JFrame implements ItemListener panel panel1;MyWindow()super(Praxis6_1);Container con=this.getContentPane();45 con.setLayout(new FlowLayout();setSize(400,100);panel1=new panel();add(panel1);panel1.box1.addItemListener(this);panel1.box2.addItemListener(this);panel1.box3.addItemListen

45、er(this);panel1.box4.addItemListener(this);panel1.box5.addItemListener(this);setVisible(true);pack();public void itemStateChanged(ItemEvent e)if(e.getItemSelectable()=panel1.box1)panel1.text.append(高丽华+n);else if(e.getItemSelectable()=panel1.box2)panel1.text.append(饶林+n);else if(e.getItemSelectable(

46、)=panel1.box3)panel1.text.append(谌凯+n);else if(e.getItemSelectable()=panel1.box4)panel1.text.append(韩伟虎+n);else if(e.getItemSelectable()=panel1.box5)46 panel1.text.append(梁继杰+n);public class Praxis6_1 public static void main(String args)MyWindow win=new MyWindow();win.setDefaultCloseOperation(JFrame

47、.EXIT_ON_CLOSE);6.22.设计一个面板,该面板中有四个运动项目单选框和一个文本框。当某个选择项目被选中时,在文本框中显示该选择项目。解析:只能选一个,按上一题,先把注释填上,然后修改如下。public void itemStateChanged(ItemEvent e)if(e.getItemSelectable()=panel1.box1)panel1.text.setText(高丽华);else if(e.getItemSelectable()=panel1.box2)panel1.text.setText(饶林);else if(e.getItemSelectable()

48、=panel1.box3)panel1.text.setText(谌凯);47 else if(e.getItemSelectable()=panel1.box4)panel1.text.setText(韩伟虎);else if(e.getItemSelectable()=panel1.box5)panel1.text.setText(梁继杰);6.33.略6.44.设计一个窗口,取默认布局BorderLayout布局。北面添加一个列表,列表有4 门课程选项。中心添加一个文本区,当选择列表中的某门课程后,文本区显示相应课程的介绍解析:import java.util.*;import java

49、.awt.*;import javax.swing.*;import java.awt.event.*;import javax.swing.event.*;class window extends JFrame implements ListSelectionListener 48 JList list;JTextArea textArea;String names=C+,JAVA,马哲,法基;String times=好学的课,好学的课,无聊的课,无聊的课;window()super(Praxis6_4);textArea=new JTextArea(5,10);list=new JLis

50、t(names);list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);list.addListSelectionListener(this);textArea.setBackground(Color.GREEN);add(list,BorderLayout.NORTH);add(textArea,BorderLayout.CENTER);setBounds(50,50,400,200);setVisible(true);validate();public void valueChanged(ListSelectionEvent

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 实施方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁