《JAVA编程初步》练习测试题参考答案.docx
- 文档编号:28226223
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:27
- 大小:24.63KB
《JAVA编程初步》练习测试题参考答案.docx
《《JAVA编程初步》练习测试题参考答案.docx》由会员分享,可在线阅读,更多相关《《JAVA编程初步》练习测试题参考答案.docx(27页珍藏版)》请在冰豆网上搜索。
《JAVA编程初步》练习测试题参考答案
《JAVA编程初步》练习测试题参考答案
一、选择题
1—5BBCDB6—10CBABB11—15CBCDC16—20BACAA
21—25BBDBA26—30BDCCB31—35DCADC36—40BBABC
二、填空题
1、Buttonb=newButton("操作");
2、求出1~6之间的一个随机数
3、output55 10output
4、鼠标 键盘
5、初始化
6、类头 类体
7、名称和数组元素类型 数组下标
8、main()方法
9、add() remove()
10、一些相关的变量和方法的软件集
11、桌面操作系统
12、HTML文件名称
13、类定义
14、独立Java应用程序
15、超文本文件
16、集合接口
17、跨平台应用能力网络环境适应能力
18、Java字节码解释器
19、字符串对象
20、负载因子
21、树图对象
22、堆栈对象
23、产生低层事件的对象
24、事件监听器
25、事件对象
26、事件适配器对象
27、AWT组件对象
28、应用程序
29、动态条件
30、并发性
31、线程的执行
32、Java线程组
33、统一的对象
34、系统级
35、共享锁机制
36、共享系统资源
37、最低
38、JDBC
39、应用程序与指定的数据库
40、异常
三、判断题
1、错误
2、错误
3、错误
4、正确
5、错误
6、错误
7、错误
8、正确
9、错误
10、错误
11、错误
12、错误
13、正确
14、正确
15、错误
16、错误
17、错误
18、错误
19、错误
20、正确
21、正确
22、正确
23、正确
24、错误
25、正确
26、错误
27、正确
28、正确
29、错误
30、正确
31、错误
32、正确
33、正确
34、错误
35、错误
36、正确
四、简答题
1、Java的特点有:
简单、面向对象、分布式、解释型、健壮、安全、可移植、多线程、动态等。
2、编译后的Java程序不是可执行的二进制码,而是一种字节码,需要Java虚拟机解释执行,因此,编译后的Java程序不能直接运行。
3、因为Java是一种解释型语言,编译后的程序为字节代码,到了运行时,才由Java虚拟机将其解释为可执行的机器码。
由于Java虚拟机屏蔽了一些平台相关的内容,所以,编译后的Java程序在不同的操作系统平台上都能运行。
4、程序书写格式不同,基本数据元素、结构等也有许多不同。
5、A:
出现上述结果的原因就是找不到相应的Java类文件,需要设置Java的类路径信息。
可以用以下命令设置:
setCLASSPATH=.;jdk所在路径libtools.jar;类文件所在路径
然后在运行第一题中的命令。
B:
出现以上结果可能有如下原因:
(1)机器上还没有安装JDK,因而没有java这个命令。
(2)如果机器上安装了JDK,可能是系统默认路径PATH没有设置正确,在运行一条命令时,系统总是在当前路径和默认路径中去寻找该命令对应的可执行文件,如果找不到,就会出现Badcommandorfilename结果。
6、运行结果为:
Exceptioninthread"main" java.lang.NoClassDefFoundError:
HelloJava/class
出现该结果的原因时java命令的参数就是类名,不能有后缀,否则,它会将其认为是HelloJava类下面的子类class类,所以出错。
7、Java虚拟机不是实实在在的机器,它是一种假想中的机器,借助实际的机器来实现其功能。
8、改变Applet背景色,可以用setBackground函数
改变Applet前景色,可以用setForeground函数
9、会出现编译错误:
出现此错误的原因是Java中,文件名应该与类名一致,否则就会出现以上编译错误。
10、用int和char的强制类型转换
11、在运算符的操作时,可能遇到运算类型不一致的情况,此时用的强制类型转换,将一种数据类型转换为另一种与之匹配的数据类型。
12、如果while内条件表达式无法改变为false,则就容易造成死循环。
13、容量指内部数组的长度,而长度指真正保存在这个数组中的字符数。
14、
(1)将一个对StringBuffer对象的引用传递到String类的String(StringBuffersb)构造器;
(2)调用StringBuffer的toString()方法;
(3)调用String的valueOf(Objecto)方法,并且通过0将StringBuffer对象的引用传递进去。
15、返回值不同(指针)
16、类被final修饰符所修饰和限定,便是最终类,它不可能有子类。
被定义为final的类通常是一些有固定作用,用来完成某种标准功能的类。
17、用static修饰的域是属于类的静态域,它最本质的特点是:
它们是类的域,不属于任何一个类的具体对象,它不保存在某个对象的内存区间中,而是保存在类的内存区域的公共存储单元,对于该类的任何一个具体对象而言,静态域是一个公共的存储单元,任何一个类的对象访问它时,取到的都是相同的数值,同样任何一个类的对象去修改它时,也都是在对同一个内存单元进行操作。
18、静态初始化器是由关键字static引导的一对大括号括起的语句组。
它的作用与类的构造函数有些相似,都是用来完成初始化的工作,但静态初始化器在三点上与构造函数有根本不同:
(1)构造函数是对每一新创建的对象初始化,而静态初始化器是对类自身进行初始化。
(2)构造函数是在用new运算符产生新对象时由系统自动执行,而静态初始化器则是在它所属的类加载入内存时由系统调用执行。
(3)不同于构造函数,静态初始化器不是方法,没有方法名,返回值和参数列表。
19、程序中经常需要定义各种类型的常量,并为它们取一个类似于常变量名的标识符名字,这样就可以在程序中用这个名字来引用常量,而不是直接使用常量数值。
final是用来修饰常量的修饰符,一个类的域被声明为final,它的取值在程序的整个执行过程中都不会改变。
如果一个域被volatile修饰符所修饰,说明这个域可能同时被几个线程所控制和修改,给这个域不仅仅被当前程序所掌握,在运行过程中可能存在其它未知的程序操作来影响和改变该域的取值。
20、实现包的另一种方式是使用层次数据库,在数据库内,每个包名将映射到层次的不同分支上。
21、无名包就是默认包,其中有源文件的顶层类和接口(缺少包指令的情况下)。
因为该包类似与单个目录,所以不会希望把程序的所有顶层类和接口都放在无名包中,特别是在程序由几百个类和接口组成的时候(此时你会陷入名字冲突)。
22、发布包应有一个给定唯一包名,以便它们能够在需要这些包的平台上共存。
例如,设想两个零售商都创建了名为television的包(或许零售商们在竞争允许Java程序控制数字电视设备的交付方按)假定这些包安装在Windows平台上,一个包位于c:
television,而另一个包位于c:
packagestelevision。
此外假设CLASSPATH在源文件中设置为c:
;c:
package;...,当编译器遇到importtelevision.*;时,会从位于c:
television的television包中解析出名字。
另外,在运行时,类加载器会从c:
television中加载类文件。
但是如果importtelevision.*;必须也从位于c:
packagestelevision的包中导入名字,该怎么办呢?
这将需要改变CLASSPATH环境变量来指定包。
但如果这样,就不能从前面的television包中定位类或接口了,问题变得更加令人失望。
23、Import指令只从指定包导入类型名,而没有从该包的子包导入是为了将混乱减小到最小。
例如,假如有两个包:
a.b和a.b.c;此外,假设每一包都包含不同的类Z。
如果importa.b.*;能从a.b和a.b.c导入Z,当编译器试图在newZ()中标识属于哪一包中的Z时,就会面对两个不同的包。
正确的包时a.b还是a.b.c呢?
在这种情况下,不得不在源文件中为Z的每次出现指定完全合格的包名了,可以想象Import指令忍受的是多么单调乏味的任务。
24、方法是是一段用来完成某种操作的程序片断。
。
在面向对象程序设计中,方法是类的动态属性,标志了类所具有的功能和操作,用来把类和对象的数据封装在一起。
25、用修饰符abstract修饰的抽象方法是一种仅有方法头,而没有具体的方法体和操作实现的方法。
各子类在继承了父类的抽象方法之后,再分别用不同的语句和方法体来重新定义它,形成若干各名字相同,返回值相同,参数列表也相同,目的一致但是具体实现有一定差别的方法。
定义abstract方法也有特别的优点,就是隐藏具体细节,使调用该方法的程序不必过分关注类及其子类内部的具体状况。
在使用时,所有的抽象方法,都必须存在于抽象类之中,一个非抽象类中出现抽象方法是非法的,也即,一个抽象类的子类如果不是抽象类,则它必须为父类中的所有抽象方法书写方法体,不过抽象类不一定只能拥有抽象方法,它可以包含非抽象的方法。
26、用static定义的方法是静态方法,它属于整个类的类方法,而不用static修饰符限定的方法,是属于某个具体类对象或实例的方法。
声明一个方法为static至少有三重含义:
(1)调用这个方法时,应该使用类名做前缀,而不是某一个具体的对象名;
(2)非static的方法是属于某个对象的方法,在这个对象创建时对象的方法在内存中拥有自己专用的代码段;而static的方法是属于整个类的,它的内存中的代码段将随着类的定义而分配和装载,不被任何一个对象专有。
(3)由于static方法是属于整个类的,所以它不能操纵和处理属于某个对象的成员变量,而只能处理属于整个类的成员变量,也即,static方法只能处理static域。
27、最终方法用final修饰符修饰,本地方法用native修饰,同步方法用synchronized修饰。
如果类的某个方法被定义为最终方法,该类的子类就不能再重新与此方法同名的自己的方法,而仅能使用从父类继承来的方法,这样就固定了这个方法所对应的具体操作,可以防止子类对父类关键方法的错误的重定义。
在使用native方法时应注意,由于native方法对应其它语言书写的模块是以非Java字节码的二进制代码形式嵌入Java程序的而这种二进制代码通常只能运行在编译生成它的平台之上,所以整个Java程序的跨平台性能将受到限制或破坏。
同步方法是如果修饰的是一个类的方法,它在被调用执行前,将把系统类Class中对应当前类的对象加锁。
如果修饰的是一个对象的方法,则这个方法在被调用执行前,将把当前对象加锁。
synchronized修饰符主要用于多线程共存的程序中的协调和同步。
28、面向对象的程序设计的三个基本特征为:
封装、继承与多态。
29、继承实际上是存在于面向对象程序中的两个类之间的一种关系。
当一个类拥有另一个类的所有数据和操作时,就称这两个类之间具有继承关系。
被继承的类称为父类或超类,继承了父类或超类的所有数据和操作的类称为子类。
使用继承,使得程序结构清晰,降低编码和维护的工作量。
单重继承指任何一个类都只有一个单一的父类;而多重继承是指一个类可以有一个以上的父类,它的静态的数据属性和操作从所有这些父类中继承。
30、子类重新定义与父类同名的方法,就叫方法覆盖。
方法的覆盖与域的隐藏的不同之处在于:
子类隐藏父类的域只是使之不见,父类的同名域在子类对象中仍然占有自己的独立的内存空间;而子类方法对父类同名方法的覆盖将清除父类方法占用的内存,从而使父类方法在子类对象中不复存在。
31、this表示当前对象本身,更准确的说this代表了当前对象的一个引用。
对象的引用可以理解为对象的另一个名字,通过引用可以顺利地访问到对象,包括访问、修改对象地域、调用对象的方法。
super表示的是当前对象的直接父类对象,是当前对象的直接父类对象的引用。
所谓直接父类是对于当前对象的其它"祖先"类而言。
this和super是属于类的有特指的域,只能用来代表当前对象和当前对象的父对象,而不能像其它类的属性一样随意引用。
32、
(1)子类对象可以被视为是父类的一个对象。
(2)父类对象不能被当作是其某一个子类的对象。
(3)如果一个方法的形式参数定义是父类对象,那么调用这个方法时,可以使用子类对象作为实际参数。
(4)如果父类对象引用指向的实际是一个子类对象(在以前的某个时候根据
(1)把子类对象的引用赋值给这个父类对象的引用),那么这个父类对象的引用可以用强制类型转换转化成子类对象的引用。
33、所谓多态是指一个程序中同名的不同方法共存的情况。
面向对象的程序中多态的情况有多种,可以通过子类对父类方法的覆盖实现多态,也可以利用重载在同一个类中定义多个同名的不同方法。
使用多态大大提高了程序的抽象程度和简洁性,更重要的是,它最大限度地降低了类和程序模块之间地耦合性,提高了类模块的封闭性。
34、Java语言的方法重载和覆盖是实现多态技术的主要手段。
35、多实现继承想法较差地原因在于两个基本类可声明带有不同类型或不同初始值的相同读/写域,或者声明带有不同代码体的相同方法。
那么编译器选择哪个域或方法传给派生类呢?
多接口继承想法较好是因为不存在实现问题,这归于接口的成员限制为常量和方法的语法格式。
如果两个接口声明了带有相同名字而类型或初始化值不同的常量,解决方法是在实现接口的类中访问常量时,用适用的接口名作为所需要的前缀。
如果两个接口声明了相同的方法语句格式,则在实现这些接口的类中只需要指定这些方法的一个代码实现。
36、图形用户界面简称GUI,使用图形的方式借助菜单、案钮等标准界面元素和鼠标操作,帮助用户方便地向计算机系统发出命令,启动操作,并将系统运行的结果同样以图形的方式显示给用户。
图形用户界面画面生动、操作简洁,省去了字符界面用户必须记忆各种命令的麻烦。
37、容器、控制组件、用户自定义成分
容器是用来组织其它界面成分和元素的单元,有利于分解图形用户界面的复杂型,当界面的功能较多时,使用层层相套的容器是非常有必要的。
控制组件主要是完成域用户的一次交互,包括接收用户的命令,接收用户的一个文本或选择输入等。
用户自定义是为了满足用户的需要,用户可以自定义一些自己需要的界面。
38、绘制图形、显示文字、控制颜色、显示图像、实现动画等
39、容器、控制组件、自定义成分
40、
(1)创建组成界面的各成份和元素,指定它们的属性和位置关系,根据具体需要排列它们,从而构成完整的GUI外观。
(2)定义图形用户界面的事件和各界面元素对不同事件的响应,从而实现图形用户界面与用户的交互作用。
五、综合题
1、publicclassHelloJava
{
publicstaticvoidmain(Stringargs[])
{
System.out.println("WelcometoJavaWorld!
");
}
}
2、
importjava.applet.Applet;
importjava.awt.Graphics;
publicclassFirstAppletextendsApplet
{
publicvoidpaint(Graphicsg)
{
g.drawString("WelcometoJavaAppletWorld!
",30,30);
}
}
3、程序运行结果为:
35
35
35
4、程序运行结果为:
c=-8
d=-126(因为整数386超出byte型的范围,转换成byte型会导致溢出)
5、表达式b=a*20/100得不到想要的结果,所得到的结果只是(a*20)的结果除以100所得的商,如a=4,则b=0,这并不是我们所要的,正确的表达式应该是:
b=(int)((a*20)/100.0+0.5)
6、importjava.lang.Double;
publicclassCircleArea
{
publicstaticvoidmain(Stringargs[])
{
finaldoublePI=3.14;
doublearea,r;
if(args.length!
=1) //处理参数数目不正确情况
{
System.out.println("PleaseInputanumber!
");
return;
}
r=Double.parseDouble(args[0]);
area=PI*r*r;
System.out.println("r="+r+"area="+area);
}
}
在目录下分别运行命令:
javaCircleArea2.5
javaCircleArea3
查看程序结果分别为:
r=2.5area=19.625
r=3.0area=28.259999999999998
7、实现的功能为求三个double型数据中最小的一个。
8、
(1)0
(2)a=3
(3)f
(4)8
9、importjava.lang.Double;
importjava.lang.Math;
publicclassEx5_6
{
publicstaticvoidmain(Stringargs[])
{
doublex,y;
if(args.length!
=1) //处理参数数目不正确情况
{
System.out.println("PleaseInputanumber!
");
return;
}
x=Double.parseDouble(args[0]);
if(x<0)
{
y=0;
}
else
{
y=Math.sqrt(x);
}
System.out.println("x="+x+"y="+y);
}
}
10、importjava.lang.Double;
publicclassEx5_7
{
publicstaticvoidmain(Stringargs[])
{
doubleremittance,result;
if(args.length!
=1) //处理参数数目不正确情况
{
System.out.println("PleaseInputanumber!
");
return;
}
remittance=Double.parseDouble(args[0]);
if(remittance<0)
{
System.out.println("PleaseInputa positivenumber!
");
return;
}
if(remittance<100)
{
result=1.0;
}
elseif(remittance>5000)
{
result=50.0;
}
else
{
result=remittance/100.0;
}
System.out.println("remittance="+remittance+"result="+result);
}
}
11、importjava.lang.Integer;
publicclassEx5_8
{
publicstaticvoidmain(Stringargs[])
{
intscore,temp;
Stringgrade;
if(args.length!
=1) //处理参数数目不正确情况
{
System.out.println("PleaseInputanumber!
");
return;
}
score=Integer.parseInt(args[0]);
if(score<0||score>100)
{
System.out.println("PleaseInputalegalscore!
");
return;
}
temp=score/10;
switch(temp)
{
case0:
case1:
case2:
case3:
case4:
case5:
grade="E";break;
case6:
grade="D";break;
case7:
grade="C";break;
case8:
grade="B";break;
case9:
case10:
grade="A";break;
default:
grade="ErrorGrade!
";
}
System.out.println("score="+score+"grade="+grade);
}
}
12、importjava.lang.Integer;
publicclassEx5_9
{
publicstaticvoidmain(Stringargs[])
{
intn;
booleanresult;
if(args.length!
=1) //处理参数数目不正确情况
{
System.out.println("PleaseInputanumber!
");
return;
}
n=Integer.parseInt(args[0]);
if(n<0)
{
System.out.println("IllegalYear!
");
return;
}
if((n%100)==0)
{
if((n%400)==0)result=true;
elseresult=false;
}
else
{
if((n%4)==0)result=true;
elseresult=false;
}
System.out.println("Year:
"+n+" "+result);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA编程初步 JAVA 编程 初步 练习 测试 参考答案