Java应用开发与实践习题答案.docx

上传人:b****5 文档编号:5851349 上传时间:2023-01-01 格式:DOCX 页数:87 大小:513.41KB
下载 相关 举报
Java应用开发与实践习题答案.docx_第1页
第1页 / 共87页
Java应用开发与实践习题答案.docx_第2页
第2页 / 共87页
Java应用开发与实践习题答案.docx_第3页
第3页 / 共87页
Java应用开发与实践习题答案.docx_第4页
第4页 / 共87页
Java应用开发与实践习题答案.docx_第5页
第5页 / 共87页
点击查看更多>>
下载资源
资源描述

Java应用开发与实践习题答案.docx

《Java应用开发与实践习题答案.docx》由会员分享,可在线阅读,更多相关《Java应用开发与实践习题答案.docx(87页珍藏版)》请在冰豆网上搜索。

Java应用开发与实践习题答案.docx

Java应用开发与实践习题答案

课后习题答案

习题1

一、选择题

1.Java的三大平台不包括(C)

A、JavaME

B、JavaEE

C、Android

D、JavaSE

2.Java的开发工具是(C)

A、JRE

B、JVM

C、JDK

D、JavaAPI

3.下列叙述中正确的是(A)

A、在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小

B、在面向对象的程序设计中,各个对象都是公用的

C、在面向对象的程序设计中,各个对象之间相互不独立,它们具有密切的关系

D、以上三种说法都不对

4.JDK中用于存放Java类库文件的文件夹是(D)

A、bin

B、include

C、demo

D、lib

5.下列关于Java语言特点的叙述中,错误的是(C)

A、Java是跨平台的编程语言

B、Java是解释执行的编程语言

C、Java是面向过程的编程语言

D、Java是具有健壮性和安全性的编程语言

二、是非题

1.JDK包括JRE及开发工具(√)

2.Java的运行环境叫JRE(√)

3.Java程序编译的结果(class文件)中包含的是实际机器的CPU指令(×)

4.Java有丰富的库供我们调用(√)

5.JRE包括JVM及API(√)

三、编程题

1.参照本章的第一个例子,创建一个“Hello,World”程序,在屏幕上简单地显示这句话。

注意在自己的类里只需一个方法main()方法(main()方法会在程序启动时执行)。

记住要把main()方法设为static形式。

用javac编译这个程序,再用java运行它。

答案:

publicclassDemo{

publicstaticvoidmain(String[]args){

System.out.println("Helloworld!

");//控制台输出Helloworld!

}

}

javac编译命令:

javacDemo.java

java解释命令:

javaDemo

2.以习题1的程序为基础,向其中加入注释文档。

利用javadoc,将这个注释文档提取为一个HTML文件,并用Web浏览器观看。

答案:

略。

习题2

一、选择题

1.下列选项中为单精度数的是( B )

A、-56.9

B、7.2f

C、0.6

D、071

2.指出正确的表达式( C )

A、byteb=-128;

B、Boolean=null;

C、longl=0xfffL;

D、floatf=0.63598;

3.下列语句序列执行后,c的值是( C )

publicstaticvoidmain(String[]args){

inta=10,b=3,c=5;

if(a==b)

c+=a;

else

c=++a*c;

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

}

A、15

B、50

C、55

D、5

4.下列语句序列执行后,x的值是( D )

publicstaticvoidmain(String[]args){

inta=2,b=4,x=5;

if(a<--b)

x*=a;

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

}

A、5

B、20

C、15

D、10

5.下列语句序列执行后,num的值是( A )

publicstaticvoidmain(String[]args){

charch='1';

intnum=10;

switch(ch+1){

case'1':

num=num+3;

case'2':

num=num+5;

case'3':

num=num+6;

break;

default:

num=num+8;

}

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

}

A、21

B、25

C、26

D、28

二、是非题

1.Java中没有无符号数(√)

2.Java的break语句只能用来跳出循环(×)

3.Java中非零即真(×)

4.程序的三种基本流程是顺序、分支、循环(√)

5.do.while循环至少执行一次(√)

三、编程题

1.定义一个-维整型数组arr,长度为8,将数组元素的下标值赋给数组元素,最后打印输出数组中下标为奇数的元素。

publicclassDemo1{

publicstaticvoidmain(String[]args){

int[]arr=newint[8];//数组元素是默认初始化为0

for(inti=0;i

arr[i]=i;

}

for(inti=1;i

System.out.println("arr["+i+"]="+arr[i]);

}

}

}

2.有部分学生的成绩是29,90,56,90,52,95,83,45,60,43,78,定义一个-维整型数组,统计成绩不及格的人数。

publicclassDemo2{

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

int[]scores={29,90,56,90,52,95,83,45,60,78};

intsum=0,i=0;

while(i

if(scores[i]<60){

sum++;

}

i++;

}

System.out.println(sum);

}

}

3.设定一个表示成绩的整型变量score,当score等于10分时为冠军,当score大于8分时亚军,其它情况是季军。

publicclassDemo3{

publicstaticvoidmain(String[]args){

intscore=10;//Scannersc=newScanner(System.in);

if(score==10){

System.out.println("冠军");

}elseif(score>8){

System.out.println("亚军");

}else{

System.out.println("季军");

}

}

}

4.有人走台阶若每步走2级,则最后剩1级。

若每步走3级则最后剩2级。

若每步走4级,则最后剩3级。

若每步走5级,则最后剩4级,若每步走6级,则最后剩5级。

若每步走7级,则刚好不剩。

试编制程序求此台阶数。

publicclassDemo4{

publicstaticvoidmain(String[]args){

for(inti=7;i<=1000;i++){//7-1000

//&&:

短路:

与:

所有条件都必须true||或:

所有条件只要有一个为true

if(i%2==1&&i%3==2&&i%4==3&&i%5==4&&i%6==5&&i%7==0){

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

}

}

}

}

5.求1+2!

+3!

+...+20!

的和。

publicclassDemo5{

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

longfac,sum=0;//fac:

乘积的结果

for(inti=1;i<=20;i++){//i:

4

fac=1;

for(intk=1;k<=i;k++){//k:

3

fac=fac*k;//fac:

2

}

sum=sum+fac;

}

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

}

}

习题3

一、是非题

1.在界面中要达到进度条效果,可以由JProgressBar进度条类的对象实现(√)

2.通常在数据库中创建视图是为了更好的使用基本表的数据以及对表的保护(√)

3.在MySQL中一般都需要进行数据表的创建,因为只有基本表建立起来,才能进行基于表的数据操作(√)

4.对基本表的数据操作包括增加、删除和查询等(√)

5.MVC只能用于Java编程中(×)

二、问答题

1.什么是视图?

视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。

同真实的表一样,视图包含一系列带有名称的列和行数据。

但是,视图并不在数据库中以存储的数据值集形式存在。

行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

2.什么是MVC模式?

MVC全名是ModelViewController,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

习题4

一、选择题

1.下列代码的运行结果是( E )

publicclassDemo{

publicstaticvoidmain(String[]args){

Animalanimal=newDog();

Catcat=(Cat)animal;

System.out.println(cat.noise());

}

}

classAnimal{

publicStringnoise(){

return"AnimalCall";

}

}

classDogextendsAnimal{

publicStringnoise(){

return"汪汪";

}

}

classCatextendsAnimal{

publicStringnoise(){

return"喵喵";

}

}

A、AnimalCall

B、汪汪

C、喵喵

D、编译错误

E、抛出运行时异常

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

A、floatDemodemo;

B、publicDemodemo=Demo();

C、Demodemo=newint();

D、staticDemodemo=newDemo();

3.设i,j为类Test中定义的int型成员变量,下列Test类构造方法中不正确的是( A )

A、voidTest(inta){i=a;}

B、Test(inta){i=a;}

C、Test(intx,inty){i=x;j=y;}

D、Test(){i=0;j=0;}

4.Java中,一个类可同时定义许多同名的方法,在这些方法的形式参数个数,类型或顺序各不相同,传值也可以各不相同。

这种面向对象程序的特性称为( B )

A、隐藏

B、重载

C、覆盖

D、Java不支持此特性

5.为Demo类的一个无形式参数、无返回值的方法method书写方法头,使得使用类名Demo作为前缀就可以调用它,该方法头的形式为( A )

A、staticvoidmethod()

B、publicvoidmethod()

C、finalvoidmethod()

D、abstractvoidmethod()

二、是非题

1.继承可以实现代码重用,提高开发效率和可维护性(√)

2.子类在构造方法中,可以用super来调用父类的构造方法(√)

3.将字段用private修饰,从而更好地将信息进行封装和隐藏(√)

4.在类的声明中用implements子句来表示一个类使用某个接口(√)

5.如果省略访问控制符,则表示private(×)

三、编程题

1.定义一个类Person,包含被封装的数据成员name、sex、age,表示姓名、性别和年龄,为Person类提供一个构造方法,实现三个属性的初始化操作;并提供一个输出方法显示每个成员变量的值。

publicclassPerson{

privateStringname;

privateStringsex;

privateintage;

//无参构造方法

publicPerson(){

name="张三";

sex="男";

age=29;

}

publicvoidoutput(){

System.out.println("姓名:

"+name+"性别:

"+sex+"年龄:

"+age);

}

publicstaticvoidmain(String[]args){

Personp1=newPerson();

p1.output();

}

}

2.根据编程题第1题,定义Employee类继承自Person类,增加成员变量department、positon存放部门和位置信息。

定义一个5参的构造方法,重写输出方法用于显示5个成员变量的值。

定义测试类,完成一个员工对象的创建及信息输出操作。

publicclassPerson{

Stringname;

Stringsex;

intage;

publicPerson(Stringname,Stringsex,intage){

super();

this.name=name;

this.sex=sex;

this.age=age;

}

publicvoidoutput(){

System.out.println("姓名:

"+name+"性别:

"+sex+"年龄:

"+age);

}

publicstaticvoidmain(String[]args){

Employeee=newEmployee("zs","男",28,"开发部","经理");

System.out.println(e);

e.output();

}

}

classEmployeeextendsPerson{

privateStringdepartment;//部门

privateStringpositon;//位置

publicEmployee(Stringname,Stringsex,intage,Stringdepartment,Stringpositon){

super(name,sex,age);

this.department=department;

this.positon=positon;

}

@Override

publicStringtoString(){

return"姓名:

"+name+"性别:

"+sex+"年龄:

"+age+"部门:

"+department+"位置:

"+positon;

}

publicvoidoutput(){

System.out.println("姓名:

"+name+"性别:

"+sex+"年龄:

"+age+"部门:

"+department+"位置:

"+positon);

}

}

3.定义一个二维空间的点类(Point),有横、纵坐标属性,计算两点之间距离。

publicclassDemo3{

publicstaticvoidmain(String[]args){

Pointp1=newPoint(1,4);

Pointp2=newPoint(2,6);

System.out.println(p1.distance(p2));

System.out.println(p1.move(30,5));

}

}

classPoint{

privatedoublex;

privatedoubley;

publicPoint(doublex,doubley){

super();

this.x=x;

this.y=y;

}

publicdoubledistance(Pointpoint){

returnMath.sqrt((point.x-this.x)*(point.x-this.x)+(point.y-this.y)*(point.y-this.y));

}

//当前点的横、纵坐标移动一定距离到下一个位置

publicPointmove(doublex,doubley){

returnnewPoint(this.x+x,this.y+y);

}

@Override

publicStringtoString(){

//TODOAuto-generatedmethodstub

return"("+x+","+y+")";

}

}

4.定义一个矩形类(Rectangle)用来表示矩形,定义可以改变矩形坐标位置的方法;定义可以改变矩形宽高的方法;定义求矩形面积的方法;定义计算一个点是否在矩形内的方法。

publicclassDemo4{

publicstaticvoidmain(String[]args){

Rectangler=newRectangle(10,20,50,50);

r.setLocation(60,60);

r.setSize(20,20);

System.out.println(r.isInsideOfRectangle(40,3));

System.out.println(r.getArea());

}

}

classRectangle{

//top,left左上角那个顶点的坐标

//width:

//heigth:

privatedoubletop,left,width,height;

//构造函数

publicRectangle(doubletop,doubleleft,doublewidth,doubleheight){

this.top=top;

this.left=left;

this.width=width;

this.height=height;

}

//改变顶点坐标,即改变矩形坐标位置

publicvoidsetLocation(doubletop,doubleleft){

this.top=top;

this.left=left;

}

//改变宽,高,即改变矩形宽高

publicvoidsetSize(doublewidth,doubleheight){

this.width=width;

this.height=height;

}

//计算面积,宽×高

publicdoublegetArea(){

returnwidth*height;

}

//判断某点是否在矩形内

publicbooleanisInsideOfRectangle(doublex,doubley){

//这里采用的是数学上的坐标系,即向上向右为正

//如果采用向下向右为正的话,则要改

//returnx>this.left&&x

//this.height&&y>this.top;

//这里点不包括在边上,如果在边上也算的话,把小于号或大于号改成小于等于及大于等于

returnx>this.left&&xthis.top-this.height&&y

}

}

5.按要求编写Java程序。

(1)编写一个接口:

Calculate,只含有一个方法intfn(inta);

(2)编写一个类:

ClassA来实现接口Calculate,实现intfn(intn)接口方法时,要求计算1到n的和;

(3)编写另一个类:

ClassB来实现接口Calculate,实现intfn(intn)接口方法时,要求计算n的阶乘(n!

);

(4)编写测试类Test,在测试类的Test方法中实现接口。

interfaceCalculate{

intfn(intn);

}

classClassAimplementsCalculate{

publicintfn(intn){//1到n的和

intsum=0;

for(inti=0;i<=n;i++){

sum+=i;

}

returnsum;

}

}

classClassBimplementsCalculate{

publicintfn(intn){//n的阶乘

intfactorial=1;

for(inti

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

当前位置:首页 > 自然科学 > 天文地理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1