1、二级 JAVA笔试-346 及答案解析(总分:83.00,做题时间:90 分钟)一、选择题(总题数:35,分数:62.00)1.若定义 int a=2,b=2,下列表达式中值不为 4的是( )。Aa*(+b) Ba*(b+)Ca+b Da*b(分数:2.00)A.B.C.D.2.在结构化程序设计中,使用 goto语句的原则是( )。A) 限制 B) 鼓励C) 禁止 D) 滥用(分数:1.00)A.B.C.D.3.下面( )不是 InputStream类中的方法。Aint read(byte) Bvoid flush()Cvoid close() Dint available()(分数:2.00
2、)A.B.C.D.4.Character流与 Byte流的区别是( )。A) 每次读入的字数相同 B) 前者带有缓冲,后者没有C) 前者是块读写,后者是字节读写 D) 二者没有区别,可以互换使用(分数:1.00)A.B.C.D.5.阅读下面代码fi(x=0) System.out.println(“冠军“);else if (x-3) System.out.println(“亚军“); else System.out.println(“季军“);若要求打印字符串“季军”,则变量 x的取值范围是( )。Ax=0 static int c=3;b+;c+;return(a+b+c);main()i
3、nt a=2,1;for(i=0;i3;i+)printf(“%4d“,f(a);A789 B678C567 D876(分数:2.00)A.B.C.D.14.为了提高测试的效率,应该( )。A随机选取测试数据B取一切可能的输入数据作为测试数据C在完成编码以后制定软件的测试计划D集中对付那些错误群集的程序(分数:2.00)A.B.C.D.15.下列说法不正确的是( )。AJava 语言不支持分布式计算BJava 是跨平台的语言CJava 是面向对象语言DJava 是具有多线程并发机制的语言(分数:2.00)A.B.C.D.16.以下不能将 s所指字符串正确复制到 t所指存储空间的是( )。Awh
4、ile(*t=*s)t+;s+;Bfor(i=0;t(i=si;i+);Cdo*t+=*s+;)while(*s);Dfor(i=0,j=0;ti+=sj+;);(分数:2.00)A.B.C.D.17.所谓关系是指( )。A) 各条记录中的数据彼此有一定的关系B) 一个数据库文件与另一个数据库文件之间有一定的关系C) 数据模型符合一定条件的二维表格式D) 数据库中各个字段之间彼此有一定关系(分数:1.00)A.B.C.D.18.Java语言中数据类型之间的自动类型转换是由优先关系从低级数据类型转换成高级数据类型,下面选项中自动类型转换优先级由低到高排列正确的是A) charlongintdou
5、blefloatB) charintlongdoublefloatC) charintlongfloatdoubleD) charintfloatdoublelong(分数:1.00)A.B.C.D.19.下列哪个能正确表示 Java语言的一个 double型常量? ( )A) Float.MIN VALUE B) 1.8e-6FC) 2.0 D) abcd(分数:2.00)A.B.C.D.20.下列程序的功能是将一个整数数组写入二进制文件,在程序的下划线处应填入的选项是( )。importjava.io.*;publicclassXieShuzupublicstaticvoidmain(St
6、ringa)intmyArray=(10,20,30,40);tryDataOutputStreamdos=newDataOu中 utStream(newFileOutputStream(“ints.dat“);for(inti=O;imyArray.length;i+)dos._(myArray);dos.close();System.out.println(“已经将整数数组写入二进制文件:ints.dat“):catch(IOExceptionioe)System.out.println(“IOExcepr_on“);AwriteArray BwriteByteCwriteInt Dwri
7、teDouble(分数:2.00)A.B.C.D.21.J2SDK基本命令中能生成 C语言头文件的命令是A) javah B) javap C) jar D) java(分数:2.00)A.B.C.D.22.下面程序段的输出结果为( )。mblic class Testpublic static void main(String args)boolean a,b,c;a=(35);b=(a=true);System.out.println(“a=“+a+“b=“+b);c=(b=false);System.out.println(“b=“+b+“c=“+c);Aa=true b=falseb=
8、true c=falseBa=true b=falseb=true c=trueCa=true b=trueb=true c=falseDa=false b=falseb=true c=false(分数:2.00)A.B.C.D.23.Applet的运行过程要经历 4个步骤,其中不是运行步骤的是( )。A浏览器加载指定 URL中 HTML文件 B浏览器显示 HTML文件C浏览器加载 HTML文件中指定的 Applet类 D浏览器中的 Java运行环境运行该 Applet(分数:2.00)A.B.C.D.24.下列代码的执行结果是( )。public,class Test1public stat
9、ic void main(String args)System.out.println(5/2);A2.5 B2.0C2.50 D2(分数:2.00)A.B.C.D.25.为了区分类中重载的同名的不同方法,要求( )。A采用不同的形式参数列表B使用不同的参数名C修改访问权限D返回值的数据类型不同(分数:2.00)A.B.C.D.26.下列叙述中正确的是A) 线性链表中的各元素在存储空间中的位置必须是连续的B) 线性链表中的表头元素一定存储在其他元素的前面C) 线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D) 线性链表中的各元素在存储空间中的位置不一定是
10、连续的,且各元素的存储顺序也是任意的(分数:2.00)A.B.C.D.27.下列( )内容是异常的含义。A程序的语法错B程序编译或运行中所发生的异常事件C程序预先定义好的异常事件D程序编译错误(分数:1.00)A.B.C.D.28.下面的程序执行后,屏幕上显示的应是( )。Pubhc class Exampublic static void main(String args)charchar1=t,e,s,t;charchat2=t,e,s,t,1Sbing s1=new String(char1);String s2=new String(char2,0,4);System.out.prin
11、tln(s1.equals(s2);Atrue BfalseCtest D编译错误(分数:2.00)A.B.C.D.29.下列说法中,错误的一项是_。A线程一旦创建,则立即自动运行B线程创建后需要调用 start()方法,将线程置于可运行状态C线程处于可运行状态,意味着它可以被调度D调用线程的 start()方法后,线程也不一定能立即执行(分数:2.00)A.B.C.D.30.Applet是一种特殊的( )。A应用程序BHTMLC脚本语言D图形软件(分数:1.00)A.B.C.D.31.下列数据结构中,能用二分法进行查找的是A) 顺序存储的有序线性表 B) 线性链表C) 二叉链表 D) 有序线
12、性链表(分数:2.00)A.B.C.D.32.下面( )不是 InputStream类中的方法。Aint read(byte) Bvoid flush()Cvoid close()Dint available()(分数:2.00)A.B.C.D.33.执行下列语句后,i 和 n的值为 ( )int i10;int ni+%5;A) 10,0 B) 10,1C) 11,0 D) 11,1(分数:1.00)A.B.C.D.34.J2EE和( )语言绑定。AC BC+CJava D汇编语言(分数:2.00)A.B.C.D.35.Socket的工作流程是打开连接到 Socket的输入/输出按某个协议对
13、 Socket进行读/写操作创建 Socket关闭 SocketA) B) C) D) (分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:21.00)36.软件工程研究的内容主要包括: 1 技术和软件工程管理。(分数:1.00)填空项 1:_37.Java中,新建的线程调用 start1方法,如 mythread.start2,将使线程的状态从 New(新建状态)转换为 3。(分数:2.00)填空项 1:_38.按照线程的模型,一个具体的线程也是由虚拟的 CPU、代码与数据组成,其中代码与数据构成了 1,线程的行为由它决定。(分数:1.00)填空项 1:_39.一个类只有实现了
14、 1 接口,它的对象才是可串行化的。(分数:2.00)填空项 1:_40.若按功能划分,软件测试的方法通常分为白盒测试方法和 1 测试方法。(分数:2.00)填空项 1:_41.数据结构包括数据的逻辑结构、数据的 1 以及对数据的操作运算。(分数:1.00)填空项 1:_42.结构化程序设计所规定的 3种基本控制结构是顺序结构、选择结构和 1。(分数:1.00)填空项 1:_43.在 Java中,字符是作为 1 码来处理的,每个字符用 2个字节来表示。(分数:1.00)填空项 1:_44.Java线程组把一个线程看做一个 1 进行同一处理。(分数:1.00)填空项 1:_45.在实现 Seri
15、alizable的类中,静态变量和使用 1 关键字可以使某些数据不被串行化。(分数:1.00)填空项 1:_46.方法 1 将对象的 wait pool中的所有线程都移到 lock pool中。(分数:2.00)填空项 1:_47.下面程序分别用 while、do-while 和 for语句实现 110 累计求和。请在横线处填入适当内容完成程序。public class Sumpublic static void main(String args)Systemoutprintln(“/n*while 循环*“):int n=10,sum=0;while(_)sun+=n:n-;Systemou
16、tprintln(“sum is“+sum);Systemoutprintln(“/n*do_while 循环*“);n=0;sum=0;dosum+=n;n+;while( );Systemoutprintln(“sam is“+sum);Systemoutprintln(“/n*for 循环*“):sum=0;for(int i=1;_i+)sum+=i;Systemoutprintln(“sum is“+sum);(分数:1.00)填空项 1:_48.声明异常抛出用 1 子句来完成声明,它包含在方法的声明之中。(分数:2.00)填空项 1:_49.在面向对象的程序设计中,类描述的是具有相
17、似性质的一组 1。(分数:1.00)填空项 1:_50.Java源文件中最多只能有一个 1 类,其他类的个数不限。(分数:2.00)填空项 1:_二级 JAVA笔试-346 答案解析(总分:83.00,做题时间:90 分钟)一、选择题(总题数:35,分数:62.00)1.若定义 int a=2,b=2,下列表达式中值不为 4的是( )。Aa*(+b) Ba*(b+)Ca+b Da*b(分数:2.00)A. B.C.D.解析:解析 +b,先自加,再计算,即 a*(+b)等价于 b=b+1;a*b。2.在结构化程序设计中,使用 goto语句的原则是( )。A) 限制 B) 鼓励C) 禁止 D) 滥
18、用(分数:1.00)A. B.C.D.解析:解析 在块和进程的非正常出口处往往需要用 goto语句,使用 goto语句会使程序的执行效率提高,但它易造成程序的混乱,程序的质量与 goto语句的数量成反比。结构化程序设计的关键是提高程序的清晰性,因此在结构化程序设计中使用 goto语句的原则是限制。3.下面( )不是 InputStream类中的方法。Aint read(byte) Bvoid flush()Cvoid close() Dint available()(分数:2.00)A.B. C.D.解析:4.Character流与 Byte流的区别是( )。A) 每次读入的字数相同 B) 前
19、者带有缓冲,后者没有C) 前者是块读写,后者是字节读写 D) 二者没有区别,可以互换使用(分数:1.00)A.B.C. D.解析:解析 本题主要考查 Java语言的 I/O流知识点。选项 A错误,前者是以字符为单位的块读写,后者是以字节为单位的读写,一般一个字符占两个字节,所以它们每次读入的字符数不相等;选项 B错误,两者都不带有缓冲:选项 C正确。前者是以字符为单位的块读写,后者是以字节为单位的读写;选项 D错误,字符流是特殊类型的字节流,它仅仅处理文本数据,而字节流是一种较通用的流,它可以用于任何文件形式的流,故此选项中说它们没有区别,可以互换使用是不正确的。故本题答案是 C。5.阅读下面
20、代码fi(x=0) System.out.println(“冠军“);else if (x-3) System.out.println(“亚军“); else System.out.println(“季军“);若要求打印字符串“季军”,则变量 x的取值范围是( )。Ax=0 static int c=3;b+;c+;return(a+b+c);main()int a=2,1;for(i=0;i3;i+)printf(“%4d“,f(a);A789 B678C567 D876(分数:2.00)A. B.C.D.解析:14.为了提高测试的效率,应该( )。A随机选取测试数据B取一切可能的输入数据作
21、为测试数据C在完成编码以后制定软件的测试计划D集中对付那些错误群集的程序(分数:2.00)A.B.C.D. 解析:15.下列说法不正确的是( )。AJava 语言不支持分布式计算BJava 是跨平台的语言CJava 是面向对象语言DJava 是具有多线程并发机制的语言(分数:2.00)A. B.C.D.解析:16.以下不能将 s所指字符串正确复制到 t所指存储空间的是( )。Awhile(*t=*s)t+;s+;Bfor(i=0;t(i=si;i+);Cdo*t+=*s+;)while(*s);Dfor(i=0,j=0;ti+=sj+;);(分数:2.00)A.B.C. D.解析:17.所谓关
22、系是指( )。A) 各条记录中的数据彼此有一定的关系B) 一个数据库文件与另一个数据库文件之间有一定的关系C) 数据模型符合一定条件的二维表格式D) 数据库中各个字段之间彼此有一定关系(分数:1.00)A.B.C. D.解析:解析 每个关系都类似一张表,或者在某种程度上类似一个“平面”记录文件。18.Java语言中数据类型之间的自动类型转换是由优先关系从低级数据类型转换成高级数据类型,下面选项中自动类型转换优先级由低到高排列正确的是A) charlongintdoublefloatB) charintlongdoublefloatC) charintlongfloatdoubleD) char
23、intfloatdoublelong(分数:1.00)A.B.C. D.解析:解析 考查自动转换的优先关系。解题要点 自动类型转换是按优先关系从低级数据转换成高级数据,规定的优先次序是charintlongfloatdouble。错解分析 对自动类型转换的优先关系不了解。19.下列哪个能正确表示 Java语言的一个 double型常量? ( )A) Float.MIN VALUE B) 1.8e-6FC) 2.0 D) abcd(分数:2.00)A.B.C. D.解析:解析 实型常量如果数字后没有任何字母, Java 默认的是 double型;float 型数据必须在数字后加 f或 F;Flo
24、at.MIN VALUE 属于常值变量,代表 float型数据中的最小值。20.下列程序的功能是将一个整数数组写入二进制文件,在程序的下划线处应填入的选项是( )。importjava.io.*;publicclassXieShuzupublicstaticvoidmain(Stringa)intmyArray=(10,20,30,40);tryDataOutputStreamdos=newDataOu中 utStream(newFileOutputStream(“ints.dat“);for(inti=O;imyArray.length;i+)dos._(myArray);dos.close
25、();System.out.println(“已经将整数数组写入二进制文件:ints.dat“):catch(IOExceptionioe)System.out.println(“IOExcepr_on“);AwriteArray BwriteByteCwriteInt DwriteDouble(分数:2.00)A.B.C. D.解析:解析 向流中写入整数数组,用 WrinteInt方法。21.J2SDK基本命令中能生成 C语言头文件的命令是A) javah B) javap C) jar D) java(分数:2.00)A. B.C.D.解析:解析 本题考查 J2SDK操作的基本命令。jav
26、ah命令:生成 C语言头文件和 Stub文件,javah 从 Java类生成 C头文件和 C源文件。javap命令:Java 类文件解析器,用于解析类文件。jar命令:Java 类文件归档命令。java命令:Java 语言解释器,解释运行 Java字节码。因此,本题的四个选项中,只有选项 A的答案是正确的。22.下面程序段的输出结果为( )。mblic class Testpublic static void main(String args)boolean a,b,c;a=(35);b=(a=true);System.out.println(“a=“+a+“b=“+b);c=(b=false
27、);System.out.println(“b=“+b+“c=“+c);Aa=true b=falseb=true c=falseBa=true b=falseb=true c=trueCa=true b=trueb=true c=falseDa=false b=falseb=true c=false(分数:2.00)A.B.C. D.解析:23.Applet的运行过程要经历 4个步骤,其中不是运行步骤的是( )。A浏览器加载指定 URL中 HTML文件 B浏览器显示 HTML文件C浏览器加载 HTML文件中指定的 Applet类 D浏览器中的 Java运行环境运行该 Applet(分数:2.
28、00)A.B. C.D.解析:解析 Applet 的运行过程要经历 4个步骤:浏览器加载指定 URL中的 HTML文件;浏览器解析 HTML文件;浏览器加载 HTML文件中指定的 Applet类:浏览器中的 Java运行环境运行该Applet;由此可知 B选项中内容不是其步骤之一。24.下列代码的执行结果是( )。public,class Test1public static void main(String args)System.out.println(5/2);A2.5 B2.0C2.50 D2(分数:2.00)A.B.C.D. 解析:25.为了区分类中重载的同名的不同方法,要求( )。
29、A采用不同的形式参数列表B使用不同的参数名C修改访问权限D返回值的数据类型不同(分数:2.00)A. B.C.D.解析:26.下列叙述中正确的是A) 线性链表中的各元素在存储空间中的位置必须是连续的B) 线性链表中的表头元素一定存储在其他元素的前面C) 线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D) 线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的(分数:2.00)A.B.C.D. 解析:解析 在线性表的链式存储结构中,各数据结点的存储序号不连续,且各结点在存储空间中的位置关系与逻辑关系也不一致。在线性链表中,各数据元
30、素之间的前后件关系是由各结点的指针域来指示的。所以,选项 D正确。27.下列( )内容是异常的含义。A程序的语法错B程序编译或运行中所发生的异常事件C程序预先定义好的异常事件D程序编译错误(分数:1.00)A.B. C.D.解析:28.下面的程序执行后,屏幕上显示的应是( )。Pubhc class Exampublic static void main(String args)charchar1=t,e,s,t;charchat2=t,e,s,t,1Sbing s1=new String(char1);String s2=new String(char2,0,4);System.out.pr
31、intln(s1.equals(s2);Atrue BfalseCtest D编译错误(分数:2.00)A. B.C.D.解析:29.下列说法中,错误的一项是_。A线程一旦创建,则立即自动运行B线程创建后需要调用 start()方法,将线程置于可运行状态C线程处于可运行状态,意味着它可以被调度D调用线程的 start()方法后,线程也不一定能立即执行(分数:2.00)A. B.C.D.解析:30.Applet是一种特殊的( )。A应用程序BHTMLC脚本语言D图形软件(分数:1.00)A. B.C.D.解析:31.下列数据结构中,能用二分法进行查找的是A) 顺序存储的有序线性表 B) 线性链表
32、C) 二叉链表 D) 有序线性链表(分数:2.00)A. B.C.D.解析:二分查找只适用于顺序存储的有序表。在此所说的有序表是指线性表中的元素按值非递减排列(即从小到大,但允许相邻元素值相等)的。选项 A正确。32.下面( )不是 InputStream类中的方法。Aint read(byte) Bvoid flush()Cvoid close()Dint available()(分数:2.00)A.B. C.D.解析:解析 本题考查 InputStrearn类中的方法。InputStrearn 类中包括的主要方法有:int rcad(byte),该方法从输入流中读多字节,存入字节数组;vo
33、id close()方法用来关闭输入流,并释放相关资源;int available()方法返回输入流中可读字节数;long skip(longn)方法从输入流中最多向后跳 n字节,返回实际跳过字节数。选项 B中 voidflulsh()并不属于 InputStream类中的方法。33.执行下列语句后,i 和 n的值为 ( )int i10;int ni+%5;A) 10,0 B) 10,1C) 11,0 D) 11,1(分数:1.00)A.B.C. D.解析:解析 本题考查了+和%两个运算符。+运算符在前是先使用操作数的值参与表达式的计算,然后将操作数的值加 1;%是求余。该题参与运算的 i的
34、值是 10,而运算完后 i的值就变为 11,n=0。所以本题选 C。34.J2EE和( )语言绑定。AC BC+CJava D汇编语言(分数:2.00)A.B.C. D.解析:解析 J2EE 的基础是 J2SE,以 Java为平台;而 C语言用于 ODBCAPI。由于两者不兼容,SUN 公司才提出了 JDBC作为 Java几个平台与数据库的标准连接。35.Socket的工作流程是打开连接到 Socket的输入/输出按某个协议对 Socket进行读/写操作创建 Socket关闭 SocketA) B) C) D) (分数:2.00)A.B.C. D.解析:解析 Socket 工作过程分为四步分别
35、是创建 Socket,打开连接到 Socket的输入/输出,按某个协议对 Socket进行读/写操作,关闭 Socket。二、填空题(总题数:15,分数:21.00)36.软件工程研究的内容主要包括: 1 技术和软件工程管理。(分数:1.00)填空项 1:_ (正确答案:软件开发)解析:解析:基于软件工程的目标,软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境,其主体内容是软件开发方法学。软件工程管理包括:软件管理学、软件工程经济学,以及软件心理学等内容。37.Java中,新建的线程调用 start1方法,
36、如 mythread.start2,将使线程的状态从 New(新建状态)转换为 3。(分数:2.00)填空项 1:_ (正确答案:可运行状态)解析:38.按照线程的模型,一个具体的线程也是由虚拟的 CPU、代码与数据组成,其中代码与数据构成了 1,线程的行为由它决定。(分数:1.00)填空项 1:_ (正确答案:线程体)解析:39.一个类只有实现了 1 接口,它的对象才是可串行化的。(分数:2.00)填空项 1:_ (正确答案:Sendizable)解析:40.若按功能划分,软件测试的方法通常分为白盒测试方法和 1 测试方法。(分数:2.00)填空项 1:_ (正确答案:黑盒或黑箱)解析:解析
37、 软件测试的方法分为白箱测试方法和黑箱测试方法。白箱测试是根据对程序内部逻辑结构的分析来选取测试用例,白箱测试用例的设计准则有:语句覆盖、分支覆盖、条件覆盖和组合条件覆盖;黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑箱测试有等价分类法、边值分析法、因果图法和错误推测法。41.数据结构包括数据的逻辑结构、数据的 1 以及对数据的操作运算。(分数:1.00)填空项 1:_ (正确答案:存储结构)解析:42.结构化程序设计所规定的 3种基本控制结构是顺序结构、选择结构和 1。(分数:1.00)填空项 1:_ (正确答案:循环结构)解析:解析 任何一个大型的
38、程序都由 3种基本结构所组成,由这些基本结构顺序地构成了一个结构化的程序。事实上,程序设计语言仅仅使用顺序、选择和循环 3种基本结构就足以表达出各种其他形式结构的程序设计方法。43.在 Java中,字符是作为 1 码来处理的,每个字符用 2个字节来表示。(分数:1.00)填空项 1:_ (正确答案:nicode)解析:44.Java线程组把一个线程看做一个 1 进行同一处理。(分数:1.00)填空项 1:_ (正确答案:对象)解析:解析 在 Java程序中,每一个线程都属于一个线程组,可以使用统一的方法调用、启动或者挂起线程组内的所有线程。45.在实现 Serializable的类中,静态变量
39、和使用 1 关键字可以使某些数据不被串行化。(分数:1.00)填空项 1:_ (正确答案:transient)解析:解析 静态变量和使用 transient关键字可以使某些数据不被串行化,这样可以使这些敏感数据不能写入流中,也不会通过串行化进行恢复。从而提高了安全性。46.方法 1 将对象的 wait pool中的所有线程都移到 lock pool中。(分数:2.00)填空项 1:_ (正确答案:notifyAll-|_|-)解析:解析 notify-|_|-方法是将对象的 wait pool 中一个线程移到 lock pool中, notifyAll-|_|-则将所有的线程都做这样的一个转移
40、。47.下面程序分别用 while、do-while 和 for语句实现 110 累计求和。请在横线处填入适当内容完成程序。public class Sumpublic static void main(String args)Systemoutprintln(“/n*while 循环*“):int n=10,sum=0;while(_)sun+=n:n-;Systemoutprintln(“sum is“+sum);Systemoutprintln(“/n*do_while 循环*“);n=0;sum=0;dosum+=n;n+;while( );Systemoutprintln(“sam
41、is“+sum);Systemoutprintln(“/n*for 循环*“):sum=0;for(int i=1;_i+)sum+=i;Systemoutprintln(“sum is“+sum);(分数:1.00)填空项 1:_ (正确答案:n0 n=10 I=10;)解析:48.声明异常抛出用 1 子句来完成声明,它包含在方法的声明之中。(分数:2.00)填空项 1:_ (正确答案:throws)解析:49.在面向对象的程序设计中,类描述的是具有相似性质的一组 1。(分数:1.00)填空项 1:_ (正确答案:对象)解析:50.Java源文件中最多只能有一个 1 类,其他类的个数不限。(分数:2.00)填空项 1:_ (正确答案:public)解析: