无忧首页企业系统我的无忧
无忧服务:
兼职活动培训
娱乐交友:
交友社区资讯
全职实习:
实习暑假寒假
微信号:school51
扫一下,立即关注
加关注
在线支付,立省10元
下载新版APP
===大学生成长生活平台===

计算机等级考试二级Java练习题及解析(7)

2012-12-26来源/作者:卫凯点击次数:300

1   下列关于栈的描述中错误的是___B___。
A、栈是先进后出的线性表       B、栈只能顺序存储        C、栈具有记忆作用
D、对栈的插入与删除操作中,不需要改变栈底指针
解析:栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。一个新元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插入的元素。所以栈又称先进后出表(FILO-First In Last Out)。线性表可以顺序存储,也可以链式存储,而栈是一种线性表,也可以采用链式存储结构。
2   对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是___D___。
A、冒泡排序为n/2       B、冒泡排序为n    C、快速排序为n      D、快速排序为n(n-1)/2
解析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后扫描和n/2遍的从后往前扫描,需要比较次数为n(n-1)/2。快速排序法的最坏情况比较次数也是n(n-1)/2。
3   对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为__C____。
A、       B、n/2       C、n        D、n+1
4   在进行顺序查找过程中,如果线性表中的第一个元素就是被查找元素,则只需做一次比较就查找成功,查找效率最高;但如果被查找的元素是线性表中的最后一个元素,或者被查找的元素根本就不在线性表中,则为了查找这个元素需要与线性表中所有的元素进行比较,这是顺序查找的最坏情况。所以对长度为n的线性表进行顺序查找,在最坏情况下需要比较n次。
5   模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
6   计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。软件具有以下特点:①软件是一种逻辑实体,而不是物理实体,具有抽象性;②软件的生产过程与硬件不同,它没有明显的制作过程;③软件在运行、使用期间不存在磨损、老化问题;④软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致软件移植的问题;⑤软件复杂性高,成本昂贵;⑥软件开发涉及诸多的社会因素。
7   数据独立性是数据库技术的重要特点之一。所谓数据独立性是指__D____。
A、数据与程序独立存放         B、不同的数据被存放在不同的文件中
C、不同的数据只能被对应的应用程序所使用      D、以上三种说法都不对
解析:数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。也就是说,数据的逻辑结构、存储结构与存取方式的改变不会影响应用程序。选项A、B、C三种说法都是错误的。
8   在读字符文件Employee.dat时,使用该文件作为参数的类是___D___。
A、BufferedReader  B、DataInputStream   C、DataOutputStream   D、FileInputStream
解析:本题考查的是文件和文件I/O。
    BufferedReader用来从字符输入流中读取并缓冲字符,以提高读取字符(或字符数组)的效率。其构造方法为:
    public BufferedReader(Reader in)
    public BufferedReader(Reader in, int sz)
    DataInputStream用来以独立于机器的方式从潜在的输入流中读取Java基本数据类型。构造方法为:
    DataInputStream(InputStream in) 
    FileInputStream用来从文件中读取字节。构造方法为:
    FileInputStream(String name) 
    FileInputStream(File file) 
char类型的取值范围是___B___。
A、2-7~27-1     B、0~216-1     C、-215~215-1     D、0~28-1
9   能够支持javadoc命令的注释语句是______。
A、/**...//      B、/*...*/     C、//     D、/**...*/
解析:Java的单行注释符为//,多行注释符有/*...*/和/**...*/(javadoc能够利用该注释符自动生成帮助文档)。
10   下列不是InputStream子类的是__C____。
A、文件输入流FileInputStream    B、对象输入流ObjectInputStream
C、字符输入流CharInputStream     D、压缩文件输入流ZipInputStream
11   Java中没有CharInputStream流。
下列方法中可以用来创建一个新线程的是___C___。
A、实现java.lang.Runnable接口并重写start()方法
B、实现java.lang.Runnable接口并重写run()方法
C、继承java.lang.Thread类并重写run()方法
D、继承java.lang.Thread类并重写start()方法
解析:java.lang中的Thread类的典型构造方法为:
    public Thread(ThreadGroup group,Runnable target,String name)
    接口Runnable定义了run()方法;而Thread类本身也实现了Runnable接口,故创建线程有两种方法:
     1、用实现Runnable接口的类的实例作target参数生成Thread类的实例
     2、编写继承Thread类的类,并重写(override)run()方法
12  下列关于线程优先级的说法中,正确的是__C____。
A、线程的优先级是不能改变的    B、线程的优先级是在创建线程时设置的
C、在创建线程后的任何时候都可以设置     D、B和C
解析:Java语言中线程的优先级是用一个介于MIN_PRIORITY 和MAX_PRIORITY之间的整数来表示的。可以在创建线程后的任何时候修改线程的优先级。
13  下列代码中,将引起一个编译错误的行是__D____。
1)public class Test{
2) int m,n;
3) public Test(){}
4) public Test(int a){m=a;}
5) public static void main(String args[]){
6) Test t1,t2;
7) int j,k;
8) j=0;k=0;
9) t1=new Test();
10) t2=new Test(j,k);
11) }
12) }
A、第3行    B、第5行    C、第6行    D、第10行
解析:第10行代码中的参数数目比类Test的任何一个构造方法声明的形参都多,因此引起编译错误。
14  阅读下列代码后
public class Person{
    int arr[]=new int[10];
    public static void main(String args[]){
        System.out.println(arr[1]);
    }
}
15  正确的说法是__A____。
A、编译时将产生错误  B、编译时正确,运行时将产生错误 C、输出为零  D、输出为空
解析:由于数组arr声明时未用static关键字,而main()方法直接引用arr(而非通过Person的实例引用),将产生"非静态变量不能从静态上下文中引用"(non-static variable cannot be referenced from a static context)的编译错误。
16  某二叉树中度为2的结点有18个,则该二叉树中有   19   个叶子结点。
解析:二叉树的性质3:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为18,故叶子结点数为18+1=19个。
17   问题处理方案的正确而完整的描述称为   算法   。
18  线程在生命周期中要经历5种状态,分别是新建状态、可运行状态、运行状态、___阻塞 或 Blocked___状态和终止状态。

19  请阅读下列程序代码,然后将程序的执行结果补充完整。
程序代码:
class throwsException 
{
 static void Proc(int sel) throws ArithmeticException,ArrayIndexOutOfBoundsException
 {
  System.out.println("In Situation"+sel);
  if(sel==0){
    System.out.println("no Exception caught");
    return;
  }
  else if(sel==1){
    int iArray[]=new int[4];
    iArray[1]=3;
  }
 }
 public static void main(String[] args) 
 {
   try{
     Proc(0);
     Proc(1);
   }catch(ArrayIndexOutOfBoundsException e){
     System.out.println("Catch"+e);
   }finally{
     System.out.println("in Proc finally");
   }
 }
}
执行结果:
In Situation0
no Exception caught
__In Situation1____
in Proc finally

解析:调用Proc(1)时,执行语句System.out.println("In Situation"+sel);控制台输出In Situation1。然后在if语句中执行sel==1分支,该分支中无任何输出语句。
当使用Thread t=new Thread(r)创建一个线程时,表达式:r instanceof Thread的值是___false___。
表达式:r instanceof Thread的语义即"r是否为Thread的实例(instance)"。再看Thread的构造方法(Thread有许多构造方法,以下是最典型的构造方法,其它构造方法都是从下面的构造方法中"减掉"一些参数形成的):
    Thread(ThreadGroup group, Runnable target, String name) 
可见,Thread构造方法中没有类型为Thread的参数,故r不可能是Thread的实例
20  面向对象的语言将客观世界都看成由各种对象组成。具有共同特征和行为的对象组成类,类是变量和___操作___的集合体。
21   Random类中的nextInt(N)方法得到一个介于0至N-1之间的随机数,而平常用到的Math.random()是得到一个介于0与1之间的小数。





相关阅读



关于我们 | 联系我们 | 用户指南 | 网站地图 | 意见建议 | 会员注册 | 用户协议 | 隐私政策