Java核心技术习题答案Word文件下载.docx
- 文档编号:20056570
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:45
- 大小:27.45KB
Java核心技术习题答案Word文件下载.docx
《Java核心技术习题答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《Java核心技术习题答案Word文件下载.docx(45页珍藏版)》请在冰豆网上搜索。
(真)false(假)
5.22false2
*20/100(double)m*20/100
三、编程题
1、由命令行输入一个成绩,使用switch结构求出成绩的等级。
A:
90-100;
B:
80-89;
C:
70-79;
D:
60-69;
E:
0-59。
importclassIfElseTest{
publicstaticvoidmain(String[]args){
Scannersc=newScanner;
intgrade=();
if(grade<
0||grade>
100){
"
aaaa"
(0);
}
inttemp=(int)(grade/10);
switch(temp){
case10:
{
"
A"
break;
}
case9:
case8:
B"
case7:
C"
case6:
D"
default:
E"
}
2、计算圆周率:
PI=4-4/3+4/5-4/7......;
打印出第一个大于小于的值。
publicclassPITest{
doubleresult=;
for(inti=1;
;
i++){
doublem=(2*i-1);
if((i%2)==0){
result-=m;
}else{
result+=m;
if(result>
&
&
result<
result:
"
+result);
3、输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值。
斐波那契数列:
1、1、2、3、5、8、13、21、34、……。
importclassFibonacciTest{
Scannersn=newScanner;
intnum=();
inti=1;
intn1=1,n2=1;
while(i<
=num){
if(i==1||i==2){
n2=1;
inttemp=n2;
n2=n1+n2;
n1=temp;
i++;
}
第"
+num+"
个值为:
+n2);
4、计算多项式1-1/3+1/5-1/7+1/9......的值。
1)要求出前50项和值。
2)要求出最后一项绝对值小于1e-5的和值。
publicclassSumTest{
doublesum=;
i<
=50;
if(i%2==0){
sum=(2*i-1);
sum=sum+(2*i-1);
前50项和值:
+sum);
doubleitem=;
intj=1;
sum=;
while(item<
item=(2*j-1);
if(j%2==0){
sum-=item;
sum+=item;
j++;
最后一项绝对值小于1e-5的和值:
5、产生100个0-999之间的随机整数,然后判断这100个随机整数哪些是素数,哪些不是?
publicclassPrimeTest{
PrimeTestt=newPrimeTest();
for(inti=0;
100;
intnum=(int)()*1000);
if(num)){
是素数!
不是素数!
publicbooleanisPrime(intnum){
for(inti=2;
=num/2;
if(num%i==0){
第一个被"
+i+"
整除!
returnfalse;
returntrue;
6、在屏幕上打印出n行的金字塔图案,如,若n=3,则图案如下:
*
***
*****
importclassPrintStar{
introws=();
=rows;
for(intj=1;
j<
=rows-i;
j++){
for(intk=1;
k<
=2*i-1;
k++){
*"
7、歌德巴赫猜想,任何一个大于六的偶数可以拆分成两个质数的和,打印出所有的可能。
如输入10,结果为:
10=5+5;
10=3+7。
publicclassGede{
intn=(args[0]);
if(n<
=6||n%2!
=0){
错误的参数!
return;
Gedeg=newGede();
ava。
publicclassCalenderModelA
ava。
importclassTestCalenderModelA
publicstaticvoidmain(String[]args)
{
Scannerscan=newScanner;
请输入年份:
intyear=();
请输入月份:
intmonth=();
月历如下"
CalenderModelAtestBegin=newCalenderModelA();
(year,month);
第三章面向对象编程
一、选择题
1-5CABDD
2-10DCCBC
11-12CC
二、填空题
1.Packagemypackage?
2.final
3.Object
4.packageimportclass
5.c
2、按下列要求编写程序:
1创建Teacher类
要求:
Teacher类要描述姓名、年龄、薪水,类型分别为String、int、double
2创建TeacherTest类
在TeacherTest类中创建Teacher的对象;
为该对象的属性(姓名、性别、年龄)赋值;
将该对象的属性(姓名、性别、年龄)输出;
3为Teacher类添加一个方法,用于在教师原有薪水的基础上增加5000;
4修改TeacherTest类,增加对教师增加薪水方法的调用,并将增加后的薪水值输出。
publicclassTeacher{
publicStringname;
publicintage;
publicdoublesalary;
publicStringgetName(){
returnname;
publicvoidsetName(Stringname){
=name;
publicintgetAge(){
returnage;
publicvoidsetAge(intage){
=age;
publicdoublegetSalary(){
returnsalary;
publicvoidsetSalary(doublesalary){
=salary;
publicTeacher(){
publicTeacher(Stringname,intage,doublesalary){
=name;
=age;
=salary;
publicvoidaddSalary(){
=+5000;
publicclassTeacherTest{
Teacherteacher=newTeacher();
=35;
="
zhangsan"
=;
();
3、定义一个Person类。
1包含以下属性:
Stringname;
intage;
booleangender;
Personpartner。
2定义marry(Personp)方法,代表当前对象和p结婚,如若可以结婚,则输出恭贺信息,否则输出不能结婚原因。
下列情况不能结婚:
结婚年龄,男<
24,女<
22;
3,某一方已婚。
3定义测试类,来测试以上程序。
publicclassPerson{
privateStringname;
privateintage;
privatebooleangender;
Personpartner;
publicPerson(Stringname,intage,booleangender,Personpartner){
=gender;
=partner;
publicvoidmarry(Personp){
if=={
同性不能结婚!
if(==true&
<
24)||==false&
22)
||==true&
24)||==false&
22)){
没有达到结婚年龄!
if!
=null||!
=null){
有一方已经结婚!
"
++"
+"
祝你们新婚愉快!
=p;
=this;
Personp1=newPerson("
关之琳"
23,false,null);
Personp2=newPerson("
刘德华"
26,true,null);
Personp3=newPerson("
孙楠"
70,true,null);
(p2);
(p3);
4、定义一个Animal类,该类有两个私有属性,name(代表动物的名字)和legs(代表动物的腿的条数)。
1两个构造方法,一个无参,默认给name赋值为AAA,给legs赋值为4;
另一个需要两个参数,分别用这两个参数给私有属性赋值。
2两个重载的move()方法,其中一个无参,在屏幕上输出一行文字:
XXXMoving!
!
(XXX为该动物的名字);
另一个需要一个int参数n,在屏幕上输出n次XXXMoving!
publicclassAnimal1{
privateintlegs;
publicAnimal1(){
AAA"
=4;
publicAnimal1(Stringname,intlegs){
super();
=legs;
}
publicintgetLegs(){
returnlegs;
publicvoidsetLegs(intlegs){
=legs;
publicvoidmove(){
Animalmoving!
publicvoidmove(intn){
=n){
5、定义一个Fish类,继承自Animal类。
1提供一个构造方法,该构造方法需要一个参数name,并给legs赋默认值0;
2覆盖Animal类中的无参move()方法,要求输出:
XXXSwimming!
publicclassFishextendsAnimal{
publicFish(Stringname){
=0;
Fishisswimming!
publicclassBirdextendsAnimal{
publicBird(Stringname){
=2;
Birdisflying!
6、写一个类Zoo,要求分别生成若干个Animal、Fish和Bird。
并调用他们的属性和方法。
publicclassZoo{
Animala=newAnimal("
dog"
4);
(3);
Fishf=newFish("
smallfish"
Birdb=newBird("
xique"
Animalaf=newFish("
7、某公司的雇员分为以下若干类:
1Employee:
这是所有员工总的父类,属性:
员工的姓名,员工的生日月份。
方法:
getSalary(intmonth)根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100元。
2SalariedEmployee:
Employee的子类,拿固定工资的员工。
属性:
月薪;
3HourlyEmployee:
Employee的子类,按小时拿工资的员工,每月工作超出160小时的部分按照倍工资发放。
每小时的工资、每月工作的小时数;
4SalesEmployee:
Employee的子类,销售人员,工资由月销售额和提成率决定。
月销售额、提成率。
5BasedPlusSalesEmployee:
SalesEmployee的子类,有固定底薪的销售人员,工资由底薪加上销售提成部分。
底薪。
写一个程序,把若干各种类型的员工放在一个Employee数组里,写一个函数,打印出某月每个员工的工资数额。
注意:
要求把每个类都做成完全封装,不允许非私有化属性。
classEmployee{
privateintmonth;
publicEmployee(Stringname,intmonth){
=month;
publicStringgetName(){
publicdoublegetSalary(intmonth){
if==month){
return;
return;
classSalariedEmployeeextendsEmployee{
privatedoublemonthSalary;
publicSalariedEmployee(Stringname,intmonth,doublemonthSalary){
super(name,month);
=monthSalary;
returnmonthSalary+(month);
classHourlyEmployeeextendsEmployee{
privateinthours;
privatedoublehourSalary;
publicHourlyEmployee(Stringname,intmonth,inthours,doublehourSalary){
=hours;
=hourSalary;
doubleresult;
if(hours<
=160){
result=hours*hourSalary;
}else{
result=160*hourSalary+(hours-160)**hourSalary;
returnresult+(month);
classSalesEmployeeextendsEmployee{
privatedoublesalesCount;
privatedoublerate;
publicSalesEmployee(Stringname,intmonth,doublesalesCount,doublerate){
=salesCount;
=rate;
returnsalesCount*rate+(month);
classBasedPlusSalesEmployeeextendsSalesEmployee{
privatedoublebasedPlus;
publicBasedPlusSalesEmployee(Stringname,intmonth,doublesalesCount,doublerate,doublebasedPlus){
super(name,month,salesCount,rate);
=basedPlus;
returnbasedPlus+(month);
publicclassEmployeeTest{
Employee[]e=newEmployee[4];
e[0]=newSalariedEmployee("
9,;
e[1]=newHourlyEmployee("
lisi"
5,230,;
e[2]=newSalesEmployee("
wangwu"
11,,;
e[3]=newBasedPlusSalesEmployee("
zhaoliu"
2,,,;
9月份的工资总额为:
+e[i].getSalary(9));
四、实训题
班级成绩管理系统实体类设计。
publicclassTest{
Studentstu=newStudent("
001"
姚明"
("
信息工程学院"
软件工程"
软件10-1"
Gradestugrade=newGrade();
Web程序设计"
2011-2012(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 核心技术 习题 答案