Java程序设计项目教程第二版参考答案.docx

上传人:b****0 文档编号:17079543 上传时间:2023-07-21 格式:DOCX 页数:50 大小:57.29KB
下载 相关 举报
Java程序设计项目教程第二版参考答案.docx_第1页
第1页 / 共50页
Java程序设计项目教程第二版参考答案.docx_第2页
第2页 / 共50页
Java程序设计项目教程第二版参考答案.docx_第3页
第3页 / 共50页
Java程序设计项目教程第二版参考答案.docx_第4页
第4页 / 共50页
Java程序设计项目教程第二版参考答案.docx_第5页
第5页 / 共50页
Java程序设计项目教程第二版参考答案.docx_第6页
第6页 / 共50页
Java程序设计项目教程第二版参考答案.docx_第7页
第7页 / 共50页
Java程序设计项目教程第二版参考答案.docx_第8页
第8页 / 共50页
Java程序设计项目教程第二版参考答案.docx_第9页
第9页 / 共50页
Java程序设计项目教程第二版参考答案.docx_第10页
第10页 / 共50页
Java程序设计项目教程第二版参考答案.docx_第11页
第11页 / 共50页
Java程序设计项目教程第二版参考答案.docx_第12页
第12页 / 共50页
Java程序设计项目教程第二版参考答案.docx_第13页
第13页 / 共50页
Java程序设计项目教程第二版参考答案.docx_第14页
第14页 / 共50页
Java程序设计项目教程第二版参考答案.docx_第15页
第15页 / 共50页
Java程序设计项目教程第二版参考答案.docx_第16页
第16页 / 共50页
Java程序设计项目教程第二版参考答案.docx_第17页
第17页 / 共50页
Java程序设计项目教程第二版参考答案.docx_第18页
第18页 / 共50页
Java程序设计项目教程第二版参考答案.docx_第19页
第19页 / 共50页
Java程序设计项目教程第二版参考答案.docx_第20页
第20页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Java程序设计项目教程第二版参考答案.docx

《Java程序设计项目教程第二版参考答案.docx》由会员分享,可在线阅读,更多相关《Java程序设计项目教程第二版参考答案.docx(50页珍藏版)》请在冰点文库上搜索。

Java程序设计项目教程第二版参考答案.docx

Java程序设计项目教程第二版参考答案

项目1

一、思考题

1.Java程序有几种版本,分别是什么?

Java有三种版本,分别是J2ME、J2SE、J2EE

2.Java程序有何特点?

Java语言的特点如下:

①面向对象:

支持代码继承及重用,是完全面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。

②解释执行:

Java解释器(运行系统)能直接运行目标代码指令。

③平台无关:

Java源程序被编译成一种高层次的与机器无关的Byte-codes格式语言,被设计在Java虚拟机上运行。

多线程:

Java提供的多线程功能使得在一个程序里可同时执行多个小任务。

多线程带来的好处是可以有更好的交互性能和实时控制性能。

健壮性:

Java致力于检查程序在编译和运行时的错误,类型检查帮助检查出许多开发早期出现的错误。

3.什么是JVM,为什么需要JVM?

JVM即Java虚拟机,是一台可以存在于不同的真实的软、硬件环境下的虚拟的计算机,其功能是将字节码解释为真实平台能执行的指令。

Java正是通过虚拟机JVM技术,实现了与平台无关,实现“编写一次,到处运行”。

因此,任何平台只要安装相应的Java虚拟机环境,就能运行Java程序。

4.如何理解Java程序的基本结构?

①语句packagep1;是建立一个包(文件夹),生成的类文件将存放于包中。

②程序第一行publicclass类名{},是一个类定义语句。

public关键字指明类的访问方式为公有,也就是在整个程序内都可以访问到它。

如果将类定义为public,则类其名称必须与主文件名一致,并且大小写敏感。

③类后大括号内可以定义类的成员和方法,对于一个可执行的Java类,main方法是必需的,而且该main方法必须是公有(public)、静态(static)和没有返回值(void)的,同时它只能带一个字符串型(String[])的参数。

④程序的一行“//……”是注释,只说明不运行。

⑤每个命令语句结束,必须以“;”结尾。

二、编程

1.编写一Java应用程序,要求在屏幕上输出字符串“HappyNewYear!

”。

classPrac1

{

publicstaticvoidmain(Stringargs[])

{

System.out.println("HappyNewYear!

");

}

}

2.编写一个简单的Java程序,在屏幕上输出如下图形:

*

***

*****

classPrac2

{

publicstaticvoidmain(Stringargs[])

{

System.out.println("*");

System.out.println("***");

System.out.println("*****");

}

}

项目2

一、选择题

1.数组中可以包含什么类型的元素?

(D)

A.int型B.String型C.数组D.以上都可以

2.Java中定义数组名为Arr,下面哪项可以得到数组元素的个数?

(B)

A.Arr.length()B.Arr.lengthC.Arr(xyz)D.Arr(xyz)

3.下面哪条语句定义了3个元素的数组?

(A)

A.int[]a={20,30,40};

B.inta[]=newint(3);

C.int[3]array;

D.int[]arr;

4.下面的代码段中,执行之后i和j的值是(B)。

inti=10;

intj;

j=i++;

A.10,10B.11,10C.10,11D.11,11

二、编程

1.试编写一个程序,输入三条边长值,并判断这三条边长能不能构成三角形,如果能,能构成什么样的三角形(一般、等边、等腰)。

importjava.util.*;

classPractice1{

publicstaticvoidmain(Stringargs[])

{

Scanners=newScanner(System.in);

inta,b,c;

a=s.nextInt();

b=s.nextInt();

c=s.nextInt();

if(a+b>c&&a+c>b&&b+c>a)

{

if(a==b&&a==c)

System.out.print("构成的三角形为等边三角形。

");

elseif(a==b||a==c||b==c)

System.out.print("构成的三角形为等腰三角形。

");

else

System.out.print("构成的三角形为一般三角形。

");

}

else

System.out.print("不能构成三角形。

");

}

}

2.试编写一个程序,读入10个学生的成绩,成绩在0~59分为D,成绩在60~79分为C,成绩在80~89分为B,成绩在90~100分为A,并输出A、B、C、D的人数个数。

importjava.util.*;

publicclassPractice2{

publicstaticvoidmain(Stringargs[])throwsIOException

{

inta=10,a1=0,a2=0,a3=0,a4=0,c;

intnuma[]=newint[a];

for(inti=0;i

System.out.print("请输入第"+(i+1)+"个人的成绩");

c=getInputData();

while(c<0||c>100)

{

System.out.print("请重新输入第"+(i+1)+"个学生的成绩");

c=getInputData();

}

numa[i]=c;//保存

System.out.println(numa[i]);

switch(numa[i]/10){

case10:

System.out.println("成绩为A级!

");

a1++;

break;

case9:

System.out.println("成绩为A级!

");

a1++;

break;

case8:

System.out.println("成绩为B级!

");

a2++;

break;

case7:

System.out.println("成绩为C级!

");

a3++;

break;

case6:

System.out.println("成绩为C级!

");

a3++;

break;

default:

System.out.println("成绩为D级!

");

a4++;

break;

}

}

System.out.println("90-100分的人数="+a1);

System.out.println("80-89分的人数="+a2);

System.out.println("60-79分的人数="+a3);

System.out.println("0-59分的人数="+a4);

}

publicstaticintgetInputData()throwsIOException

{

Scanners=newScanner(System.in);

intn=s.nextInt();

returnn;

}

}

3.试编写一个程序,输出以下形式的图形。

******

******

******

******

classPractice3

{

publicstaticvoidmain(Stringargs[])

{

for(inti=1;i<=4;i++)

{

for(intj=1;j<=i;j++)

System.out.print("");

for(intk=1;k<=5;k++)

System.out.print("*");

System.out.println();

}

}

}

4.试编写游戏程序,完成猜数字游戏,数字是由计算机随机产生的100以内整数。

一次就猜中得100分,2次才猜中得90分,依次类推,超过10次无分。

程序最后输出参与者得分。

importjava.util.*;

classPractice4

{

publicstaticvoidmain(Stringargs[])

{

inta=(int)(Math.random()*10);

intguess,score=100;

Scanners=newScanner(System.in);

inti;

for(i=1;i<=10;i++)

{

guess=s.nextInt();

if(guess==a)

break;

score=score-10;

}

System.out.print(i+"得分为:

"+score);

}

}

项目3

一、选择题

1.定义类头(非内部类)时,不可能用到的关键字是(B)

A)classB)privateC)extendsD)public

2.下列类头定义中,错误的是(A)

A)publicxextendsy{...}B)publicclassxextendsy{...}

C)classxextendsyimplementsy1{...}D)classx{...}

3.设A为已定义的类名,下列声明A类的对象a的语句中正确的是(D)

A)floatAa;B)publicAa=A();

C)Aa=newint();D)staticAa=newA();

4.设X、Y均为已定义的类名,下列声明类X的对象x1的语句中正确的是(C)

A)publicXx1=newY();B)Xx1=X();

C)Xx1=newX();D)intXx1;

5.设X、Y为已定义的类名,下列声明X类的对象x1的语句中正确的是(A)

A)staticXx1;B)publicXx1=newX(int123);

C)Yx1;D)Xx1=X();

6.有一个类A,以下为其构造方法的声明,其中正确的是(A)

A)publicA(intx){...}B)staticA(intx){...}

C)publica(intx){...}D)voidA(intx){...}

7.有一个类Student,以下为其构造方法的声明,其中正确的是(B)

A)voidStudent(intx){...}B)Student(intx){...}

C)s(intx){...}D)voids(intx){...}

8.下列选项中,用于定义接口的关键字是(A)

A)interfaceB)implementsC)abstractD)class

9.现有类A和接口B,以下描述中表示类A实现接口B的语句是(A)

A)classAimplementsBB)classBimplementsA

C)classAextendsBD)classBextendsA

二、填空题

1.如果子类中的某个变量的变量名与它的父类中的某个变量完全一样,则称子类中的这个变量___隐藏__了父类的同名变量。

2.如果子类中的某个方法的名字、返回值类型和___参数列表__与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。

3.抽象方法只有方法头,没有___方法体_____。

4.接口中所有属性均为___public______、___static__和___final_____的。

5.一个类如果实现一个接口,那么它就必须实现接口中定义的所有方法,否则该类就必须定义成__抽象__的。

6.Java语言中用于表示类间继承的关键字是____extends_______。

7.下面是一个类的定义,请将其补充完整。

class_Student____

{

Stringname;

intage;

Student(__String___s,inti)

{

name=s;

age=i;

}

}

8.下面是一个类的定义,请将其补充完整。

_____class______A

{Strings;

___static__inta=666;

A(Strings1)

{

s=s1;

}

staticintgeta()

{

returna;

}

}

三、编程题

1.编写一个类,描述学生的学号、姓名、成绩。

学号用整型,成绩用浮点型,姓名用String类型。

编写一个测试类,输入学生的学号、姓名、成绩,并显示该学号的学生姓名,以及成绩。

importjava.util.*;

classStudent{

intsNum;

Stringname;

doublescore;

}

classT1_Student{

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

Students=newStudent();

s.sNum=sc.nextInt();

s.name=sc.next();

s.score=sc.nextDouble();

System.out.println(s.name+"的学号是"+s.sNum+"成绩是"+s.score);

}

}

2.设计一个Birthday类,其成员变量有:

year,month,day;提供构造方法、输出Birthday对象值的方法和计算年龄的方法。

编写程序测试这个类。

classBirthday{

privateintyear;

privateintmonth;

privateintday;

publicBirthday(intyear,intmonth,intday)

{this.year=year;

this.month=month;

this.day=day;

}

publicvoidprintBirthDay()

{System.out.println(year+"-"+month+"-"+day);

}

publicintprintAge()

{return2021-year;}

publicstaticvoidmain(String[]args)

{

Birthdaybirth=newBirthday(1991,11,5);

birth.printBirthDay();

intage=birth.printAge();

System.out.println(age);

}

}

3.编写一个类,描述汽车,其中用字符型描述车的牌号,用浮点型描述车的价格。

编写一个测试类,其中有一个修改价格方法,对汽车对象进行操作,根据折扣数修改汽车的价格,最后在main方法中输出修改过后的汽车信息。

publicclassChangeCar{

publicstaticvoidmain(String[]args){

Carc=newCar();

c.carNum="鲁A1111";

c.price=10;

System.out.println("beforechange,thecar'snumandpriceis:

"+c.carNum+""+c.price);

changePrice(c);

System.out.println("AfterChange,thecar'spriceis:

"+c.price);

}

publicstaticvoidchangePrice(Carc){

c.price=c.price*0.8;

}

}

classCar{

StringcarNum;

doubleprice;

}

4.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数wheels和车重weight。

小车类Car是Vehicle的子类,其中包含的属性有载人数loader。

卡车类Truck是Car类的子类,其中包含的属性有载重量payload。

每个类都有构造方法和输出相关数据的方法。

classVehicle

{

intwheels;

floatweight;

Vehicle(inta,floatb)

{

wheels=a;

weight=b;

}

voidoutData()

{

System.out.print("Thevehicle'sdata:

wheels:

"+wheels+",weight:

"+weight);

}

}

classCarextendsVehicle

{

intloader;

Car(inta,floatb,intc)

{

super(a,b);

loader=c;

}

voidoutData()

{

super.outData();

System.out.print(",loader:

"+loader);

}

}

classTruckextendsCar

{

floatpayload;

Truck(inta,floatb,intc,floatd)

{

super(a,b,c);

payload=d;

}

voidoutData()

{

super.outData();

System.out.println(",payload:

"+payload);

}

}

classTest

{

publicstaticvoidmain(Stringargs[])

{

Vehiclev=newVehicle(4,7);

v.outData();

System.out.println();

Carc=newCar(4,6,4);

c.outData();

System.out.println();

Truckt=newTruck(4,2,10,8);

t.outData();

}

}

 

5.定义一个接口CanFly,描述会飞的方法publicvoidfly();分别定义类飞机和鸟,实现CanFly接口。

定义一个测试类,测试飞机和鸟,在main方法中创建飞机对象和鸟对象,让飞机和鸟起飞。

interfaceCanFly

{

publicvoidfly();

}

classPlaneimplementsCanFly

{

publicvoidfly()

{

System.out.println("飞机需借助螺旋桨飞上了天空。

");

}

}

classBirdimplementsCanFly

{

publicvoidfly()

{

System.out.println("鸟需借助翅膀飞上了天空。

");

}

}

classTest

{

publicstaticvoidmain(Stringargs[])

{

Planep=newPlane();

Birdb=newBird();

p.fly();

b.fly();

}

}

 

项目4

一、选择题

1.关于异常的定义,下列描述中最正确的一个是(D)。

A)程序编译错误B)程序语法错误

C)程序自定义的异常事件D)程序编译或运行时发生的异常事件

2.抛出异常时,应该使用的子句是(A)。

A)throwB)catchC)finallyD)throws

3.自定义异常类时,可以继承的类是(C)。

A)ErrorB)AppletC)Exception及其子类D)AssertionError

4.当方法产生异常但却无法确定该如何处理时,应采用的方法是(C)。

A)声明异常B)捕获异常C)抛出异常D)自定义异常

5.对于try{…}catch子句的排列方式,正确的一项是(A)。

A)子类异常在前,父类异常在后B)父类异常在前,子类异常在后

C)只能有子类异常D)父类异常与子类异常不能同时出现

6.下列关于try、catch和finally的表述,错误的是(C)。

A)try语句块后必须紧跟catch语句块B)catch语句块必须紧跟在try语句块后

C)可以有try但无catchD)可以有try但无finally

7.下列描述中,错误的一项是(A)。

A)一个程序抛出异常,其他任何运行中的程序都可以捕获

B)算术溢出需要进行异常处理

C)在方法中检测到错误但不知如何处理时,方法就声明异常

D)任何没有被程序捕获的异常最终被默认处理程序处理

8.下面程序运行时,会产生的异常是(C)。

classTest{

publicstaticvoidmain(Stringar[])

{intx=0,y=20,z;

z=(x+y)/(x*y);

System.out.println("z="+z);

}

}

A)ArrayIndexOutOfBoundsExceptionB)NumberFormatException

C)ArithMeticExceptionD)NullPointerException

二、填空题

1.一个try代码段后必须跟catch代码段,finally代码段可以没有。

2.自定义异常类必须继承Exception类或其子类。

3.异常处理机制可以允许根据具体的情况选择在何处处理异常,可以在当前方法中捕获并处理,也可以用throws子句把它交给调用方法去处理。

4.数组下标越界对应的类是ArrayIndexOutOfBoundsException。

5.为达到高

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2