一、選擇題(每小題1分,共40小題,共40分)
1.?dāng)?shù)據(jù)的存儲結(jié)構(gòu)是指( )。
A.存儲在外存中的數(shù)據(jù)
B.?dāng)?shù)據(jù)所占的存儲空間量
c.?dāng)?shù)據(jù)在計算機中的順序存儲方式
D.?dāng)?shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示
2.對于長度為n的線性表,在最壞情況下,下列各排序法所對應(yīng)的比較次數(shù)中正確的是( )。
A.冒泡排序n/Z
B.冒泡排序為n
C.快速排序為n
D.快速排序為n(n一1)/z
3.棧和隊列的共同點是( )。
A.都是先進先出
B.都是先進后出
C.只允許在端點處插入和刪除元素
D.沒有共同特點
4.有下列二叉樹,對此二叉樹中序遍歷的結(jié)果為( )。

A.ABCEDF
B.ABCDEF
C.ECBDFA
D.ECFDBA
5.對建立良好的程序設(shè)計風(fēng)格,下列描述中正確的是( )。
A.程序應(yīng)該簡單、清晰、可讀性好
B.符號名的命名只需要符合語法
C.充分考慮程序的執(zhí)行效率
D.程序的注釋可有可無
6.下列敘述中正確的是( )。
A.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象之間具有密切的關(guān)系
B.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象都是公用的
C.在面向?qū)ο蟮某绦蛟O(shè)計中,各個對象之間相對獨立,相互依賴性小
D.上述3種說法都不對
7.為了提高軟件模塊的獨立性,模塊之間是( )。
A.控制耦合
B.公共耦合
C.內(nèi)容耦合
D.高內(nèi)聚低耦合
8.?dāng)?shù)據(jù)獨立性是數(shù)據(jù)庫技術(shù)的重要特點之一。所謂數(shù)據(jù)獨立性是指( )。
A.?dāng)?shù)據(jù)與程序獨立存放
B.不同的數(shù)據(jù)被存放在不同的文件中 ..
C.不同的數(shù)據(jù)只能被對應(yīng)的應(yīng)用程序所使用
D.以上三種說法都不對
9.下列描述中正確的是( )。
A.軟件工程只是解決軟件項目的管理問題
B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題
C.軟件工程的主要思想是強調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則
D.軟件工程只是解決軟件開發(fā)過程中的技術(shù)問題
10.對關(guān)系S和R進行集合運算,結(jié)果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運算稱為( )。
A.并運算
B.交運算
C.差運算
D.積運算
11.下列關(guān)于數(shù)據(jù)存儲方式的敘述中,不正確的是( )。
A.?dāng)?shù)據(jù)的主要存儲方式有順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)
B.順序存儲結(jié)構(gòu)存儲空間利用率低,鏈?zhǔn)酱鎯Y(jié)構(gòu)空間利用率高
C.順序存儲結(jié)構(gòu)的結(jié)點只有自身域,鏈?zhǔn)酱鎯Y(jié)構(gòu)除了自身域還包括指針域
D.順序存儲結(jié)構(gòu)可通過計算直接確定數(shù)據(jù)結(jié)構(gòu)中某個結(jié)點的存儲地址
12.二維數(shù)組A[0,…,8][0,…,9],其每個元素占2字節(jié)。從首地址400開始,按行優(yōu)先順序存儲,則元素A[8][5]的存儲地址為( )。
A.570
B.506
C.410
D.482
13.下列有關(guān)操作系統(tǒng)的敘述中,不正確的是( )。
A.操作系統(tǒng)管理計算機系統(tǒng)中的各種資源
B.操作系統(tǒng)為用戶提供良好的界面
C.操作系統(tǒng)與用戶程序必須交替運行
D.操作系統(tǒng)位于各種軟件的最底層
14.系統(tǒng)出現(xiàn)死鎖的原因是( )。
A.計算機系統(tǒng)發(fā)生了重大故障
B.有多個封鎖的進程同時存在
C.若干進程因競爭資源而無休止地等待其他進程釋放已占有的資源
D.資源數(shù)大大少于進程數(shù),或進程同時申請的資源數(shù)大大超過資源總數(shù)
15.若干進程之間相互合作,共同完成一項任務(wù),進程的這種協(xié)同工作關(guān)系稱為( )。
A.異步
B.同步
C.并發(fā)
D.互斥
16.下面屬于面向?qū)ο笳Z言的是( )。
A.Java語言
B.機器語言
C.C語言
D.匯編語言
17.下列選項默認的布局管理器不是BorderLayout的是( )。
A.Window B.Panel
C.Frame D.Dialog
18.用來實現(xiàn)Java虛擬機的語言是( )。
A.Java
B.C
C.C++
D.匯編
19.下列關(guān)于Java安全性的說法錯誤的是( )。
A.有嚴格的訪問權(quán)限檢查
B.對程序執(zhí)行前要檢查
C.不允許使用指針
D.可防止對內(nèi)存的非法入侵
20.下列有關(guān)Java語言的敘述中,正確的是( )。
A.可以有2個以上package語句
B.可以有2個以上import語句
C.可以有2個以上public類
D.只能有l(wèi)個類定義
21.下列對類的聲明,正確的是( )。
A.a(chǎn)bstract final classHh{…}
B.a(chǎn)bstract private move(){…}
C.protected private number;
D.public abstract classCar{…}
22.Java中用于提供Java語言、Java虛擬機的核心的類和接口的包是( )。
A.java.io包
B.java.a(chǎn)pplet包
C.java.lang包
D.java.net包
23.下列關(guān)于JDK目錄結(jié)構(gòu)的說法,錯誤的是( )。
A.bin目錄下有許多工具
B.demo目錄下有各種演示例子
C.include目錄下都是庫文件
D.jre目錄是Java程序運行環(huán)境的根目錄
24.下列說法正確的是( )。
A.類FileInputStream和FileOutputStream用來進行文
件I/O處理,由它們所提供的方法可以打開本地主機上的
文件,并進行順序的讀/寫
B.通過類File的實例或者一個表示文件名稱的字符串
可以生成文件輸入/輸出流,在流對象生成的同時,文件被
打開,但還不能進行文件讀/寫
C.對于InputStream和OutputStream來說,它們的實
例都是是非順序訪問流,即只能進行順序的讀/寫
D.當(dāng)從標(biāo)準(zhǔn)輸入流讀取數(shù)據(jù)時,從鍵盤輸入的數(shù)據(jù)直
接輸入到程序中
25.能將程序補充完整的選項是( )。
class Person
{
private int a;
public int change(int m){return m;)
}
public class Teacher extends Person
{
public int b;
public static void main(String arg[])
{
Person p=new Person();
Teacher t=new Teacher();
int i;
}
}
A.i=m
B.i=b
C.i=P.a(chǎn)
D.i=P.change(50)
26.下列程序?qū)崿F(xiàn)對ZIP文件file.zip的檢索,在橫線處
填入正確的語句( )。
package test;
importjava.io.*;
import java.util.*;
import java.util.zip.*;
public class Exam
{
public static void main(String[]args){
try{
FileInputStream fis=new FileInputStream("test/file.
zip");
ZipInputStream zis=new ZiplnputStream(fis);
ZipEntry an;
while(( )!=null){
en.getName();
zis.closeEntry();
}
zis.close():
}
catch(Exception e){
e.printStackTrace();
}
}
}
A.en=zis.getNextEntry()
B.en= =zis.getNextEntry()
C.en=zis.getEntry()
D.zis.getNextEntry()
27.將一個容器panel1放到容器framel中的方法是( )。
A.framel.insert(panel1)
B.framel.a(chǎn)dd(panel1)
C.framel.a(chǎn)ddJPanel(panel1)
D.framel.insertJPanel(panel1)
28.下列程序的輸出結(jié)果是( )。
class Test{
public static void main(String args[]){
int n=7:
n<<=3;
n=n&n+1|n+2^n+3;
n>>=2:
System.out.println(n);
}
)
A.0
B.-l
C.14
D.64
29.文件操作中,用于移動文件指針到指定的位置的是( )。
A.seek(long pos)
B.lengh()
C.find()
D.skipBytes(int n)
30.當(dāng)檢索一個壓縮文件時,首先要建立壓縮文件輸入流對象,該對象( )。
A.以選中的壓縮文件為參數(shù)
B.以FileInputStream對象為參數(shù)
C.以InputStreamReader對象為參數(shù)
D.以BufferedReader對象為參數(shù)
31.下列不是InputStream子類的是( )。
A.文件輸入流FilelnputStream
B.對象輸入流ObjectlnputStream
C.字符輸入流CharInputStream
D.壓縮文件輸入流ZiplnputStream
32.下列方法中可以用來創(chuàng)建一個新線程的是( )。
A.實現(xiàn)java.lang.Runnable接口并重寫start()方法
B.實現(xiàn)java.lang.Runnable接口并重寫run()方法
C.繼承java.lang.Thread類并重寫run()方法
D.實現(xiàn)java.lang.Thread類并實現(xiàn)start()方法
33.下列關(guān)于JavaApplication與Applet的說法中,正確的是( )。
A.都包含main()方法
B.都通過“appletviewer”命令執(zhí)行
C.都通過“javac”命令編譯
D.都嵌入在HTML文件中執(zhí)行
34.當(dāng)啟動Applet程序時,首先調(diào)用的方法是( )。
A.stop()
B.init()
C.start()
D.destroy()
35.下列關(guān)于線程優(yōu)先級的說法中,正確的是( )。
A.線程的優(yōu)先級是不能改變的
B.線程的優(yōu)先級是在創(chuàng)建線程時設(shè)置的
C.在創(chuàng)建線程后的任何時候都可以設(shè)置
D.B和C
36.下列代碼中,將引起編譯錯誤的行是( )。
1)public class Exercise{
2)public static void main(String args[]){
3)floatf=0.0;
4)f+=1.0:
5))
6))
A.第2行
B.第3行
C.第4行
D.第6行
37.為了向一個Applet傳遞參數(shù),可以在HTML文件的APPLET標(biāo)志中使用param選項。在Applet程序中獲取參數(shù)時,應(yīng)使用的方法是( )。
A.getParameter()
B.getDocumentBase()
C.getCodeBase()
D.getlmage()
38.線程在生命周期中要經(jīng)歷5種狀態(tài)。如果線程當(dāng)前是新建狀態(tài),則它可到達的下一個狀態(tài)是( )。
A.運行狀態(tài)
B.阻塞狀態(tài)
C.可運行狀態(tài)
D.終止?fàn)顟B(tài)
39.下列關(guān)于Java多線程并發(fā)控制機制的敘述中,錯誤的是( )。
A.Java中對共享數(shù)據(jù)操作的并發(fā)控制是采用加鎖技術(shù)
B.線程之間的交互,提倡采用suspend()/resume()方法
C.共享數(shù)據(jù)的訪問權(quán)限都必須定義為private
D.Java中沒有提供檢測與避免死鎖的專門機制,但程序員可以采用某些策略防止死鎖的發(fā)生
40.下列操作中,不屬于Applet安全限制的是( )。
A.加載本地庫
B.讀寫本地文件系統(tǒng)
C.運行本地可執(zhí)行程序
D.與同一個頁面中的Applet通信
一、選擇題
1.D?!窘馕觥繑?shù)據(jù)的存儲結(jié)構(gòu)是指數(shù)據(jù)結(jié)構(gòu)(數(shù)據(jù)的邏輯結(jié)構(gòu))在計算機中的表示,又稱物理結(jié)構(gòu)。數(shù)據(jù)的存儲結(jié)構(gòu)主要有兩種:順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。
2.D?!窘馕觥棵芭菖判蚍ㄊ紫葘⒌谝粋€記錄的關(guān)鍵字與第二個記錄的關(guān)鍵字進行比較,若逆序則交換,然后比較第二個與第三個,以此類推,直至第n-1個與第n個記錄的關(guān)鍵字進行比較。在最壞情況下,冒泡排序中,若初始序列為”逆序”序列,需要比較n(n-1)/2次??焖倥判蚴菍νㄟ^一趟排序?qū)⒋庞涗浄指畛瑟毩⒌膬刹糠?,其中一部分記錄的關(guān)鍵字比另一部分記錄的關(guān)鍵字小,然后分別對這兩部分記錄繼續(xù)進行排序,最終達到整個記錄有序。最壞情況下比較次數(shù)為n(n-1)/2。
3.C?!窘馕觥織J侵辉试S在表的一端進行插入和刪除的操作,隊列是允許在表的一端進行插入,另一端進行刪除的操作。
4.C?!窘馕觥慷鏄涞闹行虮闅v是指先訪問左子樹。再訪問樹結(jié)點,最后訪問右子樹;當(dāng)訪問下級左右子樹時,也對照此原則。所以C選項正確。
5.A?!窘馕觥俊鼻逦谝?,效率第二”,在考慮到程序的執(zhí)行效率的同時,一定要保證程序清晰、可讀;對符號名的命名,除了要符合語法要求外,還要具有一定的含義;程序的注釋可以幫助程序員理解程序,不是可有可無的。
6.C。【解析】面向?qū)ο蟮某绦蛟O(shè)計是用對象模擬問題領(lǐng)域中的實體,各對象之間相對獨立,相互依賴性小,通過消息來實現(xiàn)對象之間的相互聯(lián)系。
7.D?!窘馕觥狂詈闲耘c內(nèi)聚性是模塊獨立性的兩個定性標(biāo)準(zhǔn),一般的程序設(shè)計都會盡量做到高內(nèi)聚、低耦合,有利于提高模塊的獨立性。
8.D?!窘馕觥繑?shù)據(jù)獨立性是數(shù)據(jù)庫系統(tǒng)的一個最重要的目標(biāo)之一,它使數(shù)據(jù)能獨立于應(yīng)用程序。數(shù)據(jù)獨立性包括數(shù)據(jù)的物理獨立性和邏輯獨立性。物理獨立性是指用戶的應(yīng)用程序與存儲在磁盤上的數(shù)據(jù)庫中數(shù)據(jù)是相互獨立的。即數(shù)據(jù)在磁盤上怎樣存儲由DBMS管理,用戶程序不需要了解,應(yīng)用程序要處理的只是數(shù)據(jù)的邏輯結(jié)構(gòu),這樣當(dāng)數(shù)據(jù)的物理存儲改變了,應(yīng)用程序不用改變。邏輯獨立性是指用戶的應(yīng)用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨立的,即當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時,用戶程序也可以不變。
9.C?!窘馕觥寇浖こ淌侵笇⒐こ袒乃枷霊?yīng)用于軟件的開發(fā)、應(yīng)用和維護的過程,包括軟件開發(fā)技術(shù)和軟件工程管理。
10.A。【解析】關(guān)系的并運算是指由結(jié)構(gòu)相同的兩個關(guān)系合并,形成一個新的關(guān)系,其中包含兩個關(guān)系中的所有元組。
11.B?!窘馕觥宽樞虼鎯Y(jié)構(gòu)的結(jié)點只有自身信息域,沒有連接信息的域,因此存儲密度大,存儲空間利用率高。鏈?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)是計算機系統(tǒng)中的一個系統(tǒng)軟件,它能有效地組織和管理計算機系統(tǒng)中的各種資源,并且為用戶提供良好的界面。沒有任何軟件支持的計算機稱為*機,而實際呈現(xiàn)在用戶面前的計算機系統(tǒng)是經(jīng)過若干層軟件改造的計算機,而操作系統(tǒng)位于各種軟件的最底層。
14.C?!窘馕觥坑嬎銠C系統(tǒng)中有限的資源與眾多請求分配資源的進程間存在矛盾。當(dāng)若干進程需求資源的總數(shù)大于系統(tǒng)所能提供的資源數(shù)時,進程間就會出現(xiàn)搶占資源的現(xiàn)象,如果對進程搶占的資源管理或分配不當(dāng)就會引起死鎖。
15.B?!窘馕觥窟M程同步是指進程之間一種直接的協(xié)同工作關(guān)系,這些進程相互合作,共同完成一項任務(wù)。進程間的直接相互作用構(gòu)成進程的同步。
16.A?!窘馕觥勘绢}考查Java語言的特點。Java語言是面向?qū)ο蟮?,將客觀世界看成由各種對象組成的;機器語言是計算機實際處理時使用的語言,把客觀世界都看成由0和1組成;過去的高級語言大多數(shù)是面向過程的,比如C語言等,它們是通過數(shù)據(jù)結(jié)構(gòu)與算法來描述客觀世界;匯編語言屬于低級語言。考生應(yīng)注意區(qū)分各種語言的區(qū)別。本題正確答案為選項A。
17.B?!窘馕觥勘绢}考查Java中的布局管理器。Pane和Applet默認的布局管理器是FlowLayout,構(gòu)件在容器中放置規(guī)律是從上到下、從左到右進行放置;BorderLayout是Window、Frame和Dialog的默認布局管理器,在BorderLayout布局管理器中構(gòu)件分成5個區(qū)域North、South、East、West和Center,每個區(qū)域只能放置一個構(gòu)件??忌鷳?yīng)注意區(qū)分各個布局管理器的區(qū)別和聯(lián)系,以及各個布局管理器的特點。
18.B?!窘馕觥勘绢}考查Java語言的虛擬機。Java本身的編譯器用Java語言編寫,運行系統(tǒng)的虛擬機用C語言實現(xiàn)。Java語言的執(zhí)行模式是半編譯和半解釋型,程序首先由編譯器轉(zhuǎn)換為標(biāo)準(zhǔn)字節(jié)代碼,然后由Java虛擬機去解釋執(zhí)行,字節(jié)代碼實際上可以看作是虛擬機的機器代碼。考生應(yīng)當(dāng)理解Java語言的實現(xiàn)機制,這屬于考試重點。正確答案為選項B。
19.B?!窘馕觥勘绢}考查Java的安全性特點。面向網(wǎng)絡(luò)、分布式的Java語言,對非法入侵的防范是非常重要的,Java語言提供充分的安全保障,在運行程序時,有嚴格的訪問權(quán)限檢查。對字節(jié)代碼執(zhí)行前要檢查,不允許使用指針,可防止對內(nèi)存的非法入侵,它是目前安全性的語言。但是Java并不是對程序執(zhí)行前檢查,而是對字節(jié)代碼進行檢查,Java編寫好的程序首先由編譯器轉(zhuǎn)換為標(biāo)準(zhǔn)字節(jié)代碼,然后由Java虛擬機去解釋執(zhí)行。
20.B?!窘馕觥勘绢}考查考生對Java語言概念的理解。屬于考試重點內(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虛擬機核心的類和接口。例如,類object、類String和類Thread等。對任何一個Java程序來說,這些類幾乎都是必不可少的。java.lang還包含了許多由Java虛擬機發(fā)出的異常,這些異常也是”類”的一種。另外,java.lang包還包含一些用于訪問系統(tǒng)資源的類,如ClassLoader等。java.lang包具有極其重要的作用,在程序開頭可以不必明文編寫裝載它的代碼。
23.C。【解析】本題考查JDK目錄結(jié)構(gòu)。bin目錄下有編譯器、解釋器和各種工具,如服務(wù)器工具、IDLpackage工具和jdb等。jre目錄是Java程序運行環(huán)境的根目錄,它下面有bin子目錄,包括平臺所用工具和庫的可執(zhí)行文件和DLL文件;lib子目錄包括java運行環(huán)境的代碼庫。lib目錄下都是庫文件。demo目錄下有各種演示例子。include目錄下是Win32子目錄,都是本地方法文件,選項C錯誤。
24.A?!窘馕觥勘绢}是考查對文件輸入、輸出流的理解。通過類File的實例或者一個表示文件名稱的字符串可以生成文件輸入/輸出流,在流對象生成的同時,文件被打開,然后就可以進行文件讀/寫,選項B說法錯誤。對于InputStream和OutputStream來說,它們的實例都是順序訪問流,即只能進行順序的讀/寫,選項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型值,可以通過類的實例變量P引用并賦值給一個int型變量。
26.A。【解析】本題考查Java類實現(xiàn)ZIP數(shù)據(jù)壓縮方式。ZIP壓縮文件結(jié)構(gòu):一個ZIP文件由多個Entry組成,每個Entry有一個的名稱,Entry的數(shù)據(jù)項存儲壓縮數(shù)據(jù)。ZiplnputStream實現(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中的運算符。首先要清楚程序里面涉及的運算符的含義。"<<"是按位左移運算符,”&”是按位與運算符,"|"是按位或運算符,"^"是按位異或運算符。題目中整型變量n=7相當(dāng)于二進制中的111,n<<=3語句執(zhí)行后,n值為lll000。相當(dāng)于十進制的56,而語句n=n&n+1|n+2^n+3執(zhí)行后,n值為57,n>>=2語句執(zhí)行恬,n的值為14,所以選項C正確。
29.A。【解析】本題考查文件操作。seek(long pos)是隨機文件記錄的查找,滿足題意。lengh()方法是求隨機文件字節(jié)長度的方法,不符合題意;Java中沒有find()方法;skipBytes(int n)方法是使隨機文件訪問跳過指定字節(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ù)進行處理;PipedInputStream,實現(xiàn)線程之間通信的一個類;FilterInputStream,過濾器輸入流;SequenceInputStream,將多個輸入流首尾相接;ObjectlnputStream,實現(xiàn)ObjeetInPut接15/。選項D中壓縮文件輸入流ZiplnputStream是InflaterInputStream的子類,而InflaterInputStream是FilterInputStream的子類,只有選項C中字符輸入流CharInputStream類是字符流。本題涉及內(nèi)容較多,要求對整個輸入輸出流有所了解。
32.C?!窘馕觥勘绢}考查考生對創(chuàng)建線程的使用。創(chuàng)建線程有兩種方法:通過實現(xiàn)Runnable接口創(chuàng)建線程和通過繼承Thread類創(chuàng)建線程。通過實現(xiàn)Runnable接口創(chuàng)建線程,當(dāng)實現(xiàn)Runnable接口的類的對象用來創(chuàng)建線程以后,該線程的啟動將使得對象的run()方法被調(diào)用。通過繼承Thread類創(chuàng)建線程,可以通過繼承Thread類,并重寫其中的run()方法定義線程體,然后創(chuàng)建該子類的對象創(chuàng)建線程。線程創(chuàng)建是考試重點內(nèi)容,請務(wù)必掌握。
33.C?!窘馕觥勘绢}考查JavaApplication與Applet的區(qū)別。Applet與Application的主要區(qū)別在執(zhí)行方式上,Applieation以main()方法為入口點運行,Applet要在瀏覽器或appletviewer中運行,運行過程比Application更復(fù)雜。兩者都是通過”javac”命令編譯,所以只有選項C說法正確.
34.B?!窘馕觥勘绢}考查Applet程序的運行方式。在Applet運行時,首先由瀏覽器調(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ī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)先級屬于考試重點內(nèi)容,應(yīng)該重點掌握。
36.B?!窘馕觥勘绢}考查Java中的數(shù)據(jù)類型,應(yīng)該掌握Java中的簡單數(shù)據(jù)類型,以及相關(guān)運算。floatf=0.0這個語句,想要定義一個浮點型變量f,并且初值為0.0,但由于Java認為如果數(shù)字后沒有任何字母,則默認為double類型,而double是不能轉(zhuǎn)換為float的,所以該語句錯誤,如果改 為floatf=0.0f,即可正確運行。
37.A?!窘馕觥勘绢}考查考生對Applet獲取參數(shù)的掌握。Applet被下載時,在Applet的init()方法中使用getParameter()方法獲取參數(shù),所以選項A正確。而且要注意getParameter()方法只能在init()方法中。getParameter()方法的入口參數(shù)所取參數(shù)的名字,必須與標(biāo)記中的name指示的名字相同,這一點務(wù)必注意,返回值是參數(shù)的值。
38.C?!窘馕觥勘绢}考查線程的生命周期。線程一旦創(chuàng)建,就開始了它的生命周期。線程的聲明周期主要分為:新建狀態(tài)(new),線程創(chuàng)建后處于該狀態(tài);可運行狀態(tài)(Runnable),新建的線程調(diào)用start()方法,將使線程的狀態(tài)從New轉(zhuǎn)換為Runnable,所以選項C正確;運行狀態(tài)(Running),運行狀態(tài)使線程占有CPU并實際運行的狀態(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ā)控制機制。Java中對共享數(shù)據(jù)操作的并發(fā)控制采用傳統(tǒng)的加鎖技術(shù),也就是給對象加鎖,選項A說法正確。線程之間的交互,提倡采用wait()和notify()方法,這兩個方法是java.lang.object類的方法,是實現(xiàn)線程通信的兩個方法,不提倡使用suspend()和resume()方法,它們?nèi)菀自斐伤梨i,所以選項B說法錯誤。共享數(shù)據(jù)的訪問權(quán)限都必須定義為private,不能為public或其他,選項C說法正確。Java中沒有提供檢測與避免死鎖的專門機制,因此完全由程序進行控制,但程序員可以采用某些策略防止死鎖的發(fā)生,選項D說法正確。
40.D?!窘馕觥勘绢}考查Applet的安全限制。為了保護本地主機,很多瀏覽器對Applet作了安全限制:Applet不能運行任何本地可運行程序;禁止加載本地庫或方法;禁止讀、寫本地計算機的文件系統(tǒng);禁止與提供Applet之外的任何主機建立網(wǎng)絡(luò)連接;不能讀取某些系統(tǒng)信息。但Applet是可以與同一個頁面中的Applet進行通信的,所以選項D不屬于Applet安全限制。

