Java基础教程第3版习题解答第一章习题1.JamesGosling2.需3个步骤:1)用文本编辑器编写源文件2)使用javac编译源文件,得到字节码文件3)应用程序使用解释器运行。3.pathd:\jdk\binclasspath=d:\jdk\jre\lib\rt.jar;.;4.B5.java和class6.D。第二章习题1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。false不是标识符。2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。不是关键字。classimplementsinterfaceenumextendsabstract。3.float常量必须用F或f为后缀。double常量用D或d为后缀,但允许省略后缀。4.一维数组名.length。二维数组名.length。5.C6.ADF7.B8【代码2】【代码3】【代码4】9.B。10.属于操作题,解答略。11.3,112.publicclassE{publicstaticvoidmain(Stringargs[]){System.out.println((int)'你');System.out.println((int)'我');System.out.println((int)'他');}}13.publicclassE{publicstaticvoidmain(Stringargs[]){charcStart='α',cEnd='ω';for(charc=cStart;c=cEnd;c++)System.out.print(+c);}}第三章习题1.1102.beep!!3.publicclassE{publicstaticvoidmain(Stringargs[]){for(charc='а';c='я';c++){System.out.print(+c);}}}4.publicclassXiti3_4{publicstaticvoidmain(Stringargs[]){doublesum=0,a=1;inti=1;while(i=20){sum=sum+a;i++;a=a*i;}System.out.println(sum=+sum);}}5.publicclassXiti5{publicstaticvoidmain(Stringargs[]){inti,j;for(j=2;j=100;j++){for(i=2;i=j/2;i++){if(j%i==0)break;}if(ij/2){System.out.print(+j);}}}}6.classXiti6{publicstaticvoidmain(Stringargs[]){doublesum=0,a=1,i=1;do{sum=sum+a;i++;a=(1.0/i)*a;}while(i=20);System.out.println(使用do-while循环计算的sum=+sum);for(sum=0,i=1,a=1;i=20;i++){a=a*(1.0/i);sum=sum+a;}System.out.println(使用for循环计算的sum=+sum);}}7.classXiti7{publicstaticvoidmain(Stringargs[]){intsum=0,i,j;for(i=1;i=1000;i++){for(j=1,sum=0;ji;j++){if(i%j==0)sum=sum+j;}if(sum==i)System.out.println(完数:+i);}}}8.importjava.util.*;publicclassE{publicstaticvoidmain(Stringargs[]){intm,n;Scannerscaner=newScanner(System.in);System.out.println(输入正数m回车确认);m=scaner.nextInt();System.out.println(输入正数n回车确认);n=scaner.nextInt();intp=m;intq=n;intr=m%n;while(r!=0){m=n;n=r;r=m%n;}System.out.println(p+和+q+的最大公约数+n);System.out.println(p+和+q+的最小公倍数+(p*q)/n);}}9.publicclassE{publicstaticvoidmain(Stringargs[]){intn=1;longsum=0;while(true){sum=sum+n;n++;if(sum=8888)break;}System.out.println(满足条件的最大整数:+(n-1));}}第四章习题1.用该类创建对象时。2.一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同3.可以。不可以。4.不可以。5.sum=-100。6.27第五章习题1.如果子类和父类不在同一个包中,那么,子类继承了父类的protected、public成员变量做为子类的成员变量,并且继承了父类的protected、public方法为子类的方法。如果子类和父类不在同一个包里,子类不能继承父类的友好变量和友好方法。2.不可以。3.abstract类。4.假设B类是A类子类或间接子类,当我们用子类B创建一个对象,并把这个对象的引用放到A类的对象中时,称这个A类对象是子类对象的上转型对象。\5.D6.15.0。8.07.98.012第六章习题1.接口中能声明变量吗?不能2.接口中能定义非抽象方法吗?不能3.什么叫接口的回调?可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。那么该接口变量就可以调用被类实现的接口中的方法。4.请说出E类中System.out.println的输出结果。1815第7章习题1.内部类的外嵌类的成员变量在内部类中仍然有效吗?有效。2.内部类中的方法也可以调用外嵌类中的方法吗?可以。3.内部类的类体中可以声明类变量和类方法吗?不可以。4.匿名类一定是内部类吗?一定是。5.请说出下列程序的输出结果。大家好,祝工作顺利!6.请说出下列程序的输出结果。p是接口变量7.请说出下列程序的输出结果。你好finethanks第8章习题1.不是。\\hello是。2.4和3。3.false和true。4.负数。5.是true。6.3和-1。7.会发生NumberFormatException异常。8.苹果9【代码1】:15。【代码2】:abc我们。10.publicclassE{publicstaticvoidmain(Stringargs[]){Strings1,s2,t1=ABCDabcd;s1=t1.toUpperCase();s2=t1.toLowerCase();System.out.println(s1);System.out.println(s2);Strings3=s1.concat(s2);System.out.println(s3);}}11.publicclassE{publicstaticvoidmain(Stringargs[]){Strings=ABCDabcd;charcStart=s.charAt(0);charcEnd=s.charAt(s.length()-1);System.out.println(cStart);System.out.println(cEnd);}}12.importjava.util.*;publicclassE{publicstaticvoidmain(Stringargs[]){intyear1,month1,day1,year2,month2,day2;try{year1=Integer.parseInt(args[0]);month1=Integer.parseInt(args[1]);day1=Integer.parseInt(args[2]);year2=Integer.parseInt(args[3]);month2=Integer.parseInt(args[4]);day2=Integer.parseInt(args[5]);}catch(NumberFormatExceptione){year1=2012;month1=0;day1=1;year2=2018;month2=0;day2=1;}Calendarcalendar=Calendar.getInstance();calendar.set(year1,month1-1,day1);longtimeYear1=calendar.getTimeInMillis();calendar.set(year2,month2-1,day2);longtimeYear2=calendar.getTimeInMillis();long相隔天数=Math.abs((timeYear1-timeYear2)/(1000*60*60*24));System.out.println(+year1+年+month1+月+day1+日和+year2+年+month2+月+day2+日相隔+相隔天数+天);}}13.importjava.util.*;publicclassE{publicstaticvoidmain(Stringargs[]){doublea=0,b=0,c=0;a=12;b=24;c=Math.asin(0.56);System.out.println(c);c=Math.cos(3.14);System.out.println(c);c=Math.exp(1);System.out.println(c);c=Math.log(8);System.out.println(c);}}14.importjava.util.*;publicclassE{publicstaticvoidmain(Stringargs[]){Stringcost=数学87分,物理76分,英语96分;Scannerscanner=newScanner(cost);scanner.useDelimiter([^0123456789.]+);doublesum=0;intcount=0;while(scanner.hasNext()){try{doublescore=scanner.nextDouble();count++;sum=sum+score;System.out.println(score);}catch(InputMismatchExceptionexp){Stringt=scanner.next();}}System.out.println(总分:+sum+分);System.out.println(平均分:+sum/count+分);}}第9章习题1.使用FileInputStream。2.FileInputStream按字节读取文件,FileReader按字符读取文件。3.不可以。4.使用对象流写入或读入对象时,要保证对象是序列化的。5.importjava.io.*;publicclassE{publicstaticvoidmain(Stringargs[]){Filef=newFile(E.java);;try{RandomAccessFilerandom=newRandomAccessFile(f,rw);random.seek(0);longm=random.length();while(m=0){m=m-1;random.seek(m);intc=random.readByte();if(c=255&&c=0)System.out.print((char)c);else{m=m-1;random.seek(