全国计算机等级考试二级JAVA笔试试题及答案_第1页
全国计算机等级考试二级JAVA笔试试题及答案_第2页
全国计算机等级考试二级JAVA笔试试题及答案_第3页
全国计算机等级考试二级JAVA笔试试题及答案_第4页
全国计算机等级考试二级JAVA笔试试题及答案_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全国计算机等级考试二级JAVA笔试试题及答案单项选择题(每小题1分,共40分)下列关于算法复杂度叙述正确的是______。最坏情况下的时间复杂度一定高于平均情况的时间复杂度时间复杂度与所用的计算工具无关对同一个问题,不同的算法的时间复杂度肯定相同空间复杂度与算法运行输出的数据量无关答案:B解析:算法的时间复杂度是指执行算法所需要的计算工作量,仅与问题规模相关,与计算工具无关,B正确;最坏情况时间复杂度可以等于平均情况时间复杂度,例如有序数组的顺序查找,A错误;不同算法解决同一个问题,时间复杂度可以差异很大,例如冒泡排序和快速排序,C错误;空间复杂度衡量算法运行需要的内存空间,与输入输出数据量直接相关,D错误。设栈的存储空间为S(1:50),初始状态为top=0。现经过一系列正常的入栈与退栈操作后,top=30,则栈中的元素个数为______。30B)29C)20D)19答案:A解析:该栈的初始定义中,栈空时top指向栈顶存储位置上方,每入栈一个元素top加1,因此top的值就等于当前栈中元素的个数,top=30时元素个数为30。下列叙述中正确的是______。循环队列是队列的一种链式存储结构循环队列是一种逻辑结构循环队列是队列的顺序存储结构循环队列是非线性结构答案:C解析:循环队列是为了解决顺序队列的“假溢出”问题,用顺序存储结构实现的环形队列,属于线性结构,是存储结构不是逻辑结构,因此C正确。某二叉树的前序遍历序列为ABCDE,中序遍历序列为CBADE,则后序遍历序列为______。CBADEB)EDABCC)CBEDAD)CBAED答案:C解析:前序遍历第一个结点为根结点,因此根结点为A;根据中序遍历,A左侧的CB为左子树结点,右侧的DE为右子树结点;左子树前序遍历第一个结点为B,因此B为左子树根,中序中C在B左侧,因此C为B的左孩子,B无右孩子;右子树前序第一个结点为D,D为右子树根,中序中E在D右侧,因此E为D的右孩子;后序遍历规则为左子树→右子树→根结点,最终遍历顺序为CBEDA,即CBEDA。面向对象方法中,实现对象的数据和操作结合于统一体中的是______。结合B)封装C)隐藏D)抽象答案:B解析:封装是面向对象的核心特性之一,将对象的属性(数据)和行为(操作)绑定为一个统一体,同时隐藏内部实现细节,仅对外暴露访问接口,因此选B。Java语言的特点不包括下列哪项______。跨平台性B)面向对象C)指针操作D)多线程答案:C解析:Java为了保证内存安全,取消了指针操作,由JVM的垃圾回收机制自动管理内存,因此指针操作不是Java的特点,选C。下列关于Java语言中关键字的说法,正确的是______。goto是Java中的保留关键字,未投入使用sizeof是Java的合法关键字,用于获取数据类型长度标识符可以以关键字开头,只要不全是关键字即可true是Java的字面量,不是关键字答案:A解析:Java规范保留了goto和const两个关键字,但是未在语法中使用,A正确;Java没有sizeof关键字,基本数据类型的长度固定,不需要额外关键字获取,B错误;Java标识符不能以关键字开头,也不能将关键字作为标识符,C错误;true、false、null都是Java的合法关键字,D错误。下列选项中,属于Java合法标识符的是______。123javaB)_nameC)classD)-num答案:B解析:Java标识符命名规则为:以字母、下划线()、美元符($)开头,后续可组合使用数字、上述三类字符,不能为关键字,也不能包含特殊符号;A以数字开头不合法,C是关键字不合法,D包含减号不合法,仅B符合规则。

9.下列关于Java基本数据类型的说法,错误的是_____。boolean类型只有true和false两个取值char类型占2个字节,采用Unicode编码存储字符long类型占8个字节,取值范围是−263float类型占4个字节,double占8个字节,float精度高于double答案:D解析:double是双精度浮点数,提供64位存储,精度远高于32位的float类型,D描述错误,其余选项均正确。执行下列代码段后,变量i的值是______。

bytei=127;

i+=1;128B)-128C)编译错误D)-127答案:B解析:byte是8位有符号整数,取值范围为-128~127,127的二进制是01111111,加1后变为10000000,对应有符号byte的取值就是-128;且i+=1是隐式强制类型转换,不会触发编译错误,因此选B。下列语句中,能够正确创建一个长度为10的int型数组的是______。intarr[]=newint[10];B)intarr[10]=newint[];intarr[]=newint(10);D)int[10]arr=newint[];答案:A解析:Java数组创建的标准语法为类型[]数组名=new类型[长度];,类型数组名[]=new类型[长度];也符合语法规范,仅A符合语法要求,其余选项分别存在长度位置错误、括号类型错误等问题。下列关于Java面向对象特性的描述,错误的是______。Java是纯面向对象语言,所有对象都继承自Object类多态包括编译时多态和运行时多态,方法重载属于编译时多态封装的主要作用是隐藏内部实现,对外暴露访问接口抽象类可以实例化,接口不能实例化答案:D解析:抽象类包含未实现的抽象方法,接口所有方法都是抽象(默认方法除外),二者都不能直接实例化,抽象类需要子类实现所有抽象方法后才能通过子类实例化,因此D描述错误,其余选项均正确。下列关于修饰符的使用,错误的是______。abstract类不能被实例化abstract方法必须定义在abstract类或接口中abstract方法可以有方法体static方法不能调用非static成员变量答案:C解析:抽象方法只有方法声明,没有方法体,方法体需要由子类实现,因此C描述错误;其余选项:抽象类没有完整实现,不能实例化,A正确;抽象方法只能定义在抽象类或接口中,B正确;static方法属于类,没有对象实例上下文,不能访问非static的对象成员,D正确。下列代码运行后的输出结果是______。

publicclassTest{

publicstaticvoidmain(String[]args){

inta=5,b=3;

System.out.println(a+=a*=(a-b));

}

}16B)20C)25D)10答案:B解析:赋值类运算符的结合性为从右向左,计算顺序为:先算a-b=2,再算a*=2,原a为5,计算后a变为10,再算a+=10,a最终变为20,因此输出20。下列代码运行后输出结果是______。

publicclassTest{

static{

intx=5;

}

staticintx;

publicstaticvoidmain(String[]args){

System.out.println(x);

}

}编译错误B)0C)5D)不确定答案:B解析:静态代码块中的intx=5是局部变量,作用域仅在静态代码块内部,不会修改静态成员变量x;静态成员变量x属于类,默认初始值为int类型的默认值0,因此输出0。下列关于Java异常处理的描述,正确的是______。try块之后必须跟catch块,不能只有try和finallyError类和Exception类都是Throwable的子类运行时异常必须捕获或者声明抛出,编译异常可以不处理throw关键字声明一个方法可能抛出异常,throws抛出一个具体异常对象答案:B解析:Java中可抛出对象的根类是Throwable,分为Error和Exception两个直接子类,B正确;try块之后可以只跟finally,没有catch块,适合不需要捕获异常、只需要保证资源释放的场景,A错误;编译异常必须捕获或声明抛出,运行时异常可以不处理,C错误;throws用于声明方法可能抛出的异常,throw用于抛出一个具体的异常对象,D描述颠倒,错误。下列关于线程的说法,正确的是______。一个线程就是一个进程,一个进程包含多个线程调用Thread类的start()方法和run()方法都可以启动一个新线程线程的优先级范围是0到10,默认优先级是5synchronized关键字可以保证操作的原子性和变量的可见性答案:D解析:synchronized关键字保证同一时间只有一个线程进入同步块,因此可以保证操作的原子性,同时同步块修改共享变量后会立即刷新到主内存,保证可见性,D正确;进程是操作系统资源分配的基本单位,线程是CPU调度的基本单位,一个进程至少包含一个线程,线程是进程内部的执行单元,不是独立的进程,A错误;调用run()方法不会启动新线程,只是普通的对象方法调用,只有start()方法会启动新线程,B错误;Java线程优先级范围是1~10,默认优先级为5,C错误。下列关于JavaI/O的描述,错误的是______。InputStream和OutputStream是字节流的抽象基类,Reader和Writer是字符流的抽象基类BufferedInputStream是缓冲字节输入流,可以提高读取效率FileInputStream属于节点流,直接对文件进行IO操作对象序列化需要实现Serializable接口,transient修饰的变量也会被序列化答案:D解析:transient关键字的作用就是修饰变量,阻止该变量参与序列化过程,因此transient修饰的变量不会被序列化,D描述错误,其余选项均正确。下列代码运行后,输出结果是______。

publicclassTest{

publicstaticvoidmain(String[]args){

Strings1="Java";

Strings2="Java";

Strings3=newString("Java");

System.out.println((s1==s2)+""+(s1==s3));

}

}truefalseB)truetrueC)falsefalseD)falsetrue答案:A解析:字符串常量会被存入常量池,s1和s2指向常量池中的同一个对象,因此==比较地址结果为true;s3通过new关键字创建,会在堆内存中开辟新的对象,地址和常量池中的对象不同,因此s1==s3结果为false,最终输出truefalse。下列关于接口的描述,正确的是______。一个类只能实现一个接口接口中的抽象方法默认都是publicabstract的接口中不能定义静态方法接口可以有构造方法答案:B解析:Java接口中所有抽象方法默认修饰符都是publicabstract,B正确;一个类可以实现多个接口,Java通过接口实现多继承效果,A错误;从Java8开始,接口中可以定义静态方法和默认方法,C错误;接口没有构造方法,不能实例化,D错误。程序填空题(每空5分,共15分)补充下列程序,实现功能:计算1到100之间所有偶数的和,并输出结果。

publicclassSumTest{

publicstaticvoidmain(String[]args){

intsum=0;

for(inti=1;i<=100;____(1)____){

if(____(2)____)

continue;

____(3)____;

}

System.out.println("1到100偶数和为:"+sum);

}

}参考答案:i++解析:for循环的增量部分,每遍历一个数i自增1,符合遍历1到100的逻辑要求。i\%2!=0(或等价写法i\%2==1)

解析:if条件成立时触发continue跳过当前循环,因此当i为奇数时跳过,仅保留偶数参与计算,符合逻辑要求。sum+=i(或等价写法sum=sum+i)解析:将符合条件的偶数i累加到求和变量sum中,完成累计计算。程序设计题(共45分)编写Java程序,满足以下要求:定义一个Person类,包含name(姓名,String类型)和age(年龄,int类型)两个私有成员变量,提供带参数的构造方法初始化两个变量,提供name和age的getter、setter方法;再定义一个测试类TestPerson,在main方法中创建3个Person对象,存入ArrayList集合,遍历集合输出所有年龄大于18岁的Person对象的姓名和年龄。参考实现代码:

//Person类定义,满足封装要求

classPerson{

privateStringname;

privateintage;

//带参数构造方法

publicPerson(Stringname,intage){

=name;

this.age=age;

}

//name的getter和setter

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

=name;

}

//age的getter和setter

publicintgetAge(){

returnage;

}

publicvoidsetAge(intage){

this.age=age;

}

}

//测试类

publicclassTestPerson{

publicstaticvoidmain(String[]

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论