自考JAVA课后题答案.doc

上传人:wux****ua 文档编号:8848579 上传时间:2020-04-01 格式:DOC 页数:94 大小:2.29MB
返回 下载 相关 举报
自考JAVA课后题答案.doc_第1页
第1页 / 共94页
自考JAVA课后题答案.doc_第2页
第2页 / 共94页
自考JAVA课后题答案.doc_第3页
第3页 / 共94页
点击查看更多>>
资源描述
课后习题参考程序第一章1.指出JAVA语言的主要特点和JAVA程序的执行过程。(1)强类型;(2)编译和解释;(3)自动无用内存回收功能;(4)面向对象;(5)与平台无关;(6)安全性;(7)分布式计算;(8)多线程;2.说出开发与运行JAVA程序的重要步骤。(1)编写源文件:使用一个文本编译器,如Edit或记事本,不可以使用Word.将编好的源文件保存起来,源文件的扩展名必须是.java; (2)编译Java源文件:使用Java编译器(javac.exe)编译源文件得到字节码文件; (3)运行Java程序:Java程序分为两类-Java应用程序必须通过Java解释器(java.exe)来解释执行其字节码文件;Java小应用程序必须通过支持Java标准的浏览器来解释执行.3.如何区分应用程序和小应用程序? 应用程序在与源文件名字相同的类中,有main()方法,该方法代表应用程序的入口; 小应用程序必须有一个Applet类的子类,该类称作主类,必须用public修饰。4.说出JAVA源文件的命名规则。源文件命名规则和类命名规则一样,所有的单词首字母都用大写字母。5.略6.JAVA语言使用什么字符集?共有多少个不同的字符? Java语言使用Unicode字符集,共有65535个字符。 7.JAVA语言标识符的命名规则是什么?(1)由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字字符组成 ; (2)限定标识符的第一个字符不能是数组符。数据类型关键字字节数默认值常量举例范围逻辑类型布尔型boolean1falsefalse,truefalse,true字符型char20a,我,0 65535 整数类型字节性byte1012,13,45-128 127 短整型short2012,13,45-32768 32767整型int8012,13,45-2E31 2E31-1长整型long80L12L,13L,45L-2E63 2E63-1浮点类型单精度浮点float40F12.345F,6.7891F-10E38 -10E-3810E-38 10E38双精度浮点double80D12.345D,6.7891D-10E308 -10E-30810E-308 10E3088.JAVA有那些基本数据类型,它们的常量又是如何书写的?9.指出下列内容哪些是JAVA语言的整型常量,哪些是浮点数类型常量,哪些两者都不是。整型常量: 4)0xABCL; 8)003; 10)077;浮点数类型常量:3)-1E-31; 5).32E31 13)0.; 14).0两者都不是: 1,2,6,7,9,11,12第二章1.Java的字符能参加算术运算吗?可以。 (1)字符与整型数据运算,结果为整型数据,只能附给整型变量,如果附给字符型变量会损失精度,需要强制类型装换; (2)字符与字符运算,结果为字符型数据,可以直接附给字符型或整型变量。2.占字节多的变量能直接赋值给占字节少的变量么? 不能直接赋值,需要强制类型转换。3.试用Java语言表达式描述以下数学计算式或逻辑条件:V = (4.0/3)*Math.PI*Math.pow(r,3);R = 1 / (1.0/R1+1.0/R2);y = Math.pow(x,5) + Math.pow(x,3) + 6;F = 1.0 * M1 * M2 / (R * R);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、b和c的值。1) b=a*a+; a=5 ; b=162) c=+a+a;a=5 ; c=106,若一个数恰好等于它的因子之和,则这个数称为“完全数”。编写程序求1000之内的所有完全数。分析:若一个自然数,它所有的真因子(即除了自身以外的约数)的和恰好等于它本身,这种数叫做完全数。例如,6=1+23?28=124714496=1+2+4+816+31+62124+2488128=124+81632+64127+254508+10162032+4064public class Work2_6 /第二章,第6题public static void main(String args)int i,j,sum;int test=10000;for(i=1;i=test;i+)sum=0;for(j=1;j=(i/2);j+)if(i%j=0) /判断是否是它的真因子sum=sum+j; /累计真因子的和if(i=sum) /判断真因子的和是否等级它本身System.out.println(i);运行结果7.编写输入正实数x,求平方不超过x的最大整数n,并输出。import java.util.*;public class Work2_7public 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.输入正整数n,输出由n行n列星号字符组成的三角形图案import java.util.*;public class Work2_8 /输出星号 public static void main(String args)Scanner consoleScanner = new Scanner( System.in );System.out.print(请输入正实数X: );int x = consoleScanner.nextInt();for(int i=0;i x;i+)for(int j=0;j x-i-1;j+)System.out.print( );for(int k=0;k i+1;k+)System.out.print(*);System.out.println();。运行结果9.设有整型变量x和y的值分别为5和110。试指出执行了以下循环语句后,变量x和y的值分别试多少?1)while(x=1);x=18; y=0; 10.水仙花数是一个n(=3)位数字的数,它等于每个数字的n次幂之和。例如153是一个水仙花数,。求小于999的所有水仙花数。public class Work2_10 /判断100到n中,水仙花数,并打印public static void main(String args)int n=999;int a,b,c; /各位,十位,百位for(int i=100;i=999;i+)a=i%10;b=i%100/10;c=i/100;if(i=(a*a*a+b*b*b+c*c*c)System.out.println(+i);11.编程序解百鸡问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡。求鸡翁、鸡母、和鸡雏个几何?public class Work2_11public static void main(String args)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+; 鸡雏:+k);12.编写程序,按下面的公式计算自然对数底e的值:e=1+1/1!+1/2!+1/3!+1/4!+.public class Work2_12public static void main(String args)int n=1000; /计算精度 double e=1.0;for(int i=1;i=n;i+)e=e+1.0/Work2_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.编写程序,用如下公式计算圆周率PI的近似值:PI4-4/3+4/5-4/7+4/9-4/11.public class Work2_13public static void main(String args)int num=1000000; /控制计算的项数,越高,越准确 System.out.println(用公式计算圆周率,n计算 + num +项后圆周率的近似值为+Work2_13.getPai(num); System.out.println(3.14是第 + Work2_13.getNumber(3.14) + 项,值为: + Work2_13.getPai(Work2_13.getNumber(3.14); System.out.println(3.141是第 + Work2_13.getNumber(3.141) + 项,值为: + Work2_13.getPai(Work2_13.getNumber(3.141); System.out.println(3.1415是第 + Work2_13.getNumber(3.1415) + 项,值为: + Work2_13.getPai(Work2_13.getNumber(3.1415); System.out.println(3.14159是第 + Work2_13.getNumber(3.14159) + 项,值为: + Work2_13.getPai(Work2_13.getNumber(3.14159);public static double getNumber(double p)int r = 1,num = 1000000; /控制计算的项数,越高,越准确double i = 1.0, pai = 0.0, t = 1.0; while( r =p & pai = (p + 0.000001) break; return r;public static double getPai(double num)int r = 1; double i = 1.0, pai = 0.0, t = 1.0;while(r 0) /把整数的各个位上的数存到数组里ai=test%10;test=test/10;i+;for(int j=0;j i;j+) /有对应不相等的,肯定不是,直接跳出并附给b为false/如果一直相等,则if里边的语句不能被执行b的值是trueif(aj!=ai-j-1) b=false;break;if(b)System.out.println(x+是回文整数);else System.out.println(x+并不是回文整数);15.草地上有一堆野果,有一只猴子每天吃掉这堆野果的 一半又一个,5天后刚好吃完这堆野果,求这堆野果原来共有多少个?猴子每天吃多少个野果?public class Work2_15public static void main(String args)int i,j,test=1;for(i=1;i 100000;i+)test=i;for(j=0;j 5;j+) /5天test =test/2-1;if(test=0) /5天后野果子数量为0,则满足要求System.out.println(这堆野果原来共有+i+个);break;/打印出猴子每天吃野果子的个数int eat;test=i;for(j=1;j0)?+:)+(b!=0)?this.b+i:);return result;public double getA()/取复数实部,返回复数的实部return a;public double getB()/取复数的虚部,返回复数的虚部return b;public Complex add(Complex val) /复数加法,返回当前复数对象与参数指定的复数对象的和Complex result=new Complex();result.a=this.a+val.a;result.b=this.b+val.b;return result;public Complex subtract(Complex val) /复数减法,返回当前复数对象与参数指定的复数对象的差,当前对象减去参数对象Complex result=new Complex();result.a=this.a-val.a;result.b=this.b-val.b;return result;public Complex multiply(Complex val)/复数乘法,返回当前复数对象与参数指定的复数对象的积Complex result=new Complex();result.a=this.a*val.a-this.b*val.b;result.b=this.a*val.b+this.b*val.a;return result;public Complex divide(Complex val)/复数除法,返回当前复数对象与参数指定的复数对象的商,当前对象除以参数对象Complex result=new Complex();result.a=(this.a*val.a+this.b*val.b)/(val.a*val.a+val.b*val.b);result.b=(this.b*val.a-this.a*val.b)/(val.a*val.a+val.b*val.b);return result;/测试程序,对复数的加减乘除运算,和打印复数,取复数实部、虚部 public class Work3_13public static void main(String args)Complex complex1=new Complex(2,9),complex2=new Complex(12,-2);Complex result=new Complex();System.out.println(复数1:+complex1.print()+;实部+complex1.getA()+;虚部+complex1.getB();System.out.println(复数2:+complex2.print()+;实部+complex2.getA()+;虚部+complex2.getB();result=complex1.add(complex2);/两个复数之和System.out.println(复数:+complex1.print()+ 与+复数:+complex2.print()+ 之和为:+result.print();result=complex1.subtract(complex2);/两个复数之差System.out.println(复数:+complex1.print()+ 与+复数:+complex2.print()+ 之差为:+result.print();result=complex1.multiply(complex2);/两个复数乘积System.out.println(复数:+complex1.print()+ 与+复数:+complex2.print()+ 的乘积为:+result.print();result=complex1.divide(complex2);/两个复数的商System.out.println(复数:+complex1.print()+ 与+复数:+complex2.print()+ 的商为:+result.print();14.声明一个有理数类Complex。见源代码 第三章下Rational文件夹第四章3.一个数组能够存储不同类型的元素吗?不能4.编写一个Java程序,形成以下形式的二位数组,并输出。public class Work4_4 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 5;i+) for(int j=0;j 5;j+) if(aij 10) System.out.print( +aij+ ); else System.out.print(aij+ ); System.out.println(); 7.字符大小写转换toUpperCase , toLowerCase public class Work4_7public static void main(String args)String s1=new String(aBeGgGhHhRsNwFsgWGWEhgad);String upper,lower;upper=new String(s1.toUpperCase(); /转换成大写字母lower=s1.toLowerCase(); /转换成小写字母System.out.println(upper);System.out.println(lower);8,两个字符串链接 concatpublic class Work4_8public static void main(String args)String s1=2008年奥运会;String s2=在北京鸟巢开幕;s1=s1.concat(s2);System.out.println(s1);第五章6.编写已个小应用程序,小应用程序窗口有一个按钮,点击这个按钮时,点击按钮的次数会显示在按钮上。/点击按钮时,点击按钮的次数会显示在按钮上import java.applet.*;import javax.swing.*;import java.awt.event.*;public class Work5_6 extends Applet implements ActionListenerint num=0;JButton button1;public void init()setSize(300,200);button1=new JButton( +num+ );button1.addActionListener(this);add(button1);public void actionPerformed(ActionEvent e)num+;button1.setText(+num);/在applet的程序在程序后面写上/7.创建一个有文本框和三个按钮的程序。当按下某个按钮时,使不同的文字显示在文本框中。/一个文本框,三个按钮,按下显示部同的内容import java.awt.event.*;import java.awt.*;import javax.swing.*;public class Work5_7public static void main(String args)MyFrame myFrame =new MyFrame();myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);class MyFrame extends JFrame implements ActionListenerJTextField text;JButton button1,button2,button3,exit_button;JPanel p;MyFrame()super(第五章,第7题);Container con=this.getContentPane();setLayout(new FlowLayout();text=new JTextField(10);button1=new JButton(刘德华);button2=new JButton(张学友);button3=new JButton(蔡依林);exit_button=new JButton(退 出);button1.addActionListener(this);button2.addActionListener(this);button3.addActionListener(this);exit_button.addActionListener(this);p=new JPanel();p.add(button1);p.add(button2);p.add(button3);add(text);add(p);add(exit_button);setSize(300,200);setVisible(true);public void actionPerformed(ActionEvent e)if(e.getSource()=button1)text.setText(刘德华);else if(e.getSource()=button2)text.setText(张学友);else if(e.getSource()=button3)text.setText(蔡依林);else if(e.getSource()=exit_button)System.exit(0);8.编写一个有两个文本框的小应用程序,在第一个文本框输入英语单词,在第二个文本框会自动显示汉语解释;在第一个文本框输入汉语单词,在第二个文本框中显示英语解释。设英语单词表只有少许几个。 / 直接用swing类编写 文本框的ActionListener事件import javax.swing.*;import java.awt.event.*;import java.awt.*;class MyWindow extends JFrame implements ActionListenerJTextField text1,text2;JLabel label1,label2;JPanel p1,p2;MyWindow()super(监视文本框);setLayout(new FlowLayout();p1=new JPanel();p2=new JPanel();text1=new JTextField(10);text2=new JTextField(10);label1=new JLabel(输入英语);label2=new JLabel(输入汉语);p1.add(label1);p1.add(text1);p2.add(label2);p2.add(text2);add(p1);add(p2);text1.addActionListener(this);text2.addActionListener(this);setSize(200,200);setVisible(true);validate();public void actionPerformed(ActionEvent e)if(e.getSource()=text1)String word=text1.getText();if(word.equals(boy)text2.setText(男孩);else if(word.equals(girl)text2.setText(女孩);else if(word.equals(sun)text2.setText(太阳);else if(word.equals(moon)text2.setText(月亮);elsetext2.setText(没有该Chinese翻译);else if(e.getSource()=text2)String word=text2.getText();if(word.equals(男孩)text1.setText(boy);else if(word.equals(女孩)text1.setText(girl);else if(word.equals(太阳)text1.setText(sun);else if(word.equals(月亮)text1.setText(moon);elsetext1.setText(没有该English翻译);public class Work5_8 public static void main(String args)MyWindow win=new MyWindow();win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 添加的单词:男孩 - boy女孩 - girl太阳 - sun月亮 - moon运行结果:9.一个标签、一个文本框、一个文本区、两个按钮。当在文本区中输入若干数后,点击求和按钮,在文本框显示输入数的和,标签显示“输入数的和”;点击求平均值按钮,在文本框显示输入数的平均值,标签显示“输入数的平均值”。要求文本区设有滚动条。import java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;class Window5_9 extends JFrame implements ActionListenerJLabel label;JTextArea textArea;JTextField textField;JButton sumButton,averageButton;JPanel panelNorth,panelSouth;Window5_9()super(第五章,第九题!);setBounds(100,100,350,200);label=new JLabel();textField=new JTextField(12);textArea=new JTextArea();sumButton=new JButton(求 和);averageButton=new JButton(平均值);panelNorth=new JPanel();panelSouth=new JPanel();JScrollPane jsp=new JScrollPane(textArea);jsp.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);jsp.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);sumButton.addActionListener(this);averageButton.addActionListener(this);panelNorth.add(sumButton);panelNorth.add(averageButton);panelSouth.add(label);panelSouth.add(textField);add(panelNorth,BorderLayout.NORTH);add(jsp,BorderLayout.CENTER);add(panelSouth,BorderLayout.SOUTH);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););setVisible(true);validate();public void actionPerformed(ActionEvent e)tryString s=textArea.getText();String temp=new String();StringTokenizer t=new StringTokenizer(s,n ,. );int n=t.countTokens();int a=new int n;for(int i=0;i n;i+)temp=t.nextToken();ai=Integer.parseInt(temp);if(e.getSource()=sumButton)label.setText(输入数的和);int sum=0;for(int i=0;i a.length;i+)sum=sum+ai;textField.setText(+sum);else if(e.getSource()=averageButton)label.setText(输入数的平均值);int sum=0;for(int i=0;i a.length;i+)sum=sum+ai;double average=1.0*sum/(a.length);textField.setText(+average);catch(NumberFormatException ed)textField.setText(请出入数字字符!);public class Work5_9public static void main(String args)Window5_9 win=new Window5_9();10.布局设计.Window5_101.java 嵌套布局,用了大部分的GridLayout布局import java.awt.*;import javax.swing.*;class Window5_101 extends JFrameJScrollPane 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_p3,panel6_p1,panel6_p2,panel6_p3;JButton panel4_b1,panel4_b2;Window5_101()super(第五章,第十题);setSize(600,120);setLayout(new GridLayout(2,3);/设置整体布局为表格布局,2行3列setVisible(true);jsp1_Text=new JTextArea(文本区(带滚动条)); JScrollPane jsp1=new JScrollPane(jsp1_Text);/第一个panel2=new JPanel();panel2_Label=new JLabel(标签);panel2_Field=new JTextField(文本框);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);panel6=new JPanel();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(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);jsp5.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);panel2.setLayout(new GridLayout(2,1);/第二个面板表格布局,2行1列panel2.add(panel2_Label);panel2.add(panel2_Field);panel3.setLayout(new GridLayout(1,2);/第三个面板表格布局,1行2列panel3_p1.setBackground(Color.CYAN);panel3_p2.setBackground(Color.RED);panel3.add(panel3_p1);panel3.add(panel3_p2);panel4.setLayout(new GridLayout(1,3);/第四个面板表格布局,1行3列panel4_p1.setLayout(new GridLayout(2,1);/第四个面板中的第一个面板,2行1列panel4_p1.add(panel4_b1);panel4_p1.add(panel4_b2);panel4_p2.setBackground(Color.green);panel4_p3.setBackground(Color.YELLOW);panel4.add(panel4_p1);panel4.add(panel4_p2);panel4.add(panel4_p3);panel6.setLayout(new GridLayout(1,3);/第六个面板表格布局,1行3列panel6_p1.setBackground(Color.PINK);panel6_p2.setBackground(Color.BLUE);panel6_p3.setBackground(Color.orange);panel6.add(panel6_p1);panel6.add(panel6_p2);panel6.add(panel6_p3);add(jsp1);add(panel2);add(panel3);add(panel4);add(jsp5);add(panel6);validate();public class Work5_101public static void main(String args)Window5_101 win=new Window5_101();win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);-Window5_10.javanull布局,用准确的坐标和长宽import java.awt.*;import javax.swing.*;class Window5_10 extends JFrameJT
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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