JAVA复习资料2024-6-23(4)

2025-05-01

[解析] 表达式expresion只能返回几个类型的值:int、byte、short和Char。题目中的double是不正确的。多分支结构中,case子句的值必须是常量。而且所有case子句中的值应是不同的,default子句是任选的。当表达式的值与任一case子句中的值都不匹配时,如果有default语句,则程序执行default后面的语句;如果没有default语句,则程序不做任何操作直接跳出switch语句。

108. 已知:int[]a=new int[100];在下列给出的数组元素中,非法的是( )。 A.a[0] B.a[1] C.a[99] D.a[100] 答案:D

[解析] 本题中,int[]a=new int[100]定义了一个数组a,含有100个整型元素。在Java中,数组元素的下标是从O开始的,因此上面定义的数组实际上下标是从0~99,所以选项D错误。

109. 在方法内部使用,代表对当前对象自身引用的关键字是( )。 A.super B.This C.Super D.this 答案:D

[解析] super代表父类对象的引用;this代表当前对象的引用。因此,选择D。

110. 阅读下列程序: public class VariableUse {

public static void main(String[] args) { int a;

if (a == 8) {

int b = 9;

System.out.println(\ System.out.println(\ }

System.out.println(\ System.out.println(\ } }

该程序在编译时的结果是( )。 A.变量a未赋值

B.第二个System.out.println(\语句中,变量b作用域有错 C.第二个System.out.println(\语句中,变量a作用域有错 D.第一个System.out.println(\语句中,变量b作用域有错 答案:B

[解析] 程序中局部变量a定义时没有赋初值,Java会赋值一个随机值,第二个Systern.out.println(\语句中,变量b作用域有错,因为变量b是在if语句中定义的,执行完if语句时,变量b已经不存在。因此,选择B。

111. 下列不属于Swing的构件是( )。 A.JButton B.JLabel C.JFrame D.JPane 答案:D

[解析] Swing常用组件包含JLabel组件(标签)、JButton组件(按钮)、JTextField组件(单行文本)、JTextArea组件(多行文本)、JcheckBox组件(复选按钮)、JRadioButton组件(单选按钮)、JComboBox组件(下拉列表框)、JList组件(列表)、JTablc组件(表格)、JTree组件(树)等。选项D中JPane写错了。选择D。

112. 对鼠标单击按钮操作进行事件处理的接口是( )。

A.MouseListener B.WindowListener C.ActionListener D.KeyListener 答案:A

[解析] WindowListener是监听窗口事件的接口;ActionListener是监听按钮、文本框、列表框等组件的动作事件的接口;KeyLitener是监听键盘事件的接口。因此,本题选择A。 113. 阅读下列代码: public class Person{

static int arr[]=new int[10];

public static void main(String args){ System.out.println(arr [9]); } }

该代码的运行结果是( )。 A.编译时将产生错误

B.编译时正确,运行时将产生错误 C.输出零 D.输出空 答案:C

[解析] 若类的某个成员是基本数据类型,即使没有进行初始化,Java也会确保它获得一个默认值。

114. 下列方法中,不属于类String的方法是( )。 A.toLowerCase() B.valueOf() C.charAt() D.append() 答案:D

[解析] string类的方法不包括append(),aploend()方法是StringBuffer类的方法。具体可以参考String类的函数。因此选择D。

115. 给一个short类型变量赋值的范围是( )。 A.-128~+127

B.-2147483648~+2147483647 C.-32768~+32767 D.-1000~+1000 答案:C

[解析] 在java语言中short型变量的存储顺序是先高后低,占16bit,能表示的数据范围是:-32768~+32767。因此,本题的正确答案是C。 116. 阅读下列代码段:

ByteArrayOutputStream bout=new ByteArrayOutputStream(); ObjectOutputStream out=new ObjectOutputStream(hout); out.writeObject(this); out.close();

以上代码段的作用是( )。 A.将对象写入内存 B.将对象写入硬盘 C.将对象写入光盘 D.将对象写入文件 答案:A

[解析] 在java.io中,提供了ByteArrayInputStream、BytcArrayOutputStream和StringBufferInputStream类可直接访问内存,它们是Inputstream和OutputStream的子类。用ByteArrayOutputStream可以向字节数组(缓冲区)写入数据。在ObjectInputStream中用readObject()方法可以直接读取一个对象,ObjectOutputStream中用writeObject()方法可以直接将对象保存到输出流中。因此,本题的正确答案是A。 117. 下列语句中错误的是( )。 A.String s[]={\

B.byte b=255;

C.String s=\D.int i=2+2000; 答案:B

[解析] 选项A是定义并初始化一个一维数组,选项C是定义并初始化一个字符串,选项D是定义并初始化一个整型变量。选项A、C、D是正确的。byte型变量占8bit,能表示的数据范围是:-128~+127,所以选项B是错误的。因此,本题的正确答案是B。 118. 阅读下列代码: public class Test{

public static void main(String args[]){ System.out.println((2<0)? 10:8); } }

其运行结果是( )。 A.2 B.0 C.10 D.8 答案:D

[解析] 因为2<0为flase,所以条件表达式的值为8。因此,本题的正确答案是D。

119. Java类库中,将信息写入内存的类是( )。 A.java.io.FileOutputstream

B.java.io.ByteArrayOutputStream C.java.io.BufferedOutputstream D.java.io.DataOutputStream 答案:C

[解析] 用FileOutputstream定义一个输出流文件;ByteArrayOutputSrream定义一个字节数组输出流;DataOutputStream定义一个数据输出流;它们

都不带有缓冲功能。BuferedOutputStream生成一个缓冲输出流,在内存中开辟缓冲区。因此选择C。 120. 阅读下列代码段:

class Test implements Runnable{ public int run(){ int i=0;

while(true){ i++;

System.out.println(\ } } }

上述代码的编译结果是( )。

A.程序通过编译并且run()方法可以正常输出递增的i值 B.程序通过编译,调用run()方法将不显示任何输出

C.程序不能通过编泽,因为while的循环控制条件不能为“true” D.程序不能通过编译,因为run()方法的返回值类型不是void 答案:D

[解析] 定义线程包括两种办法: ①扩展java.lang.Thread类。如果线程是使用独立的Runnable运行对象构造的,则调用该Runnable对象的run方法;否则,该方法不执行任何操作并返回。

②实现java.lang.Runncable接口。实现接口Runnable的对象创建一个线程时,启动该线程将导致在独立执行的线程中调用对象的run方法。方法run的常规协定是,它可能执行任何所需的操作。本题应该选择D。 121. 下列关于线程的说法中,正确的是( )。 A.一个线程一旦被创建,就立即开始运行

B.使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行

C.当运行状态的线程因为调用了yield()方法而停止运行,它一定被放在可

运行线程队列的前面

D.当因等待对象锁而被阻塞的线程获得锁后,将直接进入运行状态 答案:B

[解析] 在Java中,调用一个线程类的构造方法,便创建了一个线程,新建的线程调用start()方法将使线程的状态从New转换为Runnable。Runnable表示系统处于运行就绪状态,此时线程仅仅是可以运行,但不一定在运行中。所以选项A是错误的,选项B是正确的。yield()方法使具有与当前线程相同优先级的线程有运行的机会。如果没有同等优先级的线程是可运行状态,yeild()方法将什么也不做。yield()只是使当前线程重新回到可执行状态,所以执行yield()的线程有可能在进入到可执行状态后马上又被执行,不一定被放在可运行线程队列的前面,所以选项C是错误的。如果线程中使用synchronized来请求对象的锁,但没有获得时,进入对象锁阻塞状态,该状态下的线程当获得对象锁后,将进入可运行状态,所以选项D是错误的。因此,本题的正确答案是B。 122. 阅读下列代码:

public class Test implements Runnable{ public void run(Thread t){

System.out.println(\ }

public static void main(String[] args){ Thread tt=new Thread(new Test()); tt.start(); } }

代码运行结果是( )。 A.将抛出一个异常 B.没有输出并正常结束

C.输出\并正常结束

D.程序第2行将出现一个编译错误 答案:D

[解析] 接口可以作为一种引用来使用。接口类型变量(Runnable)将实现该接口的类(Test)的实例存入,通过这些变量去访问类所实现接口中的方法(run)。Test不是一个抽象类,它没有实现Runnabk中的run()方法,程序第2行将出现一个编译错误。因此,本题的正确答案是D。

123. 在匹配器(Marcher)类中,用于输入字符串与模式串比较的方法是( )。

A.static boolean matches() B.boolean matcher.find() C.int matcher.start() D.int matcher.end()

答案:A

[解析] Marcher类用于将一个输入字符串input和模式串pattern相比较。boolean mateher.find()方法用于寻找下一个模式匹配串;int matcher.start()方法用于寻找下一个起始索引整数值;int matcher.end()方法用于返回匹配串的一个终止索引整数值;而用于输入字符串与模式串比较的方法是static boolean matches(),所以选项A正确。 124. 阅读下列代码,写出运行结果。 public class Test{

String s=\ public static void main(String args[]){ System.out.println(s); } }

其运行结果是( )。 A.args

B.One World One Dream C.s

D.编译时出错 答案:D

[解析] 在一个static方法内部,随时可访问类中的static成员变量。但要

访问非static成员变量,则必须首先创建一个对象,然后通过这个对象访问实倒变量。所以,在程序中不能访问变量s。因此,本题的正确答案是D。

二、程序填空题

1. 阅读下列利用递归来求n!的程序。 class FactorialTest{

static long Factorial(int n){//定义Factorial()方法 if(n==1) return 1; else

return n*Factorial(______); }

public static void main(String a[]){//main()方法 int n=8;

System.out.println(n+\ } }

为保证程序正确运行,在下画线处应该填入的参数是______。 答案:n-1

[解析] 很明显,n!要求应该是n-1。

2. 阅读下列代码段: abstract class Person {

public Person(String n){ name=n; }

public______String getDescription(); public String getName(){

return name; }

private String name; }

为保证程序正确运行,在下画线处应该填入的修饰符是______。

答案:abstract

[解析] 抽象类没有实现的方法,不能实例化。程序中Person是一个抽象类,因此String getDescrtption方法也是抽象的,所以用abstract修饰。因此,本题的正确答案是B。

3. 阅读下列代码: public class Jixiangwu {

public static void main(String[] args){

String[] stars={\贝贝\晶晶\欢欢\迎迎\妮妮\ System.out.println(\你抽取的奥运吉祥物是\ +starsr(int)(stars.______*Math.random())]+~\ } }

为保证程序正确运行,在下画线处应该填入的是______。 答案:length

[解析] 程序中的下画线处需要填入字符数组starts的长度才能确定范围以便能够随机抽取到字符数组starts的各个元素。因此,本题的正确答案是D。

三、阅读程序写出结果

1. 阅读下列程序片段,写出运行结果。 public class Test {

public static void main(String args[]) { double d = 12.3;


JAVA复习资料2024-6-23(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:电气设备工艺实习指导书

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219