1、国家二级( JAVA)笔试模拟试卷 165及答案与解析 1 阅读下面程序 public class Test1 public static void main(String args) System.out.println(34+56-6); System.out.println(26*2-3); System.out.println(3*4/2); System.out.println(5/2); 程序运行的结果是 ( A) 84 49 6 2 ( B) 90 25 6 2.5 ( C) 84 23 12 2 ( D) 68 49 14 2.5 2 阅读下面程序 public class C
2、oncatTest public static void main(String args) String str1=“abc“; String str2=“ABC“: String str3=str1.concat(str2); System.out.println(str3); 程序运行的结果是 ( A) abc ( B) ABC ( C) abcABC ( D) ABCabc 3 阅读下面程序 public class Test2 public static void main(String args) int a=10,b=4.c=20,d=6; System.out.println(
3、a+*b+c*-d); 程序运行的结果是 ( A) 144 ( B) 160 ( C) 140 ( D) 164 4 阅读下面程序 public class Test3 public static void main(String args) int x=3,y=4,z=5; String s=“xyz“: System.out.println(s+x+y+z); 程序运行的结果是 ( A) xyz12 ( B) xyz345 ( C) xyzxyz ( D) 12xyz 5 下面程序中需要对 Empleyee的对象进行存储,请在下画线处填入正确的选项。 class Employee impl
4、ements _ ( A) Comparable ( B) Serializable ( C) Cloneable ( D) DataInput 6 阅读下面程序 public class Test4 public static void main(String args) int 1=10, j=3; float m=213.5f,n=4.0f; System.out.println(i%j); System.out.println(m%n); 程序运行的结果是 ( A) 1.0和 1.5 ( B) 1和 1.5 ( C) 1.0和 2.5 ( D) 1和 2.5 7 阅读下面程序 impo
5、rt java.io.*; public class ByteStreamTest public static void main(String args) int myArray=10,20,30,40; try DataOutputStream dos=new DataOutputStream (new _(“ints.dat“); for(int i=0;imyArray.length;i+)dos.writeInt(myArrayi); dos.close(); System.out.println(“Have written binary file ints.dat“); catch
6、(IOException ioe) System.out.println(“IOException“); 为保证程序正确运行,在程序中下画线处应填人的代码是 ( A) FileOutputStream ( B) ByteArrayOutputStream ( C) BufferedOutputStream ( D) FileWriter 8 阅读下面程序 class Test implements Runnable public static void main(String args) Test t=new Test(); t.start(): public void run() 下列关于上
7、述程序的叙述正确的是 ( A)程序不能通过编译,因为 start()方法在 Test类中没有定义 ( B)程序编译通过,但运行时出错,提示 start()方法没有定义 ( C)程序不能通过编译,因为 run()方法没有定义方法体 ( D)程序编译通过,且运行正常 9 如果使用 Thread t=new Test()语句创建一个线程,则下列叙述正确的是 ( A) Test类一定要实现 Runnable接口 ( B) Test类一定是 Thread类的子类 ( C) Test类一定是 Runnable类的子类 ( D) Test类一定是继承 Thread类,并且实现 Runnable接口 10 软
8、件是指 ( A)程序 ( B)程序和文档 ( C)算法加数据结构 ( D)程序、数据与相关文档的完整集合 11 软件调试的目的是 ( A)发现错误 ( B)改正错误 ( C)改善软件的性能 ( D)验证软件的正确性 12 在面向对象方法中,实现信息隐蔽是依靠 ( A)对象的继承 ( B)对象的多态 ( C)对象的封装 ( D)对象的分类 13 下列叙述中,不符合良好程序设计风格要求的是 ( A)程序的效率第一,清晰第二 ( B)程序的可读性好 ( C)程序中要有必要的注释 ( D)输入数据前要有提示信息 14 下列叙述中正确的是 ( A)程序执行的效率与数据的存储结构密切相关 ( B)程序执行
9、的效率只取决于程序的控制结构 ( C)程序执行的效率只取决于所处理的数据量 ( D)以上三种说法都不对 15 下列叙述中正确的是 ( A)数据的逻辑结构与存储结构必定是一一对应的 ( B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构 ( C)程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构 ( D)以上三种说法都不对 16 冒泡排序在最坏情况下的比较次数是 ( A) n(n+1)/2 ( B) nlog2n ( C) n(n-1)/2 ( D) n/2 17 一棵二叉树中共有 70个叶子结点与 80个度为 1的结点,则该二叉树中的总结点数为 (
10、 A) 219 ( B) 221 ( C) 229 ( D) 231 18 下列叙述中正确的是 ( A)数据库系统是一个独立的系统,不需要操作系统的支持 ( B)数据库技术的根本目标是要解决数据的共享问题 ( C)数据库管理系统就是数据库系统 ( D)以上三种说法都不对 19 下列叙述中正确的是 ( A)为了建立一个关系,首先要构造数据的逻辑关系 ( B)表示关系 的二维表中各元组的每一个分量还可以分成若干数据项 ( C)一个关系的属性名表称为关系模式 ( D)一个关系可以包括多个二维表 20 下列关于 System类的叙述中,错误的是 ( A) System类是一个 final类 ( B)
11、System类不能实例化 ( C) System类中没有定义属性 ( D) System类主要提供了系统环境参数的访问 21 下列布尔变量定义中,正确并且规范的是 ( A) BOOLEANcanceled=false; ( B) booleancanceled=false; ( C) booleanCANCELED=false; ( D) booleancanceled=FALSE; 22 数组中各个元素的数据类型是 ( A)相同的 ( B)不同的 ( C)部分相同的 ( D)任意的 23 内部类不可直接使用外部类的成员是 ( A)静态成员 ( B)实例成员 ( C)方法内定义 ( D)以上
12、3个选项都不是 24 在 JDK目录中, Java程序运行环境的根目录是 ( A) bin ( B) demo ( C) lib ( D) jre 25 下列运算符中属于关系运算符的是 ( A) = ( B) = ( C) += ( D) -= 26 下列语句中执行跳转功能的语句是 ( A) for语句 ( B) while语句 ( C) continue语句 ( D) switch语句 27 下列适配器类中不属于事件适配器的是 ( A) MouseAdapter ( B) KeyAdapter ( C) ComponentAdapter ( D) FrameAdapter 28 下列运算符中
13、不能进行位运算的是 ( A) ( B) ( C) ( D) 29 下列类中属于字节输入抽象类的是 ( A) FileInputStream ( B) ObjectInputStream ( C) FilterInputStream ( D) InputStream 30 能向内存直接写入数据的流是 ( A) FileOutputStream ( B) FileInputStream ( C) ByteArrayOutputStream ( D) ByteArrayInputStream 31 要在 HTML文件中嵌入 Applet,在 applet标记中必须定义的是 ( A) Applet字节
14、码文件的 URL ( B) Applet显示区域的高度和宽度 ( C) Applet字节码的文件名 ( D)选项 B和选项 C 32 如果要在 Applet中显示特定的文字、图形等信息,可以在用户定义的 Applet类中重写的方法是 ( A) paint() ( B) update() ( C) drawString() ( D) drawLine() 33 如果用户定义的 Applet类中没有 init()方法,则该程序 ( A)必须定义一个 main()方法 ( B)无法提供编泽 ( C)可以提供编译,但运行时将出错 ( D)可以提供编译,并且能 够正常运行 34 下列方法中,声明抛出 I
15、nterruptedException类型异常的方法是 ( A) suspended() ( B) resume() ( C) sleep() ( D) start() 35 如果线程正处于运行状态,可使该线程进入阻塞状态的方法是 ( A) yield() ( B) start() ( C) wait() ( D) notify() 36 在下面 Java applet程序的横线处填入代码,使程序完整并能够正确运行。 import java.awt. *: import java.applet.*; public class Greeting extends Applet public voi
16、d _ (Graphics g) g.drawString(“how are you!“, 10,10); 37 在下面程序的空白处,填上适当的内容。 Import java.io. *: import java.util. *; class BufferTest public static void main(String args)throws IOExeeption FileOutputStream unbuf=new FileoutputStream(“test.one“); BufferedOutputStream bur=new _ (new FileOutputStream(“t
17、est.two“); System.out.println(“write file unbuffered: “+time(unbuf)+“ms“); System.out.println(“write file buffered: “+time(buf)+“ms“); static int time(OutputStream os)throws IOException Date then=new Date(); for(int i=0; i 50000; i+)os.write(1); os.close(); return(int)(new Date().getTime()-then.getT
18、ime(); 38 某二叉树有 5个度为 2的结点及 3个度为 1的结点,则该二叉树中共有 _个结点。 39 程序流程图中的菱形框表示的是 _。 40 软件开发过程主要分为需求分析、设计、编码与测试 4个阶段,其中 _阶段产生 “软件需求规格说明书 ”。 41 在数据库技术中,实体集之间的联系可以是一对一或一对多或多对多的,那么“学生 ”和 “可选课程 ”的联系为 _。 42 人员基本信息一般包括:身份证号、姓名、性别、年龄等。其中可以作为主关键字 的是 _。 43 按照 Java的线程模型,代码和 _构成了线程体。 44 在多线程程序设计中,如果采用继承 Thread类的方式创建线程,则需要
19、重写Thread类的 _()方法。 45 在 Java语言中,用 _修饰符定义的类为抽象类。 46 在 Java中,字符是以 16位的 _码表示。 47 代码 System.out.println(066)的输出结果是 _。 48 Swing中用来表示工具栏的类是 javax.swing._。 49 表达式 (10*49.3)的类型是 _型。 50 抛出异常的语句是 _语句。 国家二级( JAVA)笔试模拟试卷 165答案与解析 1 【正确答案】 A 【试题解析】 在第一条输出语句中, +、 -是同优先级的运算符,按照左结合的原则,表达式 34+56-6的值为 84。在第二条输出语句中, *的
20、优先级高于 -,先计算26*2为 52,再进行减法运算 52-3=49。在第三条输出语句中, *与 /是同优先级的运算符,按照左结合的原则,表达式 3*4/2 的值为 6。在第四条输出语句中,两个整型数进行除法运算,结果也为整型,所以结果为 2。 2 【正确答案】 C 【试题解析】 String类的 concat方法原型为 public String concat(String str),其功能是将指定字符串连到此字符串的末尾。如果参数字符串的长度为 0,则返回此String对象。否则,创建一个新的 String 对象,用来表示由此 String对象表示的字符序列和由参数字符串表示的字符序列串
21、联而成的字符序列。所以本题中的结果为 str1和 str2串联而成的字符序列,即 “abcABC“。 3 【正确答案】 C 【试题解析】 本题输出的值为 a+*b+c*-d, +、 -的优先级最高,相当于(a+)*b+c*(-d),由于 a+中, +在变量 a之后,先取值再自增, a+表达式的值为 10, (a+)*b 的值为 40;又由于 -d 中, -在变量 d之前,所以先自减再取值, -d 的值为 5, c *(-d)的值为 100,所以 (a+)*b+c*(-d)的值为 140。 4 【正确答案】 B 【试题解析】 Java中对 +运算符的功能进行了扩展,使其能够进行字符串连接。如 “
22、xyz“+“rst“结果为 “xyzrst“, “xyz“+3 结果为 “xyz3“。如果运算符 +的第一个操作数不是字符串,则运算结果由后续的操作数决定,如 3+4+5+“xyz“的结果是“12xyz“,而不是 “345xyz“。 5 【正确答案】 B 【试题解析】 将 Java程序中的对象保存在外存中,称为对象永久化。对象永久化的关键是将它的状态以一种串行格式表示出来,以便以后读该对象时能够把它重构出来。因此对 Java对象的读、写的过程称为对象串行化。一个类只有实现了Serializable接口,它的对象才是可串行化的。本题中需要对 Employee的对象进行存储,因此 Employee
23、 类应实现 Serializable接口,所以横线上应填入需要实现的接口名: Serializable。 6 【正确答案】 B 【试题解析】 对二元运算,如果操作数全为整型,那么只要其中有一个为 long型,则表达式结果也为 long型;其他情况下,即使两个操作数全是 byte型或short型,表达式结果也为 int型;如果操作数为浮点型,那么只要其中有一个为double型,表达式结果就是 double型;只有两个操作数全是 float 型或其中一个是float型而另外一个是整型时,表达式结果才是 float型。因而第一次输出的结果是整型的 1,第二次输出的结果是 float型的 1.5。 7
24、 【正确答案】 A 【试题解析】 二进制文件可作为 FileOutputStream对象的构造方法的参数,而FileOutputStream对象作为 DataOutputStream的构造方法的参数实现DataOutputStream类。在本程序中, ints.dat二进制文件应作为FileOutputStream对象构造方法的参数,然后 FileOutputStream 对象作为字节输出流的形式参数。 8 【正确答案】 A 【试题解析】 创建线程有两种方法:实现 java.lang.Runnable 接口;继承Thread 类并重写 run()方法。 start()是 Thread 类中的方
25、法,而本程序中的 Test类实现了 Runnable 接口, Runnable接口中只定义了一个抽象方法 run(),故 Test类不能调用 start()方法。编译时会出现 start()方法未定义的错误。 9 【正确答案】 A 【试题解析】 无论通过哪种方式创建线程,都必须通过 run()方法定义线程体,因为一个线程在开始执行时,就是通过从其 run()方法开始执行的。 Runnable接口中定义了抽象 run()方法,而 Thread 类本身也实现了 Runnable 接口,所以在创建一个线程时必须实现 run()方法,即一定要实现 Runnable接口。 10 【正确答案】 D 【试题
26、解析】 软件是程序、数据与相关文档的集合,相对于计算机硬件而言,软件是逻辑产品而不是物理产品,是计算机的无形部分。 11 【正确答案】 B 【试题解析】 软件测试与软件调试是两个不同的概念:软件测试的目的是发现错误,而软件调试的目的是发现错误及导致程序失效的原因,并修改程序以修正错误,调试是测试之后的活动。 12 【正确答案】 C 【试题解析】 封装是一种信息屏蔽技术,目的在于将对象的使用者和对象的设计者 分开。用户只能见到对象封装界面上的信息,不必知道实现的细节。封装一方面通过数据抽象把相关的信息结合在一起,另一方面也简化了接口。 13 【正确答案】 A 【试题解析】 良好的程序设计风格是
27、“清晰第一,效率第二 ”。 14 【正确答案】 A 【试题解析】 程序的执行效率与数据的存储结构、程序所处理的数据量、程序所采用的算法等因素有关。 15 【正确答案】 D 【试题解析】 数据的逻辑结构与数据在计算机中的存储方式无关,它用来抽象地反映数据元素之间的逻辑关系,故选项 A错误。存储结构分 为顺序存储结构与链式存储结构,其中顺序存储结构是将逻辑上相邻的数据元素存储在物理上相邻的存储单元里,结点之间的关系由存储单元的相邻关系来决定,它主要用于存储线性结构的数据,故选项 B 错误。数组的存储方式连续是指其在计算机中的存储方式,它可以用来处理非线性结构,故选项 C错误。 16 【正确答案】
28、C 【试题解析】 冒泡排序的基本思想是对当前未排序的全部结点自上而下地依次进行比较和调整,让键值较大的结点下沉,键值较小的结点往上冒。也就是说,每当比较两个相邻结点后发现它们的排列与排序要求相反,就要将它们互 换。对 n个结点的线性表采用冒泡排序,冒泡排序的外循环最多执行 n-1遍。第一遍最多执行 n-1次比较,第二遍最多执行 n-2次比较,以此类推,第 n-1遍最多执行 1次比较。因此,整个排序过程最多执行 n(n-1)/2次比较。 17 【正确答案】 A 【试题解析】 在任意一棵二叉树中,若终端结点 (叶子结点 )的个数为 n1,则度为2的结点数 n2=n1-1。本题中度为 0的结点即叶子
29、结点,故总结点数 =度为 0的结点数 +度为 1的结点数 +度为 2的结点数 =70+80+69=219。 18 【正确答案】 B 【试题解 析】 数据库技术的根本目标是要解决数据的共享问题,故选项 B正确;数据库需要操作系统的支持,故选项 A不正确;数据库管理系统(DatabaseManagementSystem, DBMS)对数据库进行统一的管理和控制,以保证数据库的安全性和完整性,它是数据库系统的核心软件,选项 C不正确。选项 D不正确。 19 【正确答案】 A 【试题解析】 在一个二维表中,水平方向的行称为元组,每一行为一个元组,元组中的每一个分量不能再进行分割,故选项 B错误;对关系
30、的描述称为关系模式,一个关系模式对应一个关系的结构,格式 为:关系名 (属性名 1,属性名2, ,属性名 n),故选项 c错误;一个关系就是一个二维表,故选项 D错误。 20 【正确答案】 C 【试题解析】 System类是特殊类,它是一个 final 类,所有的方法都通过变量来调用,即对 System类不可能实例化,它主要提供标准输入 /输出和系统环境信息的访问与设置。 System类中的属性有标准输入、标准输出、标准错误输出。 21 【正确答案】 B 【试题解析】 Java中标识符是区分字母大小写的, boolean、 false都是关键字,变为大写后不正确,故选 项 A、选项 D都不正确
31、。 Java中的变量名一般为小写字母,只有常量才用大写字母,所以选项 C也不正确。 22 【正确答案】 A 【试题解析】 数组是一种常用的数据结构,它是一组有序数据的集合。数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。定义数组时即定义了数组的类型,所以数组中各个元素的数据类型一定是相同的。 23 【正确答案】 D 【试题解析】 内部类可以使用其所在类的静态成员变量和实例成员变量,也可以使用其所在类的方法中的局部变量。所以选项 A、 选项 B、选项 C中的成员均可以被内部类访问。 24 【正确答案】 A 【试题解析】 JDK目录中,选项 A的目录下存放
32、编译器、解释器和许多工具;选项 B的目录下有各种演示例子;选项 C目录下都是库文件;选项 D的目录是Java程序运行环境的根目录。 25 【正确答案】 A 【试题解析】 选项 A中 =表示相等关系,是关系运算符;选项 B 中 =是赋值运算符;选项 C与 D中的 +=和 -=为复合赋值运算符。 26 【正确答案】 C 【试题解析】 for语句和 while语句都是循环控制语句; switch 语 句是多分支语句;选项 C的 continue语句是跳转语句, continue语句跳过循环体中下面尚未执行的语句,回到循环体的开始继续下一轮的循环。 27 【正确答案】 D 【试题解析】 Java在 j
33、ava.awt.event包中定义的事件适配器类包括以下几个类:ComponentAdapter(构件适配器 ), ContainerAdapter(容器适配器 ),FocusAdapter(焦点适配器 ), KeyAdapter(键盘适配器 ), MouseAdapter(鼠标适配器 ), MouseMotionAdapter(鼠标运动适配器 ), WindowAdapter(窗口适配器 )。 28 【正确答案】 D 【试题解析】 Java中的移位运算符包括、 &、 |、 、。其中表示算术右移,表示算术左移,表示逻辑右移。不存在运算。 29 【正确答案】 D 【试题解析】 所有的字节输入流都
34、从 InputStream类继承。 30 【正确答案】 D 【试题解析】 FileInputStream和 FileOutputStream用于对磁盘文件所涉及的数据流进行输入和输出 处理。 ByteArrayOutputStream和 ByteArrayInputStream对于在内存中读 /写数据是十分有用的,能达到类似于数据来自文件、管道或套接字的效果。可见能够向内存直接写数据的是 ByteArrayInputStream。 31 【正确答案】 A 【试题解析】 Applet是能够嵌入 HTML页面中,并在浏览器中运行的 Java类。Applet的运行环境是 Web 浏览器,所以不能直接
35、通过命令行启动,必须建立HTML 文件,告诉浏览器如何加载和运行 Applet。在浏览器中指定此 HTML 文件的 URL,就可以通过 HTML 文件启动 Applet运行。 32 【正确答案】 A 33 【正确答案】 D 34 【正确答案】 C 35 【正确答案】 C 【试题解析】 运行状态的进程如果调用了 sleep()方法、 join()方法或 wait()方法,或者申请对象锁果、有更高优先级线程进入调度等,都可进入阻塞状态。阻塞状态的进程在获取到足够的资源后,也可以转入到可运行状态。 36 【正确答案】 paint 37 【正确答案】 BufferedOutputStream 【试题解
36、 析】 本题目中程序主要比较 FileOutputStream和BufferedOutputStream 向文件中写同样数据的时间。 FileOutputStream用于对磁盘文件所涉及的数据流进行输出处理,即向一个文件对象中写入数据;使用BufferedOutputStream 向文件输出时,数据先写入缓冲区,直至缓冲区满时,才将数据写入输出流。所以后者显然要节省时间。题目中空白处是将BufferedOutputStream 类实例化,所以要填写的内容为 BufferedOutputStream。 38 【正确答 案】 14 【试题解析】 在二叉树中,度为 0的结点数是度为 2的结点数加 1
37、,故二叉树中结点数的总和为度为 0的结点数、度为 1的结点数及度为 2的结点数三者相加,得出结果为 14个结点。 39 【正确答案】 逻辑判断 【试题解析】 绘制流程图时对实体的描述用椭圆形表示,行动方案用矩形表示,问题用菱形表示,箭头代表流动方向。 40 【正确答案】 需求分析 【试题解析】 需求分析阶段的工作主要包括需求获取、需求分析、编写需求规格说明书和需求评审 4方面,产生的主要文档为软件需求规格说明书,它可以为 用户、分析人员和设计入员之间的交流提供方便,直接支持目标软件系统的确认,也可作为控制软件开发进程的依据。 41 【正确答案】 多对多 【试题解析】 一名学生可以选择多门课程,
38、一门课程也可以由多名学生选择,因此是多对多的联系。 42 【正确答案】 身份证号 【试题解析】 主关键字是表中区别不同记录的标识,在该表中只有身份证号能具有这个作用,所以用其作为主关键字。 43 【正确答案】 数据 【试题解析】 Java中的线程的模型就是一个 CPU、程序代码和数据的封装体。线程体自然就是由 代码和数据构成的。 44 【正确答案】 run 【试题解析】 创建线程有两种方法:实现 java.lang.Runnable 接口和继承Thread 类并重写 run()方法。 45 【正确答案】 abstract 【试题解析】 抽象类是指明不能实例化的类,用修饰符 abstract定义
39、。 46 【正确答案】 Unicode 【试题解析】 Java使用的是 Unicode字符集。 Unicode字符集比 ASCII字符集更丰富,它们是 16位的无符号数据。 47 【正确答案】 54 【 试题解析】 题目中要输出的数 “066”为八进制整数,而 Java 默认的输出结果为十进制格式, 066转换为十进制为 54。 48 【正确答案】 JToolBar 【试题解析】 JToolBar是用于显示常用工具控件的容器。 49 【正确答案】 double(或双精度或双精度型或双精度类型 ) 【试题解析】 如果数字后面没有任何字母,则默认数据类型为 double型,因为49.3后没有字母,所以为 double型。如果操作数为浮点型,那么只要其中有一个为 double型,表达式结果就是 double型,本 题目中 49.3为 double型,所以结果也为 double型。 50 【正确答案】 throw 【试题解析】 异常对象从产生和被传递提交给 Java运行系统的过程称为抛出异常。在捕获一个异常之前,必须先有异常抛出,才能生成一个异常对象,这就是通过抛出异常来实现。抛出异常、生成异常对象都是通过 throw语句实现的。