2020年計算機(jī)等級考試二級Java模擬練習(xí)_第1頁
2020年計算機(jī)等級考試二級Java模擬練習(xí)_第2頁
2020年計算機(jī)等級考試二級Java模擬練習(xí)_第3頁
2020年計算機(jī)等級考試二級Java模擬練習(xí)_第4頁
2020年計算機(jī)等級考試二級Java模擬練習(xí)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

2020年計算機(jī)等級考試二級Java模

擬練習(xí)

心之所向,所向披靡

計算機(jī)等級考試二級Java模擬練習(xí)

1在進(jìn)行順序查找過程中,如果線性表中被查的元素是線性表中的最后一個,或者被查元素根本不在線性表中,則為了查

找這個元素需要與線性表中所有元素進(jìn)行比較,這是順序查找最壞的情況。

信息隱蔽是指在一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不得要這些信息的其它模塊來說是不能訪問的。

2模塊獨(dú)立性是指每個模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其它模塊的聯(lián)系最少且接口簡單。

衡量軟件的模塊獨(dú)立性的度量標(biāo)準(zhǔn)是耦合性和內(nèi)聚性。一個模塊的內(nèi)聚性越強(qiáng),則該模塊的模塊獨(dú)立性越強(qiáng)。而內(nèi)聚性是

信息隱蔽和局部化概念的自然擴(kuò)展。

面向?qū)ο蟮脑O(shè)計方法與傳統(tǒng)的的面向過程的方法有本質(zhì)不同,它的基本原理是,使用現(xiàn)實(shí)世界的概念抽象地思考問題從而

自然地解決問題。它強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的概念而不強(qiáng)調(diào)算法,它鼓勵開發(fā)者在軟件開發(fā)的絕大部分中都用應(yīng)用領(lǐng)域的概念去

思考。

總體設(shè)計過程通常由兩個主要階段組成:系統(tǒng)設(shè)計,確定系統(tǒng)的具體實(shí)現(xiàn)方案;結(jié)構(gòu)設(shè)計,確定軟件結(jié)構(gòu)。為確定軟件結(jié)構(gòu),

首先需要從實(shí)現(xiàn)角度把復(fù)雜的功能進(jìn)一步分解。分析員結(jié)合算法描述仔細(xì)分析數(shù)據(jù)流圖中的每個處理,如果一個處理的功能過

分復(fù)雜,必須把它的功能適當(dāng)?shù)胤纸獬梢幌盗斜容^簡單的功能。

3數(shù)據(jù)庫概念設(shè)計的過程中,視圖設(shè)計一般有三種設(shè)計次序,它們是:

1、自頂向下。這種方法是先從抽象級別高且普遍性強(qiáng)的對象開始逐步細(xì)化、具體化與特殊化。

2、由底向上。這種設(shè)計方法是先從具體的對象開始,逐步抽象,普遍化與一般化,最后形成一個完整的視圖設(shè)計。

3、由內(nèi)向外。這種設(shè)計方法是先從最基本與最明顯的對象著手逐步擴(kuò)充至非基本、不明顯的其它對象。

4在方法中定義的局部變量在方法退出時被自動撤消,只有靜態(tài)變量不會被撤消。如果未對變量指定修釋符,在JAVA

中將自動將其設(shè)置為局部變量,局部變量也叫自動變量,對于方法外面的變量,將在對象被創(chuàng)建時一起被創(chuàng)建,其初值可通過

構(gòu)造函數(shù)對其進(jìn)行初始化。如果方法中是一個簡單類型的形參,由于其是按值傳遞,在編譯時會占用存儲空間,直到該對象釋

放時為止。如果形參為一個類類型,其參數(shù)是按地址傳遞,編譯時不會為其分配空間,因此該參變量不會存在于方法中。

5類加載器(classloader)加載程序運(yùn)行所需要的所有類,它通過區(qū)分本機(jī)文件系統(tǒng)的類和網(wǎng)絡(luò)系統(tǒng)導(dǎo)入的類增加安全

性,這能夠限制任何的特洛伊木馬程序,因為本機(jī)類總是先被加載,一旦所有的類被加載完,執(zhí)行文件的內(nèi)存劃分就固定了,

在這個時候特定的內(nèi)存地址被分配給對應(yīng)的符號引用,查找表(lookuptable)也被建立,由于內(nèi)存劃分發(fā)生在運(yùn)行時,解釋

器在受限制的代碼區(qū)增加保護(hù)防止未授權(quán)的訪問;然后字節(jié)碼校驗器(bytecodeverifier)進(jìn)行校驗,主要執(zhí)行下面的檢查:

類符合JVM規(guī)范的類文件格式,沒有違反訪問限制,代碼沒有造成堆棧的上溢或者下溢,所有操作代碼的參數(shù)類型都是正確的,

沒有非法的數(shù)據(jù)類型轉(zhuǎn)換(例如將整型數(shù)轉(zhuǎn)換成對象類型)發(fā)生;校驗通過的字節(jié)碼被解釋器(interpreter)執(zhí)行,解釋器在

必要時通過運(yùn)行時系統(tǒng)執(zhí)行對底層硬件的合適調(diào)用。

7publicclassParent{

publicintaddValue(inta,intb){

ints;

s=a+b;

returns;

)

}

classChildextendsParent{

)

選項中_B___方法能夠正確加入類Child中且父類的方法不會被覆蓋。

A、intaddValue(inta,intb){//dosomething...}

publicvoidaddValue(){//dosomething...}

C、publicintaddValue(inta,intb)throwsMyException{//dosomething...}

D、publicfloataddValue(inta,intb,floatb=){//dosomething...}

解析:此題涉及方法重載(overload),方法重寫(override)以及類派生時方法重寫的規(guī)則。方法重載的規(guī)則是:

一、參數(shù)列表必須不同,個數(shù)的不同完全能夠,如果個數(shù)相同,則參數(shù)類型的不同不會引起歧意,例如int和long,float

和double就不能作為唯一的類型不同;

二、返回值能夠不同,但是不能是重載時唯一的不同點(diǎn)(這點(diǎn)和C++中不同,C++中返回類型必須一致)。

方法重寫發(fā)生在類繼承時,子類能夠重寫一個父類中已有的方法,必須在返回類型和參數(shù)列表一樣時才能說是重寫,否則

就是重載,java中方法重寫的一個重要而且容易被忽略的規(guī)則是重寫的方法的訪問權(quán)限不能比被重寫的方法的訪問權(quán)限低!

重寫的另一個規(guī)則是重寫的方法不能比被重寫的方法拋棄(throws)更多種類的異常,其拋棄的異常只能少,或者是其子類,

不能以拋棄異常的個數(shù)來判斷種類,而應(yīng)該是異常類層次結(jié)果上的種類。

此題中選取項A的錯誤就是重寫的訪問權(quán)限比被重寫的方法的低,而B屬于重載,選項C的錯誤在于比被重寫的方法拋棄

了更多種類的異常。選項D中,當(dāng)只傳遞兩個變量的值的時候,那系統(tǒng)就不知道倒底調(diào)用哪個方法了,因為b為常量,能夠不

指定,所以只有選項B是符合題意的。

8假設(shè)有以下代碼

Strings="hello”;

Stringt=*'hello',;

charc[]=;

下列選項中返回false的語句是Bo

A、(t);B、(c);C、s==t;D、(newString("helloH));

解析:==操作符比較的是操作符兩端的操作數(shù)是否是同一個對象,而String的equals。方法比較的是兩個String對象的內(nèi)

容是否一樣,其參數(shù)是一個String對象時才有可能返回true,其它對象都返回假。需要指出的是由于s和t并非使用new創(chuàng)

建的,他們指向內(nèi)存池中的同一個字符串常量,因此其地址實(shí)際上是相同的(這個能夠從反編譯一個簡單的測試程序的結(jié)果得

到,限于篇幅不列出測試代碼和反編譯的分析),因此答案C也是正確的。

9欲構(gòu)造ArrayList類的一個實(shí)例,此類實(shí)現(xiàn)了List接口,下列—B_方法是正確的。

A、ArrayListmyList=newObject();B、ListmyList=newArrayList();

C、ArrayListmyList=newList();D、ListmyList=newList();

解析:不能直接建立接口的實(shí)例,只能通過實(shí)現(xiàn)接口的相應(yīng)的類來實(shí)現(xiàn)接口。

10下列程序運(yùn)行的結(jié)果是_B___.

publicclassExample{

Stringstr=newStringf'good");

char[]ch={,a,,,b,,,c,};

publicstaticvoidmain(StringargsQ){

Exampleex=newExample();

(,);

(+"and");

0;

}

publicvoidchange(Stringstr,charch[]){

A、goodandabcB、goodandgbcC、testokandabcD、testokandgbc

11Java語言中,原始數(shù)據(jù)類型變量是按值傳遞的,引用類型變量是按地址傳遞的。

12要從文件”“文件中讀出第10個字節(jié)到變量C中,下列_A___方法適合。

A、Fileinputstreamin=newFilelnputStream("");(9);intc=();

B、Fileinputstreamin=newFilelnputStream(,M,);(10);intc=();

C、Fileinputstreamin=newFilelnputStream(",,);intc=();

D、RandomAccessFilein=newRandomAccessFile(",,);(9);intc=();

解析:Java提供Fileinputstream是將文件作為流的方式讀取,它是按照文件的順序從0位置開始進(jìn)行讀取,

RandomAccessFile是隨機(jī)讀取數(shù)據(jù),讀取的位置不一定是從0開始,能夠使用skip(n)方法來跳過n個字符,通過readByte()

讀取一個字符,通過read。能夠讀取輸入流中的一個字符。

13下列代碼—C_會出錯。

1)publicvoidmodify(){

2)inti,j,k;

3)i=100;

4)while(i>0){

5)j=i*2;

6)(MThevalueofjis");

7)k=k+1;

8)i-;

A、line4B、line6C、line7D^line8

解析:由于Java中聲明變量并沒有分配內(nèi)存空間,必須通過初始化才能使用變量。

14下面關(guān)于Applet的說法正確的是_B___。

A、Applet也需要main方法B、

C、Applet能訪問本地文件D、Applet程序不需要編譯

解析:JavaApplet的字節(jié)碼文件必須嵌入HTML的文件中并由負(fù)責(zé)解釋HTML文件的WWW瀏覽器充當(dāng)解釋器來解釋運(yùn)

行。因此Applet不需要main方法,,因為這兩個類實(shí)現(xiàn)了Applet程序于瀏覽器的通訊。

15為了系統(tǒng)的安全,一般情況下Applet程序不能訪問本地文件,只有通過授權(quán)后才能讀寫。

16下列關(guān)于for循環(huán)和while循環(huán)的說法中—A一是正確的。

A、while循環(huán)能實(shí)現(xiàn)的操作,for循環(huán)也都能實(shí)現(xiàn)

B、while循環(huán)判斷條件一般是程序結(jié)果,for循環(huán)判斷條件一般是非程序結(jié)果

C、兩種循環(huán)任何時候都可替換D、兩種循環(huán)結(jié)構(gòu)中循環(huán)體都不能夠為空

解析:

for循環(huán)的一般形式為:

for(〈初始化>;<條件表過式〉;〈增量〉)

語句;

初始化總是一個賦值語句,它用來給循環(huán)控制變量賦初值;條件表達(dá)式是一個關(guān)系表達(dá)式,它決定什么時候退出循環(huán);增

量定義循環(huán)控制變量每循環(huán)一次后按什么方式變化。這三個部分之間用“;”分開。

例如:

for(i=1;i<=10;i++)

語句;

上例中先給i賦初值1,判斷i是否小于等于10,若是則執(zhí)行語句,之后值增加1。再重新判斷,直到條件為假,即i>10

時,結(jié)束循環(huán)。

注意:

1、for循環(huán)中語句能夠為語句體,但要用和“}”將參加循環(huán)的語句括起來。

2、for循環(huán)中的“初始化”、”條件表達(dá)式“和“增量”都是選擇項,即能夠缺省,但”;”不能缺省。省略了初始化,表示不對循

環(huán)控制變量賦初值。省略了條件表達(dá)式,則不做其它處理時便成為死循環(huán)。省略了增量,則不對循環(huán)控制變量進(jìn)行操作,這時

可在語句體中加入修改循環(huán)控制變量的語句。與for循環(huán)一樣,while循環(huán)總是在循環(huán)的頭部檢驗條件,這就意味著循環(huán)可能什

么也不執(zhí)行就退出。

17下列關(guān)于JavaApplication與JavaApplet程序的差別描述正確的是D。

A、運(yùn)行方式不同,程序結(jié)構(gòu)相同,運(yùn)行工具不同,受到的限制相同

B、運(yùn)行方式相同,程序結(jié)構(gòu)不同,運(yùn)行工具不同,受到的限制相同

C、運(yùn)行方式相同,程序結(jié)構(gòu)相同,運(yùn)行工具不同,受到的限制也不同

D、運(yùn)行方式不同,程序結(jié)構(gòu)不同,運(yùn)行工具不同,受到的限制也不同

解析:

Application和JavaApplet的區(qū)別。

Java語言是一種半編譯半解釋的語言。Java的用戶程序分為兩類:JavaApplication和JavaApplet。這兩類程序在組成

結(jié)構(gòu)和執(zhí)行機(jī)制上都有一定的差異,主要體現(xiàn)在以下幾方面:

(1)運(yùn)行方式不同。JavaApplication是完整的程序,能夠獨(dú)立運(yùn)行;JavaApplet程序不能單獨(dú)運(yùn)行,它必須嵌入到用

HTML語言編寫的Web頁面中,通過與Java兼容的瀏覽器來控制執(zhí)行。

(2)運(yùn)行工具不同。JavaApplication程序被編譯以后,用普通的Java解釋器就能夠使其邊解釋邊執(zhí)行,而JavaApplet

必須通過網(wǎng)絡(luò)瀏覽器或者Applet觀察器才能執(zhí)行。

<3)程序結(jié)構(gòu)不同。每個JavaApplication程序必定含有一個并且只有一個main方法,程序執(zhí)行時,首先尋找main

方法,并以此為入口點(diǎn)開始運(yùn)行。含有main方法的那個類,常被稱為主類,也就是說,JavaApplication程序都含有一個主

類。而Applet程序則沒有含main方法的主類,這也正是Applet程序不能獨(dú)立運(yùn)行的原因。盡管Applet沒有含main方法的

主類,,它是由Java系統(tǒng)提供的。

(4)受到的限制不同。JavaApplication程序能夠設(shè)計成能進(jìn)行各種操作的程序,包括讀/寫文件的操作,但是Java

Applet對站點(diǎn)的磁盤文件既不能進(jìn)行讀操作,也不能進(jìn)行寫操作。然而,由于Applet的引入,使Web頁面具有動態(tài)多媒體

效果和可交互性能,這使由名為超文本、實(shí)為純文本的HTML語言編寫成的Web頁面真正具有了超文本功能,不但能夠顯示

文本信息,而且還能夠有各種圖片效果和動態(tài)圖形效果,從而使頁面顯得生動美麗;另外,Applet使Web頁面增加了按鈕等

功能,從而增加了交互性。

故本題答案為Do

18、、,包含了許多圖象支持的類和方法。。當(dāng)前Java所支持的圖像格式有:GIF、JPEG、和PNG3種。,它的顯示

方法與其它兩格式相同。

19假設(shè)有Stringa="A";charbsWjintc=65,下面選項中_B___是正確的。

A.If(a==b){("Equal")}

B.if(c==b){("Equal")}

Cxif(a==c){("Equal")}

Dsif(c=b){「Equal")}

解析:

由于Java是強(qiáng)類型語言,String不能和char,int類型變量直接進(jìn)行對比。但如果char和int兩類型在同一個表達(dá)式中

運(yùn)算,系統(tǒng)是能夠進(jìn)行自動類型轉(zhuǎn)換的,因此這兩個類型的變量能夠比較。

軟件工程的基本原則包括抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗證性。

信息隱蔽是指采用封裝技術(shù),將程序模塊的實(shí)現(xiàn)細(xì)節(jié)隱藏起來,使模塊接口盡量簡單。

典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。

變換型:是指信息沿輸入通路進(jìn)入系統(tǒng),同時由外部形式變換為內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后

再沿輸出通路變換成外部形式離開軟件系統(tǒng)。

事務(wù)型:在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它能夠引發(fā)一個或多個處理,這些處理能夠完成該作業(yè)要求的功能,這

種數(shù)據(jù)流就叫做事務(wù)。

(GUI)的類庫,它包括了許多界面元素和資源,主要在低級繪圖操作、圖形界面組件和布局管理、以及界面用戶交互控

制和事件響應(yīng)三個方面支持界面設(shè)計。

1下列關(guān)于棧的描述中錯誤的是—B—°

A、棧是先進(jìn)后出的線性表B、棧只能順序存儲C、棧具有記憶作用

D、對棧的插入與刪除操作中,不需要改變棧底指針

解析:棧是一種特殊的線性表,這種線性表只能在固定的一端進(jìn)行插入和刪除操作,允許插入和刪除的一端稱為棧頂,另一

端稱為棧底。一個新元素只能從棧頂一端進(jìn)入,刪除時,只能刪除棧頂?shù)脑?,即剛剛被插入的元素。所以棧又稱先進(jìn)后出表

(FILO-FirstlnLastOut)o線性表能夠順序存儲,也能夠鏈?zhǔn)酱鎯?,而棧是一種線性表,也能夠采用鏈?zhǔn)酱鎯Y(jié)構(gòu)。

2對于長度為n的線性表,在最壞情況下,下列各排序法所對應(yīng)的比較次數(shù)中正確的是—D—°

A、冒泡排序為n/2B、冒泡排序為nC、快速排序為nD、快速排序為n(n-1)/2

解析:假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要經(jīng)過n/2遍的從前往后掃描和n/2遍的從后往前掃描,需要

比較次數(shù)為n(n-1)/2o快速排序法的最壞情況比較次數(shù)也是n(n-1)/2.

3對長度為n的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為_G

A、B、n/2C、D、n+1

4在進(jìn)行順序查找過程中,如果線性表中的第一個元素就是被查找元素,則只需做一次比較就查找成功,查找效率最高;

但如果被查找的元素是線性表中的最后一個元素,或者被查找的元素根本就不在線性表中,則為了查找這個元素需要與線性表

中所有的元素進(jìn)行比較,這是順序查找的最壞情況。所以對長度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較n次。

5模塊獨(dú)立性是指每個模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其它模塊的聯(lián)系最少且接口簡單。耦合性與內(nèi)聚性是

模塊獨(dú)立性的兩個定性標(biāo)準(zhǔn),耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的

軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。

6計算機(jī)軟件是計算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。軟件具有以下特點(diǎn):

①軟件是一種邏輯實(shí)體,而不是物理實(shí)體,具有抽象性;②軟件的生產(chǎn)過程與硬件不同,它沒有明顯的制作過程;③軟件在運(yùn)

行、使用期間不存在磨損、老化問題;④軟件的開發(fā)、運(yùn)行對計算機(jī)系統(tǒng)具有依賴性,受計算機(jī)系統(tǒng)的限制,這導(dǎo)致軟件移植

的問題;⑤軟件復(fù)雜性高,成本昂貴;⑥軟件開發(fā)涉及諸多的社會因素。

7數(shù)據(jù)獨(dú)立性是數(shù)據(jù)庫技術(shù)的重要特點(diǎn)之一。所謂數(shù)據(jù)獨(dú)立性是指_D_(>

A、數(shù)據(jù)與程序獨(dú)立存放B、不同的數(shù)據(jù)被存放在不同的文件中

C、不同的數(shù)據(jù)只能被對應(yīng)的應(yīng)用程序所使用D、以上三種說法都不對

解析:數(shù)據(jù)獨(dú)立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨(dú)立于應(yīng)用程序而不依賴于應(yīng)用程序。也就是說,數(shù)據(jù)的

邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)與存取方式的改變不會影響應(yīng)用程序。選項A、B、C三種說法都是錯誤的。

8,使用該文件作為參數(shù)的類是一D—。

A、BufferedReaderB、DatalnputStreamC、DataOutputStreamD、Fileinputstream

解析:本題考查的是文件和文件I/O。

BufferedReader用來從字符輸入流中讀取并緩沖字符,以提高讀取字符(或字符數(shù)組)的效率。其構(gòu)造方法為:

publicBufferedReader(Readerin)

publicBufferedReader(Readerin,intsz)

DatalnputStream用來以獨(dú)立于機(jī)器的方式從潛在的輸入流中讀取Java基本數(shù)據(jù)類型。構(gòu)造方法為:

DatalnputStream(lnputStreamin)

Fileinputstream用來從文件中讀取字節(jié)。構(gòu)造方法為:

FilelnputStream(Stringname)

FilelnputStream(Filefile)

char類型的取值范圍是—B—。

A、2-7-27-1B、0-216-1C、-215-215-1D、0-28-1

9能夠支持javadoc命令的注釋語句是。

A、/**.?力B、/*...*/C、//D、/**...*/

解析:Java的單行注釋符為〃,多行注釋符有/*.」/和/**...*/(javadoc能夠利用該注釋符自動生成幫助文檔)。

10下列不是Inputstream子類的是_C___。

A、文件輸入流FileinputstreamB、對象輸入流Objectinputstream

C^字符輸入流CharlnputStreamD、壓縮文件輸入流Zipinputstream

11Java中沒有CharlnputStream流。

下列方法中能夠用來創(chuàng)建一個新線程的是_C_。

A、0方法

B、()方法

C、0方法

D、()方法

解析::

publicThread(ThreadGroupgroup,Runnabletarget,Stringname)

接口Runnable定義了run()方法;而Thread類本身也實(shí)現(xiàn)了Runnable接口,故創(chuàng)建線程有兩種方法:

1、用實(shí)現(xiàn)Runnable接口的類的實(shí)例作target參數(shù)生成Thread類的實(shí)例

2、編寫繼承Thread類的類,并重寫(override)run()方法

12下列關(guān)于線程優(yōu)先級的說法中,正確的是_C_o

A、線程的優(yōu)先級是不能改變的B、線程的優(yōu)先級是在創(chuàng)建線程時設(shè)置的

C、在創(chuàng)建線程后的任何時候都能夠設(shè)置D、B和C

解析:Java語言中線程的優(yōu)先級是用一個介于MIN_PRIORITY和MAX_PRIORITY之間的整數(shù)來表示的。能夠在創(chuàng)建線程

后的任何時候修改線程的優(yōu)先級。

13下列代碼中,將引起一個編譯錯誤的行是_D___o

1)publicclassTest{

2)intm,n;

3)publicTest(){}

4)publicTest(inta){m=a;}

5)publicstaticvoidmain(Stringargs[]){

6)Testt1,t2;

7)intj,k;

8)j=O;k=O;

9)t1=newTest();

10)t2=newTest(j,k);

11)}

12)}

A、第3行B、第5行C、第6行D、第10行

解析:第10行代碼中的參數(shù)數(shù)目比類Test的任何一個構(gòu)造方法聲明的形參都多,因此引起編譯錯誤.

14閱讀下列代碼后

publicclassPerson{

intarr[]=newint[10];

publicstaticvoidmain(StringargsQH

(arr[1]);

)

)

15正確的說法是_A___。

A、編譯時將產(chǎn)生錯誤B、編譯時正確,運(yùn)行時將產(chǎn)生錯誤C、輸出為零D、輸出為空

解析:由于數(shù)組an?聲明時未用static關(guān)鍵字,而main。方法直接引用arr(而非通過Person的實(shí)例引用),將產(chǎn)生“非靜

態(tài)變量不能從靜態(tài)上下文中引用“(non?staticvariablecannotbereferencedfromastaticcontext)的編譯錯誤。

16某二叉樹中度為2的結(jié)點(diǎn)有18個,則該二叉樹中有19個葉子結(jié)點(diǎn)。

解析:二叉樹的性質(zhì)3:在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個。本題中度為2的結(jié)

點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個。

17問題處理方案的正確而完整的描述稱為算法?

18線程在生命周期中要經(jīng)歷5種狀態(tài),分別是新建狀態(tài)、可運(yùn)行狀態(tài)、運(yùn)行狀態(tài)、-阻塞或Blocked—狀態(tài)和終止

狀態(tài)。

19請閱讀下列程序代碼,然后將程序的執(zhí)行結(jié)果補(bǔ)充完整。

程序代碼:

classthrowsException

staticvoidProc(intsei)throwsArithmeticException,ArraylndexOutOfBoundsException

("InSituation"-?-sel);

if(sel==0){

("noExceptioncaught");

return;

)

elseif(sel==1){

intiArray[]=newint[4];

iArray[1]=3;

)

)

publicstaticvoidmain(String[]args)

(

try{

Proc(O);

Proc(1);

}catch(ArraylndexOutOfBoundsExceptione){

("Catch"+e);

}finally{

(MinProcfinally");

)

)

)

執(zhí)行結(jié)果:

InSituationO

noExceptioncaught

_InSituationl___

inProcfinally

解析:調(diào)用Proc(1)時,(“InSituation"+sel);控制臺輸出InSituationl。然后在if語句中執(zhí)行sel==1分支,該分支中無任

何輸出語句。

當(dāng)使用Threadt=newThread(r)創(chuàng)建一個線程時,表達(dá)式:rinstanceofThread的值是___false__。

表達(dá)式:rinstanceofThread的語義即“r是否為Thread的實(shí)例(instance)再看Thread的構(gòu)造方法(Thread有許

多構(gòu)造方法,以下是最典型的構(gòu)造方法,其它構(gòu)造方法都是從下面的構(gòu)造方法中“減掉“一些參數(shù)形成的):

Thread(ThreadGroupgroup,Runnabletarget,Stringname)

可見,Thread構(gòu)造方法中沒有類型為Thread的參數(shù),故r不可能是Thread的實(shí)例

20面向?qū)ο蟮恼Z言將客觀世界都看成由各種對象組成。具有共同特征和行為的對象組成類,類是變量和一操作—的集

合體。

21Random類中的nextlnt(N)方法得到一個介于0至N-1之間的隨機(jī)數(shù),()是得到一個介于0與1之間的小數(shù)。

1下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是_A_o

A、順序存儲的有序線性表B、線性鏈表C、二叉鏈表D、有序線性鏈表

解析:二分法查找只適用于順序存儲的有序表。在此所說的有序表是指線性表中的元素按值非遞減排列(即從小到大,但允

許相鄰元素值相等)。

2在軟件設(shè)計中,不屬于過程設(shè)計工具的是_D___。

A、PDL(過程設(shè)計語言)B、PAD圖C、N-S圖D、DFD圖

解析:軟件設(shè)計工具包括:程序流程圖、N-S.PAD、HIPO,判定表,PDL(偽碼)。而DFD(數(shù)據(jù)流圖)屬于結(jié)構(gòu)化分析

工具。

3在switch(expression)語句中,expression的數(shù)據(jù)類型不能是_A___。

A、doubleB、charC、byteD、short

解析:表達(dá)式expression只能返回這個幾種類型的值:int、byte,short和char。多分支語句把表達(dá)式返回的值依次與每

個case子句中的值相比較,如果遇到匹配的值,則執(zhí)行該case子句后的語句序列。

4下列敘述中,錯誤的是_D___。

A、父類不能替代子類B、子類能夠替代父類C、子類繼承父類D、父類包含子類

5通過繼承實(shí)現(xiàn)代碼復(fù)用:

。繼承而得到的類稱為子類,被繼承的類稱為父類。子類不能繼承父類中訪問權(quán)限為private的成員變量和方法,子類能

夠重寫父類的方法,及命名與父類同名的成員變量。

子類通過隱藏父類的成員變量和重寫父類的方法,把父類的狀態(tài)和行為改變?yōu)樽陨淼臓顟B(tài)和行為。注意:子類中重寫的方法

和父類中被重寫的方法要具有相同的名字,相同的參數(shù)表和相同的返回類型,只是函數(shù)體不同。

由于子類繼承了父類所有的屬性(私有的除外),所以子類對象能夠作為父類對象使用。程序中凡是使用父類對象的地方,

都能夠用子類對象來代替。一個對象能夠通過引用子類的實(shí)例來調(diào)用子類的方法。

java運(yùn)行時系統(tǒng)根據(jù)調(diào)用該方法的實(shí)例,來決定調(diào)用哪個方法。對子類的一個實(shí)例,如果子類重寫了父類的方法,則運(yùn)行

時系統(tǒng)調(diào)用子類的方法:如果子類繼承了父類的方法(未重寫),則運(yùn)行時系統(tǒng)調(diào)用父類的方法。

6自定義表格類中的model部分應(yīng)實(shí)現(xiàn)的接口是—A-。

A、AbstractTableModelB、JTableC、TableModelD、TableModelable

7下列代碼中,將引起編譯錯誤的行是_B___o

1)publicclassExercise{

2)publicstaticvoidmain(Stringargs[]){

3)floatf=;

4)f+=;

5)}

6))

A、第2行B、第3行C、第4行D、第6行

解析:float定義變量賦值時,需要在數(shù)值后面加f以標(biāo)識它為浮點(diǎn)型,讓系統(tǒng)知道該給它精確到多少位。

8下列關(guān)于Java多線程并發(fā)控制機(jī)制的敘述中,錯誤的是—B一°

A、Java中對共享數(shù)據(jù)操作的并發(fā)控制是采用加鎖技術(shù)

B、線程之間的交互,提倡采用suspend()/resume()方法

C、共享數(shù)據(jù)的訪問權(quán)限都必須定義為private

D、Java中沒有提供檢測與避免死鎖的專門機(jī)制,但應(yīng)用程序員能夠采用某些策略防止死鎖的發(fā)生

解析:

1)Java中對共享數(shù)據(jù)操作的并發(fā)控制是采用傳統(tǒng)的封鎖技術(shù)。一個程序中單獨(dú)的、并發(fā)的線程對同一個對象進(jìn)行訪問的

代碼段,稱為臨界區(qū)。在Java語言中,臨界區(qū)能夠是一個語句塊或是一個方法,并且用“synchronized”關(guān)鍵字標(biāo)識。Java平

臺將每個由synchronized(Object)語句指定的對象設(shè)置一個鎖,稱為對象鎖。

2)共享數(shù)據(jù)的所有訪問都必須作為臨界區(qū),使用“synchronized”進(jìn)行加鎖控制。用“synchronized”保護(hù)的數(shù)據(jù)也必須是

私有的,使線程不能直接訪問這些數(shù)據(jù),必須通過對象的方法。

3)Java中沒有檢測與避免死鎖的專門機(jī)制,因此完全由程序進(jìn)行控制,防止死鎖的發(fā)生。

4)有時,某個線程進(jìn)入“synchronized”塊后,共享數(shù)據(jù)的狀態(tài)并不一定滿足線程的需要,它要等待其它線程將共享數(shù)據(jù)

改變?yōu)樗枰臓顟B(tài)后才能繼續(xù)執(zhí)行,但由于此時它占有了該對象的鎖,其它線程無法對共享數(shù)據(jù)進(jìn)行操作,為此Java引入

wait()和notify(),,使實(shí)現(xiàn)線程通信的兩個方法。

9下列操作中,不屬于Applet安全限制的是—D—。

A、加載本B、讀寫本地文件系統(tǒng)C、運(yùn)行本地可執(zhí)行程序D、與同一個頁面中的Applet通信

10在進(jìn)行模塊測試時,要為每個被測試的模塊另外設(shè)計兩類模塊:驅(qū)動模塊和承接模塊(樁模塊)。其中,驅(qū)動模塊相當(dāng)

于被測試模塊的主程序,它接收測試數(shù)據(jù),并傳給被測試模塊,輸出實(shí)際測試結(jié)果。承接模塊通常用于代替被測試模塊調(diào)用的

其它模塊,其作用僅做少量的數(shù)據(jù)操作,是一個模擬子程序,不必將子模塊的所有功能帶入。

11Java語言具有可移植性、高性能、健壯性、安全性和獨(dú)立于體系結(jié)構(gòu)的—跨平臺_特點(diǎn)。

解析:Java語言是一種跨平臺,適合于分布式計算環(huán)境的面向?qū)ο蟮木幊陶Z言。具體來說,它具有如下特性:簡單性、面向

對象、分布式、解釋型、可靠、安全、平臺無關(guān)、可移植、高性能、多線程、動態(tài)性等。

12在運(yùn)行時,由Java解釋器自動導(dǎo)入,。

解析:,所以,它被自動導(dǎo)入所有的程序且它是Java最廣泛使用的包。

13下列程序的功能是創(chuàng)建了一個顯示5個“Hell。!”的線程并啟動運(yùn)行,請將程序補(bǔ)充完整。

publicclassThreadTestextendsThread{

publicstaticvoidmain(Stringargs[]){

ThreadTestt=new_ThreadTest()___;

0;)

publicvoidrun(){inti=0;

while(true){CHello!");

if(i++==4)break;

)

}

解析:,重寫了run()方法,實(shí)現(xiàn)了Java中的線程。ThreadTestt定義了空的線程對象,()啟動了這個線程,因此ThreadTest

t=new;就應(yīng)該是實(shí)例化該線程對象,所以空格中應(yīng)填ThreadTest()o

Swing的頂層容器有:JApplet、JWindow>JDialog和_JFrame___。

頂層容器:JFrame、JApplet^JDialog和JWindow共4個。

中間容器:JPanel、JScrollPane>JSplitPane、JToolBar<)

特殊容器:JlnternalFrame、JLayeredPane>JRootPane。

基本控件:JButton、JComboBox>JList、JMenu^JSIider>JTextFieldo

不可編輯信息的構(gòu)件:JLabel、JProgressBar、ToolTip、

可編輯信息的構(gòu)件:JColorChooser、JFileChooser、JFileChooser>JTable>JTextArea

所有的這些構(gòu)件的分類都是按功能來劃分的。

14下列敘述中正確的是—D—o

A、一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)

B、數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)

C、一個邏輯數(shù)據(jù)結(jié)構(gòu)能夠有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)不影響數(shù)據(jù)處理的效率

D、一個邏輯數(shù)據(jù)結(jié)構(gòu)能夠有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)影響數(shù)據(jù)處理的效率

解析:一般來說,一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要能夠表示成多種存儲結(jié)構(gòu),常用的存儲結(jié)構(gòu)有順序、鏈接、索引等存儲結(jié)構(gòu)。

而采用不同的存儲結(jié)構(gòu),其數(shù)據(jù)處理的效率是不同的。

15Java的圖形用戶界面的最基本的組成部分就是構(gòu)件(Component),構(gòu)件是一個能夠以圖形化的方式顯示在屏幕上

并能與用戶交互的對象,但構(gòu)件不能獨(dú)立地顯示出來,必須將構(gòu)件放在一定的容器中才能夠顯示出來。解析:容器Container

是一個類,因為容器本身也是一個構(gòu)件,具有構(gòu)件的所有性質(zhì),因此繼承之Component類。

16下列敘述中,錯誤的是_A_o

A、File類能夠存儲文件B、File類能夠讀寫文件C、File類能夠建立文件D、File類能夠獲取文件目錄信

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論