JAVA程序设计实用教程课后习题简答(第3版)
- 格式:doc
- 大小:312.50 KB
- 文档页数:47
3. 编写应用程序,求1!+2!+…+10!。
答:class Fact{public static void main(String args[]){int fact,sum=0;for(int i=1;i<=10;i++){fact=1;for(int j=1;j<=i;j++)fact*=j;sum+=fact;}System.out.println("1到10的阶乘之和是:"+sum);}}4. 编写一个应用程序,求100以内的全部素数。
答:class Primes{ public static void main(String args[]){ int w=1;for(int i=2;i<=100;i++){ for(int j=2;j<i;j++){ w=i%j;if(w==0)break;}if(w!=0)System.out.println(i+"是素数");}}}5. 分别用do―while和for循环计算1+1/2!+1/3!+1/4!+…的前20项和。
答: ①for循环class Sum{public static void main(String args[]){int fact;double sum=0;for(int i=1;i<=20;i++){fact=1;for(int j=1;j<=i;j++)fact*=j;sum+=1.0/fact;}System.out.println(sum);}}②do―while循环class Sum{public static void main(String args[]){int i=1;int fact;double sum=0;do{fact=1;int j=0;while(++j<=i)fact*=j;sum+=1.0/fact;}while(++i<=20);System.out.println(sum);}}6. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。
Java语⾔程序设计(第三版)第⼆章课后习题答案(仅供参考)2.1 注意不同类型转换1import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5 Scanner sc = new Scanner(System.in);6double f = sc.nextDouble();7double t = (5.0/9)*(f-32); // 注意 (5/9) 结果为整形要写成 (5.0/9)8 System.out.println(t)9 }2.21import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5 Scanner sc = new Scanner(System.in);6 System.out.println("请输⼊圆柱体半径和⾼:");7double r = sc.nextDouble();8double h = sc.nextDouble();9double v = Math.PI * r * r * h; //圆周率⽅法 Math.PI10 System.out.println(v);11 }2.31import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5 Scanner sc = new Scanner(System.in);6 System.out.println("请输⼊体重和⾝⾼:");7double g = sc.nextDouble();8double h = sc.nextDouble();9double BMI = g / (h * h);10 System.out.println(BMI);11 }2.4 使⽤循环每次对个位取数相加取数后除以10 使前⼀位变为个位继续判断⼩于等于0时停⽌1import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5int sum = 0;6 Scanner sc = new Scanner(System.in);7int num1 = sc.nextInt();8while (num1 > 0) // 与 0 ⽐较判断是否需要取数9 {10 sum += (num1%10); // 通过取余获得个位数字11 num1 /= 10; // 每次取余后除以1012 }13 System.out.println(sum);14 }2.5 注意 System.currentTimeMillis()⽅法返回long形需要转换为int形1public class Ch02 {2public static void main(String[] args) {3// 通过 System.currentTimeMillis() ⽅法获得从1970年1⽉1⽇ 00:00:00 到现在的毫秒数4// 28800000 是格林时间与我们时区的时间差值5// 对 86400000 取余是把满⼀天的时间都去掉获取多出来的不⾜⼀天的时间6int t = (int)((System.currentTimeMillis()+28800000)%86400000);7int hour = t/3600000; // 除 3600000 获取满⼩时的个数即求⼩时为⼏点8int mine = t%3600000/60000; // 计算不⾜⼀⼩时的时间⾥有多少分钟9int s = t%3600000%60000/1000; // 计算不⾜⼀分钟的时间⾥有多少秒不要忘记除以 1000 (因为单位为毫秒)10 System.out.println("当前时间: "+hour+":"+mine+":"+s+" GMT");11 }2.6 a 不能为 0 b2 - 4 * a * c 不能为 01import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5double sum,a,b,c,t;6 Scanner sc = new Scanner(System.in);7while (true) {8 a = sc.nextDouble();9 b = sc.nextDouble();10 c = sc.nextDouble();11 t = b*b-4*a*c;12if (a == 0) {13 System.out.println("a 不能为 0,请重新测试 ^_^");14 } else if (t < 0) {15 System.out.println("b*b-4*a*c不能为0,请重新测试");16 }17else18 {19break;20 }21 }22 sum = ((-b+Math.sqrt(t)/(2*a))); //( 2*a ) 注意加括号23 System.out.println(sum);2.7 注意计算公式先后顺序多使⽤⼩括号1import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5 Scanner sc = new Scanner(System.in);6double yrate = sc.nextDouble();7double amount = sc.nextDouble();8double year = sc.nextDouble();9double month = (amount * (yrate/12))/(1-(1/Math.pow(1+yrate/12,year*12)));10double sumamount = month*12*year;11 System.out.println("⽉⽀付⾦额:"+month+"\n总偿还⾦额:"+sumamount);12 }。
Java语⾔程序的设计第三版_习题答案第⼀章绪论1.简述Java技术体系的组成。
Java技术体系主要由三部分组成:Java平台标准版Java SE,Java平台企业版Java EE,以及Java 平台微缩版Java ME。
Java SE为Java桌⾯和⼯作组级应⽤的开发与运⾏提供了环境。
它的实现主要包括Java SE Development Kit(JDK)和Java SE Runtime Environment(JRE)。
Java SE提供了编写与运⾏Java Applet与Application的编译器、开发⼯具、运⾏环境与Java API。
Java EE 定义了基于组件的多层企业级应⽤的开发标准,⾯向企业级和⾼端服务器的Internet应⽤开发。
它基于Java SE,包括Enterprise JavaBeans(EJB),Java Servlets API以及Java Server Pages(JSP)等技术,并为企业级应⽤的开发提供了各种服务和⼯具。
Java ME是针对消费类电⼦设备如移动、电视置顶盒、汽车导航系统等的嵌⼊式计算的⼀组技术和规。
2.Java的特征有哪些?简述这些特征的含义。
Java语⾔的特征包括:简单(Simple)、⾯向对象(Object oriented)、分布式(Distributed)、解释型(Interpreted)、健壮(Robust)、安全(Secure)、体系结构中⽴(Architecture neutral)、可移植(Portable)、⾼性能(High performance)、多线程(Multithreaded)和动态(Dynamic)●简单性:Java语⾔语法和语义都⽐较单纯,容易学习和使⽤。
另外,去掉C++中的指针,取消多重继承和运算符重载,存管理由程序员移向Java嵌的⾃动存回收机制等●⾯向对象:作为⼀种⾯向对象的编程语⾔,Java不仅最为“纯洁”,也对⾯向对象⽅法学的⽀持也最为全⾯。
JAVA实用教程(第三版)课后习题参考答案第1章 Java入门1. 开发与运行Java程序需要经过哪些主要步骤和过程?答:(1)编写Java源文件:使用文本编辑器(Edit或记事本),拓展名为.java(2)编译Java源文件:使用Java编译器(javac.exe)。
得到字节码文件*.class(3)运行Java程序:Java应用程序使用Java解释器(java.exe)执行字节码文件;Java小应用程序使用支持Java标准的浏览器来执行。
2. 怎样区分应用程序和小应用程序?应用程序的主类或小应用程序的主类必须用public修饰吗?答:①应用程序必须有main方法,这个方法是程序执行的入口。
小应用程序没有main方法。
②应用程序的主类不一定用public修饰;小应用程序的主类必须用public修饰。
3. Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎样的?答:①Java程序由类组成。
②应用程序可以没有public类;小应用程序一定有一个类是public类(主类)。
③应用程序:如果只有一个类,源文件名与该类的类名相同,拓展名为.java;有多个类时,如果有public类(最多一个),源文件名与public类的类名相同,拓展名是.java;没有public类,源文件名与任何一个类的类名相同即可,拓展名为.java。
小应用程序:源文件名与主类的类名相同,拓展名是.java。
4. 在运行小程序的HTML文件中可以使用codebase属性指定小程序的字节码所驻留的目录。
如果不使用codebase属性,小程序的字节码文件必须和运行它的HTML文件在同一目录中。
编写一个小程序并将小程序的字节码存放在某个目录中,比如C:\5000;把运行该小程序的HTML文件(注意其中的codebase属性): <applet code=你的小程序的字节码 width=200 height=300 codebase=C:\5000></applet>存放在另一个目录中。
读程序题第二章4. 下列哪些语句是错误的:int x = 8;byte b = 127;b = x;答:b=x语句错误;原因是高级别的变量赋值给低级别的变量时,一定要用显式转换即b=(byte)x; 。
5. 下列程序的输出结果是什么?public class E{public static void main(String args[]){long[] a={1,2,3,4};long[] b={100,200,300,400,500};b=a;System.out.println("数组b的长度:"+b.length);System.out.println("b[0]="+b[0]);}}答: 数组b的长度:4b[0]=16. 上机运行下列程序,注意观察输出结果。
public class E{public static void main(String args[]){for(int i=20302;i<20322;i++){System.out.println((char)i);}}}答: 低住佐佑佒体佔何佖佗佘余佚佛作佝佞佟你佡7. System.out.println(“你好”);可输出字符串,也可以使用System.out.println( )输出变量或表达式的值,只需使用并置符号“+”将变量、表达式或一个常数值与一个字符串并置即可,如: System.out.println(“”+x);System.out.println(“:”+123+“大于”+122);等。
上机调试下列程序,注意观察结果,特别注意System.out.print( )和System.out.println( )的区别。
public class OutputData{public static void main(String args[]){int x=234,y=432;System.out.println(x+"<"+(2*x));System.out.print("我输出结果后不回车");System.out.println("我输出结果后自动回车到下一行");System.out.println("x+y= "+(x+y));System.out.println(" "+x+y+"=");}}答: 234<468我输出结果后不回车我输出结果后自动回车到下一行x+y= 666=第三章1. 下列程序的输出结果是什么?public class E{public static void main(String args[]){char x='你',y='e',z='吃';if(x>'A'){y='爱';z='情';}elsey='我';z='她';System.out.println(" "+x+y+z);}}答: 你爱她2. 下列程序的输出结果是什么?public class E3{public static void main(String args[]){char c='\0';for(int i=1;i<=4;i++){switch(i){case 1:c='b';System.out.print(c);case 2:c='e';System.out.print(c);break;case 3:c='p';System.out.print(c);default:System.out.print("!");}}}}答:beep!!12.下列程序有什么错误?public class Takecare{int a=90;static float b=10.98f;public static void main(String args[]){float c=a+b;System.out.println("c="+c);}}答: 语句float c=a+b;错误。
第一章绪论1.简述Java技术体系的组成。
Java技术体系主要由三部分组成:Java平台标准版Java SE,Java平台企业版Java EE,以及Java 平台微缩版Java ME。
Java SE为Java桌面和工作组级应用的开发与运行提供了环境。
它的实现主要包括Java SE Development Kit(JDK)和Java SE Runtime Environment(JRE)。
Java SE提供了编写与运行Java Applet与Application的编译器、开发工具、运行环境与Java API。
Java EE 定义了基于组件的多层企业级应用的开发标准,面向企业级和高端服务器的Internet应用开发。
它基于Java SE,包括Enterprise JavaBeans(EJB),Java Servlets API以及Java Server Pages(JSP)等技术,并为企业级应用的开发提供了各种服务和工具。
Java ME是针对消费类电子设备如移动电话、电视置顶盒、汽车导航系统等的嵌入式计算的一组技术和规范。
2.Java的特征有哪些?简述这些特征的含义。
Java语言的特征包括:简单(Simple)、面向对象(Object oriented)、分布式(Distributed)、解释型(Interpreted)、健壮(Robust)、安全(Secure)、体系结构中立(Architecture neutral)、可移植(Portable)、高性能(High performance)、多线程(Multithreaded)和动态(Dynamic)●简单性:Java语言语法和语义都比较单纯,容易学习和使用。
另外,去掉C++中的指针,取消多重继承和运算符重载,内存管理由程序员移向Java内嵌的自动内存回收机制等●面向对象:作为一种面向对象的编程语言,Java不仅最为“纯洁”,也对面向对象方法学的支持也最为全面。
3. 编写应用程序,求1!+2!+…+10!。
答:class Fact{public static void main(String args[]){int fact,sum=0;for(int i=1;i<=10;i++){fact=1;for(int j=1;j<=i;j++)fact*=j;sum+=fact;}System.out.println("1到10的阶乘之和是:"+sum);}}4. 编写一个应用程序,求100以内的全部素数。
答:class Primes{ public static void main(String args[]){ int w=1;for(int i=2;i<=100;i++){ for(int j=2;j<i;j++){ w=i%j;if(w==0)break;}if(w!=0)System.out.println(i+"是素数");}}}5. 分别用do―while和for循环计算1+1/2!+1/3!+1/4!+…的前20项和。
答: ①for循环class Sum{public static void main(String args[]){int fact;double sum=0;for(int i=1;i<=20;i++){fact=1;for(int j=1;j<=i;j++)fact*=j;sum+=1.0/fact;}System.out.println(sum);}}②do―while循环class Sum{public static void main(String args[]){int i=1;int fact;double sum=0;do{fact=1;int j=0;while(++j<=i)fact*=j;sum+=1.0/fact;}while(++i<=20);System.out.println(sum);}}6. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。
第4章类、对象和接口1. 类中的实例变量在什么时候会被分配内存空间?答: 当该类创建对象之后,实例变量才会被分配相应的内存空间。
2. 什么叫方法的重载?构造方法可以重载吗?答:①一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同(方法的重载体现了多态性,即功能多态性)。
②构造方法可以重载。
3. 类中的实例方法可以操作类变量(static变量)吗?类方法(static方法)可以操作实例变量吗?答:①类中的实例方法可以操作类变量。
②类方法不可以操作实例变量4. 类中的实例方法可以用类名直接调用吗?答: 类中的实例方法不可以用类名直接调用。
5. 举例说明protected方法和友好方法的区别。
答: 当子类与父类不在同一个包中时,子类可以继承父类的protected方法;而友好方法此时则不能被子类继承。
6. 举例说明类变量和实例变量的区别。
答:⑴书写: 定义成员变量时,类变量有static修饰;实例变量没有static修饰。
例: class A{int x; //实例变量static int y; //类变量}⑵内存: 不创建对象,类的实例变量不会被分配内存空间;类变量被分配相应的内存空间。
不同对象的实例变量被分配不同的内存空间;不同对象的类变量被分配相同的内存空间。
任何一个对象改变类变量,其他对象的相应类变量也发生相应变化。
一个对象的实例变量发生改变,不影响其他对象的相应实例变量。
例: 执行语句: A1.x=10; A1.y=20;这时A2.x的值也是10;而A2.y的值保持原来的初值。
⑶使用: 类变量可以被类方法操作;而实例变量不能被类方法操作。
例: class A{int x;static int y;static void func(){b=10; //合法a=20; //非法}}类变量可以通过类名访问;实例变量不能通过类名访问。
例: class A{int x;static int y;}class B{public void func();{A.x=10; //非法A.y=20; //合法}}7. 子类将继承父类的哪些成员变量和方法?子类在什么情况下隐藏父类的成员变量和方法?在子类中是否允许有一个方法和父类的方法名字相同,而类型不同?答:①子类和父类在同一个包中时,子类可以继承父类的除private属性的所有方法和成员变量,当子类与父类不在同一个包中时,子类只能继承父类的protected和public属性的成员变量和方法。
JAVA语言程序设计习题集一、简答题1、Java程序分为哪两大类,它们之间有哪些相同点?主要区别有哪些?答:Java程序分为Java Application和Java Applet。
相同点有两个:(1)两类程序都由一个或多个以.class为后缀的文件组成;(2)两类程序都需要用户系统安装Java虚拟机(JVM)。
Java虚拟机能够载入并翻译Java程序,并且可以提供Java内核包的实现。
区别有:(1)Java Applet程序可以被嵌入HTML网页内,从而可以在网络上发布,当网页被浏览时它们可以在浏览器中运行;而Java Application程序却不支持网页嵌入和下载。
(2)Java Applet程序只能在与Java兼容的容器中运行,例如网络浏览器;而Java Application程序却没有这个限制。
(3)一个Java Applet程序必须定义一个Applet类的子类,一个Java Application程序也可以定义一个Applet类的子类,但这不是必须的,一个 Java Application程序必须在一个类中定义一个main方法,而一个Java Applet 程序并不定义main方法,它的执行是由Applet类定义的多个方法控制的。
2、Java程序是由什么组成的?Java 源文件的命名规则是怎样的?答:一个Java 程序是由若干个类组成的。
但只能有一个类是public 类。
Java源文件命名规则是:源文件名必须与其中的public 类的名字相同,扩展名是java;如果源文件中没有public 类,那么源文件的名字只要和某个类的名字相同,并且扩展名是java就可以了。
3、Java语言与Java技术的关系如何?Java语言包括哪两部分?答:Java语言是Java技术的基础。
Java语言包括语法规则和Java类库两部分。
4、开发与运行Java程序需要经过哪些主要过程?答:源程序编辑、字节码编译和解释运行。