Java核心技术习题答案 .doc
《Java核心技术习题答案 .doc》由会员分享,可在线阅读,更多相关《Java核心技术习题答案 .doc(90页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java核心技术习题答案马志强 张然 李雷孝 编清华大学出版社目 录第一章Java语言概述3第二章 Java语法基础4第三章 面向对象编程15第四章 数组38第五章 高级类特性45第六章 GUI编程51第七章 集合框架62第九章 集合框架77第十章 IO流81第十一章 JDBC访问数据库84第十二章 线程85第十三章 网络编程90第一章Java语言概述一、 选择题1-5 ABBBB 6-8 AAB 二、 填空题1. MyClass 2. String数组(String) 一3. javac A.java java A三、程序设计题1、搭建Java运行环境,并写一个Java程序打印输出“开始学习
2、Java程序设计!”。1)首先安装JDK;2)配置环境变量path,classpath可配可不配;3)public class HelloWorldpublic static void main(String args).println(开始学习Java程序设计!); 2、修改下面四个Java源文件中的错误,使其能够编译和运行。:TestAnother1类不能再使用public修饰,一个源文件中只能有一个类或者接口用public修饰;:源文件中public修饰的类的名字为Testing2,和源文件名字不一致;:Test3类的main方法的形参类型为String;:Test4类的main方法必须
3、使用static关键字修饰。第二章 Java语法基础一、 选择题 1-5 BCADB 6-9 DCCC二、 填空题1. abc ,a1, _abc, _1a, ab123 #a,const,$abc,1abc,if,$#1sa,$_a,_$q1 2. 题目出现问题:代码修改为 ch = (char) (ch+1);结果为B;如果直接.println(ch+1);结果为98。 3.true(真) false(假) 4.4 5. 2 2 false 26.m*20/100 (double)m*20/100三、 编程题1、由命令行输入一个成绩,使用switch结构求出成绩的等级。A:90100;B:
4、8089;C:7079;D:6069;E:059。import .Scanner;public class IfElseTest public static void main(String args) Scanner sc = new Scanner();int grade = sc.nextInt();if(grade100).println(aaaa);(0);int temp =(int)(grade/10);switch(temp)case 10:.println(A);break;case 9:.println(A);break;case 8:.println(B);break;c
5、ase 7:.println(C);break;case 6:.println(D);break;default:.println(E);break;2、计算圆周率:PI44/3+4/5-4/7. .;打印出第一个大于3.1415小于3.1416的值。public class PITestpublic static void main(String args)double result=0.0;for(int i=1;i+)double m=4.0/(2*i-1);if(i%2)=0)result-=m;elseresult+=m;if(result3.1415 & result3.1416)
6、.println(result: +result);break;3、输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值。斐波那契数列:1、1、2、3、5、8、13、21、34、。import .Scanner;public class FibonacciTestpublic static void main(String args)Scanner sn=new Scanner();int num=sn.nextInt();int i=1;int n1=1,n2=1;while(i=num)if(i=1|i=2)n2=1;elseint temp=n2;n2=n1+n2;n1=te
7、mp;i+;.println(n2);.println(第+num+个值为:+n2);4、计算多项式1-1/3+1/5-1/7+1/9.的值。 1)要求出前50项和值。 2)要求出最后一项绝对值小于1e-5的和值。public class SumTestpublic static void main(String args)double sum=0.0;for(int i=1;i=50;i+)if(i%2=0)sum=sum-1.0/(2*i-1);elsesum=sum+1.0/(2*i-1);.println(前50项和值:+sum);double item=0.0;int j=1;sum
8、=0.0;while(item0.00001)item=1.0/(2*j-1);if(j%2=0)sum-=item;elsesum+=item;j+;.println(最后一项绝对值小于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;i100;i+)int num = (int)(m()*1000);if(t.isPrim
9、e(num).println(num+是素数!);else.println(num+不是素数!);.println();public boolean isPrime(int num)for(int i=2;i=num/2;i+)if(num%i=0).println(num+第一个被+i+整除!);return false;return true;6、在屏幕上打印出n行的金字塔图案,如,若n=3,则图案如下: * * *import .Scanner;public class PrintStarpublic static void main(String args)Scanner sn=new
10、 Scanner();int rows=sn.nextInt();for(int i=1;i=rows;i+)for(int j=1;j=rows-i;j+).print( );for(int k=1;k=2*i-1;k+).print(*);.println();7、歌德巴赫猜想,任何一个大于六的偶数可以拆分成两个质数的和,打印出所有的可能。如输入10,结果为:10=5+5;10=3+7。public class Gede public static void main(String args) int n = Int(args0);if(n=6 | n%2!=0).println(错误的参
11、数!);return;Gede g = new Gede();/因为1不是素数,n-2是偶数,所以从3开始循环for(int i=3;i=n/2;i+)if(i%2=0)continue;if(g.isPrime(i) & g.isPrime(n-i).println(i+(n-i)+=+n);/* * 判断num是否是素数 */public boolean isPrime(int num)for(int i=2;i=num/2;i+)if(num%i=0)return false;return true;四、实训题万年历的设计与实现。本程序包含两个类CalenderModelA和TestCa
12、lenderModelA。CalenderModelA实现了赛事日期设置等主要功能,程序文件CalenderModelA .java。public class CalenderModelA/计算从公元始的天数public int getNumberOfDay(int year, int month, int day)int total = 0;int limit = getTotalDaysOfMonth(year, month);if(day=limit)for (int y = 1; y year; y+) total += (pYear(year) ? 366 : 365);for (i
13、nt m = 1; m month; m+) total += (talDaysOfMonth(year, month);total+=day;return total;else.println(您输入的日期非法);return -1;/打印万年历public void show(int year, int month) int total = 0;/计算从公元始到今年之前的总天数for (int y = 1; y year; y+) total += (pYear(y) ? 366 : 365);/计算今年到本月前的总天数for (int m = 1; m month; m+) total
14、+= (talDaysOfMonth(year, m);/计算本月1日是星期几total = total % 7;int d1 = (total + 1) % 7;int d2 = talDaysOfMonth(year, month);.println(ttt + year + 年 + month + 月);.println(-);String s = 日, 一, 二, 三, 四, 五, 六 ;for (int i = 0; i 7; i+) .print(si + t);.println();for(int i=0;id1;i+).print(t);/打印本月日历for (int i =
15、d1,j=1; i d1 + d2; i+,j+) .print(j + t);if(i+1)%7 = 0).println();.println();/判断是否为闰年public boolean isLeapYear(int year)return (year%4 = 0) & (year % 100 != 0) | (year % 400 = 0);/计算某年某月天数public int getTotalDaysOfMonth(int year, int month) int total = 0;switch (month) case 1:case 3:case 5:case 7:case
16、 8:case 10:case 12:total = 31;break;case 2:total = pYear(year) ? 29 : 28;break;case 4:case 6:case 9:case 11:total = 30;break;return total;TestCalenderModelA实现main方法,具有输入大赛起始和终止日期,输出日历,并计算大赛周期的功能。程序文件TestCalenderModelA .java。import .Scanner;public class TestCalenderModelApublic static void main(Strin
17、g args) Scanner scan = new Scanner();.print(请输入年份:);int year = nt();.print(请输入月份:);int month = nt();.println(月历如下);CalenderModelA testBegin = new CalenderModelA();(year, month);第三章 面向对象编程一、选择题1-5 CABDD 2-10 DCCBC11-12 CC二、填空题1. Package mypackage;2. final3. Object4. package import class5. c三、程序设计题2、按
18、下列要求编写程序: 创建Teacher类 要求:Teacher类要描述姓名、年龄、薪水,类型分别为String、int、double 创建TeacherTest类 要求:在TeacherTest类中创建Teacher的对象;为该对象的属性(姓名、性别、年龄)赋值;将该对象的属性(姓名、性别、年龄)输出; 为Teacher类添加一个方法,用于在教师原有薪水的基础上增加5000; 修改TeacherTest类,增加对教师增加薪水方法的调用,并将增加后的薪水值输出。:public class Teacher public String name;public int age;public doubl
19、e 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) y = salary;public Teacher()public Teacher(String name,int age,double sala
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java核心技术习题答案 Java 核心技术 习题 答案
限制150内