计算机二级JAVA15.docx
《计算机二级JAVA15.docx》由会员分享,可在线阅读,更多相关《计算机二级JAVA15.docx(23页珍藏版)》请在冰豆网上搜索。
计算机二级JAVA15
计算机二级JAVA-15
(总分:
74.00,做题时间:
90分钟)
一、{{B}}选择题{{/B}}(总题数:
35,分数:
65.00)
1.下列叙述中正确的是______。
∙A.程序设计时不需要讲究风格
∙B.程序中的注释是可有可无的
∙C.程序只要求机器读懂就可以了,不需要去关心维护的问题
∙D.以上说法都不对
(分数:
2.00)
A.
B.
C.
D. √
解析:
程序设计的风格总体而言应该简单和清晰,程序必须是可以理解的。
程序的正确注释有助于读者理解程序,不是可有可无的。
对程序的要求不仅是可以在机器上执行,给出正确的结果,而且要便于程序的调试和维护,这就要求编写的程序不仅自己看得懂,而且也要让别人能看懂。
2.已知:
int[]a=newint[100];在下列给出的数组元素中,非法的是
∙A.a[0]
∙B.a[1]
∙C.a[99]
∙D.a[100]
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]本题考查Java中数组的概念。
对于数组的掌握,不能仅仅停留在概念上,更多的是能将所学的知识灵活运用。
int[]a=newint[100]定义了一个数组a,含有100个整型元素。
在Java中,数组元素的下标是从0开始的,因此上面定义的数组实际上下标是从0~99,所以选项D错误。
3.将较长的数据类型转换为较短的整数类型,要进行{{U}}{{/U}}。
∙A.类型的自动转换
∙B.类型的强制转换
∙C.无需转换
∙D.无法实现
(分数:
1.00)
A.
B. √
C.
D.
解析:
4.在编译Java程序时,用于指定生成.class文件位置的选项是{{U}}{{/U}}。
∙A.-g
∙B.-d
∙C.-verbose
∙D.-nowarn
(分数:
2.00)
A.
B. √
C.
D.
解析:
5.软件按功能可以分为:
应用软件、系统软件和支撑软件(或工具软件),下面属于系统软件的是______。
∙A.编辑软件
∙B.操作系统
∙C.教务管理系统
∙D.浏览器
(分数:
1.00)
A.
B. √
C.
D.
解析:
[解析]编辑软件和浏览器属于工具软件,教务系统是应用软件。
6.软件生命周期是指{{U}}{{/U}}。
∙A.软件产品从提出、实现、使用维护到停止使用退役的过程
∙B.软件从需求分析、设计、实现到测试完成的过程
∙C.软件的开发过程
∙D.软件的运行维护过程
(分数:
2.00)
A. √
B.
C.
D.
解析:
[解析]软件生命周期(SDLC,SystemsDevelopmentLifeCycle,SDLC)是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段。
7.有如下程序:
publicclassMethLoad
{
publicstaticvoidmain(Stringargs[])
{
MethLoadclassObj=newMethLoad();
classObj.methtest(4);
classObj.methtest(4.0);
}
voidmethtest(doubleD)
{
doublesum=2*d;
System.out.println("Theresultis:
"+sum);
}
voidmethtest(intn)
{
intsum=4*n;
System.out.println("Theresultis:
"+sum);
}
}
程序的运行结果为{{U}}{{/U}}。
∙A.Theresultis:
16Theresultis:
8.0
∙B.Theresultis:
8.0TheresuRis:
16
∙C.Theresultis:
8Theresultis:
16.0
∙D.TheresuRis:
16.0Theresultis:
8
(分数:
1.00)
A. √
B.
C.
D.
解析:
[解析]本题考查对方法重载的掌握程度。
在上面的程序中,类MethLoad中定义了两个具有相同名称methtest的方法,但这两个方法的参数不相同,编译器会根据参数的个数和参数类型宋决定应该调用哪个方法。
在类MethLoad中先声明了一个classObj对象,接着调用classObj的methest方法,只不过是两次调用中参数的类型不同,第1次调用的参数是血类型的4,第2次调用的参数是double类型的4.0,因此要调用相对应的方法。
int类型的方法返回参数值的4倍,而double类型的方法返回参数值的2倍。
8.将一个容器panell放到容器framel中的方法是______。
∙A.framel.insert(panell);
∙B.framel.add(panell);
∙C.framel.addjPanel(panell);
∙D.framel.insertjPanel(panell);
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]将一个容器panell放到容器framel中的方法和容器上添加部件是一样的,使用add()方法即可。
9.数据库设计的概念设计阶段,表示概念结构的常用方法和描述工具是{{U}}{{/U}}。
∙A.层次分析法和层次结构图
∙B.数据流程分析法和数据流程图
∙C.结构分析和模块结构图
∙D.实体联系法和实体联系图
(分数:
2.00)
A.
B.
C.
D. √
解析:
10.Java中用于提供Java语言、Java虚拟机的核心类和接口的包的是______。
∙A.java.io包
∙B.java.applet包
∙C.java.lang包
∙D.包
(分数:
2.00)
A.
B.
C. √
D.
解析:
[解析]java.lang包:
封装编程要用的所有基本类,如Object、Class、System、Integer、Thread等。
对于任何一个Java程序来说,这些类几乎是必不可少的。
java.lang还包含了许多由Java虚拟机发出的异常和一些用于访问系统资源的类,如ClassLoader等。
11.下面是关于类及其修饰符的一些描述,不正确的是{{U}}{{/U}}。
∙A.abstract类只能用来派生子类,不能用来创建abstract类的对象
∙B.abstract不能与final同时修饰一个类
∙C.fmal类不但可以用来派生子类,也可以用来创建final类的对象
∙D.abstract方法必须在abstract类中声明,但abstract类定义中可以没有abstract方法
(分数:
2.00)
A.
B.
C. √
D.
解析:
12.下列方法与Applet显示无关的是{{U}}{{/U}}。
A.paint()B.update()C.draw()D.repaint()
(分数:
2.00)
A.
B.
C. √
D.
解析:
[解析]本题考查Applet的基本概念。
Applet显示相关的方法主要有3个。
paint()方法,具体执行Applet的绘制,定义为:
publicvoidpaint(Graphicsg);update()方法,定义为:
publicvoidupdate(Graphicsg),主要用于更新Applet。
的显示;repaint()方法,定义为:
publicvoidrepaint(),主要用于Applet的重新显示,它调用update()方法实现对Applet的更新。
而draw()方法与显示无关。
故选C。
13.下列关于Applet的叙述中,正确的是
∙A.Applet是Java类,所以可以由JDK中的解释器java直接解释运行
∙B.Applet的主类不一定要定义为java.applet.Applet类或JApplet类的子类
∙C.Applet与Application的主要区别在执行方式上
∙D.Applet不能在浏览器中运行
(分数:
2.00)
A.
B.
C. √
D.
解析:
[解析]本题考查Java中Applet与Application的区别。
这个知识点是考试重点,历次考试都有涉及,务必掌握。
Applet是Java类,但Applet不能由JDK中的解释器java直接运行,要在浏览器或appletviewer中运行,运行过程比Application更复杂,选项A和选项D说法错误。
Applet的主类一定要定义为java.applet.Applet类或JApplet类的子类,选项B说法错误。
Applet与Application的主要区别在执行方式上,Application以main()方法为入口点运行,两者都是通过"javac"命令编译,所以只有选项C说法正确。
14.运行下面的程序时,会产生{{U}}{{/U}}。
publicclassTest{
publicstaticvoidmain(Stringargs[]){
intx=0;
inty=2/x;
intz[]={1,2,4,6};
intp=z[4];
}
}
∙A.ArrayIndexOutOfBoundsExcePtion异常
∙B.NumberFormatException异常
∙C.ArithmeticException异常
∙D.ArithmeticException异常和ArrayIndexOutOfBoundsExcePtion异常
(分数:
2.00)
A.
B.
C. √
D.
解析:
[解析]只能出现ArithmeticException异常,由于在程序第4行出现了这个异常后,程序就跳出,不能继续执行下去,因此不会出现ArrayIndexOutOfBoundsException异常。
15.利用E-R模型进行数据库的概念设计,可以分成3步:
首先设计局部E-R模型,然后把各个局部E-R模型综合成一个全局的模型,最后对全局E-R模型进行{{U}}{{/U}}。
∙A.简化
∙B.结构化
∙C.最小化
∙D.优化
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]本题考核实体联系模型。
在概念设计中按照模块的划分画出每个模块的E-R图,然后把这些图合成一张E-R图作为全局模型,最后应该对全局E-R图进行优化,看看是否有重复和不合理的地方。
不能只是进行简单的合并。
16.下面的{{U}}{{/U}}关键字通常用米对对象加锁,从而使得对对象的访问是排他的。
∙A.serialize
∙B.translent
∙C.synchronized
∙D.static
(分数:
2.00)
A.
B.
C. √
D.
解析:
17.语句publicStringgetEncoding()的功能是{{U}}{{/U}}。
∙A.给当前输入流重做标记
∙B.获得当前字符流所用的编码方式
∙C.基于字节流in生成一个输入字符流对象
∙D.给当前字符输入流设置编码方式
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]getEncoding是InputStreamReader类的方法,其功能是获得当前字符流所用的编码方式。
18.若变量a、i已正确定义,且i已正确赋值,合法的语句是{{U}}{{/U}}。
∙A.a==1
∙B.++i:
∙C.a=a++=5;
∙D.a=int(i);
(分数:
2.00)
A.
B. √
C.
D.
解析:
19.下列包中,包含JoptionPane类的是{{U}}{{/U}}。
∙A.javax.swing
∙B.java.lang
∙C.java.util
∙D.java.applet
(分数:
2.00)
A. √
B.
C.
D.
解析:
[解析]Swing中提供了JOptionPane类来实现类似Windows平台下的MessageBox的功能,利用JOptionPane类中的各个staUc方法来生成各种标准的对话框,实现显示出信息、提出问题、警告、用户输入参数等功能。
且这些对话框都是模式对话框。
20.有以下程序:
main()
{chara[]="abcdefg",b[10]="abcdefg";
printf("%d%d/n",sizeof(a),sizeof(b));
}
执行后输出的结果是{{U}}{{/U}}。
∙A.710
∙B.78
∙C.810
∙D.1010
(分数:
2.00)
A.
B.
C. √
D.
解析:
21.下列关于Applet中的归档文件叙述不正确的是
∙A.使用归档文件的好处是减少HTTP的连接次数,从而大大减少了Applet整体的下载时间
∙B.所有的浏览器都识别相同的归档文件格式和指定归档文件的HTML代码
∙C.归档文件是一种压缩文件,使用它也减少了文件的传输时间
∙D.使用JDK的jar工具创建JAR文件
(分数:
1.00)
A.
B. √
C.
D.
解析:
解析:
不是所有的浏览器都识别相同的归档文件格式和指定归档文件的HTML代码。
22.设有关键码序列(16,9,4,25,15,2,13,18,17,5,8,24),要按关键码值递增的次序排序,采用初始增量为4的希尔排序法,一趟扫描后的结果为{{U}}{{/U}}。
∙A.(15,2,4,18,16,5,8,24,17,9,13,25)
∙B.(2,9,4,25,15,16,13,18,17,5,8,14)
∙C.(9,4,16,15,2,13,18,17,5,8,24,15)
∙D.(9,16,4,25,2,15,13,18,5,17,8,24)
(分数:
2.00)
A. √
B.
C.
D.
解析:
23.J2SE1.4中提供了java.nio包,该包支持的特点有{{U}}{{/U}}。
∙A.文件锁定
∙B.字符及编码、非阻塞I/O
∙C.内存映射技术
∙D.以上特点都正确
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]J2SE1.4提供了一些新的I/0功能,被封装在java.nio包中。
其特点是:
使用内存映射技术、文件锁定、字符及编码、非阻塞I/0等。
24.如果进栈序列为e1、e2、e3、e4、e5,则可能的出栈序列是{{U}}{{/U}}。
∙A.e3、e1、e4、e2、e5
∙B.e5、e2、e4、e3、e1
∙C.e3、e4、e1、e2、e5
∙D.任意顺序
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]根据栈先进后出的特点可知e1肯定是最后出栈的,因此正确答案为选项B。
25.把算法工作量大小和实现算法所需存储单元多少分别称为算法的______和空间复杂度
∙A.可实现性
∙B.时间复杂度
∙C.困难度
∙D.计算有效性
(分数:
2.00)
A.
B. √
C.
D.
解析:
26.J2EE和()语言绑定。
∙A.C
∙B.C++
∙C.Java
∙D.汇编语言
(分数:
2.00)
A.
B.
C. √
D.
解析:
[解析]J2EE的基础是J2SE,以Java为平台;而C语言用于ODBCAPI。
由于两者不兼容,SUN公司才提出了JDBC作为Java几个平台与数据库的标准连接。
27.已知一棵二叉树的后序遍历序列是dabec,中序遍历序列是debac,则它的前序遍历序列是{{U}}{{/U}}。
∙A.acbed
∙B.decab
∙C.deabc
∙D.cedba
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]依据后序遍历序列可确定根结点为c,由中序遍历序列可知其左子树由deba构成,右子树为空;又由左子树的后序遍历序列可知其根结点为e,由中序遍历序列可知其左子树为d,右子树由ba构成,如图所示。
由此可知该二叉树的前序遍历序列为选项D。
[*]
28.下列语句中正确的是{{U}}{{/U}}。
∙A.charc='ccc';
∙B.floatf=0.73;
∙C.longl=xffff;
∙D.doubled=0.6E-2;
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]char类型数据为单引号括起的一个字符,所以A错误。
小数0.73在Java中默认为double类型,它的精度比float类型高,只有通过强制类型转换才能赋给float类型变量,所以B错误。
整型常数的十六进制表示是以0x或0X开头,而不是以x开头,所以C错误。
0.6E-2是0.6×10-2的科学计数法表示,正确。
29.有以下程序:
voidmain()
{charstr[][10]={"China","Beijing"},*p=str[0];
printf("%s/n",p+10);
}
程序运行后输出的结果是{{U}}{{/U}}。
∙A.China
∙B.Beijing
∙C.ng
∙D.ing
(分数:
2.00)
A.
B. √
C.
D.
解析:
30.设inti=2,j=1,k=3,则表达式i&&(i+j)&k|i+j的值是{{U}}{{/U}}。
∙A.0
∙B.2
∙C.1
∙D.3
(分数:
2.00)
A.
B.
C. √
D.
解析:
31.阅读下列代码段。
classTestimplementsRunnable{
publicintrun(){
inti=0;
while(true){
i++;
System.out.println('i='+i);
}
}
上述代码的编译结果是{{U}}{{/U}}。
∙A.程序通过编译并且run()方法可以正常输出递增的i值
∙B.程序通过编译,调用run()方法将不显示任何输出
∙C.程序不能通过编译,因为while的循环控制条件不能为“true”
∙D.程序不能通过编译,因为run()方法的返回值类型不是void
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]while的循环控制条件可以为true,run方法没有返回值,所以不能是int型,故此程序不能通过编译。
32.若程序中有宏定义行:
#defineN100,则以下叙述中正确的是{{U}}{{/U}}。
∙A.宏定义行中定义了标识符N的值为整数100
∙B.在编译程序对C源程序进行预处理时用100替换标识符N
∙C.对C源程序进行编译时用100替换标识符N
∙D.在运行时用100替换标识符N
(分数:
2.00)
A.
B. √
C.
D.
解析:
33.下面几种调试方法中不适合调试大规模程序的是{{U}}{{/U}}。
∙A.强行排错法
∙B.回溯法
∙C.原因排除法
∙D.静态调试
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]本题考查对几种调试方法的掌握。
其中,强行排错法是最常用也是最低效的,主要思想是通过计算机找错,适合调试大规模程序。
回溯法是从出现错误征兆处开始,人工沿控制流程往回追踪,直至发现出错的根源。
这是在小程序中常用的一种有效的调试方法。
程序变大后,可能的回溯路线显著增加,以致人工进行完全回溯变得不可能。
原因排除法是靠演绎、归纳以及二分法来实现的,适合调试大规模程序。
静态调试也是‘种调试手段,主要是指通过人的思维来分析源程序代码和排错。
34.下列属于合法的Java标识符的是{{U}}{{/U}}。
∙A._cat
∙B.5books
∙C.+static
∙D.-3.14159
(分数:
2.00)
A. √
B.
C.
D.
解析:
[解析]本题考查Java标识符的命名规则,是考试的重点内容。
Java中标识符的命名规则是标识符以字母、下画线或美元符作为首字符的字符串序列;标识符是区分大小写的;标识符的字符数没有限制。
由此可见,Java中标识符不能以数字开头,所以选项B错误,不能以“+”开头,选项C错误,不能以“-”开头,选项D错误,只有选项A是正确答案。
35.阅读下列代码段,选出该代码段的正确文件名{{U}}{{/U}}。
classA
{
voidmethod1()
{
System.out.println("method1inclassA");
}
}
publicclassB
{
voidmethod2()
{
System.out.println("method2inclassB");
}
publicstaticvoidmain(Stringargs[])
{
System.out.println("maininclassB");
}
}
A)A.javaB)
∙A.class
∙C.
∙B.class
∙D.B.java
(分数:
1.00)
A.
B.
C.
D. √
解析:
[解析]Java源程序文件是以Java为后缀的,Java字节码文件以.class为后缀,而且Java源文件中只能有一个public类,该类的名字为源文件名,程序段中类B是以public修饰的,因此源程序文件名为Biava。
二、{{B}}填空题{{/B}}(总题数:
6,分数:
9.00)
36.下列软件系统结构图的宽度为{{U}}{{U}}{{/U}}{{/U}}。
(分数:
1.00)
填空项1:
__________________ (正确答案:
3)
解析:
[解析]题目中的图形是倒置的树状结构,这是用层次图表示的软件结构。
结构图中同一层次模块的最大模块个数称为结构的宽度,它表示控制的总分布。
根据上述结构图宽度的定义,从图中可以看出,第二层的模块个数最多,即为3。
因此,这个系统结构图的宽度就