ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:59.13KB ,
资源ID:8509646      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8509646.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java基础教程清华大学出版社第2版部分习题答案.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Java基础教程清华大学出版社第2版部分习题答案.docx

1、Java基础教程清华大学出版社第2版部分习题答案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)ch

2、ar 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型,将高精度赋给低精度类型时必须实行强制转

3、换。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=

4、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;do if (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时请输

5、出及格;成绩为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 Sy

6、stem.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

7、.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 xt0210 public static

8、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 xt0211 public 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;

9、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 cla

10、ss xt021201 public 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 xt021202 public 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);

11、/*do while语句实现*/public class xt021203 public static void main(String args ) int i,n=100; long sum=0; i=1; do sum=sum+i; i=i+1; while (i=n); System.out.println(sum1:n=+sum); 13. 复习break和continue语句,调试本章设计这两个语句的程序。【答案】答案见教材。14. 上机调试本章提供的输入输出语句。【答案】答案见教材。第三章1. 选择题(1) 不允许作为类及类成员的访问控制符的是( )。 A. public B.

12、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程序如下:/He

13、llo.java程序public class A void 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=

14、(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

15、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) 简述类中成员

16、的几种访问控制修饰符的差异,并举例说明。(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

17、 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在

18、同一包中;(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. 简述

19、方法的重载和方法的覆盖的区别,并举例说明。【答案】答案见教材。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=n

20、ew 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=+

21、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)数组定义错。因为数组声明时方括号中不能用数字,即不允许静态说明数组。

22、(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 A void operate(int c) int i; for(i=0;ic.length;i+) ci=3*ci; public class ArrayExample4

23、 public 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 StringExample4 public static void main(String args) String s1=abc; String s2=s1; s2+=def; s1.concat(def);System.out.println(

24、s1=+s1+s2=+s2); 【答案】运行结果为:s1=abc s2=abcdef6. 写出下列程序运行的结果。public class StringExample5 public 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. 写出下列程序的运行结果。pub

25、lic class StringExample6 public 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) Stri

26、ngBuffer 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块的用途,举例说明。

27、【答案】答案见教材。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(

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1