java试题.docx
- 文档编号:26435047
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:26
- 大小:48.55KB
java试题.docx
《java试题.docx》由会员分享,可在线阅读,更多相关《java试题.docx(26页珍藏版)》请在冰豆网上搜索。
java试题
计算机等级考试二级Java练习题及解析(8)
1 下列数据结构中,能用二分法进行查找的是__A____。
A、顺序存储的有序线性表 B、线性链表 C、二叉链表 D、有序线性链表
解析:
二分法查找只适用于顺序存储的有序表。
在此所说的有序表是指线性表中的元素按值非递减排列(即从小到大,但允许相邻元素值相等)。
2 在软件设计中,不属于过程设计工具的是__D____。
A、PDL(过程设计语言) B、PAD图 C、N-S图 D、DFD图
解析:
软件设计工具包括:
程序流程图、N-S、PAD、HIPO,判定表,PDL(伪码)。
而DFD(数据流图)属于结构化分析工具。
3 在switch(expression)语句中,expression的数据类型不能是__A____。
A、double B、char C、byte D、short
解析:
表达式expression只能返回这个几种类型的值:
int、byte、short和char。
多分支语句把表达式返回的值依次与每个case子句中的值相比较,如果遇到匹配的值,则执行该case子句后的语句序列。
4 下列叙述中,错误的是__D____。
A、父类不能替代子类 B、子类能够替代父类 C、子类继承父类 D、父类包含子类
5 通过继承实现代码复用:
Java中所有的类都是通过直接或间接地继承java.lang.Object类得到的。
继承而得到的类称为子类,被继承的类称为父类。
子类不能继承父类中访问权限为private的成员变量和方法,子类可以重写父类的方法,及命名与父类同名的成员变量。
子类通过隐藏父类的成员变量和重写父类的方法,把父类的状态和行为改变为自身的状态和行为。
注意:
子类中重写的方法和父类中被重写的方法要具有相同的名字,相同的参数表和相同的返回类型,只是函数体不同。
由于子类继承了父类所有的属性(私有的除外),所以子类对象可以作为父类对象使用。
程序中凡是使用父类对象的地方,都可以用子类对象来代替。
一个对象可以通过引用子类的实例来调用子类的方法。
java运行时系统根据调用该方法的实例,来决定调用哪个方法。
对子类的一个实例,如果子类重写了父类的方法,则运行时系统调用子类的方法;如果子类继承了父类的方法(未重写),则运行时系统调用父类的方法。
6 自定义表格类中的model部分应实现的接口是___A___。
A、AbstractTableModel B、JTable C、TableModel D、TableModelable
7 下列代码中,将引起编译错误的行是__B____。
1)publicclassExercise{
2) publicstaticvoidmain(Stringargs[]){
3) floatf=0.0;
4) f+=1.0;
5) }
6) }
A、第2行 B、第3行 C、第4行 D、第6行
解析:
float定义变量赋值时,需要在数值后面加f以标识它为浮点型,让系统知道该给它精确到多少位。
8 下列关于Java多线程并发控制机制的叙述中,错误的是___B___。
A、Java中对共享数据操作的并发控制是采用加锁技术
B、线程之间的交互,提倡采用suspend()/resume()方法
C、共享数据的访问权限都必须定义为private
D、Java中没有提供检测与避免死锁的专门机制,但应用程序员可以采用某些策略防止死锁的发生
解析:
1)Java中对共享数据操作的并发控制是采用传统的封锁技术。
一个程序中单独的、并发的线程对同一个对象进行访问的代码段,称为临界区。
在Java语言中,临界区可以是一个语句块或是一个方法,并且用"synchronized"关键字标识。
Java平台将每个由synchronized(Object)语句指定的对象设置一个锁,称为对象锁。
2)共享数据的所有访问都必须作为临界区,使用"synchronized"进行加锁控制。
用"synchronized"保护的数据也必须是私有的,使线程不能直接访问这些数据,必须通过对象的方法。
3)Java中没有检测与避免死锁的专门机制,因此完全由程序进行控制,防止死锁的发生。
4)有时,某个线程进入"synchronized"块后,共享数据的状态并不一定满足线程的需要,它要等待其他线程将共享数据改变为它需要的状态后才能继续执行,但由于此时它占有了该对象的锁,其他线程无法对共享数据进行操作,为此Java引入wait()和notify(),这两个方法使java.lang.object类的方法,使实现线程通信的两个方法。
9 下列操作中,不属于Applet安全限制的是___D___。
A、加载本 B、读写本地文件系统 C、运行本地可执行程序 D、与同一个页面中的Applet通信
10在进行模块测试时,要为每个被测试的模块另外设计两类模块:
驱动模块和承接模块(桩模块)。
其中,驱动模块相当于被测试模块的主程序,它接收测试数据,并传给被测试模块,输出实际测试结果。
承接模块通常用于代替被测试模块调用的其他模块,其作用仅做少量的数据操作,是一个模拟子程序,不必将子模块的所有功能带入。
11 Java语言具有可移植性、高性能、健壮性、安全性和独立于体系结构的__跨平台____特点。
解析:
Java语言是一种跨平台,适合于分布式计算环境的面向对象的编程语言。
具体来说,它具有如下特性:
简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。
12 在运行时,由Java解释器自动导入,而不用import语句引入的包是__java.lang____。
解析:
因为包java.lang所包含的类和接口对所有实际的Java程序都是必要的,所以,它被自动导入所有的程序且它是Java最广泛使用的包。
13 下列程序的功能是创建了一个显示5个"Hello!
"的线程并启动运行,请将程序补充完整。
publicclassThreadTestextendsThread{
publicstaticvoidmain(Stringargs[]){
ThreadTestt=new__ThreadTest()____;
t.start();}
publicvoidrun(){inti=0;
while(true){System.out.println("Hello!
");
if(i++==4) break;
}
}
解析:
ThreadTest继承java.lang.Thread类,重写了run()方法,实现了Java中的线程。
ThreadTestt定义了空的线程对象,下面t.start()启动了这个线程,因此ThreadTestt=new______;就应该是实例化该线程对象,所以空格中应填ThreadTest()。
Swing的顶层容器有:
JApplet、JWindow、JDialog和__JFrame____。
顶层容器:
JFrame、JApplet、JDialog和JWindow共4个。
中间容器:
JPanel、JScrollPane、JSplitPane、JToolBar。
特殊容器:
JInternalFrame、JLayeredPane、JRootPane。
基本控件:
JButton、JComboBox、JList、JMenu、JSlider、JTextField。
不可编辑信息的构件:
JLabel、JProgressBar、ToolTip、
可编辑信息的构件:
JColorChooser、JFileChooser、JFileChooser、JTable、JTextArea
所有的这些构件的分类都是按功能来划分的。
14 下列叙述中正确的是___D___。
A、一个逻辑数据结构只能有一种存储结构
B、数据的逻辑结构属于线性结构,存储结构属于非线性结构
C、一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D、一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
解析:
一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等存储结构。
而采用不同的存储结构,其数据处理的效率是不同的。
15 Java的图形用户界面的最基本的组成部分就是构件(Component),构件是一个可以以图形化的方式显示在屏幕上并能与用户交互的对象,但构件不能独立地显示出来,必须将构件放在一定的容器中才可以显示出来。
解析:
容器Container是一个类,因为容器本身也是一个构件,具有构件的所有性质,因此继承之Component类。
16 下列叙述中,错误的是__A____。
A、File类能够存储文件B、File类能够读写文件C、File类能够建立文件D、File类能够获取文件目录信息
解析:
文件类File是java.io包中的一个重要的非流类,它以一种与系统无关的方式表示一个文件对象的属性。
而目录在Java中作为一种特殊文件,即文件名的列表,通过类File所提供的方法,可得到文件或目录的描述信息(包括名字、路径、长度、可读、可写等),也可以生成新文件、目录、修改文件和目录,查询文件属性,重命名文件或者删除文件。
17 下列叙述中,正确的是___C___。
A、Reader是一个读取字符文件的接口 B、Reader是一个读取数据文件的抽象类
C、Reader是一个读取字符文件的抽象类 D、Reader是一个读取字节文件的一般类
解析:
Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种,所以一共四个):
InputStream,OutputStream,Reader,Writer。
Java中其他多种多样变化的流均是由它们派生出来的。
在这其中InputStream和OutputStream在早期的Java版本中就已经存在了,它们是基于字节流的,而基于字符流的Reader和Writer是后来加入作为补充的。
在这四个抽象类中,InputStream和Reader定义了完全相同的接口:
intread()
intread(charcbuf[])
intread(charcbuf[],intoffset,intlength)
而OutputStream和Writer也是如此:
intwrite(intc)
intwrite(charcbuf[])
intwrite(charcbuf[],intoffset,intlength)
18 用于输入压缩文件格式的ZipInputStream类所属包是___D___。
A、java.util B、java.io C、java.nio D、java.util.zip
解析:
ZipInputStream该对象用于从ZIP压缩文件中创建输入流对象。
对象定义结构:
java.util.zip.ZipInputStream
静态成员变量:
CENATT、CENATX、CENCRC……,这些静态成员变量用于定义在压缩过程中采用的压缩算法。
构造方法:
ZipInputStream(InputStreamin)应用输入流对象创建从ZIP文件中读取数据的输入流对象。
成员方法:
intavailable()判断当前入口指定的压缩原始文件中是否还有未读数据。
voidclose()关闭ZIP输入流对象。
voidcloseEntry()关闭被读取的ZIP入口,并移动到下一压缩原始文件入口。
protectedZipEntrycreateZipEntry(Stringname)利用指定的名称创建ZipEntry对象实例。
ZipEntrygetNextEntry()将输入流对象移动到下一入口对象。
intread(byte[]b,intoff,intlen)从当前ZipEntry中读取字节数组。
longskip(longn)将输入流指定的读取数据位置移动n个字节。
在Swing中用轻量级的构件替代了AWT中的重量级的构件,而且Swing的替代构件中都包含有一些其他的特性。
与AWT构件不同,Swing构件不能直接添加到顶层容器中,它必须添加到一个与Swing顶层容器相关联的内容面板(contentPane)上。
19 查找随机文件的记录时,应使用的方法是___C___。
A、readInt() B、readBytes(intn) C、seek(longl) D、readDouble()
文件操作中经常需要的是随机访问,Java中的RandomAccessFile类提供随机访问文件的功能,其中的seek方法实现了查找随机文件记录的功能,格式如下:
voidseek(longpos);//用于移动文件指针到指定的位置
2008-06-1417:
48
∙评论(已有0条)
∙全文
我的日记2008-06-1417:
46
计算机等级考试二级Java练习题及解析(7)
1 下列关于栈的描述中错误的是___B___。
A、栈是先进后出的线性表 B、栈只能顺序存储 C、栈具有记忆作用
D、对栈的插入与删除操作中,不需要改变栈底指针
解析:
栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。
一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素。
所以栈又称先进后出表(FILO-FirstInLastOut)。
线性表可以顺序存储,也可以链式存储,而栈是一种线性表,也可以采用链式存储结构。
2 对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是___D___。
A、冒泡排序为n/2 B、冒泡排序为n C、快速排序为n D、快速排序为n(n-1)/2
解析:
假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后扫描和n/2遍的从后往前扫描,需要比较次数为n(n-1)/2。
快速排序法的最坏情况比较次数也是n(n-1)/2。
3 对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为__C____。
A、 B、n/2 C、n D、n+1
4 在进行顺序查找过程中,如果线性表中的第一个元素就是被查找元素,则只需做一次比较就查找成功,查找效率最高;但如果被查找的元素是线性表中的最后一个元素,或者被查找的元素根本就不在线性表中,则为了查找这个元素需要与线性表中所有的元素进行比较,这是顺序查找的最坏情况。
所以对长度为n的线性表进行顺序查找,在最坏情况下需要比较n次。
5 模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。
耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。
在程序结构中,各模块的内聚性越强,则耦合性越弱。
一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
6 计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。
软件具有以下特点:
①软件是一种逻辑实体,而不是物理实体,具有抽象性;②软件的生产过程与硬件不同,它没有明显的制作过程;③软件在运行、使用期间不存在磨损、老化问题;④软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致软件移植的问题;⑤软件复杂性高,成本昂贵;⑥软件开发涉及诸多的社会因素。
7 数据独立性是数据库技术的重要特点之一。
所谓数据独立性是指__D____。
A、数据与程序独立存放 B、不同的数据被存放在不同的文件中
C、不同的数据只能被对应的应用程序所使用 D、以上三种说法都不对
解析:
数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。
也就是说,数据的逻辑结构、存储结构与存取方式的改变不会影响应用程序。
选项A、B、C三种说法都是错误的。
8 在读字符文件Employee.dat时,使用该文件作为参数的类是___D___。
A、BufferedReader B、DataInputStream C、DataOutputStream D、FileInputStream
解析:
本题考查的是文件和文件I/O。
BufferedReader用来从字符输入流中读取并缓冲字符,以提高读取字符(或字符数组)的效率。
其构造方法为:
publicBufferedReader(Readerin)
publicBufferedReader(Readerin,intsz)
DataInputStream用来以独立于机器的方式从潜在的输入流中读取Java基本数据类型。
构造方法为:
DataInputStream(InputStreamin)
FileInputStream用来从文件中读取字节。
构造方法为:
FileInputStream(Stringname)
FileInputStream(Filefile)
char类型的取值范围是___B___。
A、2-7~27-1 B、0~216-1 C、-215~215-1 D、0~28-1
9 能够支持javadoc命令的注释语句是______。
A、/**...// B、/*...*/ C、// D、/**...*/
解析:
Java的单行注释符为//,多行注释符有/*...*/和/**...*/(javadoc能够利用该注释符自动生成帮助文档)。
10 下列不是InputStream子类的是__C____。
A、文件输入流FileInputStream B、对象输入流ObjectInputStream
C、字符输入流CharInputStream D、压缩文件输入流ZipInputStream
11 Java中没有CharInputStream流。
下列方法中可以用来创建一个新线程的是___C___。
A、实现java.lang.Runnable接口并重写start()方法
B、实现java.lang.Runnable接口并重写run()方法
C、继承java.lang.Thread类并重写run()方法
D、继承java.lang.Thread类并重写start()方法
解析:
java.lang中的Thread类的典型构造方法为:
publicThread(ThreadGroupgroup,Runnabletarget,Stringname)
接口Runnable定义了run()方法;而Thread类本身也实现了Runnable接口,故创建线程有两种方法:
1、用实现Runnable接口的类的实例作target参数生成Thread类的实例
2、编写继承Thread类的类,并重写(override)run()方法
12 下列关于线程优先级的说法中,正确的是__C____。
A、线程的优先级是不能改变的 B、线程的优先级是在创建线程时设置的
C、在创建线程后的任何时候都可以设置 D、B和C
解析:
Java语言中线程的优先级是用一个介于MIN_PRIORITY和MAX_PRIORITY之间的整数来表示的。
可以在创建线程后的任何时候修改线程的优先级。
13 下列代码中,将引起一个编译错误的行是__D____。
1)publicclassTest{
2)intm,n;
3)publicTest(){}
4)publicTest(inta){m=a;}
5)publicstaticvoidmain(Stringargs[]){
6)Testt1,t2;
7)intj,k;
8)j=0;k=0;
9)t1=newTest();
10)t2=newTest(j,k);
11)}
12)}
A、第3行 B、第5行 C、第6行 D、第10行
解析:
第10行代码中的参数数目比类Test的任何一个构造方法声明的形参都多,因此引起编译错误。
14 阅读下列代码后
publicclassPerson{
intarr[]=newint[10];
publicstaticvoidmain(Stringargs[]){
System.out.println(arr[1]);
}
}
15 正确的说法是__A____。
A、编译时将产生错误 B、编译时正确,运行时将产生错误C、输出为零 D、输出为空
解析:
由于数组arr声明时未用static关键字,而main()方法直接引用arr(而非通过Person的实例引用),将产生"非静态变量不能从静态上下文中引用"(non-staticvariablecannotbereferencedfromastaticcontext)的编译错误。
16 某二叉树中度为2的结点有18个,则该二叉树中有 19 个叶子结点。
解析:
二叉树的性质3:
在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。
本题中度为2的结点数为18,故叶子结点数为18+1=19个。
17 问题处理方案的正确而完整的描述称为 算法 。
18 线程在生命周期中要经历5种状态,分别是新建状态、可运行状态、运行状态、___阻塞或Blocked___状态和终止状态。
19 请阅读下列程序代码,然后将程序的执行结果补充完整。
程序代码:
classthrowsException
{
staticvoidProc(intsel)throwsArithmeticException,ArrayIndexOutOfBoundsException
{
System.out.println("InSituation"+sel);
if(sel==0){
System.out.println("noExceptioncaught");
return;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 试题