2017年計(jì)算機(jī)二級(jí)考試JAVA練習(xí)試題及答案1

字號(hào):


    一、選擇題(每小題1分,共40小題,共40分)
    1.線(xiàn)性表L=(al,a2,a3,…ai,…an),下列說(shuō)法正確的是( )。
    A.每個(gè)元素都有一個(gè)直接前件和直接后件
    B.線(xiàn)性表中至少要有一個(gè)元素
    C.表中諸元素的排列順序必須是由小到大或由大到小
    D.除第一個(gè)元素和最后一個(gè)元素外,其余每個(gè)元素都有且只有一個(gè)直接前繼和直接后繼
    2.下列關(guān)于完全二叉樹(shù)的敘述中,錯(cuò)誤的是( )。
    A.除了最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到值
    B.可能缺少若干個(gè)左右葉子結(jié)點(diǎn)
    C.完全二叉樹(shù)一般不是滿(mǎn)二叉樹(shù)
    D.具有結(jié)點(diǎn)的完全二叉樹(shù)的深度為[log2n]+1
    3.對(duì)長(zhǎng)度為n的線(xiàn)性表進(jìn)行順序查找,在最壞情況下需要比較的次數(shù)為( )。
    A.125
    B.n/2
    C.n
    D.n+1
    4.下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是( )。
    A.自頂向下
    B.逐步求精
    C.模塊化
    D.可復(fù)用
    5.軟件需求分析階段的工作,可以分為4個(gè)方面:需求獲取、需求分析、編寫(xiě)需求規(guī)格說(shuō)明書(shū)以及( )。
    A.階段性報(bào)告
    B.需求評(píng)審
    C.總結(jié)
    D.都不正確
    6.下列敘述中,不屬于測(cè)試的特征的是( )。
    A.測(cè)試的挑剔性
    B-完全測(cè)試的不可能性
    C.測(cè)試的可靠性
    D.測(cè)試的經(jīng)濟(jì)性
    7.模塊獨(dú)立性是軟件模塊化所提出的要求,衡量模塊獨(dú)立性的度量標(biāo)準(zhǔn)是模塊的( )。
    A.抽象和信息隱蔽
    B.局部化和封裝化
    C.內(nèi)聚性和耦合性
    D.激活機(jī)制和控制方法
    8.下列關(guān)于軟件測(cè)試的描述中正確的是( )。
    A.軟件測(cè)試的目的是證明程序是否正確
    B.軟件測(cè)試的目的是使程序運(yùn)行結(jié)果正確
    C.軟件測(cè)試的目的是盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤
    D.軟件測(cè)試的目的是使程序符合結(jié)構(gòu)化原則
    9.下列工具中為需求分析常用工具的是( )。
    A.PAD
    B.PFD
    C.N-S
    D.DFD
    10.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖? )。
    A.多態(tài)性
    B.繼承
    C.封裝性
    D.模塊化
    11.下列與數(shù)據(jù)元素有關(guān)的敘述中,不正確的是( )。
    A.?dāng)?shù)據(jù)元素是數(shù)據(jù)的基本單位,即數(shù)據(jù)集合中的個(gè)體
    B.?dāng)?shù)據(jù)元素是有獨(dú)立含義的數(shù)據(jù)最小單位
    C.?dāng)?shù)據(jù)元素又稱(chēng)為結(jié)點(diǎn)
    D.?dāng)?shù)據(jù)元素又稱(chēng)為記錄
    12.棧S最多能容納4個(gè)元素,現(xiàn)有6個(gè)元素按A、B、C、D、E、F的順序進(jìn)棧,下列( )序列不是可能的出棧序列。
    A.C、B、E、D、A、F
    B.C、D、B、F、E、A
    C.A、D、E、C、B、F
    D.A、F、E、D、C、B
    13.在電子郵件程序向郵件服務(wù)器中發(fā)送郵件時(shí),使用的是簡(jiǎn)單郵件傳輸協(xié)議,下列( )是簡(jiǎn)單郵件傳輸協(xié)議。
    A.POP3
    B.IMAP
    C.HTTP
    D.SMTP
    14.對(duì)一個(gè)由n個(gè)關(guān)鍵碼組成的序列,借助排序過(guò)程選出其中的關(guān)鍵碼,要求關(guān)鍵碼比較次數(shù)和移動(dòng)次數(shù)最少,則排序方法是( )。
    A.歸并排序
    B.直接插入排序
    C.直接選擇排序
    D.快速排序
    15.對(duì)線(xiàn)性表進(jìn)行二分法查找,其前提條件是( )。
    A.線(xiàn)性表以順序方式存儲(chǔ),并已按關(guān)鍵碼值排好序
    B.線(xiàn)性表以順序方式存儲(chǔ),并已按關(guān)鍵碼值的查找頻率排好序
    C.線(xiàn)性表以有序方式存儲(chǔ),并已按關(guān)鍵碼值排好序
    D.線(xiàn)性表以有序方式存儲(chǔ),并已按關(guān)鍵碼值的查找頻率排好序
    16.Java的核心包中,提供編程應(yīng)用的基本類(lèi)的包是( )。
    A.java.lang
    B.java.util
    C.java.a(chǎn)pplet
    D.java.rmi
    17.下列關(guān)于Java對(duì)import語(yǔ)句規(guī)定自敘述中,錯(cuò)誤的是( )。
    A.在Java程序中import語(yǔ)句可以有多個(gè)
    B.在Java程序中import語(yǔ)句可以沒(méi)有
    C.在Java程序中import語(yǔ)句必須有一個(gè)
    D.在Java程序中import語(yǔ)句必須引入在所有類(lèi)定義之前
    18.在編譯Java程序時(shí),用于指定生成.class文件位置的選項(xiàng)是( )。
    A.-9
    B.-d
    C.-verbose
    D.-nowarn
    19.下列方法中,不屬于WindowListener接口的是( )。
    A.windowOpened()
    B.windowClosed()
    C.windowActivated()
    D.mouseDragged()
    20.運(yùn)行Java程序需要的工具軟件所在的目錄是( )。
    A.JDK的bin目錄
    B.JDK的demo目錄
    C.JDK的lib目錄
    D.JDK的ire目錄
    21.下列關(guān)于Java語(yǔ)言特點(diǎn)的敘述中,錯(cuò)誤的是( )。
    A.Java是面向過(guò)程的編程語(yǔ)言
    B.Java支持分布式計(jì)算
    C.Java是跨平臺(tái)的編程語(yǔ)言
    D.Java支持多線(xiàn)程
    22.可以使當(dāng)前同級(jí)線(xiàn)程重新獲得運(yùn)行機(jī)會(huì)的方法是( )。
    A.Sleep()
    B.join()
    C.yield()
    D.interrupt()
    23.下列語(yǔ)句中,屬于多分支語(yǔ)句的是( )。
    A.if語(yǔ)句
    B.for語(yǔ)句
    C.switch語(yǔ)句
    D.do while語(yǔ)句
    24.閱讀下列代碼
    public class Test2005{
    public static void main(String args[]){
    String s="Test";
    switch(s){
    case"Java":System.out.print("Java");
    break;
    case"Language":System.out.print("Lan-
    guage");
    break;
    case"Test":System.out.print("Test");
    break;
    }
    }
    }
    其運(yùn)行結(jié)果是( )。
    A.Java
    B.Language
    C.Test
    D.編譯時(shí)出錯(cuò)
    25.在程序讀入字符文件時(shí),能夠以該文件作為直接參數(shù)的類(lèi)是( )。
    A.FileReader
    B.BufferedReader
    C.FilelnputStream
    D.ObjectlnputStream
    26.下列描述中,正確的是( )。
    A.在Serializable接口中定義了抽象方法
    B.在Serializable接口中定義了常量
    C.在Serializable接口中沒(méi)有定義抽象方法,也沒(méi)有定義常量
    D.在Serializable接口中定義了成員方法
    27.請(qǐng)閱讀下面程序,說(shuō)明該程序創(chuàng)建線(xiàn)程使用的方法是( )。
    public class ThreadTest
    {
    public static void main(String args[])
    {
    Thread tl=new Thread(new HolloWorld());
    Thread t2=new Thread(new HolloWorld());
    tl.start();
    t2.Start();
    }
    }
    class HolloWorld implements Runnable
    {
    int i;
    public void run()
    {
    while(true)
    {
    System.out.println("HolloWorld"+i++);
    if(i= =5)break;
    }
    }
    }
    A.繼承Thread類(lèi)
    B.實(shí)現(xiàn)Runnable接口
    C.tl.start()
    D.t2.start()
    28.java.io包的File類(lèi)是( )。
    A.字符流類(lèi)
    B.字節(jié)流類(lèi)
    C.對(duì)象流類(lèi)
    D.非流類(lèi)
    29.為保護(hù)本地主機(jī),對(duì)Applet安全限制中正確的是( )。
    A.Applet可加載本地庫(kù)或方法
    B.Applet可讀、寫(xiě)本地計(jì)算機(jī)的文件系統(tǒng)
    C.Applet可向Applet之外的任何主機(jī)建立網(wǎng)絡(luò)連接
    D.Applet不能運(yùn)行任何本地可執(zhí)行程序
    30.請(qǐng)閱讀下面程序
    public class ExampleStringBuffer{
    public static void main(String[]args){
    StringBuffer sb=new StringBuffer("test");
    System.OUt.println("buffer="+sb);
    System.OUt.println("length="+sb.length
    ());}}
    程序運(yùn)行結(jié)果中在"length="后輸出的值是( )。
    A.10
    B.4
    C.20
    D.30
    31.每個(gè)Java小應(yīng)用程序必須定義為( )。
    A.Applet類(lèi)或JApplet類(lèi)的子類(lèi)
    B.JFrame類(lèi)的子類(lèi)
    C.Frame的子類(lèi)
    D.Window的子類(lèi)
    32.若特快訂單是一種訂單,則特快訂單類(lèi)和訂單類(lèi)的關(guān)系是( )。
    A.使用關(guān)系
    B.包含關(guān)系
    C.繼承關(guān)系
    D.無(wú)關(guān)系
    33.下列關(guān)于A(yíng)pplet的安全限制的敘述中,錯(cuò)誤的是( )。
    A.通常情況下,禁止Applet讀、寫(xiě)本地文件系統(tǒng)
    B.通常情況下,禁止Applet向Applet源主機(jī)之外的任何主機(jī)建立網(wǎng)絡(luò)連接
    C.通常情況下,禁止Applet讀取系統(tǒng)信息
    D.通常情況下,禁止Applet加載本地庫(kù)或方法
    34.Swing的選項(xiàng)面板是( )。
    A.JTabbedPane
    B.JLayeredPane
    C.JScrollPane
    D.JSplitPane
    35.提供showDocument()方法,使Applet能夠請(qǐng)求瀏覽器訪(fǎng)問(wèn)特定URL的類(lèi)是( )。
    A.Applet
    B.AppletContext
    C.JApplet
    D.URL
    36.閱讀下面程序
    1 public class Try extends Thread{
    2 public static void main(String args[]){
    3Try t=new Try();
    4 t.start();
    5}
    6
    7 public void run(intj){
    8 inti=0;
    9 while(i<5){
    10 System.out.println("祝你成功!");
    11 i++:
    12}
    13}
    14}
    該程序要求打印5行"祝你成功!",必須改正程序中的某行代碼,程序才能完成。選擇正確的修改是( )。
    A.將第1行的extendsThread改為implementsRunnable
    B.將第3行的newTry()改為newThread()
    C.將第4行t.start()改為start(t)
    D.將第7行的public void run(intj)改為public void run()
    37.若數(shù)組a定義為int[][]a=new int[3][4],則a是( )。
    A.一維數(shù)組
    B.二維數(shù)組
    C.三維數(shù)組
    D.四維數(shù)組
    38.下列標(biāo)識(shí)符(名字)命名原則中,正確的是( )。
    A.類(lèi)名的首字母小寫(xiě)
    B.變量和方法名的首字母大寫(xiě)
    C.接口名的首字母小寫(xiě)
    D.常量完全大寫(xiě)
    39.Java語(yǔ)言使用的字符碼集是( )。
    A.ASCII
    B.BCD
    C.DCB
    D.Unicode
    40.下列事件監(jiān)聽(tīng)器中,無(wú)法對(duì)TextField對(duì)象進(jìn)行事件監(jiān)聽(tīng)和處理的是( )。
    A.ActionListener
    B.FocusListener
    C.MouseMotionListener
    D.ChangeListener
    一、選擇題
    1.D?!窘馕觥烤€(xiàn)性表可以為空表;第一個(gè)元素沒(méi)有直接前驅(qū),最后一個(gè)元素沒(méi)有直接后繼;線(xiàn)性表的定義中,元素的排列并沒(méi)有規(guī)定大小順序。
    2.B?!窘馕觥繚M(mǎn)二叉樹(shù)指除最后一層外,每一層上所有結(jié)點(diǎn)都有兩個(gè)子結(jié)點(diǎn)的二叉樹(shù)。完全二叉樹(shù)指除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到值,在最后一層上只缺少右邊的若干葉子結(jié)點(diǎn)的二叉樹(shù)。由定義可知,滿(mǎn)二叉樹(shù)肯定是完全二叉樹(shù),而完全二叉樹(shù)一般不是滿(mǎn)二叉樹(shù)。
    3.C?!窘馕觥繉?duì)線(xiàn)性表進(jìn)行順序查找時(shí),最壞情況下,要查找的元素是表的最后一個(gè)元素或查找失敗,這兩種情況都需要將這個(gè)元素與表中的所有元素進(jìn)行比較,因此比較次數(shù)為n。
    4.D?!窘馕觥拷Y(jié)構(gòu)化程序設(shè)計(jì)的主要原則概括為自頂向下,逐步求精,模塊化。
    5.B。【解析】需求分析是軟件定義時(shí)期的最后一個(gè)階段??梢愿爬樗膫€(gè)方面:需求獲取;需求分析;編寫(xiě)需求規(guī)格說(shuō)明書(shū);需求評(píng)審。
    6.C?!窘馕觥寇浖y(cè)試的目標(biāo)是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的錯(cuò)誤,給出程序可靠性的鑒定。軟件測(cè)試有3個(gè)重要特征:測(cè)試的挑剔性、完全測(cè)試的不可能性及測(cè)試的經(jīng)濟(jì)性。
    7.C。【解析】模塊的獨(dú)立性是評(píng)價(jià)設(shè)計(jì)好壞的重要度量標(biāo)準(zhǔn)。衡量軟件的模塊獨(dú)立性使用耦合性和內(nèi)聚性?xún)蓚€(gè)定性的度量標(biāo)準(zhǔn)。
    8.C?!窘馕觥寇浖y(cè)試是為了盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤,尤其是至今尚未發(fā)現(xiàn)的錯(cuò)誤。
    9.D。【解析】需求分析常用工具有數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判定樹(shù)和判定表。問(wèn)題分析圖(PAD)、程序流程圖(PFD)、金式圖(N-S)都是詳細(xì)設(shè)計(jì)的常用工具,不是需求分析的工具。
    10.D。【解析】模塊化是結(jié)構(gòu)化程序設(shè)計(jì)的特點(diǎn)。面向?qū)ο笤O(shè)計(jì)方法使用現(xiàn)實(shí)世界的概念抽象地思考問(wèn)題從而自然地解決問(wèn)題。他的特點(diǎn)包括:分類(lèi)性、封裝性、模塊獨(dú)立性、繼承和多態(tài)性等。
    11.B?!窘馕觥繑?shù)據(jù)元素是數(shù)據(jù)的基本單位,即數(shù)據(jù)集合中的個(gè)體。有些情況下也把數(shù)據(jù)元素稱(chēng)為結(jié)點(diǎn)、記錄、表目等。一個(gè)數(shù)據(jù)元素可由一個(gè)或多個(gè)數(shù)據(jù)項(xiàng)組成,數(shù)據(jù)項(xiàng)是有獨(dú)立含義的數(shù)據(jù)最小單位,其值能確定一個(gè)數(shù)據(jù)元素的數(shù)據(jù)項(xiàng)。
    12.D?!窘馕觥織5奶匦詾楹筮M(jìn)先出,而棧S只能容納4個(gè)元素。當(dāng)F進(jìn)棧時(shí),說(shuō)明棧中有已有B、C、D、E四個(gè)元素,所以F無(wú)法進(jìn)棧。
    13.D?!窘馕觥吭陔娮余]件程序向郵件服務(wù)器中發(fā)送郵件時(shí),使用的是簡(jiǎn)單郵件傳輸協(xié)議(SMTP),而在電子郵件程序從郵件服務(wù)器中讀取郵件時(shí),可以使用郵局協(xié)議(POP3)。
    14.C?!窘馕觥恐苯舆x擇排序第一遍掃描就可以把的關(guān)鍵碼找出來(lái)(不必等到排序結(jié)束),而其他幾種排序方法都必須等到排序完成才能找到關(guān)鍵碼。
    15.A?!窘馕觥慷址ú檎沂且环N效率較高的線(xiàn)性表查找方法。要進(jìn)行二分法查找,則線(xiàn)性表結(jié)點(diǎn)必須是按關(guān)鍵碼值排好序的,且線(xiàn)性表以順序方式存儲(chǔ)。
    16.A?!窘馕觥縅ava的核心包一共有l(wèi)2個(gè),其中:java.lan9包中封裝了所有編程應(yīng)用的基本類(lèi);java.util包提供實(shí)用程序類(lèi)和集合類(lèi),如系統(tǒng)特性定義和使用、日期函數(shù)類(lèi)、 集合等常用工具;java.a(chǎn)pplet包為Applet提供執(zhí)行需要的所有類(lèi),主要是訪(fǎng)問(wèn)Applet內(nèi)容的通信類(lèi);java.rmi包提供程序遠(yuǎn)程方法調(diào)用所需的類(lèi)。因此,本題的正確答案是A。
    17.C。【解析Java程序中使用import關(guān)鍵字導(dǎo)入一個(gè)包中的類(lèi)。在一個(gè)Java源程序中,可以有0個(gè)或多個(gè)import語(yǔ)句,但是必須在所有類(lèi)定義之前引入標(biāo)準(zhǔn)類(lèi)。因此,本題中選項(xiàng)C的說(shuō)法是錯(cuò)誤的。
    18.B?!窘馕觥縥avac.exe是Java編譯器,能將源程序代碼編譯成字節(jié)碼,以.class擴(kuò)展名存入Java工作目錄中。它的命令格式為:javac[選項(xiàng)]文件名。其中[選項(xiàng)]包括以下幾個(gè):-g。輸出文件中加行號(hào)以及局部變量信息,為調(diào)試程序時(shí)用。-o對(duì)類(lèi)文件進(jìn)行優(yōu)化編譯。-nowarn 關(guān)閉警告信息,只顯示錯(cuò)誤信息。-verbose 顯示源代碼文件和字節(jié)碼文件的相關(guān)信息。-d<目錄> 指定存放生成的類(lèi)(.class)文件的位置根據(jù)上述介紹可知,在編譯Java程序時(shí),可以通過(guò)選項(xiàng)-d來(lái)指定生成的.class文件的位置。因此,本題的正確答案是B。
    19.D?!窘馕觥縒indowListener接口包含的方法是:①Window Activated(WindowEvent);②WindowOlpened(WindowEvent);③WindowClosed(WindowEvent);④WindowClosing(WindowEvent);⑤WindowDeactivated(WindowEvent);⑥WindowDeiconified(WindowEvent)⑦windowlconified(WindowEvent)。所以D選項(xiàng)錯(cuò)誤。
    20.A。【解析】運(yùn)行Java的JDK一共包含五個(gè)目錄,分別是:bin目錄,該目錄包含Java編譯器、解釋器和許多工具(如服務(wù)器工具、IDL、package工具等);lib目錄,該目錄包含Java庫(kù)文件;jre目錄,該目錄是Java程序運(yùn)行環(huán)境的根目錄,它下面包含bin子目錄,包括平臺(tái)所用工具和庫(kù)的可執(zhí)行文件以及DLL文件;demo目錄,該目錄包含源代碼的程序示例;include目錄,該目錄包含Win32子目錄,都是本地方法的文件。
    21.A?!窘馕觥縅ava是新一代編程語(yǔ)言,具有很多特點(diǎn):簡(jiǎn)單易學(xué);利用面向?qū)ο蠹夹g(shù);分布式計(jì)算;健壯性(魯棒性);安全性;跨平臺(tái)(即體系結(jié)構(gòu)中立);可移植性;解釋執(zhí)行;高性能;多線(xiàn)程;動(dòng)態(tài)性。因此,本題的正確答案是A。
    22.C?!窘馕觥勘绢}考查線(xiàn)程的基本控制。Thread類(lèi)提供的基本線(xiàn)程控制方法包括:sleep()——使比其低的優(yōu)先級(jí)線(xiàn)程運(yùn)行,可以讓一個(gè)線(xiàn)程暫停運(yùn)行一段固定的時(shí)間;yield()——使具有與當(dāng)前線(xiàn)程相同優(yōu)先級(jí)的線(xiàn)程有運(yùn)行的機(jī)會(huì);join()——使當(dāng)前線(xiàn)‘程暫停執(zhí)行,等待調(diào)用該方法的線(xiàn)程結(jié)束后,再恢復(fù)執(zhí)行;interrupt()——中斷線(xiàn)程的阻塞狀態(tài),并且線(xiàn)程接收到InterruptException異常。根據(jù)上述介紹可知,只有yield()方法可以使當(dāng)前同級(jí)線(xiàn)程重新獲得運(yùn)行機(jī)會(huì)。因此,本題的正確答案是C。
    23.C。【解析】do while語(yǔ)句和for語(yǔ)句是循環(huán)語(yǔ)句;it語(yǔ)句和switch語(yǔ)句是分支語(yǔ)句。而if語(yǔ)句稱(chēng)為條件語(yǔ)句, switch語(yǔ)句稱(chēng)為多分支語(yǔ)句。
    24.D?!窘馕觥勘绢}考查switch語(yǔ)句的用法。switch語(yǔ)句是多分支語(yǔ)句,即根據(jù)表達(dá)式的值來(lái)執(zhí)行多個(gè)操作中的一個(gè)。在switch語(yǔ)句中,”表達(dá)式”的返回值類(lèi)型必須是這幾種類(lèi)型
    之一:int、byte、char、short。本題中,switch的表達(dá)式s是一個(gè)字符串Strin9類(lèi)型的值,它不是int、byte、char、short中的任意一個(gè)。因此表達(dá)式s的類(lèi)型不對(duì),編譯時(shí)
    出錯(cuò)。
    25.A?!窘馕觥縁ileReader、BufferedReader是字符類(lèi)輸入流。FileInputStream是字節(jié)輸入流。對(duì)象串行化時(shí),需要使用ObjectlnputStream類(lèi)中提供的方法從對(duì)象流中讀取對(duì)象。所以,在程序讀入字符文件時(shí),要使用字符流FileReader或BufferedReader。但是FileReader的參數(shù)是讀入的文件,而B(niǎo)ufferedReader的參數(shù)是FileReader流的一個(gè)對(duì)象。因此,本題的正確答案是A。
    26.C?!窘馕觥吭趈ava.i0包中,接口Serializable是實(shí)現(xiàn)對(duì)象串行化的工具。實(shí)際上,Serializable接口是一個(gè)空接口,它里面既沒(méi)有定義抽象方法,也沒(méi)有定義常量。Serializable接口的目的只是簡(jiǎn)單地標(biāo)識(shí)一個(gè)類(lèi)的對(duì)象是可以被串行化的。
    27.B?!窘馕觥勘绢}考查線(xiàn)程的創(chuàng)建。在Java中,創(chuàng)建線(xiàn)程有兩種方法:①通過(guò)實(shí)現(xiàn)Runnable接口創(chuàng)建線(xiàn)程。Runnable接口中只定義了一個(gè)run()方法作為線(xiàn)程體。②通過(guò)繼承Thread類(lèi)創(chuàng)建線(xiàn)程,Thread類(lèi)本身實(shí)現(xiàn)了Runnable接口。創(chuàng)建的新的線(xiàn)程不會(huì)自動(dòng)運(yùn)行,必須調(diào)用start()方法才能運(yùn)行。本題中HolloWorld類(lèi)實(shí)現(xiàn)了Runnable接口。
    28.D?!窘馕觥縅ava.io包中的類(lèi)可以處理不同類(lèi)型的流,比如字節(jié)流、字符流、對(duì)象流、非流類(lèi)等。File類(lèi)就是一個(gè)重要的非流類(lèi),它是以一種系統(tǒng)無(wú)關(guān)的方式表示一個(gè)文件對(duì)象的屬性。
    29.D?!窘馕觥縅ava平臺(tái)為了防范惡意程序的攻擊,保護(hù)本地主機(jī),對(duì)Applet作了如下安全限制:①Applet不能運(yùn)行任何本地可執(zhí)行程序。②禁止加載本地庫(kù)或方法。③禁止讀、寫(xiě)本地計(jì)算機(jī)的文件系統(tǒng)。④禁止向提供Applet之外的任何主機(jī)建立網(wǎng)絡(luò)連接。⑤不能讀取某些系統(tǒng)信息。⑥由一個(gè)Applet彈出的窗口外觀(guān)上與一個(gè)Application彈出的窗口不同,Applet彈出的窗口中會(huì)有警告提示信息,幫助用戶(hù)區(qū)分Applet窗口與可信的Application窗口。
    30.B?!窘馕觥勘绢}對(duì)StringBuffer(String str)構(gòu)造方法,用str給出字符串的初始值,并分配16個(gè)字符的緩存。因此,字符串sb的初始值是”test”,并且包含l6個(gè)字符的緩存。length()方法用來(lái)獲得字符串長(zhǎng)度,不包含緩存。故程序運(yùn)行結(jié)果中在”length=”后輸出的值應(yīng)該是字符串sb的長(zhǎng)度,即4。
    31.A?!窘馕觥勘绢}考查Applet的基本知識(shí)。Applel類(lèi)定義了小應(yīng)用程序(Applet)與其運(yùn)行環(huán)境之間的一個(gè)接口;JApplet是Applet類(lèi)的擴(kuò)展,它繼承了Applet的方法和執(zhí)行機(jī)制,同時(shí)也增加了對(duì)Swing構(gòu)件的支持。每個(gè)Jaw小應(yīng)用程序都必須是Applet類(lèi)或JApplet類(lèi)的子類(lèi)。因此,本題的正確答案是A。
    32.C?!窘馕觥坷^承是允許將一個(gè)類(lèi)定義為一個(gè)更通用類(lèi)的特例。特殊類(lèi)稱(chēng)為子類(lèi),通用類(lèi)稱(chēng)為父類(lèi)。除了訂單類(lèi)的屬性外,特快訂單類(lèi)可能還有其他一些特殊屬性。顯然,訂單類(lèi)是通用類(lèi),即父類(lèi);而特快訂單類(lèi)是定單類(lèi)的一個(gè)特例,是子類(lèi)。訂單類(lèi)和特快訂單類(lèi)是繼承關(guān)系。
    33.C?!窘馕觥勘绢}考查Applet的安全限制。許多瀏覽器為了保護(hù)本地主機(jī),一般情況下,對(duì)Applet作了如下安全限制:Applet不能運(yùn)行任何本地可執(zhí)行程序;禁止Applet讀、寫(xiě)本地計(jì)算機(jī)的文件系統(tǒng);禁止加載本地庫(kù)或方法。Applet只能使用自身的代碼或Applet瀏覽器提供的JavaAPl;禁止向提供Applet之外的任何主機(jī)建立網(wǎng)絡(luò)連接;不能讀取某些系統(tǒng)信息。除了Java版本號(hào)、操作系統(tǒng)名等一些簡(jiǎn)單信息外,Applet不能獲得與本地計(jì)算機(jī)有關(guān)的任何信息。根據(jù)上述介紹可知,Applet只能讀取有限的系統(tǒng)信息,但不是一點(diǎn)兒都不能讀取。因此,本題的正確答案是C。
    34.A?!窘馕觥勘绢}考查Swing的容器面板。在Swing的容器面板中:選項(xiàng)板(JTabbedPane)提供一組可供用戶(hù)選擇的帶有標(biāo)簽或圖標(biāo)的選項(xiàng),每個(gè)選項(xiàng)下面都可以顯示一個(gè)構(gòu)件;Swing提供兩種分層面板:JLayeredPane和JDesktopPane。JDesktopPane是JLayeredPane的子類(lèi),專(zhuān)門(mén)為容納內(nèi)部框架(JInternalFrame)而設(shè)計(jì);滾動(dòng)窗口(JScrollPane)是帶滾動(dòng)條的面板,主要是通過(guò)移動(dòng)JViewport(視口)來(lái)實(shí)現(xiàn)的;分隔板(JSplitPane)用于分隔兩個(gè)構(gòu)件,這兩個(gè)構(gòu)件可以按照水平方向分隔,也可以按照垂直方向分隔。根據(jù)上述介紹可知,Swing中的選項(xiàng)面板是JTabbedPane。因此,本題的正確答案是A。
    35.B?!窘馕觥緼ppletContext類(lèi)是一個(gè)接口類(lèi),Applet通過(guò)AppletContext接口與環(huán)境進(jìn)行通信。可以利用這個(gè)類(lèi)從Applet環(huán)境獲取信息,而這個(gè)環(huán)境一般是指瀏覽器。Applet使用AppletContext類(lèi)的showDocument()方法可以通知瀏覽器在指定窗口中顯示另一個(gè)URL的內(nèi)容。因此,本題的正確答案是B。
    36.D?!窘馕觥勘绢}考查線(xiàn)程的創(chuàng)建。Java語(yǔ)言中提供兩種創(chuàng)建線(xiàn)程的方法,一種是通過(guò)實(shí)現(xiàn)Runnable接口來(lái)創(chuàng)建線(xiàn)程,另一種是通過(guò)繼承Thread類(lèi)創(chuàng)建線(xiàn)程。顯然,題目中的程序是使用第二種方法來(lái)創(chuàng)建線(xiàn)程。Thread類(lèi)中定義了run()方法,所以通過(guò)繼承Thread類(lèi)來(lái)創(chuàng)建線(xiàn)程時(shí)還要重寫(xiě)Thread類(lèi)中的run()方法。而run()方法的定義如下:
    public void run(){}
    題目中的代碼比較簡(jiǎn)單,就是創(chuàng)建了一個(gè)線(xiàn)程,這個(gè)線(xiàn)程完成的操作就是打印5行"祝你成功"。仔細(xì)閱讀程序,不難發(fā)現(xiàn)第7行有錯(cuò)。在run()方法的定義中是沒(méi)有參數(shù)的,而題目程序中的run方法卻帶有一個(gè)參數(shù)。因此,要把第7行的代碼改為"public void run()"。因此,本題的正確答案是D。
    37.B?!窘馕觥慷S數(shù)組有兩種定義方式:①type arrayName[][];②type[][]arrayName;從題目中的語(yǔ)句可以看出,本題定義了一個(gè)二維數(shù)組。
    38.D。【解析】Java命名的基本原則包括如下幾條:_、$不作為變量名、方法名的開(kāi)頭;變量名、方法名首單詞小寫(xiě),其余單詞只有首字母大寫(xiě);接口名、類(lèi)名首單詞第一個(gè)字母大寫(xiě);常量完全大寫(xiě)。根據(jù)上述命名規(guī)則,選項(xiàng)D的說(shuō)法是正確的。
    39.D?!窘馕觥縅ava語(yǔ)言使用的是Unicode字符集。而ASCIl是國(guó)際上使用最廣泛的字符編碼;BCD是一種數(shù)字壓縮存儲(chǔ)編碼方法。
    40.D?!窘馕觥勘绢}考查AWT事件處理。事件就是發(fā)生在用戶(hù)界面上的用戶(hù)交互行為所產(chǎn)生的一種效果。每類(lèi)事件都有對(duì)應(yīng)的事件監(jiān)聽(tīng)器,監(jiān)聽(tīng)器就是接口。在單行文本輸入?yún)^(qū)(TextField)構(gòu)件上可能發(fā)生的事件包括:FocusEvent焦點(diǎn)事件——焦點(diǎn)的獲得和丟失,這類(lèi)事件所對(duì)應(yīng)的事件監(jiān)聽(tīng)器是FocusListener;ActionEvent動(dòng)作事件——按鈕按下、TextField中按鍵,這類(lèi)事件所對(duì)應(yīng)的事件監(jiān)聽(tīng)器是ActionListener;MouseEvent鼠標(biāo)事件——鼠標(biāo)單擊、釋放、拖動(dòng)、移動(dòng),這類(lèi)事件所對(duì)應(yīng)的事件監(jiān)聽(tīng)器是MousetMotionListener。雖然還包括其他一些監(jiān)聽(tīng)器,但是在所有事件及其所對(duì)應(yīng)的事件監(jiān)聽(tīng)器中,并不包括ChangeListener這樣一個(gè)事件監(jiān)聽(tīng)器。因此,本題的正確答案是D。