1、二级 JAVA 笔试 356 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下列关于栈的描述正确的是( )。(分数:2.00)A.在栈中只能插入元素而不能删除元素B.在栈中只能删除元素而不能插入元素C.栈是特殊的线性表,只能在一端插入或删除元素D.栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素2.下列关于变量作用域的描述中,不正确的是( )。(分数:2.00)A.变量属性是用来描述变量作用域的B.局部变量作用域只能是它所在方法的代码段C.类变量能在类的方法中声明D.类变量的作用域是整个类3.下面程序代码运行结果为( )。
2、import java.awt.*; public class Test public static void main (String args) String s1=“a+b+c“; String s2=“+“; int i=s1.lastIndexOf (s2); System.out.println(i); (分数:2.00)A.0B.1C.2D.34.给出下面程序段 if(x0) System.out.println(“Hello“); else if(x-3) System.out.println(“Nice to meet you!“); else System.out.prin
3、tln(“How are you?“); 若打印字串“How are you?“,则 x 的取值范围是( )。(分数:2.00)A.x0B.x-3C.x=-3D.x=0 public Person (String n,String d,int a) _ department=d; (分数:2.00)A.Person (n,;B.this (Person(n,);C.this(n,;D.this(name,ag;29.下列程序的输出结果是( )。 public class Test public static void main (String args) int n=5,sum=0; whil
4、e (n0) sum+=n; -n; System.out.println(“Sum is“+sum); (分数:2.00)A.sum is 14B.sum is 15C.sum is 10D.sum is 530.所有 Swing 构件都实现了( )接口。(分数:2.00)A.AccessibleB.MouseListenerC.ActionListenerD.Serializable31.java.io 包的 File 类是( )。(分数:2.00)A.字符流类B.字节流类C.对象流类D.非流类32.Java 程序编译后的形式叫做( )。(分数:2.00)A.机器码B.浓咖啡C.字节码D.
5、BCD 码33.下面叙述正确的是( )。(分数:2.00)A.程序设计就是编制程序B.程序的测试必须由程序员自己去完成C.程序经调试改错后还应进行再测试D.程序经调试改错后不必进行再测试34.对象状态的持久是通过( )实现的。(分数:2.00)A.管道B.过滤器C.文件D.串行化35.下面程序片段的执行中,说法正确的是( )。 public class Test public static void main (String args) byte y=20; int i=y; int x=100; y=x; System.out.println(y); (分数:2.00)A.输出 y 的值为
6、100B.第 4 行错误C.输出 y 的值为 20D.第 6 行错误二、B填空题/B(总题数:15,分数:30.00)36.在面向对象方法中,U 【1】 /U描述的是具有相似属性与操作的一组对象。(分数:2.00)填空项 1:_37.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为U 【2】 /U。(分数:2.00)填空项 1:_38.在关系模型中,把数据看成是二维表,每一个二维表称为一个U 【3】 /U。(分数:2.00)填空项 1:_39.程序测试分为静态分析和动态测试。其中U 【4】 /U是指不执行程序,而只是对
7、程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。(分数:2.00)填空项 1:_40.对长度为 10 的线性表进行冒泡排序,最坏情况下需要比较的次数为U 【5】 /U。(分数:2.00)填空项 1:_41.多线程是 Java 语言中的U 【6】 /U机制,它能够处理同步共享数据和各种不同的事件。(分数:2.00)填空项 1:_42.循环语句一般应包含初始化部分、U 【7】 /U、迭代部分和判断部分。(分数:2.00)填空项 1:_43.下面程序创建了一个线程并运行,请填空,使程序完整。 public class ThreadTest public static void main (
8、String args) Hello h=Hew Hello (); U 【8】 /U t.start (); class Hello implements Runnable int i; public void run () while(true) System.out.println(“Hello“ +i+); if(i=5) break; (分数:2.00)填空项 1:_44.在捕获异常时要用U 【9】 /U子句。(分数:2.00)填空项 1:_45.从显示器流向内存的数据流,属于输入流;从内存流向显示器的数据流,属于U 【10】 /U。(分数:2.00)填空项 1:_46.U【11】
9、/U包含在 java.utilregex 包中,它可以应用在字符输入流的模式字符串搜索中。(分数:2.00)填空项 1:_47.RandomAccessFile 继承了 Objects 类,实现 DataInput 和U 【12】 /U接口。(分数:2.00)填空项 1:_48.Java 中线程模型由虚拟的 CPU、代码与数据构成,该模型是由 java.lang.U 【13】 /U类进行定义和描述的。(分数:2.00)填空项 1:_49.AWT 中的布局管理器包括 BorderLayout、U 【14】 /U、CardLayout、GridBagLayout 和GridLayout。(分数:2
10、.00)填空项 1:_50.U【15】 /U是 Java 与 Web 相结合的一种应用形式。(分数:2.00)填空项 1:_二级 JAVA 笔试 356 答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下列关于栈的描述正确的是( )。(分数:2.00)A.在栈中只能插入元素而不能删除元素B.在栈中只能删除元素而不能插入元素C.栈是特殊的线性表,只能在一端插入或删除元素 D.栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素解析:解析 栈实际上也是线性表,只不过是一种特殊的线性表。在这种特殊的线性表中,其插入和删除只在线性表的一端进
11、行。2.下列关于变量作用域的描述中,不正确的是( )。(分数:2.00)A.变量属性是用来描述变量作用域的B.局部变量作用域只能是它所在方法的代码段C.类变量能在类的方法中声明 D.类变量的作用域是整个类解析:解析 类变量在类中声明,作用域是整个类,它不能在类的方法中声明。局部变量在类的方法中声明,作用域只能是它所在的方法。3.下面程序代码运行结果为( )。 import java.awt.*; public class Test public static void main (String args) String s1=“a+b+c“; String s2=“+“; int i=s1.l
12、astIndexOf (s2); System.out.println(i); (分数:2.00)A.0B.1C.2D.3 解析:解析 lastIndexOf 方法返回一个整数值,指出 String 对象内子字符串的最后一次出现的开始位置下标。如果没有找到子字符串,则返回-1。本题中子串“+”在字符串“a+b+c”中出现了两次,最后一次出现的起始位置为 3。4.给出下面程序段 if(x0) System.out.println(“Hello“); else if(x-3) System.out.println(“Nice to meet you!“); else System.out.prin
13、tln(“How are you?“); 若打印字串“How are you?“,则 x 的取值范围是( )。(分数:2.00)A.x0B.x-3C.x=-3 D.x=0 public Person (String n,String d,int a) _ department=d; (分数:2.00)A.Person (n,;B.this (Person(n,);C.this(n,; D.this(name,ag;解析:解析 本题主要考查在同一个类的不同构造方法中调用该类的其他构造方法需要使用 this()的形式,而且必须是在构造方法的第一行调用。这个和普通方法重载调用的方式不同,普通方法可以
14、直接使用方法名加参数来调用,而且调用位置没有限制,因此选项 A 是不行的,选项 B 的语法就是错误的,选项D 的错误在于在父类型的构造方法被调用前不能引用类的成员。 构造方法是一个类对象实例化的开始,因此在构造方法中不能将成员作为参数引用。29.下列程序的输出结果是( )。 public class Test public static void main (String args) int n=5,sum=0; while (n0) sum+=n; -n; System.out.println(“Sum is“+sum); (分数:2.00)A.sum is 14B.sum is 15 C.
15、sum is 10D.sum is 5解析:解析 本题目实际上是利用循环求 1 到 n 的和,n 为 5,所以结果为 15。30.所有 Swing 构件都实现了( )接口。(分数:2.00)A.Accessible B.MouseListenerC.ActionListenerD.Serializable解析:解析 所有 Swing 构件都实现了 Accessible 接口,提供对可存取性的支持,使得辅助功能 (如屏幕阅读器)能够方便地从 Swing 构件中得到信息。31.java.io 包的 File 类是( )。(分数:2.00)A.字符流类B.字节流类 C.对象流类D.非流类解析:解析
16、File 类是 java.io 包中的非流类,它以系统无关的方式描述文件对象的属性。32.Java 程序编译后的形式叫做( )。(分数:2.00)A.机器码B.浓咖啡C.字节码 D.BCD 码解析:解析 Java 编译器将源代码文件转变成字节码。Java 解释器将字节码转换成特定平台的机器码。33.下面叙述正确的是( )。(分数:2.00)A.程序设计就是编制程序B.程序的测试必须由程序员自己去完成C.程序经调试改错后还应进行再测试 D.程序经调试改错后不必进行再测试解析:解析 程序调试的任务是诊断和改正程序中的错误,改正以后还需要再测试。34.对象状态的持久是通过( )实现的。(分数:2.0
17、0)A.管道B.过滤器C.文件D.串行化 解析:解析 将 Java 程序中的对象保存在外存中,称为对象永久化。对象永久化的关键是将它的状态以一种串形格式表示出来,以便以后读该对象时能够把它重构出来。因此对 Java 对象读、写的过程被称为对象串行化。35.下面程序片段的执行中,说法正确的是( )。 public class Test public static void main (String args) byte y=20; int i=y; int x=100; y=x; System.out.println(y); (分数:2.00)A.输出 y 的值为 100B.第 4 行错误C.输
18、出 y 的值为 20D.第 6 行错误 解析:解析 赋值运算符“=”把一个数据赋给一个变量,在赋值运算符两侧的类型不一致时,若左侧变量的数据类型的级别高,则右侧的数据被转化为与左侧相同的高级数据类型,然后赋给左侧变量,否则需要使用强制类型转换运算符。int 类型级别比 byte 类型级别高,必须进行强制类型转换。第 6 行应改为y=(byte)x;。二、B填空题/B(总题数:15,分数:30.00)36.在面向对象方法中,U 【1】 /U描述的是具有相似属性与操作的一组对象。(分数:2.00)填空项 1:_ (正确答案:类)解析:解析 将属性、操作相似的对象归为类,也就是说,类是具有共同属性、
19、共同方法的对象的集合。37.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为U 【2】 /U。(分数:2.00)填空项 1:_ (正确答案:物理独立性或数据的物理独立性)解析:解析 物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的,逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程序也可以不变。38.在关系模型中,把数据看成是二维表,每一个二维表称为一个U 【3】 /U。(分数:2.00)填空项 1:_ (正确答案:关系)解析:解析 在数据库中,一个“
20、表”就是一个关系。一个关系的逻辑结构就是一张二维表。39.程序测试分为静态分析和动态测试。其中U 【4】 /U是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。(分数:2.00)填空项 1:_ (正确答案:静态分析或静态测试)解析:解析 静态测试指不在计算机上运行被测试程序,而采用其他手段来达到对程序进行检测的目的,包括人工测试和计算机辅助静态分析方法。动态测试指通过在计算机上运行被测试程序,并用所设计的测试用例对程序进行检测的方法。40.对长度为 10 的线性表进行冒泡排序,最坏情况下需要比较的次数为U 【5】 /U。(分数:2.00)填空项 1:_ (正确答
21、案:45)解析:解析 假设线性表的长度为 n,则在最坏情况下,冒泡排序需要经过 n/2 遍的从前往后扫描和 n/2遍的从后往前扫描,需要比较的次数为 n(n-1)/2。41.多线程是 Java 语言中的U 【6】 /U机制,它能够处理同步共享数据和各种不同的事件。(分数:2.00)填空项 1:_ (正确答案:并发)解析:解析 Java 语言的开发运行环境是互联网,在这种分布式的环境中,并发和共享是很常见的事务,要能并行地处理很多事务,就要求 Java 语言提供一种可靠和高效的机制,来满足高并发事务处理的需求。多线程很好地解决了网络上的瓶颈问题和大数量的网络访问问题。42.循环语句一般应包含初始
22、化部分、U 【7】 /U、迭代部分和判断部分。(分数:2.00)填空项 1:_ (正确答案:循环体部分)解析:解析 一个循环语句应该包括四部分内容:初始化部分,用于设置循环的初始化条件,如计数器清零;循环体部分,是反复执行的一段代码;迭代部分,就是在当前结束、下一次循环开始前执行的语句;终止部分,通常是一个布尔表达式,每一次循环都计算该表达式的值,以验证是否结束循环。43.下面程序创建了一个线程并运行,请填空,使程序完整。 public class ThreadTest public static void main (String args) Hello h=Hew Hello (); U
23、【8】 /U t.start (); class Hello implements Runnable int i; public void run () while(true) System.out.println(“Hello“ +i+); if(i=5) break; (分数:2.00)填空项 1:_ (正确答案:Threadt=new Thread(h);)解析:解析 在通过实现 Runnable 接口来创建线程以后,该线程的启动将使得对象的 run ()方法被调用。题目中缺少线程创建的语句,因此应该填写 Thread t=new Thread(h);,该语句创建 Hello 类的实例对
24、象 h 的线程。44.在捕获异常时要用U 【9】 /U子句。(分数:2.00)填空项 1:_ (正确答案:try-catch)解析:解析 try 和 catch 语句在捕获异常时使用,当此语句执行时,解释器把可以产生异常的代码段形成一个“警戒区”,此“警戒区”由 try 引导。“警戒区”后面是 catch 从句,其后可接多个 catch语句。45.从显示器流向内存的数据流,属于输入流;从内存流向显示器的数据流,属于U 【10】 /U。(分数:2.00)填空项 1:_ (正确答案:输出流)解析:解析 流可以看作是一个流动的数据缓冲区,数据从数据源流向数据目的地。流是串行的。凡是从外部设备流向主机
25、的数据流,称之为输入流;反之,称为输出流。常用的外部设备一般包括:键盘、显示器、硬盘、扫描仪、打印机和网络等。主机通常包括中央处理器和内存。46.U【11】 /U包含在 java.utilregex 包中,它可以应用在字符输入流的模式字符串搜索中。(分数:2.00)填空项 1:_ (正确答案:正则表达式)解析:解析 正则表达式应用于字符输入流的模式字符串搜索中,它包含在包 java.util.regex 中。47.RandomAccessFile 继承了 Objects 类,实现 DataInput 和U 【12】 /U接口。(分数:2.00)填空项 1:_ (正确答案:DataOutput)
26、解析:解析 文件操作中经常需要的是随机访问 Java 中的 RandomAecessFile 类提供的随机访问文件的功能,它继承于 Object 类,用 DataInput 和 DataOutput 接口来实现。48.Java 中线程模型由虚拟的 CPU、代码与数据构成,该模型是由 java.lang.U 【13】 /U类进行定义和描述的。(分数:2.00)填空项 1:_ (正确答案:Thread)解析:解析 线程模型在 Java 中是由 java.lang.Thread 类进行定义和描述的。程序中的线程都是 Thread 的实例。49.AWT 中的布局管理器包括 BorderLayout、U
27、 【14】 /U、CardLayout、GridBagLayout 和GridLayout。(分数:2.00)填空项 1:_ (正确答案:FlowLayout)解析:解析 为了实现跨平台的特性并且获得动态的布局效果,Java 将容器内的所有构件安排给一个“布局管理器”负责管理,不同的布局管理器使用不同的算法和策略,容器可以通过选择不同的布局管理器来决定布局。AWT 中的布局管理器包括:BorderLayout、FlowLayout、CardLayout、 GridBagLayout和 GridLayout。50.U【15】 /U是 Java 与 Web 相结合的一种应用形式。(分数:2.00)填空项 1:_ (正确答案:Applet)解析:解析 Applet 的引入,使得 Java 应用程序在 Web 应用开发时具有动画、声音、图像以及其他特殊效果,使用户能和 Web 页动态交互。