全国计算机等级考试二级Java语言程序设计笔试试卷 (考试时间90分钟,满分100分) 一,选择题(每小题2分,共70分) 下列各题A),B),C),D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分. (1)数据的存储结构是指______. A )存储在外存中的数据 B)数据所占的存储空间量 C )数据在计算机中的顺序存储方式 D)数据的逻辑结构在计算机中的表示 答案:D (2)下列关于栈的描述中错误的是______. A) 栈是先进后出的线性表 B ) 栈只能顺序存储 C ) 栈具有记忆作用 D ) 对栈的插入与删除操作中,不需要改变栈底指针 答案:B (3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是______. A )冒泡排序为n/2 B)冒泡排序为n C )快速排序为n D)快速排序为n(n-1)/2 答案:D (4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为______. A )log2n B)n/2 C)n D)n+1 答案:C (5)下列对于线性链表的描述中正确的是______. A ) 存储空间不一定是连续,且各元素的存储顺序是任意的 B ) 存储空间不一定是连续,且前件元素一定存储在后件元素的前面 C ) 存储空间必须连续,且前件元素一定存储在后件元素的前面 D ) 存储空间必须连续,且各元素的存储顺序是任意的 答案:A (6)下列对于软件测试的描述中正确的是______. A ) 软件测试的目的是证明程序是否正确 B ) 软件测试的目的是使程序运行结果正确 C ) 软件测试的目的是尽可能多地发现程序中的错误 D ) 软件测试的目的是使程序符合结构化原则 答案:C (7)为了使模块尽可能独立,要求______. A ) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强 B ) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 C ) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱 D ) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强 答案:B (8)下列描述中正确的是______. A )程序就是软件 B )软件开发不受计算机系统的限制 C )软件既是逻辑实体,又是物理实体 D )软件是程序,数据与相关文档的集合 答案:D (9)数据独立性是数据库技术的重要特点之一,所谓数据独立性是指______. A )数据与程序独立存放 B )不同的数据被存放在不同的文件中 C )不同的数据只能被对应的应用程序所使用 D )以上三种说法都不对 答案:D (10)用树形结构表示实体之间联系的模型是______. A )关系模型 B)网状模型 C)层次模型 D)以上三个都是 答案:C (11)在Java中,负责对字节代码解释执行的是______. A)垃圾回收器 B)虚拟机 C)编译器 D)多线程机制 答案:B (12)下列叙述中,正确的是 A)Java语言的标识符是区分大小写的 B)源文件名与public类名可以不相同 C)源文件扩展名为.jar D)源文件中public类的数目不限 答案:A (13)下列属于合法的Java标识符是 A)_cat B)5books C)+static D)-3.14159 答案:A (14)在Java中,表示换行符的转义字符是 A)\n B)\f C)'n' D)\dd 答案:A (15)在Java中,由Java编译器自动导入,而无需在程序中用import导入的包是 A)java.applet B)java.awt C)java.util D)java.lang 答案:D (16)在Java中,所有类的根类是 A)java.lang.Object B)java.lang.Class C)java.applet.Applet D)java.awt.Frame 答案:A (17)在Java中,用Package语句说明一个包时,该包的层次结构必须是 A)与文件的结构相同 B)与文件目录的层次相同 C)与文件类型相同 D)与文件大小相同 答案:B (18)在读字符文件Employee.dat时,使用该文件作为参数的类是 A)BufferReader B)DataInputStream C)DataOutoutStream D)FileInputStream 答案:D (19)下列构造方法的调用方式中,正确的是 A)按照一般方法调用 B)由用户直接调用 C)只能通过new自动调用 D)被系统调用 答案:C (20)类Panel默认的布局管理器是 A)GridLayout B)BorderLayout C)FlowLayout D)CardLayout 答案:C (21)在Java中,能实现多重继承效果的方式是 A)内部类 B)适配器 C)接口 D)同步 答案:C (22)char类型的取值范围是 A)2-7 ~27 -1 B)0~216-1 C)-215 ~215 -1 D)0~28-1 答案:B (23)能够支持javadoc命令的注释语句是 A)/**...// B)/*...*/ C)// D)/**...*/ 答案:D (24)十进制数16的16进制表示格式是 A)0x10 B)0x16 C)0xA D)16 答案:A (25)int型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是 A)public int MAX_LENGTH=100 B)final int MAX_LENGTH=100 C)public const int MAX_LENGTH=100 D)public final int MAX_LENGTH=100 答案:D (26)下列不是InputStream子类的是 A)文件输入流FileInputStream B)final int MAX_LENGTH=100 C)public const int MAX_LENGTH=100 D)public final int MAX_LENGTH=100 答案:C (27)下列方法中可以用来创建一个新线程的是 A)实现java.lang.Runnable接口并重写start()方法 B)实现java.lang.Runnable接口并重写run()方法 C)实现java.lang.Thread类并重写run()方法 D)实现java.lang.Thread类并重写start()方法 答案:C (28)下列关于Java Application与Applet的说法中,正确的是 A)都包含main()方法 B)都通过"appletviewer"命令执行 C)都通过"javac"命令编译 D)都嵌入在HTML文件中执行 答案:C (29)当启动Applet程序时,首先调用的方法是 A)stop() B)init() C)start() D)destroy() 答案:B (30)下列关于线程优先级的说法中,正确的是 A)线程的优先级是不能改变的 B)线程的优先级是在创建线程时设置的 C)在创建线程后的任何时候都可以设置 D)B和C 答案:C (31)当浏览器重新返回Applet所在页面时,将调用Applet类的方法是 A)start() B)init() C)stop() D)destroy() 答案:A (32)按照Java的标识符命名规范,下列表示一个类的标识符正确的是 A)Helloworld B)HelloWorld C)helloworld D)helloWorld 答案:B (33)下列代码中,将引起一个编译错误的行是 1)public class Test{ 2) int m,n; 3) public Test() {} 4) public Test(int a) {m=a;} 5) public static void main(String args[]){ 6) Test t1,t2; 7) int j,k; 8) j=0;k=0; 9) t1=new Test(); 10) t2=new Test(j,k); 11) } 12)} A)第3行 B)第5行 C)第6行 D)第10行 答案:D (34)下列程序的功能是在监控台上每隔一秒钟显示一个字符串"Hello",能够填写在程序中下划线位置,使程序完整并能正确运行的语句是 public class Test implements Runnable{ public static void main(String args[]){ Test t=new Test(); Thread tt=new Thread(t); tt.start(); } public void run(){ for(;;){ try{ ; }catch( e){} System.put.println("Hello"); } } } A) sleep(1000) InterruptedException B) sleep(1000) InterruptedException C) Thread.sleep(1000) RuntimeException D) Thread.sleep(1000) InterruptedException 答案:D (35)阅读下列代码后 public class Person{ int arr[]=new int[10]; public static void main(String args[]){ System.out.println(arr[1]); } } 正确的说法是 A) 编译时将产生错误 B) 编译时正确,运行时将产生错误 C) 输出零 D) 输出空 答案:A 二,填空题(每空2分,共40分) 请将每空的正确答案写在【1】至【20】序号的横线上,答在试卷上不得分. (1)某二叉树中度为2的结点有18个,则该二叉树中有 【1】 个叶子结点. 答案:19 (2)在面向对象方法中,类的实例称为 【2】 . 答案:对象 (3)诊断和改正程序中错误的工作通常称为 【3】 . 答案:调试或程序调试或软件调试或Debug(英文字母大小写均可)或调试程序或调试软件 (4)在关系数据库中,把数据表示成二维表,每一个二维表称为 【4】 . 答案:关系或关系表 (5)问题处理方案的正确而完整的描述称为 【5】 . 答案:算法或程序或流程图 (6)面向对象的语言将客观世界都看成由各种对象组成,共同特征和行为的对象组成类,类是变量和 【6】 的集合体. 答案:方法 (7)Java源文件中最多只能有一个 【7】 类,其它类的个数不限. 答案:public (8)在Java中所实现的多维数组,实际上是由一维数组构成的 【8】 . 答案:数组的数组 (9)StringBuffer类提供 【9】 字符串对象的表示. 答案:可变或可编辑 (10)每个Applet程序必须有一个类是 【10】 类的子类. 答案:Applet (11)线程在生命期中要经历5种状态,分别是新建状态,可运行状态,运行状态, 【11】 状态和终止状态. 答案:阻塞 (12)FileInputStream是字节流;BufferedWriter是字符流;ObjectOutputStream是 【12】 . 答案:对象流或对象输出流 (13)break语句最常见的用法是在switch语句中,通过break语句退出switch语句,使程序从整个switch语句后面的 【13】 开始执行. 答案:第一条语句 (14)请阅读下列程序代码,然后将程序的执行结果补充完整. public class throwsException { static void Proc(int sel) throws ArithmeticException,ArrayIndexOutOfBoundsException{ System.out.println("In Situation"+sel); if(sel==0){ System.out.println("no Exception caught"); return; }else if(sel==1){ int iArray[]=new int[4]; iArray[1]=3; } } public static void main(String args[]){ try{ Proc(0); Proc(1); }catch(ArrayIndexOutOfBoundsException e){ System.out.println("Catch"+e); }finally{ System.out.println("in Proc finally"); } } 执行结果: In.Situation() no Exception caught 【14】 in Proc finally 答案:In Situation 1 (15)当使用Thread t=new Thread(r)创建一个线程时,表达式:r instanceof Thread的值为 【15】 . 答案:false