第 1 页:试题 |
第 5 页:参考答案 |
21.A。【解析】程序是由if-else语句构成的流程,分析判断条件,变量i和j比较,得到条件表达式的值为true,然后执行i-1,现在变量i的值为12,而j的值为10;由于条件表达式为true,则执行i++,因此i的值为13,并跳过else子句块,循环控制语句执行完毕,这时变量i和i的值分别为13和10。
22.C。【解析】此题考查的是do-while循环和“--”操作符的知识。do-while最少执行一次,在执行完d0中的内容后,判断while中的条件是否为true。如果为true,就再执行do中的内容,然后进行判断。以此类推,直到while的判断为false时退出循环,执行循环后面的内容。而“--”操作符的规则是,变量右边的“-”将先进行运算,然后才使
变量的值减一。而在变量左边的“--”,则先将变量的值减1再运算。本程序中i的值为10,当程序运行到do-while循环时,程序先执行一次循环,然后判断,因此选C。
23.C。【解析】此题是典型的考题。题中X=0,则!x永远为真,对于条件表达式!x&&y<=5只考虑y<=5,由于每次循环Y都增加1,而且y从0开始到5。所以可知总共循环了6次。
24.D。【解析】异常是在程序编译或者运行时所发生的可预料或者不可预料的异常事件,它会引起程序的中断,影响程序的正常运行。
25.B。【解析】线程为一个程序中的单个执行流;进程是程序的一次动态执行过程,它对应了从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身从产生、发展到消亡的过程。一个JavaApplication运行后,在系统中应该就是一个进程了(动态)。
26.A。【解析】Thread类的其他方法有setName()、getName()、activeCount()和setDaemon()等。其中,用于修改线程名字的方法是setName()。
27.C。【解析】线程组是由java.lang包中的ThreadGroup类实现的。在创建线程时可以显式地指定线程组,此时需要从如下三种线程构造方法中选择一种:
public Thread(ThreadGroup group,Runnable target);
public Thread(ThreadGroup group,String name);
public Thread(ThreadGroup group,Runnable target,
String name)。
28.A。【解析】Java语言中一个类只有实现Serializable接口,它的对象才是可串行化的。
29.A。【解析】本题主要考查集合类的特点。选项A正确,集合类是用来存放某类对象的。集合类有一个共同特点,就是它们只容纳对象。如果集合类中想使用简单数据类型,又想利用集合类的灵活性,可以把简单数据类型变成该数据类型类的对象,然后放入集合中处理,这表示集合类不能容纳基本数据类型,所以IV是不正确的选项B错误,集合只容纳对象;选项C错误,该选项少选了Ⅱ;选项D错误,错误原因同选项B。
30.C。【解析】本题考查对Java组件容器中添加容器的基本知识。选项A错误,Panel组件是容器,可以添加到Frame窗口;选项B错误,CheekBox组件是复选框组件,可以添加到Frame窗口;选项C正确,Dialog继承自Windows类,Windows类型(或子类)的对象不能包含在其他容器中;选项D错误,Choice组件是选择框组件,可以添加到Frame窗口。
31.C。【解析】本题考查在Java中静态变量(类变量)的用法。在题目程序段中生成了一个static int y=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。
32.B。【解析】本题考查构造方法及构造方法重载。Test类有两个构造方法,即使用了方法重载技术。不带参数的构造方法对类的实例变量进行特定数值的赋值,而带参数的构造方法根据参数对类的实例变量进行赋值。 TestObjl=newTest(12,45)语句调用的是Test(intx,inty),而TestObj2=newTest()调用的是Test(),注意根据参数个数来区分。
33.A。【解析】本题考查考生对Java中的匹配器(Mateher)类的理解。Matcher类用于将一个输入字符串input和模式串pattern相比较。Boolean mateher.find()方法用于寻找下一个模式匹配串;int matcher.start()方法用于返回匹配串的一个起始索引整数值;int matcher.end()方法用于返回匹配串的一个终止索引整数值。而用于输入字符串与模式串比较的方法是static boolean matches(),选项A正确。
34.A。【解析】本题考查对象加锁的相关概念。对于对象加锁的使用有些注意事项。对象的锁在某些情况下可以由持有线程返回,比如当synchronized语句块执行完成后;当在synchronized语句块中出现异常;当持有锁的线程调用该对象的wait()方法,由此可见选项D说法错误。共享数据的所有访问都必须作为临界区,使用synchronized进行加锁控制,选项A说法正确。用synchronized保护的共享数据必须是私有的,选项B说法错误。Java中对象加锁具有可重入性,选项C错误。
35.C。【解析】本题考查对Java常用的各种包所包含的一些类的基本功能的理解。java.awt包是抽象窗口工具包,里面包括各种容器、组件、窗口布局管理器以及一些常用的类如Color、Font等,选项A满足题意。而java.applet包里面包括了小程序执行时必须要重载的一个类Applet,也就只有这一个类,选项D错误。java.io包主要是提供一些输入/输出类的,选项B不满足题意。java.awt.event包就包含了一些能够对事件做出响应和处理的一些标准类,选项A不满足题意。
36.C。【解析】设队列容量为m,rear>front,则队列中元素个数为rear-front:rear37.C。【解析】本题考查包的导入和使用。首先用package语句说明一个包,该包的层次结构必须与文件目录的层次相同,否则,在编译时可能出现找不到包的问题。Java语言中java.lang包是编译器自动导入,其他包中的类必须用import导入。
38.A。【解析】本题考查Java中数组的定义和初始化。在该方法里定义并动态初始化了一个整型数组anar,由于没有赋初值,系统默认的初始值是数组中的每个元素都为零。所以输出数组中的第一个元素anar[0]时,自然也是等于零。
39.B。【解析】本题考查线程阻塞的概念。yield()方法使得线程放弃当前分得的CPU时间,但是不使线程阻塞,印线程仍处于可执行状态,随时可能再次分得CPU时间。调用yield()的效果等价于调度程序认为该线程已执行了足够的时间从而转到另一个线程。
40.D。【解析】本题考查do-while循环的用法。题目中没有给出累加次数,故不能使用for循环,在do循环中,由累加项term的值作为退出循环的条件。根据题目要求,应该填写2*n+1。本题的关键是while(term>=0.00001)语句,题目要求计算直至1/(2N+1)小于0.00001, 所以term l/(2N+1),因此n=2*n+1。
编辑推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |