int J=97; int aa=a+i;
System.out.println(\; char bb=(char)j;
System.out.println(\: } }
如果输出结果的第二行为bb=a,那么第一行的输出结果是( )。 A.aa=I B.aa=204 C.aa=v D.aa=156
B。【解析】本题考查的是Java的基本数据类型及其运算。程序开始生成了一个字符型变量a和3个整型变量i、j、aa。而整型变量aa的初始值是a+i,其中a是一个字符
型变量。如何进行加法运算呢?Java语言规定,char型数据可以自动转换成int类型,转换的结果就是该字符的ASCIl码值。因此,整型变量aa的初始值为字符”h”的ASCIl码值加上l00。如果记住h的ASCIl码值是104,则直接就确定aa的初始值是204,选项B为正确答案。如果记不得h的ASCIl码,题目中则给出提示。题目中说”输出结果的第二行为bb=a”,也就是字符bb的值为字符a,bb的生成语句是char bb=(char)j,是把整型变量j的值强制转换为字符型。同样,把ASCIl码值为j(97)所对应的字符赋值给bb。显然,字符a的ASCIl码值为97,字符b的ASCIl码值为98,依次类推,字符h的ASCIl码为l04。因此,本题的正确答案是B。
22.阅读下面程序
public class Operators And Expressions( void equals Methodl(){
Stringsl一new String(\; Strings2=new String(\; System.out.println(s1= =s2): }
public static void main(String args[]){
Operators And Expressions Oper And Exp=new Oper- ators And Expressions ();
//用于复合类型数据的”= =”运算符 OperAndExp.equalsMethodl(); } }
程序运行结果是( )。 A.= = B.true C.false
D.equal C。【解析】本题考查的是Java语言中运算符的特殊用法。相等比较运算符\=\,不仅可用于基本类型的数据之间的比较,还可以用于复合类型数据之间的比较。但是,对于复合类型数据的\运算,其比较的目标是两个操作数是否是同一个对象。如果需要比较两个对象的值是否相同,则可以调用equals()方法。题目中函数equalsMethodl()的代码非常简单,首先生成两个字符串对象sl和s2,然后输出表达式\的结果。根据上面介绍的相等比较运算符的用法,字符串对象sl和s2是复合类型数据,因此表达式\比较的是sl和s2是否同一个对象。显然,sl和s2虽然具有相同的值,即\,但它们是两个不同的对象。因此,本题的正确答案是C。
23.阅读下面代码
if(x= =0){System.out.println(\冠军\;)
elseif(x>一3){System.Out.println(\亚军\;} else{System.out.println(\季军\;}
若要求打印字符串”季军”,则变量X的取值范围是( )。 A.x=d&x<=-3 B.x>O C.x>-3 D.x<=-3 23.D。【解析】本题考查的是条件分支语句if-else。if-else根据判定条件的真假来执行两种操作中的一种。当条件为真时,执行if语句后面的代码块;当条件为假时,执行else后面的代码块。题目中的代码段是一个if-else的嵌套语句,根据if-else语句的执行过程来进行分析。当x的值为0时,布尔表达式\的结果为真,就输出”冠军”;当x的值不为0时,则执行else语句中的内容。else语句中的代码又是一个if-else语句,还是和上面一样进行分析。当X的值不等于0且大于-3时,布尔表达式”x>-3”的结果为真,输出\亚军\;当x的值不等于0且不大干-3,也就是X的值不等于0同时x的值小于等于-3时,则输出\季军\。经过上述分析可知,要想输出\季军\,x所满足的条件为x!=O&x<=-3,但是当x<=-3时,x的值一定不会为0。所以,X所满足的条件可以简写为x<=-3。因此,本题的正确答案为D。
24.下列关于构造方法的叙述中,错误的是( )。 A.Java语言规定构造方法名与类名必须相同
B.Java语言规定构造方法没有返回值,但不用void声明 C.Java语言规定构造方法不可以重载
D.Java语言规定构造方法只能通过new自动调用 C。【解析】本题考查的是构造方法的使用。Java语言中,构造方法是一种特殊的方法,是为对象初始化操作编写的方法,用它来定义对象的初始状态。Java中的每个类都有构造方法,它也是由方法名、参数和方法体组成的。构造方法有如下特点: ·构造方法的名字必须与类名相同。
·构造方法不返回任何数据,但不用void来声明。
·用户不能直接调用构造方法,必须通过关键字new自动调用。
·构造方法可由用户在类中定义,默认时由Java语言自动生成。但它是个空方法,变量被赋予该数据类型的默认值。
·在构造方法实现中,可以进行方法重载,即定义多个构造方法。重载构造方法的目的是使类具有不同的初始值,为类对象的初始化提供方便。根据上述构造方法的特点可知,本题选项C的说法是错误的。
25.下列适配器类中不属于事件适配器的是( )。 A.MouseAdapter B.KeyAdapter
C.ComponentAdapter D.FrameAdapter D。【解析】本题考查java.awt.event包中定义的适配器类。该包中定义的适配器类包括①ComponentAdapter构件适配器;②ContainerAdapter容器适配器;③FocusAdapter焦点适配器;④MouseAdapter鼠标适配器;⑤KeyAdapter键盘适配器⑥WindowAdapter窗口适配器,由此可知本题答案为D。
26.下列类中属于字节输入抽象类的是( )。 A.FileInputStream B.ObjectInputStream C.FiterInputStream D.InputStream
D。【解析】在Java中定义了两种类型的流,字节型和字符型,这两种流分别用4个抽象类表示:InputStream,OutputStream,Reader,Writer,其中InptutStream和OutStream表示字节流,Reader和Reader是表示字符流,所以字节输入抽象类为InptutStream。
27.能向内部直接写入数据的流是( )。 A.FileOutputStream B.FileInputStream
C.ByteArrayOutputStream D.ByteArraylnputStream C。【解析】本题考查Java的内存读写。在java.io中,还提供了 ByteArrayInputStream、ByteArrayoutputStream和StringBufferInputStream类可直接访问内存,它们是InputStream和OutputStream的子类。用ByteArrayOutputStream可向字节数组写入数据;ByteArrayInputStream可从字节数组中读取数据。
28.下列运算符中属于关系运算符的是( )。 A.= = B.= C.+ =
D.- = A。【解析】本题考查Java的关系运算符。B中写法不正确,C、D均为赋值运算符。
29.下列方法中,声明抛出InterruptedException类型异常的方法是( )。 A.suspend() B.resume() C.sleep() D.start() C。【解析】本题考查线程的基本操作。Java中提供了interrupt方法用来中断一个线程,当调用一个线程的interrupt方法时,即向该线程发送一个中断请求。在调用线程的interrupt方法时,如果该线程由于调用了sleep方法或wait方法而正在处于阻塞状态,那么线程会抛出一个InterruptException异常。
30.下列关于System类的叙述中,错误的是( )。 A.System类是一个final类 B.System类不能实例化 C.System类中没有定义属性
D.System类主要提供了系统环境参数的访问 C。【解析】本题考查System类的基本知识。Systern类是一个final类,所有的方法都用类变量来调用,对System类不可能实例化。System类主要用来提供标准输入/输出和系统环境信息的访问设置。而System类的属性有:①public static final InputStream in;标准输入;②publicstatic final OutputStream out;标准输出;③pubhc static finalPrintStream err;标准错误输出。
31.阅读下面程序
public class Increment{
public static void main(stringargs[]){ int C; c=5:
System.out.println(c); System.out.println(c++): System.out.println(c); } }
程序运行结果是( )。 A.5 6 6 B.5 5 6
C.6 7 7 D.6 6 6 B。【解析】本题考查的是Java增量运算符\。 x++是先使用后加l,即首先使用X的值进行表达式的计算,然后才对x的值加1。而++x是先加1后使用,即首先对x的值加1,然后使用x的值进行表达式的计算。本题首先生成一个整型变量C,其初始值为5。第一条输出语句输出c的初始值,即5。然后,第二条输出表达式c++的结果,即先输出C的值,然后才对c的值加1,所以,第二条输出语句输出的是5,输出后c的结果才为6。最后一条输出语句输出结果为6。因此,本题的正确答案为B。
32.下列叙述中,错误的是( )。
A.JavaApplication与Applet所用编译命令相同
B.通常情况下JavaApplication只能有一个main()方法 C.JavaApplet必须有HTML文件才能运行
D.JavaApplet程序的.class文件可用Java命令运行 D。【解析】本题考查的是Java中的Applet以及Applet与Application的区别。Applet是能够嵌入HTML语言中,并能够在浏览器中运行的类。Applet的运行环境是Web浏览器,所以必须建立HTML文件,告诉浏览器如何加载与运行Applet。因为Applet是不能直接通过Java命令行启动运行的。所以选项D的说法错误。
33.下列关于Java语言中线程的叙述中,正确的是( )。 A.线程由代码、数据、内核状态和一组寄存器组成 B.线程间的数据是不共享的
C.用户只能通过创建Thread类的实例或者定义和创建Thread子类的实例,建立和控制自己的线程
D.因多线程并发执行而引起的执行顺序的不确定性可能造成执行结果的不确定 D。【解析】本题考查线程的基本知识。线程与进程在概念上是相关的,线程是由表示程序运行状态的寄存器、程序计数器、栈指针以及堆栈组成,它不包含进程地址空间中的代码和数据。代码所操作的数据是Java线程模型中的一个组成部分,数据与代码是独立的。数 据可以被多个线程共享,也可不共享。Java语言中提供两种创建线程的方法,一种是通过继承Thread类创建线程,另一种是通过实现Runnable接口来创建线程。
34.处理对象传输的接口是( )。 A.Serializable B.C:loneable C.hemListener D.ActionListener