- 相關(guān)推薦
全國計算機(jī)二級考試Java模擬試題答案及解析
一、選擇題
1.D!窘馕觥繑(shù)據(jù)的存儲結(jié)構(gòu)是指數(shù)據(jù)結(jié)構(gòu)(數(shù)據(jù)的邏輯結(jié)構(gòu))在計算機(jī)中的表示,又稱物理結(jié)構(gòu)。數(shù)據(jù)的存儲結(jié)構(gòu)主要有兩種:順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。
2.D。【解析】冒泡排序法首先將第一個記錄的關(guān)鍵字與第二個記錄的關(guān)鍵字進(jìn)行比較,若逆序則交換,然后比較第二個與第三個,以此類推,直至第n-1個與第n個記錄的關(guān)鍵字進(jìn)行比較。在最壞情況下,冒泡排序中,若初始序列為”逆序”序列,需要比較n(n-1)/2次。快速排序是對通過一趟排序?qū)⒋庞涗浄指畛瑟?dú)立的兩部分,其中一部分記錄的關(guān)鍵字比另一部分記錄的關(guān)鍵字小,然后分別對這兩部分記錄繼續(xù)進(jìn)行排序,最終達(dá)到整個記錄有序。最壞情況下比較次數(shù)為n(n-1)/2。
3.C!窘馕觥織J侵辉试S在表的一端進(jìn)行插入和刪除的操作,隊列是允許在表的一端進(jìn)行插入,另一端進(jìn)行刪除的操作。
4.C!窘馕觥慷鏄涞闹行虮闅v是指先訪問左子樹。再訪問樹結(jié)點(diǎn),最后訪問右子樹;當(dāng)訪問下級左右子樹時,也對照此原則。所以C選項正確。
5.A!窘馕觥俊鼻逦谝,效率第二”,在考慮到程序的執(zhí)行效率的同時,一定要保證程序清晰、可讀;對符號名的命名,除了要符合語法要求外,還要具有一定的含義;程序的注釋可以幫助程序員理解程序,不是可有可無的。
6.C!窘馕觥棵嫦?qū)ο蟮某绦蛟O(shè)計是用對象模擬問題領(lǐng)域中的實(shí)體,各對象之間相對獨(dú)立,相互依賴性小,通過消息來實(shí)現(xiàn)對象之間的相互聯(lián)系。
7.D!窘馕觥狂詈闲耘c內(nèi)聚性是模塊獨(dú)立性的兩個定性標(biāo)準(zhǔn),一般的程序設(shè)計都會盡量做到高內(nèi)聚、低耦合,有利于提高模塊的獨(dú)立性。
8.D!窘馕觥繑(shù)據(jù)獨(dú)立性是數(shù)據(jù)庫系統(tǒng)的一個最重要的目標(biāo)之一,它使數(shù)據(jù)能獨(dú)立于應(yīng)用程序。數(shù)據(jù)獨(dú)立性包括數(shù)據(jù)的物理獨(dú)立性和邏輯獨(dú)立性。物理獨(dú)立性是指用戶的應(yīng)用程序與存儲在磁盤上的數(shù)據(jù)庫中數(shù)據(jù)是相互獨(dú)立的。即數(shù)據(jù)在磁盤上怎樣存儲由DBMS管理,用戶程序不需要了解,應(yīng)用程序要處理的只是數(shù)據(jù)的邏輯結(jié)構(gòu),這樣當(dāng)數(shù)據(jù)的物理存儲改變了,應(yīng)用程序不用改變。邏輯獨(dú)立性是指用戶的應(yīng)用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨(dú)立的,即當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時,用戶程序也可以不變。
9.C!窘馕觥寇浖こ淌侵笇⒐こ袒乃枷霊(yīng)用于軟件的開發(fā)、應(yīng)用和維護(hù)的過程,包括軟件開發(fā)技術(shù)和軟件工程管理。
10.A!窘馕觥筷P(guān)系的并運(yùn)算是指由結(jié)構(gòu)相同的兩個關(guān)系合并,形成一個新的關(guān)系,其中包含兩個關(guān)系中的所有元組。
11.B。【解析】順序存儲結(jié)構(gòu)的結(jié)點(diǎn)只有自身信息域,沒有連接信息的域,因此存儲密度大,存儲空間利用率高。鏈?zhǔn)酱鎯Y(jié)構(gòu)除了自身域還包括指針域,因此比順序存儲結(jié)構(gòu)的存儲密度小,存儲空間利用率低。
12.A!窘馕觥緼[8][5]元素存儲的位置在第9行第6列,所以A[8][5]之前存儲的個數(shù)應(yīng)為8×10+5=85,這些元素占用的空間為85×2字節(jié)=170字節(jié),所以A[8][5]的存儲位置為400+170=570。
13.C!窘馕觥坎僮飨到y(tǒng)是計算機(jī)系統(tǒng)中的一個系統(tǒng)軟件,它能有效地組織和管理計算機(jī)系統(tǒng)中的各種資源,并且為用戶提供良好的界面。沒有任何軟件支持的計算機(jī)稱為裸機(jī),而實(shí)際呈現(xiàn)在用戶面前的計算機(jī)系統(tǒng)是經(jīng)過若干層軟件改造的計算機(jī),而操作系統(tǒng)位于各種軟件的最底層。
14.C!窘馕觥坑嬎銠C(jī)系統(tǒng)中有限的資源與眾多請求分配資源的進(jìn)程間存在矛盾。當(dāng)若干進(jìn)程需求資源的總數(shù)大于系統(tǒng)所能提供的資源數(shù)時,進(jìn)程間就會出現(xiàn)搶占資源的現(xiàn)象,如果對進(jìn)程搶占的資源管理或分配不當(dāng)就會引起死鎖。
15.B!窘馕觥窟M(jìn)程同步是指進(jìn)程之間一種直接的協(xié)同工作關(guān)系,這些進(jìn)程相互合作,共同完成一項任務(wù)。進(jìn)程間的直接相互作用構(gòu)成進(jìn)程的同步。
16.A。【解析】本題考查Java語言的特點(diǎn)。Java語言是面向?qū)ο蟮模瑢⒖陀^世界看成由各種對象組成的;機(jī)器語言是計算機(jī)實(shí)際處理時使用的語言,把客觀世界都看成由0和1組成;過去的高級語言大多數(shù)是面向過程的,比如C語言等,它們是通過數(shù)據(jù)結(jié)構(gòu)與算法來描述客觀世界;匯編語言屬于低級語言?忌鷳(yīng)注意區(qū)分各種語言的區(qū)別。本題正確答案為選項A。
17.B!窘馕觥勘绢}考查Java中的布局管理器。Pane和Applet默認(rèn)的布局管理器是FlowLayout,構(gòu)件在容器中放置規(guī)律是從上到下、從左到右進(jìn)行放置;BorderLayout是Window、Frame和Dialog的默認(rèn)布局管理器,在BorderLayout布局管理器中構(gòu)件分成5個區(qū)域North、South、East、West和Center,每個區(qū)域只能放置一個構(gòu)件?忌鷳(yīng)注意區(qū)分各個布局管理器的區(qū)別和聯(lián)系,以及各個布局管理器的特點(diǎn)。
18.B。【解析】本題考查Java語言的虛擬機(jī)。Java本身的編譯器用Java語言編寫,運(yùn)行系統(tǒng)的虛擬機(jī)用C語言實(shí)現(xiàn)。Java語言的執(zhí)行模式是半編譯和半解釋型,程序首先由編譯器轉(zhuǎn)換為標(biāo)準(zhǔn)字節(jié)代碼,然后由Java虛擬機(jī)去解釋執(zhí)行,字節(jié)代碼實(shí)際上可以看作是虛擬機(jī)的機(jī)器代碼?忌鷳(yīng)當(dāng)理解Java語言的實(shí)現(xiàn)機(jī)制,這屬于考試重點(diǎn)。正確答案為選項B。
19.B!窘馕觥勘绢}考查Java的安全性特點(diǎn)。面向網(wǎng)絡(luò)、分布式的Java語言,對非法入侵的防范是非常重要的,Java語言提供充分的安全保障,在運(yùn)行程序時,有嚴(yán)格的訪問權(quán)限檢查。對字節(jié)代碼執(zhí)行前要檢查,不允許使用指針,可防止對內(nèi)存的非法入侵,它是目前安全性最佳的語言。但是Java并不是對程序執(zhí)行前檢查,而是對字節(jié)代碼進(jìn)行檢查,Java編寫好的程序首先由編譯器轉(zhuǎn)換為標(biāo)準(zhǔn)字節(jié)代碼,然后由Java虛擬機(jī)去解釋執(zhí)行。
20.B!窘馕觥勘绢}考查考生對Java語言概念的理解。屬于考試重點(diǎn)內(nèi)容,考生應(yīng)注意理解這些基本概念?忌鷳(yīng)該明確,Java語言中可以有package語句,用來指定源文件存入所指定的包中,只能有0或1個,所以選項A說法錯誤;可以有0或多個以上import語句,但必須在所有類定義之前引入標(biāo)準(zhǔn)類,所以選項B說法正確;源文件中最多只能有一個public類,其他類的個數(shù)不限,所以選項C和選項D說法錯誤。
21.D!窘馕觥勘绢}考查類的聲明。選項A錯誤,abstract用來聲明抽象類,final用來聲明最終類。這兩個修飾詞不能同時出現(xiàn)在類聲明中;選項B錯誤,缺少class關(guān)鍵字;選項C錯誤,類不能聲明為protected和private屬性,且不以”;”結(jié)尾,也缺少class關(guān)鍵字;選項D正確,聲明了一個可以公有繼承的抽象類。
22.C!窘馕觥勘绢}考查考生對Java語言中的類和接口的理解。java.lang包提供了構(gòu)成Java語言、Java虛擬機(jī)核心的類和接口。例如,類object、類String和類Thread等。對任何一個Java程序來說,這些類幾乎都是必不可少的。java.lang還包含了許多由Java虛擬機(jī)發(fā)出的異常,這些異常也是”類”的一種。另外,java.lang包還包含一些用于訪問系統(tǒng)資源的類,如ClassLoader等。java.lang包具有極其重要的作用,在程序開頭可以不必明文編寫裝載它的代碼。
23.C。【解析】本題考查JDK目錄結(jié)構(gòu)。bin目錄下有編譯器、解釋器和各種工具,如服務(wù)器工具、IDLpackage工具和jdb等。jre目錄是Java程序運(yùn)行環(huán)境的根目錄,它下面有bin子目錄,包括平臺所用工具和庫的可執(zhí)行文件和DLL文件;lib子目錄包括java運(yùn)行環(huán)境的代碼庫。lib目錄下都是庫文件。demo目錄下有各種演示例子。include目錄下是Win32子目錄,都是本地方法文件,選項C錯誤。
24.A!窘馕觥勘绢}是考查對文件輸入、輸出流的理解。通過類File的實(shí)例或者一個表示文件名稱的字符串可以生成文件輸入/輸出流,在流對象生成的同時,文件被打開,然后就可以進(jìn)行文件讀/寫,選項B說法錯誤。對于InputStream和OutputStream來說,它們的實(shí)例都是順序訪問流,即只能進(jìn)行順序的讀/寫,選項C說法錯誤。當(dāng)從標(biāo)準(zhǔn)輸入流讀取數(shù)據(jù)時,從鍵盤輸入的數(shù)據(jù)被緩沖,按鍵時,程序才會得到輸入數(shù)據(jù),選項D說法錯誤。
25.D!窘馕觥勘绢}考查類的聲明。選項A中m沒有被聲明過,不能使用;選項B中雖然b是類Teacher的public成員變量,但在靜態(tài)方法中,不能使用類中的非靜態(tài)成員;選項C中a是類Person的private成員,在類外不能直接引用;選項D中change(intm)方法是pubtic方法,并且返回一個int型值,可以通過類的實(shí)例變量P引用并賦值給一個int型變量。
26.A。【解析】本題考查Java類實(shí)現(xiàn)ZIP數(shù)據(jù)壓縮方式。ZIP壓縮文件結(jié)構(gòu):一個ZIP文件由多個Entry組成,每個Entry有一個唯一的名稱,Entry的數(shù)據(jù)項存儲壓縮數(shù)據(jù)。ZiplnputStream實(shí)現(xiàn)了ZIP壓縮文件的讀輸入流,支持壓縮和非壓縮Entry.題目程序中FileInputStreallD_fis=new FilelnputStream("test/file.zip")構(gòu)造了一個文件輸入 流,ZiplnputStream zis=new ZiplnputStream(fis)語句利用文件輸入流fis構(gòu)造了一個ZIP輸入流,zis.getNextEntry()語句返回ZIP文件中的下一個Entry,并將輸出流定位在此entry數(shù)據(jù)項的起始位置.
27.B。【解析】本題考查容器的嵌套。將一個容器Panel1放到容器framel中的方法和在容器上添加部件是一樣的,使用add()方法即可。
28.C!窘馕觥勘绢}考查Java中的運(yùn)算符。首先要清楚程序里面涉及的運(yùn)算符的含義。"<<"是按位左移運(yùn)算符,”&”是按位與運(yùn)算符,"|"是按位或運(yùn)算符,"^"是按位異或運(yùn)算符。題目中整型變量n=7相當(dāng)于二進(jìn)制中的111,n<<=3語句執(zhí)行后,n值為lll000。相當(dāng)于十進(jìn)制的56,而語句n=n&n+1|n+2^n+3執(zhí)行后,n值為57,n>>=2語句執(zhí)行恬,n的值為14,所以選項C正確。
29.A!窘馕觥勘绢}考查文件操作。seek(long pos)是隨機(jī)文件記錄的查找,滿足題意。lengh()方法是求隨機(jī)文件字節(jié)長度的方法,不符合題意;Java中沒有find()方法;skipBytes(int n)方法是使隨機(jī)文件訪問跳過指定字節(jié),不符合題意。
30.B!窘馕觥勘绢}考查壓縮文件流的概念。當(dāng)輸入一個ZIP文件時要將ZIP文件作為FilelnputStream構(gòu)造方法的參數(shù),所以選項B正確。而FilelnputStream對象又作為ZiplnputStream構(gòu)造方法的參數(shù)出現(xiàn)。這里的ZipInputStream對象在將壓縮文件內(nèi)的輸入項作為字符文本讀出時即作為InputStreamReader的構(gòu)造方法參數(shù)出現(xiàn)。最后,InputStreamReader對象作為BufferedReader的構(gòu)造方法的參數(shù),并且使用readLine()方法將壓縮文件輸入項作為文本讀出。
31.C!窘馕觥勘绢}考查考生對Java中InputStream非字符輸入流的掌握。所有的字節(jié)輸入流都是從InputStream繼承的,包括:ByteArraylnputStre8m,以字節(jié)數(shù)組作為輸入流FilelnputStream,可對一個磁盤文件設(shè)計的數(shù)據(jù)進(jìn)行處理;PipedInputStream,實(shí)現(xiàn)線程之間通信的一個類;FilterInputStream,過濾器輸入流;SequenceInputStream,將多個輸入流首尾相接;ObjectlnputStream,實(shí)現(xiàn)ObjeetInPut接15/。選項D中壓縮文件輸入流ZiplnputStream是InflaterInputStream的子類,而InflaterInputStream是FilterInputStream的子類,只有選項C中字符輸入流CharInputStream類是字符流。本題涉及內(nèi)容較多,要求對整個輸入輸出流有所了解。
32.C!窘馕觥勘绢}考查考生對創(chuàng)建線程的使用。創(chuàng)建線程有兩種方法:通過實(shí)現(xiàn)Runnable接口創(chuàng)建線程和通過繼承Thread類創(chuàng)建線程。通過實(shí)現(xiàn)Runnable接口創(chuàng)建線程,當(dāng)實(shí)現(xiàn)Runnable接口的類的對象用來創(chuàng)建線程以后,該線程的啟動將使得對象的run()方法被調(diào)用。通過繼承Thread類創(chuàng)建線程,可以通過繼承Thread類,并重寫其中的run()方法定義線程體,然后創(chuàng)建該子類的對象創(chuàng)建線程。線程創(chuàng)建是考試重點(diǎn)內(nèi)容,請務(wù)必掌握。
33.C!窘馕觥勘绢}考查JavaApplication與Applet的區(qū)別。Applet與Application的主要區(qū)別在執(zhí)行方式上,Applieation以main()方法為入口點(diǎn)運(yùn)行,Applet要在瀏覽器或appletviewer中運(yùn)行,運(yùn)行過程比Application更復(fù)雜。兩者都是通過”javac”命令編譯,所以只有選項C說法正確.
34.B!窘馕觥勘绢}考查Applet程序的運(yùn)行方式。在Applet運(yùn)行時,首先由瀏覽器調(diào)用init()方法,所以選項B正確。初始化完成后,將調(diào)用start()方法使Applet成為激活狀態(tài)。當(dāng)Applet被覆蓋時.可用stop()方法停止線程。關(guān)閉瀏覽器時調(diào)用destroy(),徹底終止Applet,從內(nèi)存中卸載并釋放該Applet的所有資源。Applet的生命周期及其運(yùn)行方式是考試重點(diǎn),應(yīng)該牢記。
35.C!窘馕觥勘绢}考查線程優(yōu)先級的概念。首先應(yīng)該了解Java的線程是有優(yōu)先級的,并且可以控制其優(yōu)先級,可以排除選項A;選項B和選項C本身就矛盾,故選項D是錯器的,B和C不能同時選擇。線程的優(yōu)先級在創(chuàng)建線程時可以設(shè)置,也可以通過getPriority()方法來獲得線程的優(yōu)先級,通過setPriority()方法來設(shè)定線程的優(yōu)先級。線程的優(yōu)先級屬于考試重點(diǎn)內(nèi)容,應(yīng)該重點(diǎn)掌握。
36.B。【解析】本題考查Java中的數(shù)據(jù)類型,應(yīng)該掌握J(rèn)ava中的簡單數(shù)據(jù)類型,以及相關(guān)運(yùn)算。floatf=0.0這個語句,想要定義一個浮點(diǎn)型變量f,并且初值為0.0,但由于Java認(rèn)為如果數(shù)字后沒有任何字母,則默認(rèn)為double類型,而double是不能轉(zhuǎn)換為float的,所以該語句錯誤,如果改 為floatf=0.0f,即可正確運(yùn)行。
37.A!窘馕觥勘绢}考查考生對Applet獲取參數(shù)的掌握。Applet被下載時,在Applet的init()方法中使用getParameter()方法獲取參數(shù),所以選項A正確。而且要注意getParameter()方法只能在init()方法中。getParameter()方法的入口參數(shù)所取參數(shù)的名字,必須與標(biāo)記中的name指示的名字相同,這一點(diǎn)務(wù)必注意,返回值是參數(shù)的值。
38.C。【解析】本題考查線程的生命周期。線程一旦創(chuàng)建,就開始了它的生命周期。線程的聲明周期主要分為:新建狀態(tài)(new),線程創(chuàng)建后處于該狀態(tài);可運(yùn)行狀態(tài)(Runnable),新建的線程調(diào)用start()方法,將使線程的狀態(tài)從New轉(zhuǎn)換為Runnable,所以選項C正確;運(yùn)行狀態(tài)(Running),運(yùn)行狀態(tài)使線程占有CPU并實(shí)際運(yùn)行的狀態(tài);阻塞狀態(tài)(Blocked),導(dǎo)致該狀態(tài)的原因很多,注意區(qū)別;終止?fàn)顟B(tài)(Dead),線程執(zhí)行結(jié)束的狀態(tài),沒有任何方法可改變它的狀態(tài)。
39.B!窘馕觥勘绢}考查多線程的并發(fā)控制機(jī)制。Java中對共享數(shù)據(jù)操作的并發(fā)控制采用傳統(tǒng)的加鎖技術(shù),也就是給對象加鎖,選項A說法正確。線程之間的交互,提倡采用wait()和notify()方法,這兩個方法是java.lang.object類的方法,是實(shí)現(xiàn)線程通信的兩個方法,不提倡使用suspend()和resume()方法,它們?nèi)菀自斐伤梨i,所以選項B說法錯誤。共享數(shù)據(jù)的訪問權(quán)限都必須定義為private,不能為public或其他,選項C說法正確。Java中沒有提供檢測與避免死鎖的專門機(jī)制,因此完全由程序進(jìn)行控制,但程序員可以采用某些策略防止死鎖的發(fā)生,選項D說法正確。
40.D!窘馕觥勘绢}考查Applet的安全限制。為了保護(hù)本地主機(jī),很多瀏覽器對Applet作了安全限制:Applet不能運(yùn)行任何本地可運(yùn)行程序;禁止加載本地庫或方法;禁止讀、寫本地計算機(jī)的文件系統(tǒng);禁止與提供Applet之外的任何主機(jī)建立網(wǎng)絡(luò)連接;不能讀取某些系統(tǒng)信息。但Applet是可以與同一個頁面中的Applet進(jìn)行通信的,所以選項D不屬于Applet安全限制。
二、基本操作題
第1處:year=Integer.parseInt(s)
第2處:catch
第3處:year%4= =0&&year%100 !=0 ||year%400
= =0
【解析】第1處是將String型的s轉(zhuǎn)換成整型;第2處是捕獲異常的catch子句,用來處理由try所拋出的異常事件;第3處是判斷是否為閏年的條件,即能被4整除且不能被100整除的或能被400整除的就是閏年。
三、簡單應(yīng)用題
第1處:implements ActionListener
第2處:evt.getSource()
【解析】第1處是實(shí)現(xiàn)ActionListener接口,程序中有窗口探聽器的注冊;第2處返回ActionEvent動作事件的最初發(fā)生對象。
四、綜合應(yīng)用題
第1處:setLayout(new FlowLayout(FlowLayout.LEFT))
第2處:button.addActionListener(this)
一第3處:s=ta.getSelectedText()
【解析】第1處是設(shè)置構(gòu)件的對齊方式為左對齊的且縱橫間隔都是5個像素的布局管理器;第2處是為按鈕注冊探聽器;第3處是在文本域ta中得到選中文本,將其賦給String類型的s。
【全國計算機(jī)二級考試Java模擬試題答案及解析】相關(guān)文章:
2015全國計算機(jī)二級考試JAVA模擬練習(xí)(三)03-05
計算機(jī)二級考試JAVA模擬試題03-03
2015年全國計算機(jī)二級考試Java模擬試題(二)03-30
2015年全國計算機(jī)二級考試Java模擬試題(三)03-30
全國計算機(jī)等級考試二級JAVA筆試真題答案及解析10-11
計算機(jī)二級考試Java模擬試題及答案201712-06