歷年計(jì)算機(jī)等級(jí)考試二級(jí)Java筆試真題

字號(hào):

一、選擇題(每小題2分,共70分)
    下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的。請(qǐng)將正確選項(xiàng)填涂在答題卡相應(yīng)位置上,答在試卷上不得分。
    (1)下列敘述中正確的是
    A)對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行查找,壞情況下需要的比較次數(shù)為n
    B)對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,壞情況下需要的比較次數(shù)為(n/2)
    C)對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,壞情況下需要的比較次數(shù)為(log2n)
    D)對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,壞情況下需要的比較次數(shù)為(n log2n)
    (2)算法的時(shí)間復(fù)雜度是指
    A)算法的執(zhí)行時(shí)間
    B)算法所處理的數(shù)據(jù)量
    C)算法程序中的語(yǔ)句或指令條數(shù)
    D)算法在執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)
    (3)軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件的是
    A)編輯軟件
    B)操作系統(tǒng)
    C)教務(wù)管理系統(tǒng)
    D)瀏覽器
    (4)軟件(程序)調(diào)試的任務(wù)是
    A)診斷和改正程序中的錯(cuò)誤
    B)盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤
    C)發(fā)現(xiàn)并改正程序中的所有錯(cuò)誤
    D)確定程序中錯(cuò)誤的性質(zhì)
    (5)數(shù)據(jù)流程圖(DFD圖)是
    A)軟件概要設(shè)計(jì)的工具
    B)軟件詳細(xì)設(shè)計(jì)的工具
    C)結(jié)構(gòu)化方法的需求分析工具
    D)面向?qū)ο蠓椒ǖ男枨蠓治龉ぞ?BR>    (6)軟件生命周期可分為定義階段,開(kāi)發(fā)階段和維護(hù)階段。詳細(xì)設(shè)計(jì)屬于
    A)定義階段
    B)開(kāi)發(fā)階段
    C)維護(hù)階段
    D)上述三個(gè)階段
    (7)數(shù)據(jù)庫(kù)管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語(yǔ)言是
    A)數(shù)據(jù)定義語(yǔ)言
    B)數(shù)據(jù)管理語(yǔ)言
    C)數(shù)據(jù)操縱語(yǔ)言
    D)數(shù)據(jù)控制語(yǔ)言
    (8)在學(xué)生管理的關(guān)系數(shù)據(jù)庫(kù)中,存取一個(gè)學(xué)生信息的數(shù)據(jù)單位是
    A)文件
    B)數(shù)據(jù)庫(kù)
    C)字段
    D)記錄
    (9)數(shù)據(jù)庫(kù)設(shè)計(jì)中,用E-R圖來(lái)描述信息結(jié)構(gòu)但不涉及信息在計(jì)算機(jī)中的表示,它屬于數(shù)據(jù)庫(kù)設(shè)計(jì)的
    A)需求分析階段
    B)邏輯設(shè)計(jì)階段
    C)概念設(shè)計(jì)階段
    D)物理設(shè)計(jì)階段
    (10)有兩個(gè)關(guān)系R和T如下:
    
    則由關(guān)系R得到關(guān)系T的操作是
    A)選擇
    B)投影
    C)交
    D)并
    (11)Java中定義常量的保留字是
    A)const
    B)final
    C)finally
    D)native
    (12)下列有關(guān)Java布爾類型的描述中,正確的是
    A)一種基本的數(shù)據(jù)類型,它的類型名稱為boolean
    B)用int表示類型
    C)其值可以賦給int類型的變量
    D)有兩個(gè)值,1代表真,0代表假
    (13)Java中所有類的父類是
    A)Father
    B)Lang
    C)Exception
    D)Object
    (14)下列程序段的輸出結(jié)果是
    int data=0;
    char k='a',p='f';
    data=p-k;
    system.out.println(data);
    A)0
    B)a
    C)f
    D)5
    (15)下列數(shù)中為八進(jìn)制的是
    A)27
    B)0x25
    C)026
    D)028
    (16)下列方法中,不屬于Throwable類的方法是
    A)printMessage
    B)getMessage
    C)toString
    D)fillStackTrace
    (17)下列程序的輸出結(jié)果是
    public class Test{
    public static void main(String[] args){
    int [] array={2,4,6,8,10};
    int size=6;
    int result=-1;
    try{
    for{int i=0;i
    if(array[i]==20) result=i;
    }
    catch(ArithmeticException e){
    System.out.println("Catch---1");
    catch(ArrayIndexOutOfBoundsException e){
    System.out.println("Catch---2");
    catch(Exception e){
    System.out.println("Catch---3");
    }
    }
    A)Catch---1
    B)Catch---2
    C)Catch---3
    D)以上都不對(duì)
    (18)下列包中,包含JOptionPane類的是
    A)javax.swing
    B)java.lang
    C)java.util
    D)java.applet
    (19)下列選項(xiàng)中,與成員變量共同構(gòu)成一個(gè)類的是
    A)關(guān)鍵字
    B)方法
    C)運(yùn)算符
    D)表達(dá)式
    (20)下列程序的功能是將一個(gè)整數(shù)數(shù)組寫(xiě)入二進(jìn)制文件。在程序的下劃線處應(yīng)填入的選項(xiàng)是
    import java.io.*;
    public class XieShuzu{
    public static void main(String[] a){
    int [] myArray={10,20,30,40};
    try{
    DataOutputStream dos=
    new DataOutputStream(new FileOutputStream("ints.dat"));
    for(int i=0;i
    dos. _____(myArray[i]);
    dos.close();
    System.out.println("已經(jīng)將整數(shù)數(shù)組寫(xiě)入二進(jìn)制文件:ints.dat");
    }catch(IOException ioe)
    {System.out.println("IO Exception");}
    }
    }
    A)writeArray
    B)writeByte
    C)writeInt
    D)writeDouble
    (21)Java中的抽象類Reader和Writer所處理的流是
    A)圖像流
    B)對(duì)象流
    C)字節(jié)流
    D)字符流
    (22)下列敘述中,錯(cuò)誤的是
    A)內(nèi)部類的名稱與定義它的類的名稱可以相同
    B)內(nèi)部類可用abstract修飾
    C)內(nèi)部類可作為其他類的成員
    D)內(nèi)部類可訪問(wèn)它所在類的成員
    (23)用于在子類中調(diào)用被重寫(xiě)父類方法的關(guān)鍵字是
    A)this
    B)super
    C)This
    D)Super
    (24)下列Java語(yǔ)句從指定網(wǎng)址讀取html文件,在下劃線處應(yīng)填上的選項(xiàng)是
    Reader in=new____(new URL(urlString).openStrream());
    A)Reader
    B)DataOutputStream
    C)ByteArrayInputStream
    D)InputStreamReader
    (25)下列不屬于表達(dá)式語(yǔ)句的是
    A)++i;
    B)--j;
    C)b#a;
    D)b*=a;
    (26)下列為窗口事件的是
    A)MouseEvent
    B)WindowEvent
    C)ActionEvent
    D)KeyEvent
    (27)用鼠標(biāo)點(diǎn)擊菜單項(xiàng)(MenuItem)產(chǎn)生的事件是
    A)MenuEvent
    B)ActionEvent
    C)KeyEvent
    D)MouseEvent
    (28)下列不屬于邏輯運(yùn)算符的是
    A)!
    B)||
    C)&&
    D)|
    (29)當(dāng)使用SomeThread t=new SomeThread()創(chuàng)建一個(gè)線程時(shí),下列敘述中正確的是
    A)SomeThread類是包含run()方法的任意java類
    B)SomeThread類一定要實(shí)現(xiàn)Runnable接口
    C)SomeThread類是Thread類的子類
    D)SomeThread類是Thread類的子類并且要實(shí)現(xiàn)Runnable接口
    (30)在程序的下劃線處應(yīng)填入的選項(xiàng)是
    public class Test_____{
    public static void main(String args[]){
    Test t = new Test();
    Thread tt = new Thread(t);
    tt.start();
    }
    public void run(){
    for(int i=0;i<5;i++){
    system.out.println("i="+i);
    }
    }
    }
    A)implements Runnable
    B)extends Thread
    C)implements Thread
    D)extends Runnable
    (31)為了支持壓棧線程與彈棧線程之間的交互與同步,在程序的下劃線處依次填入的語(yǔ)句是
    public class IntStack{
    private int idx=0;
    private int[] data=new int[8];
    public ______ void push(int i){
    data[idx]=i;
    idx++;
    _____
    }
    ......
    }
    A)synchronized()
    notify()
    B)synchronized()
    this.wait()
    C)synchronized()
    this.notify()
    D)synchronized()
    sleep()
    (32)如果線程正處于阻塞狀態(tài),不能夠使線程直接進(jìn)入可運(yùn)行狀態(tài)的情況是
    A)sleep()方法的時(shí)間到
    B)獲得了對(duì)象的鎖
    C)線程在調(diào)用t.join()方法后,線程t結(jié)束
    D)wait()方法結(jié)束
    (33)當(dāng)一個(gè)Applet被加載,后續(xù)對(duì)Applet生命周期方法的調(diào)用中,可能存在的次序是
    A)start(),stop(),destroy()
    B)init(),start(),stop(),start(),stop(),destroy()
    C)start(),init(),stop(),destroy()
    D)init(),start(),destroy()
    (34)在HTML文件的標(biāo)志中作為可選屬性的是
    A)Applet主類的文件名
    B)Applet顯示區(qū)域的寬度
    C)Applet主類的路徑
    D)Applet顯示區(qū)域的高度
    (35)如果應(yīng)用程序要在Applet上顯示輸出,則必須重寫(xiě)的方法是
    A)Graphics.drawString()
    B)repaint()
    C)paint()
    D)update()
    二、填空題(每空2分,共30分)
    請(qǐng)將每一個(gè)空的正確答案寫(xiě)在答題卡【l】~【15】序號(hào)的橫線上,答在試卷上不得分。
    (1)一個(gè)隊(duì)列的初始狀態(tài)為空?,F(xiàn)將元素A,B,C,D,E,F,5,4,3,2,1依次入隊(duì),然后再依次退隊(duì),則元素退隊(duì)的順序?yàn)?【1】 。
    (2)設(shè)某循環(huán)隊(duì)列的容量為50,如果頭指針front=45(指向隊(duì)頭元素的前一位置),尾指針rear=10(指向隊(duì)尾元素),則該循環(huán)隊(duì)列中共有 【2】 個(gè)元素。
    (3)設(shè)二叉樹(shù)如下:
    
    對(duì)該二叉樹(shù)進(jìn)行后序遍歷的結(jié)果為 【3】 。
    (4)軟件是 【4】 、數(shù)據(jù)和文檔的集合。
    (5)有一個(gè)學(xué)生選課的關(guān)系,其中學(xué)生的關(guān)系模式為:學(xué)生(學(xué)號(hào),姓名,班級(jí),年齡),課程的關(guān)系模式為:課程(課號(hào),課程名,學(xué)時(shí)),其中兩個(gè)關(guān)系模式的鍵分別是學(xué)號(hào)和課號(hào),則關(guān)系模式選課可定義為:選課(學(xué)號(hào), 【5】 ,成績(jī))。
    (6)C語(yǔ)言是面向過(guò)程的語(yǔ)言,Java語(yǔ)言是面向 【6】 的語(yǔ)言。
    (7)Java字節(jié)碼文件的擴(kuò)展名是 【7】 。
    (8)JDBC是Java程序與 【8】 連接的一種機(jī)制。
    (9)能夠用于創(chuàng)建可變字符串對(duì)象的類是 【9】 。
    (10) 【10】 類在定義數(shù)組時(shí),不必限定數(shù)組的大小。
    (11)下列程序的功能是統(tǒng)計(jì)命令行參數(shù)的個(gè)數(shù),請(qǐng)?jiān)谙聞澗€處填上適當(dāng)?shù)拇a。
    public class Length{
    public static void main(String args[]){
    System.out.println("number of String args:"+args. 【11】 );
    }
    }
    (12)Java中的返回語(yǔ)句是 【12】 語(yǔ)句。
    (13)Java中,線程必須屬于一個(gè)進(jìn)程。線程是程序運(yùn)行中的一個(gè) 【13】 。
    (14)線程由于調(diào)用sleep()方法進(jìn)入阻塞狀態(tài),當(dāng)睡眠結(jié)束時(shí),該線程將進(jìn)入 【14】 狀態(tài)。
    (15)在下列Java Applet程序的下劃線處填入代碼,使程序完整并能夠正確運(yùn)行。
    import java.applet.*;
    import java.awt.*;
    public class HelloWorld 【15】 {
    public void paint(Graphics g){
    g.drawString("Hello World!",25,25);
    }
    }