2018年9月计算机二级Java考试基础巩固题(6)
单选题
1.下面程序段的输出结果为()。
packagetest;
publicclassClassA
{
intx=20:
staticinty=6;
publicstaticvoidmain(Stringargs[])
{
ClassBb=newClassB();
b.go(10);
System.out.println("x="+b.x);
}
}
classClassB
{
intX;
voidgo(inty)
{
ClassAa=newClassA();
x=a.Y;
}
}
A.x=10
B.x=20
C.x=6
D.编译不通过
2.下面程序段的输出结果为()。
publicclassTest
{
inta,b;
Test()
{
a=100;
b=200:
}
Test(intX,inty)
{
a=x:
b=y;
}
publicstaticvoidmain(Stringargs[])
{
TestObjl=newTest(12,45);
System.OUt.println("a="+Objl.a+"b="+Objl.
b);
TestObj2=newTest();
System.out.println("fl="+Obj2.a+"b="+Obj2.
b);
}
}
A.a=100b=200
a=12b=45
B.a=12b=45
a=100b=200
C.a=12b=200
a=100b=45
D.a=100b=45
a=12b=200
3.在匹配器(Matcher)类中,用于寻找下一个模式匹配串的方法是()。
A.staticbooleanmatches()
B.booleanmatcher.find()
C.intmatcher.start()
D.intmatcher.end()
4.下列说法正确的是()。
A.共享数据的所有访问都必须作为临界区
B.用synchronized保护的共享数据可以是共有的
C.Java中对象加锁不具有可重人性
D.对象锁不能返回
5.在JavaApplet程序中,如果对发生的事件做出响应和处理的时候,应该使用下列()语句。
A.importjava.awt.event.*;
B.importjava.io.*;
C.importjava.awt.*;
D.importjava.applet.*;
6.在一个容量为32的循环队列中,若头指针front一3,尾指针rear=2,则该循环队列中共有元素个数为()。
A.29
B.30
C.31
D.32
7.Java语言中如果要使用某个包中的类时,需要使用()导人。
A.inport
B.outport
C.import
D.input
8.执行下面程序段的输出结果为()。
publicclassQ
{
publicstaticvoidmain(Stringargv[])
{
intanar[]一newint[5];
System.out.println(anar[0]);
}
}
A.0
B.1
C.2
D.5
9.使得线程放弃当前分得的CPU时间,但不使线程阻塞,即线程仍处于可执行状态,随时可能再次分得CPU时间的方法是()。
A.time()
B.yield()
C.load()
D.min()
10.以下程序计算1+1/3+1/5+…+1/(2N+1),直至1/(2N+1)小于0.00001,横线处应补充的程序是()。
publicclassSun{
publicstaticvoidmain(Stringargs[]){
intn=1:
doubleterm,sum=1.0:
do{
n=__;
term=1.0/n;
sum=sum+term;
}
while(term>=0.00001);
System.out.println(n);
System.out.println(sum);
参考答案
1.C。【解析】本题考查在Java中静态变量(类变量)的用法。在题目程序段中生成了一个staticinty=6类变量,在ClassA中调用的b.go(10),只不过是在ClassB中的一个局部变量,通过调用ClassB中的90方法可以生成一个ClassA对象,并给这个新生成的对象赋以ClassA中的类变量Y的值。从main()方法作为入口执行程序,首先生成一个ClassB的对象,然后b.go(10)会调用ClassA,会给X和Y赋值,X=a.Y后,X值为6,再返回去执行System.out.println("x="+b.x)语句,输出为x=6,可见,正确答案为选项C。
2.B。【解析】本题考查构造方法及构造方法重载。Test类有两个构造方法,即使用了方法重载技术。不带参数的构造方法对类的实例变量进行特定数值的赋值,而带参数的构造方法根据参数对类的实例变量进行赋值。TestObjl=newTest(12,45)语句调用的是Test(intx,inty),而TestObj2=newTest()调用的是Test(),注意根据参数个数来区分。
3.A。【解析】本题考查考生对Java中的匹配器(Mateher)类的理解。Matcher类用于将一个输入字符串input和模式串pattern相比较。Booleanmateher.find()方法用于寻找下一个模式匹配串;intmatcher.start()方法用于返回匹配串的一个起始索引整数值;intmatcher.end()方法用于返回匹配串的一个终止索引整数值。而用于输入字符串与模式串比较的方法是staticbooleanmatches(),选项A正确。
4.A。【解析】本题考查对象加锁的相关概念。对于对象加锁的使用有些注意事项。对象的锁在某些情况下可以由持有线程返回,比如当synchronized语句块执行完成后;当在synchronized语句块中出现异常;当持有锁的线程调用该对象的wait()方法,由此可见选项D说法错误。共享数据的所有访问都必须作为临界区,使用synchronized进行加锁控制,选项A说法正确。用synchronized保护的共享数据必须是私有的,选项B说法错误。Java中对象加锁具有可重入性,选项C错误。
5.C。【解析】本题考查对Java常用的各种包所包含的一些类的基本功能的理解。java.awt包是抽象窗口工具包,里面包括各种容器、组件、窗口布局管理器以及一些常用的类如Color、Font等,选项A满足题意。而java.applet包里面包括了小程序执行时必须要重载的一个类Applet,也就只有这一个类,选项D错误。java.io包主要是提供一些输入/输出类的,选项B不满足题意。java.awt.event包就包含了一些能够对事件做出响应和处理的一些标准类,选项A不满足题意。
6.C。【解析】设队列容量为m,rear>front,则队列中元素个数为rear-front:rear
7.C。【解析】本题考查包的导入和使用。首先用package语句说明一个包,该包的层次结构必须与文件目录的层次相同,否则,在编译时可能出现找不到包的问题。Java语言中java.lang包是编译器自动导入,其他包中的类必须用import导入。
8.A。【解析】本题考查Java中数组的定义和初始化。在该方法里定义并动态初始化了一个整型数组anar,由于没有赋初值,系统默认的初始值是数组中的每个元素都为零。所以输出数组中的第一个元素anar[0]时,自然也是等于零。
9.B。【解析】本题考查线程阻塞的概念。yield()方法使得线程放弃当前分得的CPU时间,但是不使线程阻塞,印线程仍处于可执行状态,随时可能再次分得CPU时间。调用yield()的效果等价于调度程序认为该线程已执行了足够的时间从而转到另一个线程。
10.D。【解析】本题考查do-while循环的用法。题目中没有给出累加次数,故不能使用for循环,在do循环中,由累加项term的值作为退出循环的条件。根据题目要求,应该填写2*n+1。本题的关键是while(term>=0.00001)语句,题目要求计算直至1/(2N+1)小于0.00001,所以terml/(2N+1),因此n=2*n+1。
编辑推荐:
温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)
点击加载更多评论>>