java基础教程第3版习题解答.doc
《java基础教程第3版习题解答.doc》由会员分享,可在线阅读,更多相关《java基础教程第3版习题解答.doc(39页珍藏版)》请在咨信网上搜索。
. Java基础教程第3版习题解答 第一章习题 1. James Gosling 2. 需3个步骤: 1) 用文本编辑器编写源文件 2) 使用javac编译源文件,得到字节码文件 3) 应用程序使用解释器运行。 3. path d:\jdk\bin classpath =d:\jdk\jre\lib\rt.jar;.; 4. B 5. java 和 class 6.D。 第二章习题 1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。false不是标识符。 2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。不是关键字。class implements interface enum extends abstract。 3.float常量必须用F或f为后缀。double常量用D或d为后缀,但允许省略后缀。 4.一维数组名.length。二维数组名.length。 5. C 6.ADF 7. B 8 [代码2][代码3][代码4] 9.B。 10.属于操作题,解答略。 11.3,1 12. public class E { public static void main(String args[]) { System.out.println((int)'你'); System.out.println((int)'我'); System.out.println((int)'他'); } } 13. public class E { public static void main (String args[ ]) { char cStart='α',cEnd='ω'; for(char c=cStart;c<=cEnd;c++) System.out.print(" "+c); } } 第三章习题 1. 110 2.beep!! 3. public class E { public static void main (String args[ ]) { for(char c='а'; c<='я';c++) { System.out.print(" "+c); } } } 4. public class Xiti3_4 { public static void main(String args[]) { double sum=0,a=1; int i=1; while(i<=20) { sum=sum+a; i++; a=a*i; } System.out.println("sum="+sum); } } 5. public class Xiti5 { public static void main(String args[]) { int i,j; for(j=2;j<=100;j++) { for(i=2;i<=j/2;i++) { if(j%i==0) break; } if(i>j/2) { System.out.print(" "+j); } } } } 6. class Xiti6 { public static void main(String args[]) { double sum=0,a=1,i=1; do { sum=sum+a; i++; a=(1.0/i)*a; } while(i<=20); System.out.println("使用do-while循环计算的sum="+sum); for(sum=0,i=1,a=1;i<=20;i++) { a=a*(1.0/i); sum=sum+a; } System.out.println("使用for循环计算的sum="+sum); } } 7. class Xiti7 { public static void main(String args[]) { int sum=0,i,j; for(i=1;i<=1000;i++) { for(j=1,sum=0;j<i;j++) { if(i%j==0) sum=sum+j; } if(sum==i) System.out.println("完数:"+i); } } } 8. import java.util.*; public class E { public static void main (String args[ ]) { int m,n; Scanner scaner= new Scanner(System.in); System.out.println("输入正数m回车确认"); m = scaner.nextInt(); System.out.println("输入正数n回车确认"); n = scaner.nextInt(); int p=m; int q= n; int r = m%n; while(r!=0) { m = n; n =r; r =m%n; } System.out.println(p+"和"+q+"的最大公约数"+n); System.out.println(p+"和"+q+"的最小公倍数"+(p*q)/n); } } 9. public class E { public static void main(String args[]) { int n=1; long sum=0; while(true) { sum=sum+n; n++; if(sum>=8888) break; } System.out.println("满足条件的最大整数:"+(n-1)); } } 第四章习题 1. 用该类创建对象时。 2. 一个类中可以有多个方法具有一样的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同 3. 可以。不可以。 4. 不可以。 5. sum=-100。 6. 27 第五章习题 1.如果子类和父类不在同一个包中,那么,子类继承了父类的protected、public成员变量做为子类的成员变量,并且继承了父类的protected、public方法为子类的方法。如果子类和父类不在同一个包里,子类不能继承父类的友好变量和友好方法。 2.不可以。 3.abstract类。 4. 假设B类是A类子类或间接子类,当我们用子类B创建一个对象,并把这个对象的引用放到A类的对象中时,称这个A类对象是子类对象的上转型对象。\ 5. D 6.15.0。8.0 7.98.0 12 第六章习题 1.接口中能声明变量吗? 不能 2.接口中能定义非抽象方法吗? 不能 3.什么叫接口的回调? 可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。那么该接口变量就可以调用被类实现的接口中的方法。 4.请说出E类中System.out.println的输出结果。 18 15 第7章习题 1.部类的外嵌类的成员变量在部类中仍然有效吗? 有效。 2.部类中的方法也可以调用外嵌类中的方法吗? 可以。 3.部类的类体中可以声明类变量和类方法吗? 不可以。 4.匿名类一定是部类吗? 一定是。 5.请说出下列程序的输出结果。 大家好,祝工作顺利! 6.请说出下列程序的输出结果。 p是接口变量 7.请说出下列程序的输出结果。 你好 fine thanks 第8章习题 1.不是。"\\hello"是。 2.4和3。 3.false和true。 4.负数。 5.是true。 6.3和-1。 7.会发生NumberFormatException异常。 8. 苹果 9 [代码1]:15。[代码2]:abc我们。 10.public class E { public static void main (String args[ ]) { String s1,s2,t1="ABCDabcd"; s1=t1.toUpperCase(); s2=t1.toLowerCase(); System.out.println(s1); System.out.println(s2); String s3=s1.concat(s2); System.out.println(s3); } } 11.public class E { public static void main (String args[ ]) { String s="ABCDabcd"; char cStart=s.charAt(0); char cEnd = s.charAt(s.length()-1); System.out.println(cStart); System.out.println(cEnd); } } 12.import java.util.*; public class E { public static void main (String args[ ]) { int year1,month1,day1,year2,month2,day2; try{ year1=Integer.parseInt(args[0]); month1=Integer.parseInt(args[1]); day1=Integer.parseInt(args[2]); year2=Integer.parseInt(args[3]); month2=Integer.parseInt(args[4]); day2=Integer.parseInt(args[5]); } catch(NumberFormatException e) { year1=2012; month1=0; day1=1; year2=2018; month2=0; day2=1; } Calendar calendar=Calendar.getInstance(); calendar.set(year1,month1-1,day1); long timeYear1=calendar.getTimeInMillis(); calendar.set(year2,month2-1,day2); long timeYear2=calendar.getTimeInMillis(); long 相隔天数=Math.abs((timeYear1-timeYear2)/(1000*60*60*24)); System.out.println(""+year1+"年"+month1+"月"+day1+"日和"+ year2+"年"+month2+"月"+day2+"日相隔"+相隔天数+"天"); } } 13. import java.util.*; public class E { public static void main (String args[ ]) { double a=0,b=0,c=0; a=12; b=24; c=Math.asin(0.56); System.out.println(c); c=Math.cos(3.14); System.out.println(c); c=Math.exp(1); System.out.println(c); c=Math.log(8); System.out.println(c); } } 14. import java.util.*; public class E { public static void main(String args[]) { String cost = "数学87分,物理76分,英语96分"; Scanner scanner = new Scanner(cost); scanner.useDelimiter("[^0123456789.]+"); double sum=0; int count =0; while(scanner.hasNext()){ try{ double score = scanner.nextDouble(); count++; sum = sum+score; System.out.println(score); } catch(InputMismatchException exp){ String t = scanner.next(); } } System.out.println("总分:"+sum+"分"); System.out.println("平均分:"+sum/count+"分"); } } 第9章习题 1.使用FileInputStream。 2.FileInputStream按字节读取文件,FileReader按字符读取文件。 3.不可以。 4.使用对象流写入或读入对象时,要保证对象是序列化的。 5. import java.io.*; public class E { public static void main(String args[]) { File f=new File("E.java");; try{ RandomAccessFile random=new RandomAccessFile(f,"rw"); random.seek(0); long m=random.length(); while(m>=0) { m=m-1; random.seek(m); int c=random.readByte(); if(c<=255&&c>=0) System.out.print((char)c); else { m=m-1; random.seek(m); byte cc[]=new byte[2]; random.readFully(cc); System.out.print(new String(cc)); } } } catch(Exception exp){} } } 6. import java.io.*; public class E { public static void main(String args[ ]) { File file=new File("E.java"); File tempFile=new File("temp.txt"); try{ FileReader inOne=new FileReader(file); BufferedReader inTwo= new BufferedReader(inOne); FileWriter tofile=new FileWriter(tempFile); BufferedWriter out= new BufferedWriter(tofile); String s=null; int i=0; s=inTwo.readLine(); while(s!=null) { i++; out.write(i+" "+s); out.newLine(); s=inTwo.readLine(); } inOne.close(); inTwo.close(); out.flush(); out.close(); tofile.close(); } catch(IOException e){} } } 7 属于操作题,解答略 第10章习题 1.(1)添加数据源,(2)选择驱动程序,(3)命名数据源名称。 2.不必使用数据库名称。 3.事务由一组SQL语句组成,所谓事务处理是指:应用程序保证事务中的SQL语句要么全部都执行,要么一个都不执行。 4. import java.sql.*; import java.util.*; public class E { public static void main(String args[]) { Query query=new Query(); String dataSource="myData"; String tableName="goods"; Scanner read=new Scanner(System.in); System.out.print("输入数据源名:"); dataSource = read.nextLine(); System.out.print("输入表名:"); tableName = read.nextLine(); query.setDatasourceName(dataSource); query.setTableName(tableName); query.setSQL("SELECT * FROM "+tableName); query.inputQueryResult(); } } class Query { String datasourceName=""; //数据源名 String tableName=""; //表名 String SQL; //SQL语句 public Query() { try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e) { System.out.print(e); } } public void setDatasourceName(String s) { datasourceName = s.trim(); } public void setTableName(String s) { tableName = s.trim(); } public void setSQL(String SQL) { this.SQL = SQL.trim(); } public void inputQueryResult() { Connection con; Statement sql; ResultSet rs; try { String uri = "jdbc:odbc:"+datasourceName; String id = ""; String password = ""; con = DriverManager.getConnection(uri,id,password); DatabaseMetaData metadata = con.getMetaData(); ResultSet rs1 = metadata.getColumns(null,null,tableName,null); int 字段个数 = 0; while(rs1.next()) { 字段个数++; } sql = con.createStatement(); rs = sql.executeQuery(SQL); while(rs.next()) { for(int k=1;k<=字段个数;k++) { System.out.print(" "+rs.getString(k)+" "); } System.out.println(""); } con.close(); } catch(SQLException e) { System.out.println("请输入正确的表名"+e); } } } 5. import java.sql.*; import java.util.*; public class E { public static void main(String args[]) { Query query = new Query(); String dataSource = "myData"; String tableName = "goods"; query.setDatasourceName(dataSource); query.setTableName(tableName); String name = ""; Scanner read=new Scanner(System.in); System.out.print("商品名:"); name = read.nextLine(); String str="'%["+name+"]%'"; String SQL = "SELECT * FROM "+tableName+" WHERE name LIKE "+str; query.setSQL(SQL); System.out.println(tableName+"表中商品名是"+name+"的记录"); query.inputQueryResult(); } } class Query { String datasourceName=""; //数据源名 String tableName=""; //表名 String SQL; //SQL语句 public Query() { try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException e) { System.out.print(e); } } public void setDatasourceName(String s) { datasourceName = s.trim(); } public void setTableName(String s) { tableName = s.trim(); } public void setSQL(String SQL) { this.SQL = SQL.trim(); } public void inputQueryResult() { Connection con; Statement sql; ResultSet rs; try { String uri = "jdbc:odbc:"+datasourceName; String id = ""; String password = ""; con = DriverManager.getConnection(uri,id,password); DatabaseMetaData metadata = con.getMetaData(); ResultSet rs1 = metadata.getColumns(null,null,tableName,null); int 字段个数 = 0; while(rs1.next()) { 字段个数++; } sql = con.createStatement(); rs = sql.executeQuery(SQL); while(rs.next()) { for(int k=1;k<=字段个数;k++) { System.out.print(" "+rs.getString(k)+" "); } System.out.println(""); } con.close(); } catch(SQLException e) { System.out.println("请输入正确的表名"+e); } } } 第11章习题 1.Frame容器的默认布局是BorderLayout布局,Panel容器的默认布局是FlowLayout布局。 2.不可以 3. import java.awt.*; import javax.swing.event.*; import javax.swing.*; import java.awt.event.*; public class E { public static void main(String args[]) { Computer fr=new Computer(); } } class Computer extends JFrame implements DocumentListener { JTextArea text1,text2; int count=1; double sum=0,aver=0; Computer() { setLayout(new FlowLayout()); text1=new JTextArea(6,20); text2=new JTextArea(6,20); add(new JScrollPane(text1)); add(new JScrollPane(text2)); text2.setEditable(false); (text1.getDocument()).addDocumentListener(this); setSize(300,320); setVisible(true); validate(); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } public void changedUpdate(DocumentEvent e) { String s=text1.getText(); String []a =s.split("[^0123456789.]+"); sum=0; aver=0; for(int i=0;i<a.length;i++) { try { sum=sum+Double.parseDouble(a[i]); } catch(Exception ee) {} } aver=sum/count; text2.setText(null); text2.append("\n和:"+sum); text2.append("\n平均值:"+aver); } public void removeUpdate(DocumentEvent e){ changedUpdate(e); } public void insertUpdate(DocumentEvent e){ changedUpdate(e); } } 4. import java.awt.*; import javax.swing.event.*; import javax.swing.*; import java.awt.event.*; public class E { public static void main(String args[]) { ComputerFrame fr=new ComputerFrame(); } } class ComputerFrame extends JFrame implements ActionListener { JTextField text1,text2,text3; utton buttonAdd,buttonSub,buttonMul,buttonDiv; JLabel label; public ComputerFrame() { setLayout(new FlowLayout()); text1=new JTextField(10); text2=new JTextField(10); text3=new JTextField(10); label=new JLabel(" ",JLabel.CENTER); label.setBackground(Color.green); add(text1); add(label); add(text2); add(text3); buttonAdd=new utton("加"); buttonSub=new utton("减"); buttonMul=new utton("乘"); buttonDiv=new utton- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 基础教程 习题 解答
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文