1、2008年 4月国家二级( JAVA)笔试真题试卷及答案与解析 1 程序流程图中带有箭头的线段表示的是 ( A)图元关系 ( B)数据流 ( C)控制流 ( D)调用关系 2 结构化程序设计的基本原则不包括 ( A)多态性 ( B)自顶向下 ( C)模块化 ( D)逐步求精 3 软件设计中模块划分应遵循的准则是 ( A)低内聚低耦合 ( B)高内聚低耦合 ( C)低内聚高耦合 ( D)高内聚高耦合 4 在软件开发中,需求分析阶段产生的主要文档是 ( A)可行性分析报告 ( B)软件需求规格说明书 ( C)概要设计说明书 ( D)集成测试计划 5 算法的有穷性是指 ( A)算法程序的运行时间是有
2、限的 ( B)算法程序所处理的数据量是有限的 ( C)算法程序的长度是有限的 ( D)算法只能被有限的用户使用 6 对长度为 n的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2的排序方法是 ( A)快速排序 ( B)冒泡排序 ( C)直接插入排序 ( D)堆排序 7 下列关于栈的叙述正确的是 ( A)栈按 “先进先出 ”组织数据 ( B)栈按 “先进后出 ”组织数据 ( C)只能在栈底插入数据 ( D)不能删除数据 8 在数据库设计中,将 E-R图转换成关系数据模型的过程属于 ( A)需求分析阶段 ( B)概念设计阶段 ( C)逻辑设计阶段 ( D)物理设计阶段 9 有三个关系 R、
3、 S和 T,如下:由关系 R和 S通过运算得到关系 T,则所使用的运算为 ( A)并 ( B)自然连接 ( C)笛卡尔积 ( D)交 10 设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号 ),课程 C(课号,课名 ),选课 SC(学号,课号,成绩 ),则表 SC的关键字 (键或码 )为 ( A)课号,成绩 ( B)学号 ,成绩 ( C)学号,课号 ( D)学号,姓名,成绩 11 下列对 Java特性的叙述中,错误的是 ( A)在编写 Java子类时可以自由地增加新方法和属性 ( B) Java的 Applet要求编程首先创建 JFrame窗口 ( C) Java语言用解释
4、器执行字节码 ( D) Java中的类一般都有自己的属性和方法 12 下列对 Java源程序结构的叙述中,错误的是 ( A) import语句必须在所有类定义之前 ( B)接口定义允许 0或多个 ( C) Java Application中的 public class类定 义允许 0或多个 ( D) package语句允许 0或 1个 13 下列变量定义中,正确的是 ( A) long 1=123L ( B) long 1=3.14156f ( C) int i=“k“ ( D) double d=1.55989E2f 14 下列 Java表达式 19/3 (int)71.7-2*3 7% 3
5、 (double)1/8+3 计算结果是 ( A) 6.3 64 2 2.5 ( B) 6 63 1 3.125 ( C) 6.4 67 2 2.5 ( D) 6 65 1 3.125 15 switch语句中表达式 (expression)的值不允许用的类型是 ( A) byte ( B) int ( C) boolean ( D) char 16 下列语句能给数组赋值而不使用 for循环的是 ( A) myArray1=“One“;2=“Two“;3=“Three“; ( B) String s5=new String“Zero“, “One“, “Two“, “There“, “Four
6、“; ( C) String s=new String“Zero“, “One“, “Two“, “There“, “Four“; ( D) String s=new String=|“Zero“, “One“, “Two“, “There“, “Four“; 17 Swing与 AWT相比新增的布局管理器是 ( A) CardLayout ( B) CardLayout ( C) CardBagLayout ( D) BoxLayout 18 下列语句中正确的是 ( A) System. out. println(1+1); ( B) int i=2+“2“; ( C) Sting s=“o
7、n“+ong; ( D) byte b=257; 19 下列关键字中可以表示常量的是 ( A) final ( B) default ( C) private ( D) transient 20 在 Java语言中,被称为内存分配的运算符是 ( A) new ( B) instance of ( C) ( D) () 21 阅读下面程序 pubic class Cycle public static void main(String args) System. out. println(args0); 在命令行中输入 java Cycle one two,该程序输出结果是 ( A) Cycle
8、 ( B) one ( C) two ( D)上述 A、 B、 C、均不对 22 阅读下面程序 public class My Val public static void main(String args) My Val m=new My Val(); m. amethod(); public void amethod() boolean b=new Boolean5; 程序编译或运行结果是 ( A) 1 ( B) null ( D)编译不能过 23 阅读下面求 质数的程序 import java. lang. Math. * ; public class MorePrimesTest pu
9、blic static void main(Stringargs) longprimes=new long20; primes02L; primes13L; long number=5L; outer: for(int count=2; count primes. length; number+ =2L) long limit=(long)Math. ceil(Math. sqrt(double)number); for(int i=1; i count i+ +) if(number_primesi=0L) cotinue outer; for(int j=0; j primes. leng
10、th; j +) long n=primesj; System. out. println(n); 在程序下画线处填入的正确选项是 ( A) public class WriteFile public static void main(StringA) intmyArray=10,20,30,40; try FileOutputStream f=new FlieOutStream(“ints. dat“); DataOutputStream_=new DataOutputStream(f); for(int i=0; i myArray. length; i +) dos. writeInt(
11、myArrayi); dos. close(); System. out. prinfln(“Have written binary file ints. dat“); catch(IOException ioe) System. out. println(“IO Exception“); 在程序下画线处填入的正确选项是 ( A) myArray ( B) dos ( C) ioe ( D) ints 27 阅读下面程序 public class Test2_ public static void main(String args) Thread t=new Test2(); t. start
12、(); public void run() System. out. priatln(“How are you. “); 在程序下画线处填入的正确的选项是 ( A) implements Thread ( B) extends Runnable ( C) implements Runnable ( D) extends Thread 28 阅读下面程序 public class Test implements Runnable public static void main(Stringargs) _; t. start(); public void mR() System. out. 在程序
13、下画线处填入正确选项是 ( A) Test t=flew Test() ( B) Thread t=new Thread(); ( C) Thread t=new Thread(new Test(); ( D) Test t=new Thread(); 29 下列关于 Applet中加载图像的说法,错误的是 ( A)可以使用 Applet类的 getImage()方法获得图像对象 ( B)程序员必须自行 定义获得图像及显示图像的类和方法 ( C)图像由一个 java. Image类的对象来表示 ( D)可以使用 Graphics类的 drawImage()方法显示图像 30 下列带下画线的标识
14、符符合 Java命名约定的是 ( A) package com.Bi.hr ( B) public class xyz ( C) intI ( D) void setCustomerName() 31 RandomAccessFile是 java. io包中的一个兼有输入输出功能的类。由于它是随机访问,所以文件读写一个记录的位置 是 ( A)起始 ( B)终止 ( C)任意 ( D)固定 32 阅读下面 Applet程序 import javax. swing. *; import java. awt. *; public class SwintgApplet extends JApplet
15、JLabel 1=new JLabel(“This is a Swing Applet.“); public void init() _ 在程序下画线处填入正确的选项是 ( A) Container contentPane=getContenPane(); cotentPane. add(1); ( B) JPanel comtenPane=new Jpane(); contentPane. add(1); ( C) contentPane. add(1); ( D) add(1); 33 在 Java中, “目录 ”被看作是 ( A)文件 ( B)流 ( C)数据 ( D)接口 34 阅读下
16、面实现堆栈类并发控制的部分代码 public class DataStack private int idx=0; private intdata=new int8; public void push(int i) . _ dataidx=i; idx + +; 在程序下画线处填入正确选项是 ( A) synchronized ( B) synchronized(this) ( C) synchronized() ( D) synchronized(idx) 35 下列关于对象串行化的说法错误的是 ( A) Java中,默认所有类的对象 都可串行化 ( B)在对象串行化时,不保存对象所属类的构
17、造方法 ( C)在实现 Serializeble接口的类中,用 transient关键字可使某些数据不被串行化 ( D) ObjectInputStream和 ObjectOutputStream类都支持对象的读和写 36 测试用例包括输入值集和【 】值集。 37 深度为 5的满二叉树有【 】个叶子结点。 38 设某循环队列的容量为 50,头指针 front=5(指向队头元素的前一位置 ),尾指针rear=29(指向队尾元素 ),则该循环队列中共有【 】个元素。 39 在关系数据库中,用来表示实体之间联系的是【 】。 40 在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中,【
18、】负责数据的模式定义与数据的物理存取构建。 41 按照 Java中的命名约定,方法名的起始字母一般都是小写,但是【 】方法例外。 42 Swing中的按钮类是【 】。 43 Java中的三元运算符是【 】。 44 Java输入 /输出流中包括字节流、【 】、文件流、对象流及管道流。 45 在 Java中,对象流以【 】方式传送和存 储。 46 请将下面程序补充完整。 public class PowerCalc public static void main(Stringargs) double x=5.0; System. out. println(x+“to the power 4 is“
19、+power(x, 4); System. out. println(“7. 5 to the power 5 is“+power(7.5, 5); System. out. println(“7.5 to the power 0 is“+power(7.5, 0); System. out. println(“10 to the power -2 is“+power(10, -2); static double【 】 (double x, int n) if(n 1) return x * power(x, n-1); else if(n 0) return 1.0/power(x, -n)
20、; else return n=0 ? 1.0:x; 47 请将下面的 Applet程序补充完整。 import java. awt. *; import java. applet. *; public class Hi【 】 public void paint(Graphics g) g. drawString(“Hi!“, 25, 25); 48 Swing中的组件往往采用 MVC结构, MVC指的是 Model、 View和【 】。 49 Java中,可以通过建立 java. lang.【 】类或其子类的实例创建和控制线程。 50 如果一个线程 调用【 】 ()方法,将使该线程进入休眠状
21、态。 2008年 4月国家二级( JAVA)笔试真题试卷答案与解析 1 【正确答案】 C 【试题解析】 程序流程图是人们对解决问题的方法、思路或算法的一种描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流。带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。构成程序流程图的基本图符及含义: 或 表示控制流; 表示加工步骤; 表示逻辑条件。 2 【正确答案】 A 【试题解析】 结构化程序设计的原则包括: “自顶而下,逐步求精 ”的设
22、计思想,“独立功能,单出、入口 ”的模块化设计等。多态性是面向对象程序语言的特征。 3 【正确答案】 B 【试题解析】 模块划分应遵循的准则包括模块之间的耦合和内聚。一般来说,要求模块之间的耦合尽可能地低,即模块尽可能独立,要求模块的内聚程度尽可能地高,即高内聚、低耦合的原则。 4 【正确答案】 B 【试题解析】 需求分析阶段的工作主要包括需求获 取、需求分析、编写需求规格说明书和需求评审等 4方面。产生的主要文档为软件需求规格说明书,可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标软件系统的确认,又可以作为控制软件开发进程的依据。 5 【正确答案】 A 【试题解析】 算法具
23、有 5个特性: 有穷性:一个算法必须总是 (对任何合法的输入值 )在执行有穷步之后结束,且每一步都可在有限时间内完成,即运行时间是有限的。 确定性:算法中每一条指令必须有确切的含义,读者理解时不会产生二义性。 可行性:一个算法是可行的,即算法中描述的操作都是可 以通过已经实现的基本运算执行有限次来实现。 输入:一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合。 输出:一个算法有一个或多个输出。 6 【正确答案】 D 【试题解析】 在最坏情况下,快速排序、冒泡排序和直接插入排序需要的比较次数都是 n(n-1)/2,堆排序需要比较的次数为 nlog2n。 7 【正确答案】 B 【试题解
24、析】 在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的 元素,从而也是最后才能被删除的元素。即栈是按照“先进后出 ”或 “后进先出 ”的原则组织数据的。 8 【正确答案】 C 【试题解析】 数据库的逻辑设计分为: 将概念模型转换成一般的数据模型; 将一般的数据模型转换为特定的数据库管理系统所支持的数据模型。把概念模型转换成关系数据模型就是把 E-R图转换成一组关系模式。 9 【正确答案】 D 【试题解析】 在关系运算中,交的定义如下:设 R1和 R2为参加运算的两个关系,它们具有相同的度 n
25、,且相对应的属性值取自同一个域,则 R1R2为交运算,结果仍为度等 于 n的关系,其中,交运算的结果既属于 R1又属于 R2。 10 【正确答案】 C 【试题解析】 “选课 SC”表是 “学生 S”表和 “课程 C”表的映射表,主键是两个表主键的组合。 11 【正确答案】 B 【试题解析】 编写自己的 Applel时不需要创建 JFrame窗口,但需要继承Applet类,并嵌入 html网页中运行。 12 【正确答案】 C 【试题解析】 Java application中的 public class定义只能是 0个或 1个,不能为多个,而且如果是 1个的话,文件名要与 public class
26、修饰的类名相同。 13 【正确答案】 A 【试题解析】 根据 Java向下转型的特点, B)需要强制类型转换, C)字符串类型不能赋给整型, D)可以自动类型转换,但不推荐使用。 14 【正确答案】 D 【试题解析】 “/”表示整除, “int”将 71.7强制转化为整数 71后再做减法运算,“%” 是取余运算, “double”将 1/8转化成 double类型后做加法运算。 15 【正确答案】 C 【试题解析】 switch语句用于多重选择,其参数可以是字节型、整型或字符型;而 布尔型只有两个值 (True、 False),一般用于 if语句。 16 【正确答案】 C 【试题解析】 A)、
27、 D)语法不正确, B)中 s5的形式只能通过 for循环的格式进行赋值,而不能直接赋值。 C)中表达式左侧的 “”说明现在定义一个数组,不需要指明数组长度,而表达式右侧 “”在后面直接紧跟初始内容时也是不需要指定数组大小的,数组大小直接由初值长度决定。 17 【正确答案】 D 【试题解析】 AWT的布局管理器有 FlowLayout、 GridLayout、BorderLayout、 CardLayout和 GridBagLayout。 Swing的布局管理器有CenterLavout、 BoxLayout、 OverlayLayout和 SpringLayout。 18 【正确答案】 A
28、【试题解析】 B)整型不能与字符串类型直接相加, D)中 “+”表示两个字符串的拼接, “one”是非法字符串常量声明, D)中赋值类型不匹配。 19 【正确答案】 A 【试题解析】 final关键字声明的变量不能再修改,即为常量。 default关键字用于在 switch分支里作默认分支项; private关键字则用于声明私有变量和方法类;transient关键字用于修饰变量以表明此变量易变,不需要串行化处理。 20 【正确答案】 A 【试题解析】 在 Java中对内存进行动态分配的只有通过使用关键字 new。instance of用于测试某个对象是否为某个类的实例; 、 ()是与数组、函数
29、声明或运算相关的符号,不涉及内存分配。 21 【正确答案】 B 【试题解析】 main方法中的参数 args是 String类型的数组,所以当在命令行中输入参数 one、 two时, args数组中有两个元素: arg0=one, arg1=two。所以打印输出 arg0为 one。 22 【正确答案】 C 【试题解析】 编译能通过,但不在控制台输出任何信息。程序只是实例化了一个布尔类型的数组,且由于此数组为局部变量,不会自动初始化,故其中值都为null。 23 【正确答案】 D 【试题解析】 数组 primes用于保存已经判断出来的质数,内层循环用来判断number是否为质数,判断的方法是用
30、 number去除数组中已判断的质数,看余数是否为 0。若为 0则不是质数,跳到外层循环。所以下画线处应是取 余操作。 24 【正确答案】 B 【试题解析】 接口只提供抽象方法,但并不提供对其的实现,并且方法默认都是公有的,而提供实例字段和方法实现是继承接口类的任务,所以接口中没有成员方法和构造方法。接口中还可以定义常量,但不能定义变量。 25 【正确答案】 C 【试题解析】 StringBuffer是动态构造字符串的类,它能根据字符串长度动态分配内存,且它的实现是同步的。与之对应的是 StringBuilder,此类并不保证同步,但占用资源更少且执行速度更快,是 JDK1.5新增的类。 26
31、 【正确答案】 B 【试题解析】 要求填写的是一个 DataOuputStream类的对象名称,根据程序下文中出现的 dos. writeInt可知,对象名称为 dos。 27 【正确答案】 D 【试题解析】 Thread类是多线程基类,多线程启动类必须继承此类。而实现Runnable接口的类能作为多线程的一个执行任务,一般作为参数传给新的 Thread类。 28 【正确答案】 C 【试题解析】 根据 t. start()可知 t应该是一个 Thread类,排除 A)。 Thread类与Test类之间 没有继承关系,所以排除 D)。 B)没有指定创建线程的对象,因此 t. start()语句不
32、能使 Test类的 run方法运行。所以选 C)。 29 【正确答案】 B 【试题解析】 Applet中图像由 java. Image类的对象表示,使用 getImage()方法获得图像,用 Graphics类的 drawImage()方法显示图像。 30 【正确答案】 D 【试题解析】 包名采用完整的英文描述符,应该由小写字母组成;方法名的第一个单词应该是动词,大小写可混用,但首字母应小写;变量的命名应该大小写混用 ,但首字母小写;类名应采用具有特定意义的完整描述符。 31 【正确答案】 C 【试题解析】 RandomAccessFile实例支持对随机存取文件的读取和写入。从文件指针处开始读
33、写文件记录,并随着字节的读写移动指针。该文件指针可以通过getFilePointer方法读取,并通过 seek方法设置。所以文件读写一个记录的位置是随机的。 32 【正确答案】 A 【试题解析】 不能直接调用 add方法将 “1”标签加到 JApplet对象上,而要先调用 JApplet类的 getContentPane()方法获得此 applet的 eontentPane对象,然后再调用 add方法将 “1”标签对象加到此 contentPane对象上。 33 【正确答案】 A 【试题解析】 Java中的文件和目录都看成文件,可通过 File类的 idDirectory()和isFile()
34、方法判断某个 File是目录还是标准文件。 34 【正确答案】 B 【试题解析】 synchronized关键字用于同步方法,而在同步一个代码块时,用度synchronized(this)来实现。 35 【正确答案】 A 【 试题解析】 Java对象只有在实现 Serializable或 Extemalizable接口后才可串行化,一些基本类型如 String、 Integer已实现 Serializable接口故可串行化,而没有实现此接口的类型不能串行化。 Transient关键字修饰的变量表示其值短暂易变的,在串行化时不作处理,待反串行化时再重新生成。 36 【正确答案】 【 】输出 【试
35、题解析】 软件测试用例是为了有效发现软件缺陷而编写的包含测试目的、测试步骤、期望测试结果的特定集合。正确认识和设计软件测试用例可以提高软件测试的有效性,便于测试质量的度量,增强测试过程的可管理性。软件测试用例包括输入值集和输出值集。测试用例是软件测试的核心。 37 【正确答案】 【 】 16 【试题解析】 在满二叉树中,叶子结点数目的计算公式为 2n-1,其中 n为树的深度。 38 【正确答案】 【 】 24 【试题解析】 实现循环队列时,头指针指向第一个元素的前一个空间,尾指针指向最后一个元素。因此,此时队列中 6, 7, 8.29这 24个空间存有元素,即队列中有 29-5=24令元素。
36、39 【正确答案】 【 】关系 【试题解析】 在关系数据库中,用关系 (二维表结构 )表示实体及其之间联系的模型称为关系数据模型。 40 【正确答案】 【 】数据定义语言 【试题解析】 数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,如查询与增、删、改等;数据控制语言:负责数据完整性、安全性的定义与检查及并发控制、故障恢复等。 41 【正确答案】 【 】构造方法 【试题解析】 构造方法名必须与类名一致,而类名第一个字母要求大写,故此方法名首字母也将大写。其他成员方法命名规则遵循逆 波兰式命名规则,首字母小写,后面每个单词的首字母大写。 42 【正确答案】 【
37、 】 JButton 【试题解析】 Swing中按钮基类为 Jbutton,用户创建新的按钮,一般都直接继承此类。 43 【正确答案】 【 】 ?: 【试题解析】 “?:”是 Java中唯一的三元运算,使用规则为: “expression1? expression2: expression3”。其中 expression1是一个布尔表达式。如果 expression1为真,那么 expression2被求值;否则, expression3被求值。整个 “?”表达式的值就是被求值表达式 (expression2或 expression3)的值。 expression2和 expression3是
38、除了 void以外的任何类型的表达式,且它们的类型必须相同。 44 【正确答案】 【 】字符流 【试题解析】 Java中的流主要分为两种:字节流和字符流,分别由四个抽象类来表示 (每种流包括输入和输出两种,所以一共四个 ): InputStream、OutputStream、 Reader和 writer。 Java中其他多种多样变化的流均是由它们派 生出来的,其中包括文件流、对象流及管道流。 45 【正确答案】 【 】序列化 【试题解析】 在 Java中,如果想在对象流中存储或者传送任何一个类,我们需要对类进行一项修改,即该类必须实现 Setializable接口。 46 【正确答案】 【
39、】 power 【试题解析】 通过程序片段可看出,在 main方法中调用了。 power方法,所以需要在类中对 power方法进行定义,否则编译会报错。下面的程序片段就是对power方法的定义。 47 【正确答案】 【 】 extends Applet 【试题解析】 所有用户新建的 Applet类都必须继承自 Applet基类。因为 Applet基类已经具有很多性质并实现一些公有方法,也只有继承 Applet,我们的新类才能称之为 Applet并嵌入网页中运行。 48 【正确答案】 【 】 Controller 【试题解析】 MVC结构指的是模型 (Model)-视图 (View)-控制器 (
40、Controller)设计模式。该模式明确规定了三个对象如何进行交互。 49 【正确答案】 【 】 Tbread 【试题解析】 线程是程序中的执行单元。 Java虚拟机允许应用程序并发地运行多个执行线程。可以通过建立 java. lang. Thread类或其子类的实例来创建和控制线程。 50 【正确答案】 【 】 sleep 【试题解析】 Thread类中定义的静态 sleep()方法能够使当前运行中的线程暂停执行 (即休眠 )一段指定时间。当休眠线程被中断时,会抛出 InterruptedException异常。由于 sleep()方法只能影响当前执行中的线程,因此必须由该线程来调用方法,而不能由其他线程强制执行休眠。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1