




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java基础教程(清华大学出版社第2版)部分习题答案第一章【答案】答案见教材。第二章1. 请说明注释的作用。【答案】答案见教材。2. 判断下列那些是标识符?(1) 3class(2) byte(3) ? room(4) Beijing(5) beijing【答案】(1)(2)(3)不是标识符,因为标识符不能已数字开始,也不能是保留关键字(如byte),不能以?开始。3. 请指出下列声明字符变量ch的语句是否存在错误?如果有,请改正。(1)char ch = A; (2)char ch = u0020; (3)char ch = 88; (4)char ch = ab; (5)char ch = A;【答案】(4)错,因为关键字char是用于声明字符变量,不可声明字符串变量。 4. 如果int x=1,y=-2,n=10;那么,表达式x+y+(-n)*(xy&x0?(x+1):y) 的值是什么类型?结果是多少?【答案】int型,值为17。5. 如果int k=1,那么H+k的类型是什么?下面语句是否存在差错?如果有,请改正。(1)int k=1;(2)char ch1,ch2;(3)ch1=H+k;(4)ch2=98;【答案】H+k的类型为int型。(3)有错。H+k为int型,ch1为char型,将高精度赋给低精度类型时必须实行强制转换。6. 请指出下面程序在编译时是否会出现错误。如果有,请改正。public class doubleTointExample public static void main(String args ) int a;double b=1,c=2;a=(int)(b+c);System.out.println(a=+a); 【答案】无错误。输出结果:a=37. 请指出执行完下面程序后x、y和z的输出值是多少?请上机验证。public class doubleTointExample public static void main(String args ) int x,y,z;x=1;y=2;z=(x+y3?x+:+y);System.out.println(x=+x);System.out.println(y=+y);System.out.println(z=+z); 【答案】x=1y=3z=38. 请指出下面程序片段输出的结果是什么。int i=1,j=10;doif (i+-j) break;while(i5);System.out.println(“i=”+i+”+“j=”+j);【答案】i=5j=69. 请分别用if-else语句和switch语句编写实现下列功能的程序。某同学某门课的成绩可能的结果为1,2,3,4,5。当成绩为1时请输出不及格;成绩为2时请输出及格;成绩为3时请输出中等;成绩为4时请输出良好;成绩为5时请输出优秀。【答案】/*if-else描述程序*/public class xt020901 public static void main(String args ) int score=4;if (score=1)System.out.println(不及格);else if (score=2)System.out.println(及格);else if (score=3)System.out.println(中等);else if (score=4)System.out.println(良好);else System.out.println(优秀);/*switch描述程序*/public class xt020902 public static void main(String args ) int score=4;switch (score)case 1 :System.out.println(不及格);break;case 2 :System.out.println(及格);break;case 3 :System.out.println(中等);break;case 4 :System.out.println(良好);break;case 5 :System.out.println(优秀);break;10. 请编写输出乘法口诀表的程序。乘法口诀表的部分内容如下:1*1=11*2=2 2*2=31*3=3 2*3=6 3*3=91*4=4 2*4=8 3*4=12 4*4=16public class xt0210 public static void main(String args ) final double PI = 3.141592654; double area,r; area =PI*r*r; System.out.println(“面积”area); 【答案】public class xt0210public static void main(String args ) int i,j;for(i=1;i=9;i+)for(j=1;j=i;j+) System.out.print(j+*+i+=+i*j+ );System.out.println();11. 请编写程序实现如下效果图。 【答案】public class xt0211public static void main(String args ) int i,j,k,num;char ch;num=A-1;for(i=1;i=4;i+)for(k=1;k=4-i;k+) System.out.print( );for(j=1;j=i;j+)num=num+1;ch=(char)num; System.out.print(ch+ );System.out.println();for(i=1;i=4;i+)for(k=1;k=i-1;k+) System.out.print( );for(j=1;j=5-i;j+)num=num+1;ch=(char)num; System.out.print(ch+ );System.out.println();12. 分别利用for语句、while语句以及do while语句编写一个求和程序(即sum=1+2+3+n)。【答案】/*for语句实现*/public class xt021201public static void main(String args ) int i,n=100;long sum=0;for(i=1;i=n;i+)sum=sum+i;System.out.println(sum1:n=+sum);/*while语句实现*/public class xt021202public static void main(String args ) int i,n=100;long sum=0;i=1;while(i=n)sum=sum+i;i=i+1;System.out.println(sum1:n=+sum);/*do while语句实现*/public class xt021203public static void main(String args ) int i,n=100;long sum=0;i=1;dosum=sum+i;i=i+1;while (i=n);System.out.println(sum1:n=+sum);13. 复习break和continue语句,调试本章设计这两个语句的程序。【答案】答案见教材。14. 上机调试本章提供的输入输出语句。【答案】答案见教材。第三章1. 选择题(1) 不允许作为类及类成员的访问控制符的是( )。 A. public B. private C. static D. protected【答案】C(2) 为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( )【答案】A(3) Java中main()函数的值是( )。A. String B. int C. char D. void【答案】D2. 改错题(1) 一个名为Hello.java程序如下:/Hello.java程序public class Avoid f() System.out.println(I am A); class B public class Hello public static void main (String args ) System.out.println(你好,很高兴学习Java); A a=new A(); a.f(); 要求:指出错误,说明错误原因,并改正。【答案】错误原因:一个程序中不可同时申明一个以上的public类。改正措施:将public class A变为class A即可(2) 类A的定义如下: class Avoid f() int u=(int)(Math.random()*100); int v,p;if (u50) v=9;p=v+u;要求:指出错误,说明错误原因,并改正。【答案】错误原因:Java语言规定,任何变量在使用之前,必须对变量赋值。由于u的值是由随机方法产生的,当u=50时,v在使用前没有赋值,此时执行p=v+u;会出现错误。改正措施:将int v,p;变为int v=0,p;即可 (3) B.java内容如下: class Aint x,y;static float f(int a)return a;float g(int x1,int x2)return x1*x2;public class Bpublic static void main(String args) A a=new A();A.f(3); a.f(4);a.g(2,5);A.g(3,2);要求:指出错误,说明错误原因,并改正。【答案】错误原因:A.g(3,2);由于类方法不仅可以由对象调用而且还可以直接由类名调用,而实例方法不能由类名调用。改正措施:删除A.g(3,2);或将A.g(3,2);改为a.g(3,2);3. 简答题(1) 简述面向对象程序和面向过程程序设计的异同。(2) 简述类中成员变量的分类及差异。(3) 简述类中方法的分类及差异。(4) 简述类中变量的初始化方式。(5) 简述类中成员的几种访问控制修饰符的差异,并举例说明。(6) 简述构造方法的作用。【答案】答案见教材。第四章1. 简述Java中继承的含义及特点。【答案】答案见教材。2. 指出下列程序中的错误,请说明错误原因。class A public int a = 1; private int b = 2; protected int c = 3; int d=4; public int dispA() return a; private int dispB() return b; protected int dispC() return c; int dispD() return d; public class B extends A public static void main (String args ) B bb=new B(); bb.testVisitControl ();public void testVisitControl () System.out.println(a+dispA(); System.out.println(b+dispB(); System.out.println(c+dispC(); System.out.println(d+dispD(); 【答案】System.out.println(b+dispB(); 行编辑时出现错误。原因如下:(1) 子类B和父类A在同一包中;(2) 子类B不能继承父类的private型属性和方法。3. 根据下面程序片段,画出类和对象的内存映像图。class A static int sv1=10; int sv2=20; int sv3=30;static void sf1()void f1()class B extends A static int sv2=30; int v2=3; void f1()A ref1=new A();B ref2=new B();ref1=ref2;【答案】4. 简述子类对象的成员初始化的方法。【答案】答案见教材。5. 简述成员变量的隐藏的含义,并举例说明。【答案】答案见教材。6. 简述方法的重载和方法的覆盖的区别,并举例说明。【答案】答案见教材。7. 列举this和super的用途。【答案】答案见教材。8. 指出下列程序运行的输出结果。class Point int x, y; Point( )this(-1,-1); Point(int a, int b) x=a;y=b;void showxy()System.out.println(“x=”+x+” y=”+y);public class reloadingExample public static void main (String args ) Point a=new Point (); Point b=new Point (1,1); a.showxy(); b.showxy();【答案】输出结果为:x=-1 y=-1x=1 y=19. 指出下列程序运行的输出结果。class A int x=1, y=2; double add() return x+y; class B extends A int x=10,y=20; double add() return super.x+super.y ; class ex2 public static void main(String args ) A a=new A(); B b=new B(); System.out.println(a.add=+a.add(); System.out.println(b.add=+b.add(); 【答案】输出结果为:a.add=3.0b.add=3.010. 简述接口和抽象类的含义,以及它们两者之间的不同。【答案】答案见教材。第五章1. 为什么说Java多维数组是数组元素为数组的一维数组,请用事实说明。【答案】答案见教材。2. 判断下面数组的定义是否正确?如果不正确,请改正。(1) int a5;char ch54;(2) int a =new int 4;(3) int N=10;int a=new intN;【答案】(1)数组定义错。因为数组声明时方括号中不能用数字,即不允许静态说明数组。(2) 数组定义错。因为数组维数声明顺序应该从高到低,先声明高维,再声明低维。(3)正确。因为数组元素个数可以是常量,也可以是变量。3. 若int a=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,请问a.length,a2.length, a3.length分别等于多少?【答案】a.length,a2.length, a3.length分别等于5、3、2。4. 写出下列程序的运行结果。class Avoid operate(int c)int i;for(i=0;ic.length;i+) ci=3*ci;public class ArrayExample4public static void main(String args)A a=new A();int b =1,2,3,4;a. operate (b); for(int i=0;i b.length;i+) System.out.println(bi); 【答案】运行结果为:369125. 写出下列程序的运行结果。public class StringExample4public static void main(String args)String s1=abc;String s2=s1;s2+=def;s1.concat(def);System.out.println(s1=+s1+s2=+s2);【答案】运行结果为:s1=abc s2=abcdef6. 写出下列程序运行的结果。public class StringExample5public static void main(String args)String s=ab,c,d;reverse(s0,s1);System.out.println(s0=+s0+ s1=+s1);static void reverse(String s0, String s1) String s;s=s0;s0=s1;s1=s;【答案】运行结果为:s0=ab s1=c7. 写出下列程序的运行结果。public class StringExample6public static void main(String args)String s=ab,c,d;reverse(s);System.out.println(s0=+s0+ s1=+s1);static void reverse(String s) String s0;s0=s1;s1=s0;s0=s0;【答案】运行结果为:s0=c s1=ab8. 写出下列程序的运行结果。public class StringBufferExample3 public static void main (String args) StringBuffer s1= new StringBuffer (AB); StringBuffer s2 = new StringBuffer (CD); operate (s1,s2); System.out.println(s1=+s1+ s2=+s2); static void operate(StringBuffer x, StringBuffer y) x.append(y); x= y; 【答案】运行结果为:s1=ABCD s2=CD第六章1. 简述异常的含义及作用。【答案】答案见教材。2. 简述Java异常处理的机制。【答案】答案见教材。3. 简述finally块的用途,举例说明。【答案】答案见教材。4. 简述throw和throws的用途,以及两者之间的差异。【答案】答案见教材。5. 编写一个程序,自定义一个异常,并对其进行处理。【答案】/ myException.javaimport java.util.*;class myException extends Exception class UserTrial int score; public UserTrial(int a) score=a;void show() throws myException if (score100) throw new myException();System.out.println(score=+ score);class xt060501public static void main(String args) UserTrial trial =new UserTrial(4);Scanner reader=new Scanner(System.in);System.out.println(请输入分数,并按回车键确认); int x = reader.nextInt();trial.score=x;System.out.println(x=+x);try trial.show();catch (myException e) System.out.println(错误分数:不在0,100之间); 说明:自定义异常myException,当输入分数不在0,100之间时,激活异常,显示错误分数:不在0,100之间错误提示。6. 列举10种常见异常。【答案】答案见教材。第七章/习题1/程序名称:Exam070401.java/功能:获取属性public class Exam070401public static void main(String args)System.out.println(运行时环境版本=+System.getProperty(java.version);System.out.println(安装目录=+System.getProperty(java.home);System.out.println(类路径=+System.getProperty(java.class.path);System.out.println(操作系统的名称=+System.getProperty();System.out.println(操作系统的版本=+System.getProperty(os.version);System.out.println(用户的账户名称=+System.getProperty();System.out.println(用户的主目录=+System.getProperty(user.home);System.out.println(用户的当前工作目录=+System.getProperty(user.dir);/习题2import java.util.*;class test void testString(String str0)int i,flag;char ch;String str1=new String();String str2=new String();Queue que = new LinkedList(); Stack stk=new Stack();int i=1;while (i=str0.length() que.offer(str0.substring(1,1); stk.push(str0.substring(1,1); flag=1while (flag=1 & !skt.empty() str1=que.poll();str2=stk.pop();if !str1.equals(str2) flag=0;if (flag=1)System.out.println(是回文!);/PrintBipoly public class Exam070402 public static void main(String args)myQueue a=new test();a.testString(abba);a.testString(ababab);/习题3public class Exam070403 public static void main(String args)double d;String s =1.1,2.5,3.12;4.56;5.13,6.0;7.6,8.8,99.2,10.11;/对s以分号为分隔符分离生成数组一维数组sFirstString sFirst = s.split(;);d = new doublesFirst.length;for (int i=0;isFirst.length;i+)/System.out.println(sFirsti+ );/对sFirsti以逗号为分隔符分离生成数组一维数组sSecondString sSecond = sFirsti.split(,);di = new doublesSecond.length;for(int j=0;jsSecond.length;j+)dij = Double.parseDouble(sSecondj);for(int i=0;id.length;i+)for(int j=0;jdi.length;j+)System.out.print(dij+ ); System.out.println();/习题4import java.util.*;public class Exam070404 public static void main (String args )Random rand=new Random();int n0,n1,n2,n3,n4,v0;n0=n1=n2=n3=n4=0;for(int i=0;i=0 & v=60 & v=70 & v=80 & v=90 & v=99) n4=n4+1;System.out.println(区间0,59的个数=+n0);System.out.println(区间60,69的个数=+n1);System.out.println(区间70,79的个数=+n2);System.out.println(区间80,89的个数=+n3);System.out.println(区间90,100的个数=+n4); 第八章1. 编写一个程序实现以下功能:从键盘输入一行文字写入到一个文件中。import java.io.*;public class xt070101public static void main(String args)trySystem.out.print(输入一行字符: );int count,n=512,num=0;byte buffer = new byten;FileOutputStream wf = new FileOutputStream(xt070101.txt);docount = System.in.read(buffer);wf.write(buffer,0,count); /写入输出流num=num+1;while(num0) /读取输入流System.out.print(new String(buffer);System.out.println();rf.close(); /关闭输入流catch (IOException ioe)System.out.println(ioe);catch (Exception e)System.out.println(e);3. 编写一个程序实现以下功能:将1100内的奇数写入二进制文件,然后从该二进制文件中逐一读取奇数并以每行10个数的方式输出到显示屏。import java.io.*;public class xt070301public static void main(String args) throws IOExceptionString fname=xt070301.txt;tryint i;FileOutputStream out = new FileOutputStream(fname);DataOutputStream wf = new DataOutputStream(out);for( i=1;i=100;i+)if(i%2!=0) wf.writeInt(i);wf.close(); /关闭输出流FileInputStream in = new FileInputStream(fname);DataInputStream rf = new DataInputStream(in);i=0;while (i10)i=i+1;System.out.println(第+i+个奇数=+rf.readInt();rf.close(); /关闭输入流catch (IOException ioe)System.out.println(ioe);catch (Exception e)System.out.println(e);4. 编写一个程序实现以下功能:(1) 往Access数据库表table中增加一条记录;(2) 修改table表中满足一定条件的记录;(3) 删除table表中满足一定条件的记录;(4) 在显示屏上显示table表所有记录。table表的结构如表7-12所示:表7-12 table表结构字 段 名 称类 型姓名字符性别字符学号字符总分数字import java.sql.*;import java.io.*;public class xt070401public static void main(String args)String tt=null;int count=0;String sDBDriver =sun.jdbc.odbc.JdbcOdbcDriver;String sConnStr =jdbc:odbc:myaccess;Connection conn = null;Statement Stmt=null;ResultSet RS = null;try Class.forName(sDBDriver);catch (java.lang.ClassNotFoundException e ) System.err.println(shop(): + e.getMessage() );try conn = DriverManager.getConnection (sConnStr,);Stmt = conn.createStatement();/*插入三条记录*/Stmt.executeUpdate(INSERT INTO table2 VALUES(吴一,男,2007001,90) );Stmt.executeUpdate(INSERT INTO table2 VALUES(郭妞,女,2007002,60) ); Stmt.executeUpdate(INSERT INTO table2 VALUES(大发,男,2007003,100) );/*修改姓名为郭妞的总分*/Stmt.executeUpdate(Update table2 set 总分=80 where (姓名=郭妞) ); /*删除姓名为吴一的记录*/Stmt.executeUpdate(Delete from table2 where 姓名=吴一 ); /*显示表中所有记录*/RS = Stmt.executeQuery(SELECT * FROM table2);while (RS.next() System.out.print(RS.getString(1)+ );System.out.print(RS.getString(2)+ );System.out.print(RS.getString(3)+ );System.out.println(RS.getString(4)+ );conn.close();catch (SQLException ex) System.err.println( aq.executeQuery: + ex.getMessage();第九章1. 简述线程的含义及特点。2. 简述线程的生命周期的含义。线程的一个生命周期包括哪些状态?各状态之间是如何进行转换的?3. 简述创建线程的方法,并举例说明。4. 简述Java是如何进行线程调度的。5. 为什么在多线程系统中要引入同步机制?Java是如何实现同步机制的?6. 编程验证优先级高的进程比优先级低的进程优先被调度。7. 创建一个Thread子类,覆盖run()方法。要求在run()方法内,打印一条线程已启动的消息,然后调用sleep()方法,sleep()方法延迟时间到后就退出程序。8. 上机调试本章中的实例。第十章第十一章1. 简述Applet程序的生命周期含义。Applet一个生命周期中各方法之间如何切换?2. 编写一个计算圆锥体积的程序,要求在文本框Text1和Text2中分别输入左、右操作数,单击运算符按钮(+,*,/)时在另一个文本框中显示运算结果。注意在执行除运算时,若被除数为零,要求出现错误提示信息,如下图所示。import java.awt.*;import javax.swing.*;import java.awt.event.*;class myJFrame extends JFrame implements ActionListenerint x=0,y=0,w,h;JLabel jlb1,jlb2,jlb3;JButton jbt1,jbt2,jbt3,jbt4,jbt5;JTextField jtext1,jtext2,jtext3;Container cp=getContentPane();public myJFrame() setLayout(null); jbt1=new JButton(加);j
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030全球及中国氢燃料车行业产业运行态势及投资规划深度研究报告
- 2025至2030凸型潜孔锤头行业产业运行态势及投资规划深度研究报告
- 2025至2030香草精行业产业运行态势及投资规划深度研究报告
- 税务筹划实习报告2025字范文
- 2025年材料工程师个人述职报告范文
- 2025至2030中国立式吸尘器行业市场发展分析及发展前景与投融资报告
- 2025至2030中国硝化棉市场深度调查与前景策略分析报告
- 2025至2030中国真丝睡衣行业市场发展态势及发展趋势与发展趋势分析与未来投资战略咨询研究报告
- 2025至2030中国男式休闲服装行业发展趋势分析与未来投资战略咨询研究报告
- 2025至2030中国电脑桌行业发展趋势分析与未来投资战略咨询研究报告
- CNAS-RL01:2019实验室认可规则
- 质量管理机构设置及职责
- 国家开放大学《22019统计学原理(统设课)》期末考试题库
- 国家开放大学《应用写作(汉语)》形考任务1-6答案
- 台球助教管理培训
- 顺丰运作主管
- 万达入职在线测评题
- 多校联考高一下学期语文期末考试试卷
- 品管圈PDCA提高手卫生依从性
- 2025高考物理步步高同步练习选修1练透答案精析
- TGDNAS 043-2024 成人静脉中等长度导管置管技术
评论
0/150
提交评论