JAVA习题集(含答案)_第1页
JAVA习题集(含答案)_第2页
JAVA习题集(含答案)_第3页
JAVA习题集(含答案)_第4页
JAVA习题集(含答案)_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、JAVA习题集JAVA习题集(含答案)习题一:1. 简述Java的发展过程。2. 什么是软件?3. 什么叫做源程序?4. 什么叫做编译?5. 什么是Java的byte-codes?它的最大好处是什么?6. 机器语言程序、高级语言程序以及可表示成Java字节码的程序之间的区别是什么?7. Java程序可分为哪两种?分别如何运行?& 试简述J2SE、J2ME与J2EE的简单区别。9. 练习使用浏览器查看 Java API文档。10. SDK的编译命令是什么?11. 试修改例1-1程序,使其输出的字符串为“I d like to study Jave”!,并在DOS命令行环境下编译与运行该程序。习题

2、一参考答案:1. 答:1991: Sun Microsystems公司进军消费电子产品(IA)市场。1991. 4: Sun成立“ Green”小组,以C+为基础开发新的程序设计语言,并将其命名为 Oak。1992. 10: Green小组升格为First Person公司,他们将 Oak的技术转移到 Web上,并把Oak改名为Java。19931994: Web在In ternet上开始流行,致使 Java得以迅速发展并获得成功。1995. 5: Sun Microsystems 公司正式发表 Java与 HotJava 产品。1995. 10: Netscape与 Sun Microsys

3、tems 合作,在 Netscape Nevigator 中支持 Java。1995. 12:微软(Microsoft ) IE加入支持Java的行列。1996. 2: Java Beta测试版结束,Java 1.0版正式诞生。1997. 2: Java发展至 1.1 版。Java的第一个开发包JDK (Java Development Kit)发布。1999. 7: Java升级至 1.2版。2000. 9: Java升级至 1.3版。2001. 7: Java升级至 1.4版。2. 答:软件可以理解为程序的另一种名称。3. 答:直接使用高级语言书写的程序代码称为源程序4. 答:把用高级语言

4、编写的源程序翻译成可执行(目标)程序的过程称为编译。5. 答:Java源程序经Java的编译器编译过后产生的程序称为Java的byte-codes。它的最大好处是可以实现跨平台运行。6. 答:机器语言程序是可以让计算机直接运行的程序;高级语言程序是必需经过编译或解释才可以让计算机运行的程序,并且程序的运行依赖于该语言的语言处理系统;可 表示成Java字节码的程序必需经过编译产生Java字节码程序,Java字节码程序可以实现跨平台运行。7. 答:Java程序分为:Java Application (Java应用程序)与应用在 www上的Java applet (Java小应用程序)。Java A

5、pplication可以在Java平台上独立运行,以 main() Method作为程序入口,由Java解释器加载执行。而 Java applet则是内嵌在Html文件中,必须 搭配浏览器来运行,它没有程序入口。& 答:J2ME (Java 2 Micro Edition ):用于嵌入式 Java消费电子平台。不论是无线通讯、 手机、PDA等小型电子装置都可采用其作为开发工具及应用平台。J2SEJava 2(Software Development Kit ) Standard Edition:是 Java最通行的版本,是用于工作站、 PC机的Java标准平台。J2EE (Java 2 Ent

6、erprise Edition ):可扩展的企业应用Java 2平台,它提供了企业e-Business架构及 Web Services服务。9. 答:略10. 答:javac11. 答:修改程序如下:public class Begi ntoLear npublic static void main(String args)System.out.println(I d like to study Java !);程序运行部分略。习题二1. 下面哪些是合法的常量(1) 2M(2) 4(3) 8I(4) 6.5(5) ch3 5.6E03t(8) -90(9) 012(10) 0x142. int

7、、char、float和double类型的变量各占有多少个字节?试写出它们各自的取值范围。3. 下列符号那些可以作为Java的变量名?(1) 3a(2) main(3) KFC ch. s (5) File a*b (7) m_n(8) new (9) nn2 (10) -x (11) _y (12) exp (13) ha? (14) m&m(15) j,k(佝 p:q4. 什么叫做变量的作用域?5. 试写出下列Java表达式的运算结果:(1) 15+4*5-12(2) (18-4)/7+6(3) 2=5(4) 62 & 88 &2336(6) 56/9+3.6(7) 48%9+5*5-4(

8、8) 9-78(9) (32) ? 8 : 9(10) 9= =8 & 3=90)ch=A;else if (score=75)ch=B;else if (score=60)ch=C;elsech=D;System.out.pri nt(The Grade is +ch);7. 答:程序如下:public class ShuLiepublic static void main(String args)int a ,q ,n;q=(150-135)/5;a=(135-20*q)/5;for (n=0;n 10; n+)System.out.pri nt(a+n*q)+);&答:程序如下:publ

9、ic class Pyramidpublic static void main(String args)int i,j,k;for(i=0;i=4;i+) for ( j=0;j20-i;j+)System.out.pri nt(”);for (k=0;k=2*i;k+)if (k=i)System.out.pri nt( +(2*k+1);elseSystem.out.pri nt( +(2*(2*i-k)+1);System.out.pri ntl n();9. 答:程序如下:import java.io.*;public class PrimeNumberpublic static vo

10、id main(String args) throws IOExceptionint n=0;int m;Stri ng str;BufferedReader buf;buf= new BufferedReader( new In putStreamReader(System.i n);System.out.pri nt(l nput the m:);str=buf.readL in e();m=I nteger.parsel nt(str);outer:for(i nt i=3;i=m;i+=2)/outer loop/inn erlop/outputa newli ne/after10 n

11、u mbersfor(i nt j=2;ji;j+) if(i%j=O) continue outer;System.out.pri nt( +i);n+;if(n=10) System.out.pri ntl n(); n=0;System.out.pri ntl n();10. 答:程序如下:import java.io.*;public class Factor12public static void main(String args) throws IOExceptionint m;Stri ng str;BufferedReader buf;buf= new BufferedRead

12、er( new In putStreamReader(System.i n);System.out.pri nt(l nput the m:);str=buf.readL in e();m=I nteger.parsel nt(str);System.out.pri nt(m+s factors are:System.out.pri ntln();for(i nt i=1;i=5)m=m/2;d+;System.out.pri nt(d+:);System.out.pri ntl n( m);System.out.pri nt(You n eed +d+12. 程序如下:public clas

13、s AlmostPipublic static void main(String args);days);int n;long m;double s,t;n=1;m=0;s=0;do t=(double) n/(2*m+1);m+;n=-n;s=s+t; while (4*s-3.14159 0.0000001 | 4*s-3.14159 -0.0000001);System.out.pri ntl n( m);13. 答:程序如下:public class LSR ndpublic static void main(String args)int mun,n, max1,mi n1;max1

14、=0;min 1=100;for (n=1; n max1)max1= mun;if (mun=1 & m=12)System.out.pri ntln (m on thm-1);elseSystem.out.pri nt(Your In put is wron g);15.答:程序如下:import java.io.*;public class StatNumpublic static void main( Stri ng args) throws lOExcepti onint m;char s;String str;int a=new int10;BufferedReader buf;b

15、uf= new BufferedReader( new In putStreamReader(System.i n);System.out.print(Input the long number:);str=buf.readL in e();for (int i=0;i=15;i+) s=str.charAt(i);m=(int)s-48;/字符数据转换为整型数据时转换的是其Unicoad代码。am=am+1;for (m=0;m10;m+)System.out.pri ntln( m+:+am);16.答:程序如下:第25页共36页import java.io.*;public class

16、SortArraythrows IOExcepti onpublic static void main(String args)int m, n,k;int aa=new in t6;int bb=new int6;/利用产生随机数的方式为数组赋值。int cc=new int12;for (in t i=0;i6;i+)m=(i nt)(100*Math.ra ndom();aai=m;+bbi);/先将两个数组进行排序n=(i nt)(100*Math.ra ndom(); bbi=n;System.out.pri ntln( aai+for (in t i=0;i6;i+)for (i

17、nt j=i;jaaj)int t=aai;aai=aaj;aaj=t; if (bbibbj)int t=bbi;bbi=bbj;bbj=t;m=0;II用合并法将两个有序数组排序并合并n=0;k=0;while (m6 &n 6)if (aam=bb n) cck=aam;m+;elsecck=bb n; n+;k+;while (m6)cck=aam;m+;k+;while (n6)cck=bb n; n+;k+;for (int i=0;i12;i+)System.out.pri nt(cci+);17.答:程序如下:class RecuSumstatic long Sum1(i nt

18、 n)if (n=1)return 1;elsereturn n+Sum1( n-1);public static void main(String args) int n=200;System.out.pri ntln (Sum=+Sum1( n);习题四1类和对象之间的关系。2声明一个类Person,成员变量有姓名、出生年月、性别。有成员方法以显示姓名、年龄和 性别。3声明一个矩形类 Recta ngle,其中有多个构造方法。用不同的构造方法创建对象,并输出 矩形的周长和面积。4声明一个矩阵类Matrix,有这样一些实例方法:将一个矩阵转置、求两个矩阵的和。5举例说明类(静态)成员的特点。

19、6说明继承和接口的区别已及它们各自的作用。7写出下面程序的运行结果class Leve1String n ame=;int height,width;public Leve1();public Leve1(Leve1 le) n ame=le .n ame;height=le.height;width=le.width;public Leve1(Stri ng n a,i nt h,i nt w) n ame=na;height=h;width=w;public int higherthe n( Leve1 t) retur n this.height-t.height;public void

20、 prin t()System.out.pri ntln (class Leve1:);System.out.pri ntl n( Name=: +name+, Height=: +height+, Width=: +width);class Leve2 exte nds Leve1int width;public Leve2();public Leve2(Leve1 le,i nt h,i nt w) super(le);height=h;width=w;public int widerthe n()retur n width-super.width;public void prin t()

21、System.out.pri ntln (class Leve2:);System.out.pri ntl n( Name=: +name+, Height=: +height+, Width=: +width);public class Lev_expublic static void main(String args)Leve1 le1= new Leve1(Tower_1,50,20);Leve2 le2=new Leve2(le1,40,25);le1.pri nt();le2.pri nt();System.out.println(Leve1 is +le1.higherthen(l

22、e2)+ highter then Leve2.);System.out.pri ntln (Leve2 is +le2.widerthe n()+ wider then Leve1.);8 Java中的包和 windows的文件夹有什么关系?9说明类的成员的访问权限和包的关系。10创建两个String类的对象str1和str2,判断sr2是否是str1的子串。如果是,输出str1中,在子串ztr2前和后的字符串。如:“ Action是“ addActionListener的子串,在此子串前是字符串” add,后面是字符串” Listener。”11写出下面程序的运行结果class Fathe

23、rint兀public Father(i nt x) this.x=x;public Father();public int fun()int f=0;for(i nt i=1;i=x;i+)f=f+i;return f;public int fun (i nt x) int f=1;for(i nt i=this.x;i=x; i+)f=f*i;return f;class Son exte nds Fatherpublic Son (i nt a) super(a);public int fun()int f=1;for(i nt i=1;i=x;i+)f=f*i;return f;pub

24、lic class Pol_expublic static void main(String args)Father f1= new Father(5);Son s1= new Son (3);System.out.pri ntl n( s1.fu n();System.out.pri ntl n(f1.fu n();System.out.pri ntln (f1.fu n(6);f1=s1;System.out.pri ntl n( s1.fu n();System.out.pri ntl n(f1.fu n();System.out.pri ntln (f1.fu n(6);习题四参考答案

25、:2、import java.util.*;public class Personprivate String n ame;private char sex;private int year,m on th;public Pers on( )public Person( Stri ng nm ,char sx,i nt y,i nt m) n ame=nm;sex=sx;year=y;mon th=m;public void prin tPers on()Cale ndar no w=Cale ndar.get In sta nce();int age=no w.get(Cale ndar.Y

26、EAR)-year;System.out.pri ntln( Name: +name+,Sex: +sex+. Age: +age);public static void main(String args)Person pe 仁new Perso n( Tom,m,1980,10);pel.pri ntPers on();3、public class Recta ngledouble width,le ngth,girth,area;public Recta ngle();public Recta ngle(double wd,double le) width=wd;le ngth=le;pu

27、blic void setWidth(double wd)width=wd;public void setLe ngth(double le)le ngth=le;public double getWidth()return width;public double getLe ngth()return len gth;public double girth()return 2*(width+le ngth);public double area()retur n width*le ngth;public void prin tRecta ngle() System.out.println(Wi

28、dth=+width+ ,Length=+length);publicstatic void main( Stri ng args)Recta ngle re仁new Recta ngle(10,20);Recta ngle re2=new Recta ngle();re2.setWidth(3);re2.setLe ngth(4);rel.pri ntRecta ngle();System.out.pri ntln (Girth=+re1.girth()+,Area=+re1.area();re2.pri ntRecta ngle();System.out.pri ntl n( Girth=

29、+re2.girth()+,Area=+re2.area(); 4、public class Matrixprivate int mx, m,n;public Matrix(i nt r,i nt c)JAVA习题集m=r;n=c;mx=new in tm n;in iMatrix();public Matrix()m=3;n=3;mx= new in t33;in iMatrix();public void ini Matrix。i nt i,j;for(i=0;i=m-1;i+)for(j=0;j=n _1;j+)mxij=(i nt)(Math.ra ndom()*100); publi

30、c void tranM atrix()int i,j,t;int mt=new in tm n;for(i=0;i=m-1;i+)for(j=0;j=n _1;j+)mtij=mxij;t=m;m=n;n=t;mx=new in tm n;for(i=0;i=m-1;i+)for(j=0;j=n _1;j+)mxij=mtji;public void prin tMatrix()for(i=0;i=m-1;i+)int i,j;第#页共36页JAVA习题集 for(j=0;j=n _1;j+)System.out.pri nt( +mxij);System.out.pri ntl n();p

31、ublic void addMatrix(Matrix b)int i,j;for(i=0;i=m-1;i+)for(j=0;j=0)System.out.pri ntln (Stri ng_2 is in Stri ng_1);System.out.println(The substring before String_2 is +str1.substring(0,n);System.out.println(The substring behind String_2 is+str1.substring(n+str2.length();习题五问答题:1. 请解释try、catch、fin al

32、ly块之间的关系。2. try块的嵌套有几种形式?他们对异常分别是怎样处理的?3. 简述throw,throws语句的作用。习题五参考答案:1. try块用来监视某段代码执行过程中是否发生异常,若发生则产生异常对象并抛出。catch用于捕获异常并处理它。fin ally块中的语句无论是否发生异常都将被执行。2有两种形式。一种是显式嵌套,它是指在某个方法中,某一个try块又包含另一 try块,当内层try块抛出异常对象时, 首先对内层try块的catch语句进行检查,若与抛出异常类型 匹配则由该catch处理,否则由外层 try块的catch处理。另一种是隐式嵌套,它是指在不同的方法中,若方法

33、1的try块中调用方法2,而方法2 又包含一个try语句,则方法1中的try块为外层,方法2中的try为内层。3. throw语句用于在程序中自行抛出异常,throw语句执行后,其后继语句将不再执行,执行流程将直接寻找后面的 catch语句,如果catch语句中的参数能匹配 throw语句抛出的Throwable对象,则执行相应的异常处理程序。如果catch语句中的参数没有一个能与该对象相匹配,则由缺省的异常处理器终止程序的执行并输出相应的异常信息。throws语句用于声明一个方法可能引发的所有异常,这些异常是要求调用该方法的程序处理的。习题六问答题:1线程有那些特点。2什么是线程的生命周期?

34、线程的是怎样在各种状态下转换的。3编写一个线程程序,有两各线程,分别在屏幕上显示150之间的奇数和偶数。观查一共有几个线程在运行,各个线程是怎样被处理器执行到的。4编写程序同上题,利用Java对线程的调度技术,使屏幕上先显示150之间的奇数,再显示150之间的偶数。5 一个多线程的程序怎么会出现死锁?6编写一个程序,创建两个线程,其中一个产生5个1100之间的随机整数,另一个线程将 这5个数加起来。观察运行的情况,分析结果是否正确。如果结果有问题,想办法解决它。习题六参考答案:3.public class Thread1 exte nds Thread int d;public Thread1

35、(Stri ng n ame,i nt d)super( name);this.d=d;public void run()System.out.pri ntl n();System.out.pri nt(getName()+:);for(k=d;k=50;k=k+2)System.out.pri nt(k+);System.out.pri ntln( getName()+ en d!);public static void main(String args)Thread1 th仁 new Thread1(th1,1);Thread1 th2=new Thread1(th2,2);th1.sta

36、rt();th2.start();System.out.pri ntl n(activeco un t=+Thread.activeCo un t();4.public class Thread2 exte nds Thread int d;public Thread2(Stri ng n ame,i nt d)super( name);this.d=d;public void run()int k;System.out.pri ntl n();System.out.pri nt(getName()+:);for(k=d;k=50;k=k+2)System.out.pri nt(k+);Sys

37、tem.out.pri ntln( getName()+ en d!);public static void main(String args)Thread2 th仁new Thread2(th1,1);Thread2 th2=new Thread2(th2,2);th1.start();th2.setPriority(1);th2.start();int k;第29页共36页JAVA习题集System.out.pri ntl n(activeco un t=+Thread.activeCo un t();6.class Databufprivate int value,totalvalue;private boolea n writeable=true;int sort=0;syn chro ni zed void sen ddata()while(!writeable)trythis.wait();catch(I nterruptedExceptio n e)System.out.pri ntl n( e);value=(i nt)(Math.ra ndom()*100);writeable=false;n otifyAII();syn chro ni zed int adddata()while(writeable)trythis.wait();catch(I nterr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论