Java核心技术习题答案马志强张然李雷孝编清华大学出版社目录第一章Java语言概述 (3)第二章 Java语法基础 (4)第三章面向对象编程 (11)第四章数组 (25)第五章高级类特性 (26)第六章 GUI编程 (26)第七章集合框架 (29)第九章集合框架 (42)第十章 IO流 (46)第十一章 JDBC访问数据库 (46)第十二章线程 (48)第十三章网络编程 (53)第一章Java语言概述一、选择题1-5 ABBBB6-8 AAB二、填空题1. MyClass2. String数组(String[])一3. javac java A三、程序设计题1、搭建Java运行环境,并写一个Java程序打印输出“开始学习Java程序设计!”。
1)首先安装JDK;2)配置环境变量path,classpath可配可不配;3)public class HelloWorld{public static void main(String[] args){"开始学习Java程序设计!");}}2、修改下面四个Java源文件中的错误,使其能够编译和运行。
:TestAnother1类不能再使用public修饰,一个源文件中只能有一个类或者接口用public修饰;:源文件中public修饰的类的名字为Testing2,和源文件名字不一致;:Test3类的main方法的形参类型为String[];:Test4类的main方法必须使用static关键字修饰。
第二章 Java语法基础一、选择题1-5 BCADB6-9 DCCC二、填空题1. abc ,a1, _abc, _1a, ab123#a,const,$abc,1abc,if,$#1sa,$_a,_$q12.题目出现问题:代码修改为 ch = (char) (ch+1);结果为’B’;如果直接结果为98。
(真) false(假)5. 2 2 false 2*20/100 (double)m*20/100三、编程题1、由命令行输入一个成绩,使用switch结构求出成绩的等级。
A:90-100;B:80-89;C:70-79;D:60-69;E:0-59。
import class IfElseTest {public static void main(String[] args) {Scanner sc = new Scanner;int grade = ();if(grade<0 || grade>100){"aaaa");(0);}int temp =(int)(grade/10);switch(temp){case 10:{"A");break;}case 9:{"A");break;}case 8:{"B");break;}case 7:{"C");break;}case 6:{"D");break;}default:{"E");break;}}}}2、计算圆周率:PI=4-4/3+4/5-4/7... ...;打印出第一个大于小于的值。
public class PITest{public static void main(String[] args){double result=;for(int i=1;;i++){double m=(2*i-1);if((i%2)==0){result-=m;}else{result+=m;}if(result> && result<{"result: "+result);break;}}}}3、输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值。
斐波那契数列:1、1、2、3、5、8、13、21、34、……。
import class FibonacciTest{public static void main(String[] args){Scanner sn=new Scanner;int num=();int i=1;int n1=1,n2=1;while(i<=num){if(i==1||i==2){n2=1;}else{int temp=n2;n2=n1+n2;n1=temp;}i++;}"第"+num+"个值为:"+n2);}}4、计算多项式1-1/3+1/5-1/7+1/9......的值。
1)要求出前50项和值。
2)要求出最后一项绝对值小于1e-5的和值。
public class SumTest{public static void main(String[] args){double sum=;for(int i=1;i<=50;i++){if(i%2==0){sum=(2*i-1);}else{sum=sum+(2*i-1);}}"前50项和值:"+sum);double item=;int j=1;sum=;while(item<{item=(2*j-1);if(j%2==0){sum-=item;}else{sum+=item;}j++;}"最后一项绝对值小于1e-5的和值:"+sum);}}5、产生100个0-999之间的随机整数,然后判断这100个随机整数哪些是素数,哪些不是public class PrimeTest {public static void main(String[] args) {PrimeTest t = new PrimeTest();for(int i=0;i<100;i++){int num = (int)()*1000);if(num)){"是素数!");}else{"不是素数!");}}}public boolean isPrime(int num){for(int i=2;i<=num/2;i++){if(num%i==0){"第一个被"+i+"整除!");return false;}}return true;}}6、在屏幕上打印出n行的金字塔图案,如,若n=3,则图案如下:*********import class PrintStar{public static void main(String[] args){Scanner sn=new Scanner;int rows=();for(int i=1;i<=rows;i++){for(int j=1;j<=rows-i;j++){" ");}for(int k=1;k<=2*i-1;k++){"*");}}}}7、歌德巴赫猜想,任何一个大于六的偶数可以拆分成两个质数的和,打印出所有的可能。
如输入10,结果为:10=5+5;10=3+7。
public class Gede {public static void main(String[] args) {int n = (args[0]);if(n<=6 || n%2!=0){"错误的参数!");return;}Gede g = new Gede();ava。
public class CalenderModelA{ava。
import class TestCalenderModelA{public static void main(String[] args){Scanner scan = new Scanner;"请输入年份:");int year = ();"请输入月份:");int month = ();"月历如下");CalenderModelA testBegin = new CalenderModelA();(year, month);}}第三章面向对象编程一、选择题1-5 CABDD2-10 DCCBC11-12 CC二、填空题1.Package mypackage;2.final3.Object4.package import class5.c三、程序设计题2、按下列要求编写程序:①创建Teacher类要求:Teacher类要描述姓名、年龄、薪水,类型分别为String、int、double②创建TeacherTest类要求:在TeacherTest类中创建Teacher的对象;为该对象的属性(姓名、性别、年龄)赋值;将该对象的属性(姓名、性别、年龄)输出;③为Teacher类添加一个方法,用于在教师原有薪水的基础上增加5000;④修改TeacherTest类,增加对教师增加薪水方法的调用,并将增加后的薪水值输出。
:public class Teacher {public String name;public int age;public double salary;public String getName() {return name;}public void setName(String name) {= name;}public int getAge() {return age;}public void setAge(int age) {= age;}public double getSalary() {return salary;}public void setSalary(double salary) {= salary;}public Teacher(){}public Teacher(String name,int age,double salary){=name;=age;=salary;}public void addSalary(){=+5000;}}:public class TeacherTest {public static void main(String[] args) {Teacher teacher=new Teacher();=35;="zhangsan";=;();}}3、定义一个Person类。
①包含以下属性:String name; int age; boolean gender; Person partner。
②定义marry(Person p)方法,代表当前对象和p结婚,如若可以结婚,则输出恭贺信息,否则输出不能结婚原因。