JAVA习题集(含答案)习题一:1.简述Java的发展过程。
2.什么是软件?3.什么叫做源程序?4.什么叫做编译?5.什么是Java 的byte-codes?它的最大好处是什么?6.机器语言程序、高级语言程序以及可表示成Java字节码的程序之间的区别是什么?7.Java程序可分为哪两种?分别如何运行?8.试简述J2SE、J2ME与J2EE的简单区别。
9.练习使用浏览器查看Java API文档。
10.SDK的编译命令是什么?11.试修改例1-1程序,使其输出的字符串为“I’d like to study Java !”,并在DOS命令行环境下编译与运行该程序。
习题一参考答案:1.答:1991:Sun Microsystems公司进军消费电子产品(IA)市场。
1991.4:Sun 成立“Green”小组,以C++为基础开发新的程序设计语言,并将其命名为Oak。
1992.10:Green小组升格为First Person公司,他们将Oak的技术转移到Web上,并把Oak改名为Java。
1993~1994:Web在Internet上开始流行,致使Java得以迅速发展并获得成功。
1995.5:Sun Microsystems公司正式发表Java与HotJava产品。
1995.10:Netscape与Sun Microsystems合作,在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.答:把用高级语言编写的源程序翻译成可执行(目标)程序的过程称为编译。
5.答:Java源程序经Java的编译器编译过后产生的程序称为Java 的byte-codes。
它的最大好处是可以实现跨平台运行。
6.答:机器语言程序是可以让计算机直接运行的程序;高级语言程序是必需经过编译或解释才可以让计算机运行的程序,并且程序的运行依赖于该语言的语言处理系统;可表示成Java字节码的程序必需经过编译产生Java字节码程序,Java字节码程序可以实现跨平台运行。
7.答:Java程序分为:Java Application(Java应用程序)与应用在www上的Java applet (Java小应用程序)。
Java Application可以在Java平台上独立运行,以main() Method 作为程序入口,由Java解释器加载执行。
而Java applet则是内嵌在Html文件中,必须搭配浏览器来运行,它没有程序入口。
8.答:J2ME(Java 2 Micro Edition):用于嵌入式Java消费电子平台。
不论是无线通讯、手机、PDA等小型电子装置都可采用其作为开发工具及应用平台。
J2SE[Java 2(Software Development Kit)Standard Edition]:是Java最通行的版本,是用于工作站、PC机的Java标准平台。
J2EE(Java 2 Enterprise Edition):可扩展的企业应用Java 2平台,它提供了企业e-Business架构及Web Services服务。
9.答:略10.答:javac11.答:修改程序如下:public class BegintoLearn{public 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(6) 5.6E03 (7) \t (8) –90 (9) 012 (10) 0x142.int、char、float和double类型的变量各占有多少个字节?试写出它们各自的取值范围。
3.下列符号那些可以作为Java的变量名?(1) 3a (2) main (3) KFC (4) ch.s (5) File (6) a*b (7) m_n(8) new (9) nn2 (10) -x (11) _y (12) exp (13) ha? (14) m&m(15) j,k (16)p:q4.什么叫做变量的作用域?5.试写出下列Java表达式的运算结果:(1) 15+4*5-12(2) (18-4)/7+6(3) 2>=5(4) 6<=6(5) 5>2 && 8<8 &&23<36(6) 56/9+3.6(7) 48%9+5*5-4(8) 9-7<0 || 11>8(9) (3>2) ? 8 : 9(10) 9= =8 && 3<76.假设int m=2,float n=0.1f,经过下列表达式的运算后,m、n各为什么值?(1) m=9/8;(2) m=45%8+4*5-4;(3) m=36+36*2%m--;(4) m*=5/m-1;(5) n-=5*3.1;7.编写一程序,利用System.out.println()方法分别输出下列语句的执行结果:(1) 将变量m的初值赋值为10,变量n的初值赋值为5。
(2) 变量m的值加3,n的值加5。
(3) 求m和n的平均值,并将该值赋于变量p。
(4) 将m的平方乘以n的平方并赋值给变量q。
请注意各变量定义时所应该使用的数据类型。
8.已知圆球体积公式为,编写一程序,设计一个求圆球体积的方法,并在主程序中调用它,求出当r=3时,圆球的体积值。
习题二参考答案:1.答:(1) 不合法(2) 合法(3) 不合法(4) 合法(5) 不合法(6)合法(7) 合法(8) 合法(9) 合法(10) 合法2.答:变量类型内存中所占字节数取值范围int 4 -231~ (231-1)float 4 3.4e-038 ~ 3.4e+038double 8 1.7e-308 ~1.7e+308char 2 0 ~ 65535。
3.下列符号那些可以作为Java的变量名?(1) 不合法(2)合法(3)合法(4) 不合法(5)合法(6) 不合法(7) 合法(8). 不合法(9)合法(10). 不合法(11)合法(12)合法(13) 不合法(14) 不合法(15) 不合法(16) 不合法4.答:变量的作用域指的是可以访问这一变量的程序代码的范围。
5.答:(1) 23(2) 8(3) false(4) true(5) false(6) 9.6(7) 24(8) true(9) 8(10)false6.答:(1) 1;(2) 21;(3) 45;(4) –45;(5) –15.4;7.答:程序如下:public class ProNum{public static void main(String args[]){float p;long q;int m=10,n=5;System.out.println("m="+m+" n="+n);m=m+3;n=n+5;System.out.println("m="+m+" n="+n);p=(float)(m+n)/2;System.out.println("p="+p);q=(m*m*n*n);System.out.println("q="+q);}}8.答:程序如下:class Sphere {int r;double v;public void CalVolume() {v=3.14*r*r*r*4/3;}public void display() {System.out.println("V="+v);}}class SphereClass{public static void main(String args[]) {Sphere s = new Sphere();s.r = 3;s.CalVolume();s.display();}}习题三1.什么是结构化程序设计?2.使用if语句与使用条件运算符“?:”有什么不同?3.使用for循环与while循环的条件有什么不同?4.简述break语句与continue的区别?5.编写程序:由键盘输入两个字符串“12”与“24”,将它们转换成整数,然后计算并输出这两个数的和。
6.编写程序:由键盘输入给出一个百分制成绩,要求输出成绩等级’A’、’B’、’C’和’D’,90分以上为’A’,75~89为’B’,60~74为’C’,60分以下为’D’。
7.编一程序,求一个10项所组成的等差数列,其奇数项之和为135,偶数项之和为150。
8.用for语句输出下列数字金字塔:11 3 11 3 5 3 11 3 5 7 5 3 11 3 5 7 9 7 5 3 19.编写程序:由键盘输入一正整数,求出小于且等于这个数的所有质数。
10.编写程序:由键盘输入一整数,求出该数所有的因子,如输入6,则输出的6的所有因子为1、2、3、6。
11.假设有一条钢材长2000米,每天截取其中的一半,编一程序求出多少天后,钢材的长度开始短于5米?12.编写程序:利用数列来取得的近似值。
并计算在得到3.14159之前,这个数列要取到第几项?13.使用java.long.Math类,生成10个0~99之间的随机整数,求出它们中的最大值和最小值。
提示:java.long.Math类支持random方法:Math. Random( )。
该方法返回值是正数,类型为double,范围为0~1。
如果要得到其它范围的数,则要进行相应的转换。
例如要得到(a,b)之间的整数的方法是:(int) ((b-a+1)*Math.random()+a)。
若要得到(0,99)之间的整数可以使用下列语句:int m = (int) (100*Math.random());14.编写程序:声明一数组来存放12个月的英文名称,由用户从键盘输入月份,如输入8,则程序输出相应的月份名称:August。
同时请大家考虑若是用户输入了1~12以外的内容,你的程序将如何应对?15.编写程序:由键盘输入一16位的长整数,统计0~9这十个数字每一个出现的次数。