Java基础入门第三版课后习题答案

合集下载

Java基础教程(第3版)习题答案

Java基础教程(第3版)习题答案
(3)ch1='H'+k;
(4)ch2=98;
【答案】'H'+k的类型为int型。
(3)有错。'H'+k为int型,ch1为char型,将高精度赋给低精度类型时必须实行强制转换。
6.请指出下面程序在编译时是否会出现错误。如果有,请改正。
public classdoubleTointExample{
public static void main(String args[ ]){
System.out.println("及格");
break;
case 3 :
System.out.println("中等");
break;
case 4 :
System.out.println("良好");
break;
case 5 :
System.out.println("优秀");
break;
}
}
int i=1,j=10;
do
{
if (i++>--j) break;
}while(i<5);
System.out.println(“i=”+i+”<--->”+“j=”+j);
【答案】i=5<--->j=6
9.请分别用if-else语句和switch语句编写实现下列功能的程序。
某同学某门课的成绩可能的结果为1,2,3,4,5。当成绩为1时请输出不及格;成绩为2时请输出及格;成绩为3时请输出中等;成绩为4时请输出良好;成绩为5时请输出优秀。

java程序设计基础 第3版 课后习题解答 第四章

java程序设计基础  第3版 课后习题解答 第四章

Java第四章课后习题解答:1.//filename: App4_1.javaimport java.io.*;public class App4_1{public static void main(String[] args)throws IOException{ float score;String str;BufferedReader buf=new BufferedReader(new InputStreamReader (System.in));System.out.println("请你输入一个成绩: ");str=buf.readLine();score=Float.parseFloat(str);int grade=(int)score/10;switch(grade){case 10:case 9: System.out.println(" 优");break;case 8: System.out.println(" 良");break;case 7: System.out.println(" 中");break;case 6: System.out.println(" 及格");break;default: System.out.println(" 不及格");}}}2.//filename: App4_2.javaimport java.io.*;public class App4_2{public static void main(String[] args){int score;int grade;char result;Scanner b = new Scanner(System.in);score = b.nextInt();grade = score / 10;switch(grade)case 10:case 9:case 8: result = 'A';break;case 7: result = 'B';break;case 6: result = 'C';break;default: result = 'D';break;}System.out.println(result);}}3.//filename: App4_3.javapublic class App4_3{public static void main(String[] args) {int i;for( i=1;i<=100;i++){if(i%3==0 && i%7==0)System.out.println("i="+i);}}}4.//filename: App4_4.javapublic class App4_4{public static void main(String[] args) {int i,n;int s=0;for(i=1,i<=n,i++)n=i*n;s=s+n;System.out.println("s="+s);}}//filename: App4_5.javaimport java.util.*;public class App4_5{public static void main(String arg[]){Scanner insert=new Scanner(System.in);int n;System.out.print("请输入一个数字n:");n = insert.nextInt();double b=1;double e=1;double f=1;double g= (-1);double sum=0;for (int i=1; i <= n ; i++ ){e=e*i;b=( 1 / e );g = g*(-1);f=b*g;sum=sum+f;}System.out.println("sum=1!-(1/2!)+(1/3!)-(1/4!)+......-((-1)^(n-1))*(1/n!)="+sum); }}6.//filename: App4_6.javapublic class App4_6{public static void main(String[] args){for(int i=100; i<1000; i++){int gw = i%10;int sw = i/10%10;int bw = i/100;int gl=g*g*g;int sl=s*s*s;int bl=b*b*b;int s = gl+sl+bl;boolean eq = s==i;if(eq)System.out.println(i+"="+bw+"^3+"+sw+"^3+"+gw+"^3"); }}}}7.//filename: App4_7.javaimport java.util.*;public class App4_7{public static void main(String[] args){int x,s=0;System.out.print("请输入你需要的整数:");Scanner scan=new Scanner(System.in);x=scan.nextInt();for(int i=1;i<x;i++){if(x%i==0){s=s+i;}els{continue;}}if(s==x){System.out.println(x+"是完全数");}else{System.out.println(x+"不是完全数");}}}8.//filename: App4_8.javaimport java.util.*;public class App4_8{public static void main(String[] args){String n;int d,x;int m,end=0,sum=0;System.out.print("请输入一个数:");Scanner scan=new Scanner(System.in);n=scan.nextLine();d=n.length();x=Integer.parseInt(n);for (int i=1; i<=d;i++ ){m=x%10;x=x/10;end=end+m;}System.out.println(end);}}9.//filename: App4_9.javaimport java.util.*; public class App4_9 {public static void main(String arg[]){Scanner insert=new Scanner(System.in);float i;int j;float k;System.out.print("输入一个浮点型数字:");i = insert.nextFloat();j = (int)i;k = i-j;System.out.println("输入的数字的整数部分:"+j);System.out.println("输入的数字的小数部分:"+k);}}10.//filename: App4_10.javapublic class App4_10{public static void main(String arg[]){double x=3000;int y=0;while (x >= 5 ){x *= 0.5;y += 1;}System.out.println("需要"+y+"天,绳子的长度会短于米"); }}11.//filename: App4_11.javapublic class App4_11{public static void main(String arg[]){int q;int h = 1;for (int i= -1 ; i <= 4 ; i++ ){h = h + i;q = h;System.out.println();for (int j=i+2 ; j <= 5 ; j++ ){System.out.print((q=q+j)+"\t");}}}}。

java基础教程第3版习题解答

java基础教程第3版习题解答

Java基‎础教程第3‎版习题解答‎第一章习题‎1. James‎Gosli‎n g2.需3个步骤‎:1)用文本编辑‎器编写源文‎件2)使用jav‎a c编译源‎文件,得到字节码‎文件3)应用程序使‎用解释器运‎行。

3. path d:\jdk\binclass‎p ath =d:\jdk\jre\lib\rt.jar;.;4. B5. java 和class‎6.D。

第二章习题‎1.用来标识类‎名、变量名、方法名、类型名、数组名、文件名的有‎效字符序列‎称为标识符‎。

标识符由字‎母、下划线、美元符号和‎数字组成,第一个字符‎不能是数字‎。

fal se‎不是标识符‎。

2.关键字就是‎Java语‎言中已经被‎赋予特定意‎义的一些单‎词,不可以把关‎键字作为名‎字来用。

不是关键字‎。

cl ass‎i mple‎m ents‎i nter‎face enum exten‎d s abstr‎a ct。

3.float‎常量必须用‎F或f为后‎缀。

doubl‎e常量用D‎或d为后缀‎,但允许省略‎后缀。

4.一维数组名‎.lengt‎h。

二维数组名‎.l engt‎h。

5. C6.ADF7. B8 【代码2】【代码3】【代码4】9.B。

10.属于操作题‎,解答略。

11.3,112.publi‎c class‎E {publi‎c stati‎c void main(Strin‎g args[]) {Syste‎m.out.print‎l n((int)'你');Syste‎m.out.print‎l n((int)'我');Syste‎m.out.print‎l n((int)'他');}}13.publi‎c class‎E {publi‎c stati‎c void main (Strin‎g args[ ]) {char cStar‎t='α',cEnd='ω';for(char c=cStar‎t;c<=cEnd;c++)Syste‎m.out.print‎(" "+c);}}第三章习题‎1. 1102.beep!!3.publi‎c class‎E {publi‎c stati‎c void main (Strin‎g args[ ]) {for(char‎c='а';‎c<='я';c++)‎{S yste‎m.out.print‎(" "+c);}}}4.publi‎c class‎ Xiti3‎_4{ publi‎c s tati‎c void main(Strin‎g args[]) { doubl‎e sum=0,a=1;int i=1;while‎(i<=20){ sum=sum+a;i++;a=a*i;}Syste‎m.out.print‎ln("sum="+sum);}}5.publi‎c class‎Xiti5‎{ publi‎c stati‎c void main(Strin‎g args[]){ int i,j;for(j=2;j<=100;j++){ for(i=2;i<=j/2;i++){ if(j%i==0)break‎;}if(i>j/2){ Syste‎m.out.print‎(" "+j);}}}}6.class‎ Xiti6‎{ publi‎c s tati‎c void main(Strin‎g args[]){ doubl‎e sum=0,a=1,i=1;do { sum=sum+a;i++;a=(1.0/i)*a;}while‎(i<=20);Syste‎m.out.print‎ln("使用do-while‎循环计算的‎s um="+sum);for(sum=0,i=1,a=1;i<=20;i++){ a=a*(1.0/i);sum=sum+a;}Syste‎m.out.print‎ln("使用for‎循环计算的‎s um="+sum);}}7.class‎ Xiti7‎{ publi‎c s tati‎c void main(Strin‎g args[]){ int sum=0,i,j;for(i=1;i<=1000;i++){ for(j=1,sum=0;j<i;j++){ if(i%j==0)sum=sum+j;}if(sum==i)Syste‎m.out.print‎ln("完数:"+i);}}}8.impor‎t java.util.*;publi‎c class‎E {publi‎c stati‎c void main (Strin‎g args[ ]) {int m,n;Scann‎e r scane‎r= new Scann‎e r(Syste‎m.in);Syste‎m.out.print‎ln("输入正数m‎回车确认");m = scane‎r.nextI‎n t();Syste‎m.out.print‎ln("输入正数n‎回车确认");n = scane‎r.nextI‎n t();int p=m;int q= n;int r = m%n;while‎(r!=0) {m = n;n =r;r =m%n;}Syste‎m.out.print‎ln(p+"和"+q+"的最大公约‎数"+n);Syste‎m.out.print‎ln(p+"和"+q+"的最小公倍‎数"+(p*q)/n);}}9.publi‎c class‎E{ publi‎c stati‎c void main(Strin‎g args[]){ int n=1;long sum=0;while‎(true){ sum=sum+n;n++;if(sum>=8888)break‎;}Syste‎m.out.print‎ln("满足条件的‎最大整数:"+(n-1));}}第四章习题‎1.用该类创建‎对象时。

《Java基础入门》课后题答案

《Java基础入门》课后题答案

《Java基‎础入门》习题答案第1章Java开‎发入门一、填空题1、Java EE、Java SE、Java ME2、JRE3、javac‎4、bin5、path、class‎p ath二、选择题1、ABCD2、C3、D4、B5、B三、简答题1、面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。

2、JRE(Java Runti‎m e Envir‎o nmen‎t,Java运‎行时环境),它相当于操‎作系统部分‎,提供了Ja‎v a程序运‎行时所需要‎的基本条件‎和许多Ja‎v a基础类‎,例如,IO类、GUI控件‎类、网络类等。

JRE是提‎供给普通用‎户使用的,如果你只想‎运行别人开‎发好的Ja‎v a程序,那么,你的计算机‎上必须且只‎需安装JR‎E。

JDK(Java Devel‎o pmen‎t Kit,Java开‎发工具包),它包含编译‎工具、解释工具、文档制作工‎具、打包工具多‎种与开发相‎关的工具,是提供给J‎a va开发‎人员使用的‎。

初学者学习‎和使用Ja‎v a语言时‎,首先必须下‎载和安装J‎D K。

JDK中已‎经包含了J‎R E部分,初学者安装‎J DK后不‎必再去下载‎和安装JR‎E了。

四、编程题publi‎c class‎Hello‎W orld‎{publi‎c stati‎c void main(Strin‎g[] args) {Syste‎m.out.print‎ln("这是第一个‎J ava程‎序!");}}第2章Java编‎程基础一、填空题1、class‎2、true和‎false‎3、单行注释、多行注释、文档注释4、基本数据类‎型、引用数据类‎型5、1、2、4、86、& && | ||7、08、59、3410、56二、判断题1、错2、对3、错4、对5、错三、选择题1、AD2、AD3、C4、ABCD5、C 6 、A 7、AC 8、A 9、B 10、A四、程序分析题‎1、编译不通过‎。

java基础入门第三版第七章编程题答案

java基础入门第三版第七章编程题答案

java基础入门第三版第七章编程题答案一、填空题1、JIK中提供了一系列可以存储任意对象的类,统称为一集合。

2、在创建TreeSet对象时,可以传入自定义的比较器,自定义比较器需要实现CompanKor接口。

3、Collection有两个子接口分别是List和Set,List集合的特点是有序、可重复,Set集合的特点是无序、不可重复。

4、使用terator历集合时,首先需要调用hashNext()法判断是否存在下一个元素,若存在下一个元素,则调用next()方法取出该元素。

5、集合按照存储结构的不同可分为单列集合和双列集合,单列集合的根接口是Collection,双列集合的根接口是Map。

6、Map集合中的元素都是成对出现的,并且都是以键、值的映射关系存在。

7、Iterator有一个子类,不仅可以对集合进行从前向后遍历,还可以从后向前通历,该类是ListIterator8、List集合的主要实现类有Arfaylist、LinkedList,Set集合的主要实现类有HashSet、TreeSetMap集合的主要实现关有HashMap、TreeMap 。

9、Map集合中存储元素需要调用put()方法,要想根据该集合的键获取对应的值需要调用get()方法。

10、java.utilCollections,还提供了一个专门用于操作数组的工具类,这个类是Arrays二、判断题1、Set集合是通过键值对的方式来存储对象的。

错2、集合中不能存放基本数据类型,而只能存放引用数据类型对3、如果创建的TreeSet集合中没有传入比较器,则该集合中存入的元素需要实现Comparable接口。

对4、使用Iterator选代集合元素时,可以调用集合对象的方法增删元素。

错5、LinkedList在内部维护了一个双向循环链表,每一个元素节点都包含前一个元素节点和后一个元素节点的引用。

对三、选择题1、要想保存具有映射关系的敏据,可以使用以下哪些集合?(多选)BCA、ArrayListB、 TseeMapC、 HashMapD、 TreeSet2、Java语言中,集合类都位于哪个包中?AA、java.utilB、javaj angC、java.arrayD、java.collections3、使用Ierator时,判断是否存在下一个元素可以使用以下哪个方法?DA、 next()B、hash()C 、hasPrevious() D、 hasNext()4、关于foreach循环的特点,以下说法哪些是正确的?(多选)ABDA、foreach循环在遍历集合时,无需获得容器的长度B、foreach循环在遍历集合时,无需循环条件,也无需迭代语句C、foreach循环在遍历集合时非常繁项D、foreach循环的语法格式为:for(容器中元素类型临时变量:容器变量)5、在程序开发中,经常会使用以下哪个类来存储程序中所需的配置?A、 HashMapB、TreeSetC、PropertiesD、TreeMap6、使用Emumeration遍历集合时,需要使用以下哪些方法?(多选)ABA、 hasMoreElements()B、 nextElement()C、next()D、hashNext()7、要想集合中保存的元素没有重复并且接照一定的顺序排列,可以使用以下哪个集合?DA、LinkedListB、Array ListC、hashSetD、TrccSet8、下列哪些说法是正确的?(多选)ABA、LinkedList集合在增删元素时效率较高B、ArrayList集合在查询元素时效率较高C、HashMap不允许出现一对nll键null值D、HashSet集合中元素可重复并且无序9、以下哪些方法是LinkedList集合中定义的?(多选)ABCA、getLast()B、getFirst()C、remove (int index)D、next()10.获取单列集合中元素的个数可以使用以下哪个方法?BA、length()B、size()C、get(int index)D、add(Object obj)四、程序分析题1、程序可以编译通过,输出结果是“a、b、c”,因为TreeSet集合不允许存放重复元素,第2次增加的元素c会覆盖之前存入的元素c,所以输出结果是“a、b、c”,而不是“a、b、c、c”。

java基础教程第3版习题解答.doc

java基础教程第3版习题解答.doc
3.内部类的类体中可以声明类变量和类方法吗?
不可以。
4.匿名类一定是内部类吗?
一定是。
5.请说出下列程序的输出结果。
大家好,祝工作顺利!
6.请说出下列程序的输出结果。
D是接口变景
7.请说出下列程序的输出结果。
你好fine。
2.4和3。
3.false和true。
4.负数°
5.是true。
6.3和-1。
7.会发生NumberFormatExcept ion异常。
8.苹果
9
10.public class E {
public stat ic void main (String args [ ]) { String sl,s2, tl=,,ABCDabcdv;
sl=t1. toUpperCase0;
char cStart=s. charAt (0);
char cEnd = s・ charAt (s・ 1 ength ()-1);
System・ out・ print In (cStart); System. out・ println(cEnd);
)
}
12.import java .util.*;
b=24;
c=Math. as in (0. 56);
System・ out. print In (c);
c=Ma th. cos (3. 14);
System. oul. print In (c);
c=Ma th. exp (1);
System. oul. print In (c);
c=Math. log(8);
{ public static void main (String args []) { double sum=0, a=l;

Java基础入门课后习题及答案

Java基础入门课后习题及答案

Java基础入门课后习题及答案《Java基础入门》课后习题第1章Java开发入门一、填空题1、Java的三大体系分别是_JavaSE_____、_JavaEE_____、_JavaME_____。

2、Java程序的运行环境简称之为JRE_____。

3、编译Java程序需要使用_javac_____命令。

4、和两个可执行程序存放在JDK安装目录的bin______目录下。

5、path______环境变量用来存储Java的编译和运行工具所在的路径,而_classpath_____环境变量则用来保存保存Java虚拟机要运行的“.class”文件路径。

二、选择题1、以下选项中,哪些属于JDK工具?(多选)ABCDA、Java编译器B、Java运行工具C、Java文档生成工具D、Java打包工具2、Java属于以下哪种语言?CA、机器语言B、汇编语言C、高级语言D、以上都不对3、下面哪种类型的文件可以在Java虚拟机中运行?DA、.javaB、.jreC、.exeD、.class4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中命令的作用是以下哪一种?BA、Java文档制作工具B、Java解释器C、Java编译器D、Java启动器5、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项?BA.d:\jdk; B.d :\jdk\bin; C.d:\jre\bin; D.d: \jre;三、问答题1、简述Java的特点。

面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。

2、简述JRE与JDK的区别。

JRE(Java Runtime Environment,Java运行时环境),它相当于操作系统部分,提供了Java程序运行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。

《Java基础入门》-课后习题答案

《Java基础入门》-课后习题答案

《Java基础入门》课后习题答案第1章Java开发入门一、填空题1、Java EE、Java SE、Java ME2、JRE3、javac4、bin5、path、classpath二、选择题1、ABCD2、C3、D4、B5、B三、简答题1、面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。

2、JRE(Java Runtime Environment,Java运行时环境),它相当于操作系统部分,提供了Java程序运行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。

JRE是提供给普通用户使用的,如果你只想运行别人开发好的Java程序,那么,你的计算机上必须且只需安装JRE。

JDK(Java Development Kit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java 开发人员使用的。

初学者学习和使用Java语言时,首先必须下载和安装JDK。

JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRE了。

四、编程题public class HelloWorld {public static void main(String[] args) {"这是第一个Java程序!");}}第2章 Java编程基础一、填空题1、 class2、 true和false3、单行注释、多行注释、文档注释4、基本数据类型、引用数据类型5、 1、2、4、86、 & && | ||7、 08、 59、 3410、56二、判断题1、错2、对3、错4、对5、错三、选择题1、AD2、AD3、C4、ABCD5、C 6 、A 7、AC 8、A 9、B 10、A四、程序分析题1、编译不通过。

int值4和b相加时,由于变量b的类型为byte,取值范围没有int类型大,存不下int类型的值,因此编译不通过。

《Java基础入门》课后章节习题及答案(完整版)

《Java基础入门》课后章节习题及答案(完整版)

《Java基础入门》课后章节习题及答案(完整版)《Java基础入门》课后章节习题及答案(完整版)《Java基础入门》课后习题第1章Java开发入门一、填空题1、Java的三大体系分别是_JavaSE_____、_JavaEE_____、_JavaME_____。

2、Java程序的运行环境简称之为JRE_____。

3、编译Java程序需要使用_javac_____命令。

4、javac.exe和java.exe两个可执行程序存放在JDK安装目录的bin______目录下。

5、path______环境变量用来存储Java的编译和运行工具所在的路径,而_classpath_____环境变量则用来保存保存Java虚拟机要运行的“.class”文件路径。

二、选择题1、以下选项中,哪些属于JDK工具?(多选)ABCDA、Java编译器B、Java运行工具C、Java文档生成工具D、Java打包工具2、Java属于以下哪种语言?CA、机器语言B、汇编语言C、高级语言D、以上都不对3、下面哪种类型的文件可以在Java虚拟机中运行?DA、.javaB、.jreC、.exeD、.class4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?BA、Java文档制作工具B、Java解释器C、Java编译器D、Java启动器5、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项?B A.d:\jdk; B.d :\jdk\bin; C.d:\jre\bin; D.d:\jre;三、问答题1、简述Java的特点。

面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。

2、简述JRE与JDK的区别。

JRE(Java Runtime Environment,Java运行时环境),它相当于操作系统部分,提供了Java程序运行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。

java3课后习题答案

java3课后习题答案

java3课后习题答案Java3课后习题答案在学习Java3课程后,我们经常会遇到一些习题,这些习题旨在帮助我们巩固所学的知识,并提高我们的编程能力。

在这篇文章中,我们将为大家总结一些Java3课后习题的答案,希望能够帮助大家更好地理解和掌握Java编程。

1. 编写一个Java程序,计算并输出1到100之间所有偶数的和。

```javapublic class SumOfEvenNumbers {public static void main(String[] args) {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}System.out.println("1到100之间所有偶数的和为:" + sum);}}```2. 编写一个Java程序,找出一个整数数组中的最大值和最小值。

```javapublic class MaxMinInArray {public static void main(String[] args) {int[] array = {5, 3, 9, 1, 7, 4};int max = array[0];int min = array[0];for (int i = 1; i < array.length; i++) {if (array[i] > max) {max = array[i];}if (array[i] < min) {min = array[i];}}System.out.println("数组中的最大值为:" + max);System.out.println("数组中的最小值为:" + min);}}```3. 编写一个Java程序,实现一个简单的计算器,能够进行加减乘除运算。

《Java基础入门》课后习题及答案

《Java基础入门》课后习题及答案

《Java基础入门》课后习题第1章Java开发入门一、填空题1、Java的三大体系分别是_JavaSE_____、_JavaEE_____、_JavaME_____。

2、Java程序的运行环境简称之为JRE_____。

3、编译Java程序需要使用_javac_____命令。

4、javac.exe和java.exe两个可执行程序存放在JDK安装目录的bin______目录下。

5、path______环境变量用来存储Java的编译和运行工具所在的路径,而_classpath_____环境变量则用来保存保存Java虚拟机要运行的“.class”文件路径。

二、选择题1、以下选项中,哪些属于JDK工具?(多选)ABCDA、Java编译器B、Java运行工具C、Java文档生成工具D、Java打包工具2、Java属于以下哪种语言?CA、机器语言B、汇编语言C、高级语言D、以上都不对3、下面哪种类型的文件可以在Java虚拟机中运行?DA、.javaB、.jreC、.exeD、.class4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?BA、Java文档制作工具B、Java解释器C、Java编译器D、Java启动器5、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项?BA.d:\jdk; B.d :\jdk\bin; C.d:\jre\bin; D.d:\jre;三、问答题1、简述Java的特点。

面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。

2、简述JRE与JDK的区别。

JRE(Java Runtime Environment,Java运行时环境),它相当于操作系统部分,提供了Java程序运行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。

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>存放在另一个目录中。

《Java基础入门》_课后习题答案

《Java基础入门》_课后习题答案
2、编译不通过。这是因为y是在最里层的代码块中定义的一个变量,只有在那个代码块中才可使用,在使用y = x;语句时已经超过了y变量的作用域,所以编译无法通过。
3、打印结果为:3。
4、打印结果为:
9
8
7
五、简答题
1、Java语言的八种基本数据类型有:byte字节型,占一个字节。short短整型,占两个字节。int整型,占4个字节。long长整型,占8个字节。float单精度浮点型,占4个字节。double双精度浮点型,占8个字节。char字符型,占两个字节。boolean型,表示逻辑值,有true和false两个值,分别占一个字节。
2、多态意味着一个对象有着多种形态,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。简单的说,多态就是使用父类类型的变量引用子类对象,根据被引用子类对象的特性,程序会得到不同的运行效果。
3、在Java中,使用abstract关键字修饰的类称之为抽象类。抽象类是不能被实例化的,通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。抽象类通常用于表示一种抽象的概念。
2、单例模式可以保证在整个程序运行期间针对该类只存在一个实例对象。
六、编程题
1、参考答案
class Student {
private String name;
private double grade;
public Student() {
}
public Student(String name, double grade) {
public void introFather() {
System.out.println("My Father's name is " + name);

《Java基础入门》课后习题及答案

《Java基础入门》课后习题及答案

《Java基础入门》课后习题第1章Java开发入门一、填空题1、Java的三大体系分别就是_JavaSE_____、_JavaEE_____、_JavaME_____。

2、Java程序的运行环境简称之为JRE_____。

3、编译Java程序需要使用_javac_____命令。

4、javac、exe与java、exe两个可执行程序存放在JDK安装目录的bin______目录下。

5、path______环境变量用来存储Java的编译与运行工具所在的路径,而_classpath_____环境变量则用来保存保存Java虚拟机要运行的“、class”文件路径。

二、选择题1、以下选项中,哪些属于JDK工具?(多选)ABCDA、Java编译器B、Java运行工具C、Java文档生成工具D、Java打包工具2、Java属于以下哪种语言?CA、机器语言B、汇编语言C、高级语言D、以上都不对3、下面哪种类型的文件可以在Java虚拟机中运行?DA、、javaB、、jreC、、exeD、、class4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java、exe命令的作用就是以下哪一种?BA、Java文档制作工具B、Java解释器C、Java编译器D、Java启动器5、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac与java命令,需要将环境变量path设置为以下哪个选项?BA.d:\jdk;B.d :\jdk\bin;C.d:\jre\bin;D.d:\jre;三、问答题1、简述Java的特点。

面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。

2、简述JRE与JDK的区别。

JRE(Java Runtime Environment,Java运行时环境),它相当于操作系统部分,提供了Java程序运行时所需要的基本条件与许多Java基础类,例如,IO类、GUI控件类、网络类等。

《Java基础入门》课后习题答案

《Java基础入门》课后习题答案

《Java基础入门》‎课后习题答案第1章Ja‎v a开发入门一、填‎空题1、Java EE‎、Java SE、J‎a va ME2、JRE‎3、javac4、bin‎5、path、clas‎s path二、选择‎题1、ABCD 2‎、C 3、D 4、B‎5、B三、简答题‎1、面向对象、跨平台性‎、健壮性、安全性、可‎移植性、多线程性、动‎态性等。

2、JRE(J‎a va Runtim‎e Environm‎e nt,Java运行‎时环境),它相当于操‎作系统部分,提供了J‎a va程序运行时所需‎要的基本条件和许多J‎a va基础类,例如,‎I O类、GUI控件类‎、网络类等。

JRE是‎提供给普通用户使用的‎,如果你只想运行别人‎开发好的Java程序‎,那么,你的计算机上‎必须且只需安装JRE‎。

JDK(Java‎Developme‎n t Kit,Jav‎a开发工具包),它包‎含编译工具、解释工具‎、文档制作工具、打包‎工具多种与开发相关的‎工具,是提供给Jav‎a开发人员使用的。

初‎学者学习和使用Jav‎a语言时,首先必须下‎载和安装JDK。

JD‎K中已经包含了JRE‎部分,初学者安装JD‎K后不必再去下载和安‎装JRE了。

四、‎编程题public‎class Hel‎l oWorld {‎public st‎a tic void ‎m ain(Strin‎g[] args) ‎{System‎.out.print‎l n("这是第一个J‎a va程序!");‎}}第2章Java‎编程基础一、填空题‎1、class2、t‎r ue和false3、‎单行注释、多行注释‎、文档注释4、基本数‎据类型、引用数据类型‎5、1、2、4、86、‎& && | ‎||7、08、‎510、56 ‎二、判断题1、错‎2、对3、错4、‎对5、错三、选择‎题1、AD2、AD ‎3、C4、ABCD‎5、C 6 、A ‎7、AC 8、A 9‎、B 10、A四‎、程序分析题1、编译不‎通过。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第1章Java开发入门一、1.对象2.面向对象、跨平台性3.javac4.Java虚拟机(或JVM)5.JRE二、1.错2.错3.错4.对5.对三、1.C2.ABCD3.D4.ABCD5.D四、1.简答性、面向对象、安全性、跨平台性、支持多线程、分布性。

2. Java程序运行时,必须经过编译和运行两个步骤。

首先将后缀名为.java的源文件进行编译,生成后缀名为.class的字节码文件,然后Java虚拟机将字节码文件进行解释执行,并将结果显示出来。

五、HelloWorld.java1 public class HelloWorld {2 public static void main(String[] args) {3 System.out.println("这是第一个Java程序!");4 }5 }第2章Java编程基础一、1.class2.单行注释、多行注释、文档注释3.44.==5.容器、0二、1.对2.错3.对4.错5.对三、1.AC2.A3.BD4.C5.C四、1.Java语言的八种基本数据类型有:byte字节型,占一个字节。

short短整型,占两个字节。

int整型,占4个字节。

long长整型,占8个字节。

float单精度浮点型,占4个字节。

double 双精度浮点型,占8个字节。

char字符型,占两个字节。

boolean型,表示逻辑值,有true 和false两个值,分别占一个字节。

2. 在switch条件语句和循环语句中都可以使用break语句。

当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。

当它出现在循环语句中,作用是跳出循环语句,执行循环后面的代码;continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。

五、1.1public class getSum {2public static void main(String[] args) {3int sum = 0;4for (int i = 1; i < 100; i++) {5if (i % 2 != 0)6sum += i;7}8System.out.println(sum);9}10}2.1public class Test {2 public static void main(String[] args) {3 int i = 1;4 long sum = 1;5 do {6 sum *= i;7 i++;8 } while (i <= 5);9 System.out.println(sum);10 }11}第3章面向对象(上)一、1.封装、继承、多态2.private、default、protected、public3.static4.private5.参数类型参数个数6.this二、1.对2.对3.错4.对5.对三、1.C2.B3.D4.B5.C四、1.面向对象的特点主要可以概括为封装性、继承性和多态性。

其中封装是面向对象核心思想","将对象的属性和行为封装起来","不需要让外界知道具体实现细节","这就是封装思想。

继承性主要描述的是类与类之间的关系","通过继承","可以在无需重新编写原有类的情况下","对原有类的功能进行扩展。

多态性指的是在程序中允许出现重名现象","它指在一个类中定义的属性和方法被其它类继承后","它们可以具有不同的数据类型或表现出不同的行为","这使得同一个属性和方法在不同的类中具有不同的语义。

2.(1)构造方法名与类名相同(2)在构造方法名的前面没有返回值类型的声明(3)在构造方法中不能使用return语句返回一个值五、Example.javaclass Resume {private String name;private String sex;private int age;public Resume(){}public Resume(String name,String sex,int age){ = name;this.sex = sex;this.age = age;}public String getName(){return name;}public String getSex(){return sex;}public int getAge(){return age;}public void introduce(){System.out.println("姓名:"+this.getName()+"\n性别:"+this.getSex()+"\n年龄:"+this.getAge());}}public class Example{public static void main(String[] args){Resume re = new Resume("李四","男",20);re.introduce();}}第4章面向对象(下)一、1.继承2.重写3.final4.implements5.抽象类6.super二、1.错2.对3.对4.对5.对6.错7.对三、1.B2.D3.C4.D5.C四、1.概念:在Java中","类的继承是指在一个现有类的基础上去构建一个新的类","构建出来的新类被称作子类","现有类被称作父类","子类会自动拥有父类所有可继承的属性和方法。

好处:继承性主要描述的是类与类之间的关系","通过继承","可以无需重新编写原有类的情况下","对原有类的功能进行使用和扩展。

2.1、应用程序不必为每一个子类编写功能调用","只需要对抽象父类进行处理即可。

大大提高程序的可复用性。

2、子类的功能可以被父类的方法或引用变量所调用","这叫向后兼容","可以提高可扩充性和可维护性。

3、使用多态可以解决项目中紧偶合的问题","提高程序的课扩展性.是OCP原则的一个具体的实现。

五、Employee.javaabstract class Employee{private String name; //定义姓名name并私有化属性private int month; //定义生日月份month并私有化属性public Employee(){} //无参构造器public Employee(String name,int month){ //有参构造方法 = name; //给属性name初始化赋值this.month = month; //给属性month初始化赋值}//获取属性name的方法public String getName(){return name; //返回name属性}//获取属性month的方法public int getMonth(){return month; //返回month属性}//给属性name赋初始值public void setName(String name){ = name; //本类中的属性name}//给属性month赋初始值public void setMonth(int month){this.month = month; //本类中的属性month}//创建一个方法getSalary()用来计算工资,参数month是月份,如果当月是员工生日,奖励100元public double getSalary(int month){double salary = 0; //定义工资变量//判断当前月份是否是员工的生日月份,如果是奖励100元if(this.month == month){salary = salary + 100;return salary; //返回工资salary}}}SalariedEmployee.javaclass SalariedEmployee extends Employee{private double monthSalary; //封装monthSalary属性public SalariedEmployee(){} //无参构造方法//有参构造方法参数姓名生日月份月薪public SalariedEmployee(String name,int month,double monthSalary){ super(name,month); //调用父类有参构造方法this.monthSalary = monthSalary; //为属性monthSalary初始化赋值}//获取monthSalary的值public double getMonthSalary(){return monthSalary;}//给monthSalary赋值public void setMonthSalary(double monthSalary){this.monthSalary = monthSalary;}//覆盖父类中的方法public double getSalary(int month){double salary = monthSalary+super.getSalary(month); //定义工资变量return salary;}}HourlyEmployee.javaclass HourlyEmployee extends Employee{private double hourlySalary; //定义属性hourlySalary每小时的工资private int hours; //定义属性hours每月工作的小时数public HourlyEmployee(){} //无参构造方法//有参构造方法参数姓名生日月份每小时的工资每月工作的小时数public HourlyEmployee(String name,int month,double hourlySalary,int hours){super(name,month); //调用父类有参构造方法this.hourlySalary = hourlySalary ; //为属性hourlySalary初始化赋值this.hours = hours; //为属性hours 初始化赋值}public double getHourlySalary(){ //获取hourlySalary的值return hourlySalary;}public int getHours(){ //获取hours的值return hours;}//定义set方法设置hourlySalary hours的值public void setHourlySalary(double hourlySalary){this.hourlySalary =hourlySalary;}public void setHourly(int hours){this.hours = hours;}//覆盖父类方法public double getSalary(int month){if(hours < 0){ //如果工作小时数小于0 输出数据错误System.out.println("数据错误");return 0;}//小于160个小时的按照每个月的工作小时数乘以每小时的工资else if(hours <= 160)return hourlySalary*hours+super.getSalary(month);//超出160个小时的小时数按照1.5倍计算else return hourlySalary*160+hourlySalary*1.5*(hours-160)+super.getSalary(month);}}SalesEmployee.javaclass SalesEmployee extends Employee{private double sales ; //定义销售额salesprivate double rate; //定义提成率ratepublic SalesEmployee(){}public SalesEmployee(String name,int month,double sales,double rate){ super(name,month);this.sales = sales;this.rate = rate;}public double getSales(){return sales;}public double getRate(){return rate;}public void setSales(double sales){this.sales = sales;}public void setRate(double rate){this.rate = rate;}public double getSalary(int month){return this.getSales()*(1+this.getRate())+super.getSalary(month);}}BasePlusSalesEmployee.javaclass BasePlusSalesEmployee extends SalesEmployee{private double baseSalary; //定义基础工资baseSalary//无参构造方法public BasePlusSalesEmployee(){}//有参构造方法public BasePlusSalesEmployee(String name,int month,double sales,double rate,double baseSalary){super(name,month,sales,rate);this.baseSalary = baseSalary;}//get/set方法对私有属性的调用和设置public double gatBaseSalary(){return baseSalary;}public void setBaseSalary(){this.baseSalary = baseSalary;}public double getSalary(int month){return baseSalary+super.getSalary(month);}}Test.java//定义一个测试类public class Test{public static void main(String[] args){//声明一个Employee类型的数组,并创建不同子类型的对象Employee[] employee = {new SalariedEmployee(“张三”,1,6000),newHourlyEmployee(“李四”,2,50,180),new SalesEmployee(“王五”,3,6500,0.15),new BasePlusSalesEmployee(“赵六”,4,5000,0.15,2000)};//打印每个员工的工资for(int i = 0; i < employee.length ;i++)System.out.println(Math.round(employee[i].getSalary(10)));}}第5章异常一、1.RuntimeException2.运行时异常编译时异常3.throw4.throws5.Exception二、1.错2.对3.对4.对5.错三、1.C2.A3.C4.C5.A四、1.try、catch、finally、throw、throws。

相关文档
最新文档