歷年全國計(jì)算機(jī)等級(jí)考試二級(jí)Java語言程序設(shè)計(jì)試題及答案及歷年二級(jí)C++真題及答案_第1頁
歷年全國計(jì)算機(jī)等級(jí)考試二級(jí)Java語言程序設(shè)計(jì)試題及答案及歷年二級(jí)C++真題及答案_第2頁
歷年全國計(jì)算機(jī)等級(jí)考試二級(jí)Java語言程序設(shè)計(jì)試題及答案及歷年二級(jí)C++真題及答案_第3頁
歷年全國計(jì)算機(jī)等級(jí)考試二級(jí)Java語言程序設(shè)計(jì)試題及答案及歷年二級(jí)C++真題及答案_第4頁
歷年全國計(jì)算機(jī)等級(jí)考試二級(jí)Java語言程序設(shè)計(jì)試題及答案及歷年二級(jí)C++真題及答案_第5頁
已閱讀5頁,還剩78頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

PAGEPAGE1歷年全國計(jì)算機(jī)等級(jí)考試二級(jí)Java語言程序設(shè)計(jì)試題及答案一、選擇題(每小題1分,共40小題,共40分)

1.下列敘述中正確的是()。

A.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定大

B.一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小

C.一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小

D.上述3種說法都不對(duì)D。【解析】算法的時(shí)間復(fù)雜度和空間復(fù)雜度是從不同的角度來衡量算法的執(zhí)行情況的,它們之間沒有內(nèi)在聯(lián)系。

2.開發(fā)軟件時(shí)對(duì)提高開發(fā)人員工作效率至關(guān)重要的是()。

A.操作系統(tǒng)的資源管理功能

B.先進(jìn)的軟件開發(fā)工具和環(huán)境

C.程序員的數(shù)量

D.計(jì)算機(jī)的并行處理能力B?!窘馕觥肯冗M(jìn)的軟件開發(fā)工具和環(huán)境對(duì)提高開發(fā)人員工作效率是至關(guān)重要的。

3.程序設(shè)計(jì)語言的基本成分是數(shù)據(jù)成分、運(yùn)算成分、控制成分和()。

A.對(duì)象成分

B.變量成分

C.語句成分

D.傳輸成分D?!窘馕觥砍绦蛟O(shè)計(jì)語言的基本成分有:數(shù)據(jù)成分,用于描述程序所涉及的數(shù)據(jù);運(yùn)算成分,用于描述程序中所包含的運(yùn)算;控制成分,用于描述程序中所包含的控制;傳輸成分,用于表達(dá)程序中數(shù)據(jù)的傳輸。

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

A.125

B.n/2

C.n

D.n+lC?!窘馕觥繉?duì)線性表進(jìn)行順序查找時(shí),從表中的第一個(gè)元素開始,將給定的值與表中逐個(gè)元素的關(guān)鍵字進(jìn)行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況

下,要查找的元素是表的最后一個(gè)元素或查找失敗,這兩種情況都需要將這個(gè)元素與表中的所有元素進(jìn)行比較,因此比較次數(shù)為n。

5.有下列二叉樹,對(duì)此二叉樹前序遍歷的結(jié)果為()。

A.XZCYAB

B.XYZABC

C.XYABCZ

D.XYAZBCD。【解析】對(duì)二叉樹的前序遍歷是指:先訪問根結(jié)點(diǎn),然后訪問左子樹,最后訪問右子樹,并且,在訪問左、右子樹時(shí),先訪問根結(jié)點(diǎn),再依次訪問其左、右子樹。

6.下列敘述中正確的是()。

A.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象之間具有密切的關(guān)系

B.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象都是公用的

C.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象之間相對(duì)獨(dú)立,相互依賴性小

D.上述3種說法都不對(duì)C?!窘馕觥棵嫦?qū)ο蟮某绦蛟O(shè)計(jì)是用對(duì)象模擬問題領(lǐng)域中的實(shí)體,各對(duì)象之間相對(duì)獨(dú)立,相互依賴性小,通過消息來實(shí)現(xiàn)對(duì)象之間的相互聯(lián)系。

7.軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括軟件開發(fā)技術(shù)和()。

A.消除軟件危機(jī)

B.軟件工程管理

C.程序設(shè)計(jì)自動(dòng)化

D.實(shí)現(xiàn)軟件可重用B?!窘馕觥炕谲浖こ痰哪繕?biāo),軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括軟件開發(fā)技術(shù)和軟件工程管理。

8.在對(duì)象方法中,一個(gè)對(duì)象請(qǐng)求另一個(gè)對(duì)象為其服務(wù)的方式是通過發(fā)送()。

A.調(diào)用語句

B.命令

C.H令

D.消息D?!窘馕觥吭诿嫦?qū)ο蠓椒ㄖ?,?duì)象之間通過消息進(jìn)行通信。消息中只包含傳遞者的要求,但并不指示接受者應(yīng)該怎么完成這些處理。

9.下列選項(xiàng)中,是軟件調(diào)試技術(shù)的是()。

A.錯(cuò)誤推斷

B.集成測試

C.回溯法

D.邊界值分析C?!窘馕觥寇浖{(diào)試技術(shù)包括強(qiáng)行排錯(cuò)法、回溯法和原因排除法。邊界值分析、錯(cuò)誤推斷都是黑盒測試的方法。

10.?dāng)?shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。

A.DB包括DBS和DBMS

B.DBMS包括DB和DBS

C.DBS包括DB和DBMS

D.沒有任何關(guān)系C?!窘馕觥繑?shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DB)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺(tái)和軟件平臺(tái)5個(gè)部分組成,因此DB和DBMS都是DBS的組成部分。11.下列()不是高級(jí)程序設(shè)計(jì)語言。

A.FORTRAN

B.Java

C.C++

D.VisualASMD?!窘馕觥扛呒?jí)語言是一類人工設(shè)計(jì)的語言,因?yàn)樗鼘?duì)具體的算法進(jìn)行了描述,所以又稱為算法語言。它是面向程序設(shè)計(jì)獨(dú)立于計(jì)算機(jī)的硬件。目前,計(jì)算機(jī)常用的高級(jí)語言有:BASIC語言、FORTRAN語言、COBOL語言、PASCAL語言、C語言、PROLOG語言、而當(dāng)前流行的,面向?qū)ο蟮某绦蛟O(shè)計(jì)語言有C++和用于網(wǎng)絡(luò)環(huán)境的程序設(shè)計(jì)語言Java等。

12.16根地址總線的尋址范圍是()。

A.531KB

B.64KB

C.640KB

D.1MBB?!窘馕觥考僭O(shè)地址總線有n條,內(nèi)存的尋址范圍是2n。

13.在一所大學(xué)中,每個(gè)系都有自己的局域網(wǎng),則連接各個(gè)系的校園網(wǎng)()。

A.是廣域網(wǎng)

B.還是局域網(wǎng)

C.是地區(qū)網(wǎng)

D.這些局域網(wǎng)不能互連B?!窘馕觥繌V域網(wǎng)是指遠(yuǎn)距離的計(jì)算機(jī)互聯(lián)網(wǎng)絡(luò),分布范圍可達(dá)幾千千米乃至上萬千米甚至跨越國界、州界、遍及全球范圍。局域網(wǎng)是指一個(gè)局部區(qū)域中的、近距離的計(jì)算機(jī)互聯(lián)網(wǎng)絡(luò),通常采用有線方式連接,分布范圍從幾百米到幾千米。例如,一座大樓內(nèi)或相鄰的幾座樓之間的互聯(lián)網(wǎng)絡(luò)。一個(gè)單位、學(xué)校內(nèi)部的網(wǎng)絡(luò)多為局域網(wǎng)。

14.下列關(guān)于信息加密的敘述中,正確的是()。

A.加密通過加密算法實(shí)現(xiàn)

B.加密前的文件稱為密文

C.加密后的文件稱為明文

D.將明文變?yōu)槊芪牡倪^程稱為解密A?!窘馕觥恳话闳藗儗⒓用芮暗奈募Q為明文,而加密后的文件稱為密文,因此加密的目的就是將明文變?yōu)槊芪?。而反過來將密文變?yōu)槊魑牡倪^程則稱為解密。

15.下列關(guān)于域名和IP地址的敘述中,不正確的是()。

A.在Internet中訪問一臺(tái)主機(jī)必須使用它的主機(jī)名

B.200.201.202.203是一個(gè)C類IP地址

C.IP地址采用的是分層結(jié)構(gòu)

D.主機(jī)名與IP地址是一一對(duì)應(yīng)的A?!窘馕觥棵颗_(tái)直接連接到Internet上的計(jì)算機(jī)、路由器都必須有唯一的IP地址。IP地址是Internet賴以工作的基礎(chǔ)。Internet中的計(jì)算機(jī)與路由器的IP地址采用分層結(jié)構(gòu),它是由網(wǎng)絡(luò)地址與主機(jī)地址兩部分組成。對(duì)于C類地址,其網(wǎng)絡(luò)地址空間長度為21位,主機(jī)地址空間長度為8位,C類IP地址范圍從:l92.0.0.0~223.255.255.255。主機(jī)名與它的IP地址一一對(duì)應(yīng),因此在Internet上訪問一臺(tái)主機(jī)既可以使用它的主機(jī)名,也可以使用它的IP地址。

16.Java語言中。負(fù)責(zé)并發(fā)管理的機(jī)制是()。

A.垃圾回收

B.虛擬機(jī)

C.代碼安全

D.多線程D?!窘馕觥慷嗑€程是Java程序的并發(fā)機(jī)制,它能同步共享數(shù)據(jù)、處理不同的事件。

17.下列描述中,錯(cuò)誤的是()。

A.Java要求編程者管理內(nèi)存

B.Java的安全性體現(xiàn)在多個(gè)層次上

C.Applet要求在支持Java的瀏覽器上運(yùn)行

D.Java有多線程機(jī)制A?!窘馕觥繛榱顺浞掷觅Y源,Java有一個(gè)系統(tǒng)級(jí)的線程,用來對(duì)內(nèi)存的使用進(jìn)行跟蹤,它可以在系統(tǒng)空閑時(shí)對(duì)不用的內(nèi)存空間進(jìn)行回收,從而使程序員從繁忙的內(nèi)存管理中解放出來。

18.Java為移動(dòng)設(shè)備提供的平臺(tái)是()。

A.J2MEB.J2SE

C.J2EED.JDK5.0A?!窘馕觥縅ava2平臺(tái)包括:J2ME平臺(tái)、J2SE平臺(tái)和J2EE平臺(tái)。其中:J2ME是為嵌入式和移動(dòng)設(shè)備提供的Java平臺(tái);J2SE是面向企業(yè)級(jí)應(yīng)用與服務(wù)的綜合性標(biāo)準(zhǔn)開發(fā)平臺(tái);J2EE是面向大型企業(yè)級(jí)用容器管理專用構(gòu)件的應(yīng)用平臺(tái)。而JDK5.0是一個(gè)Java開發(fā)軟件包。

19.JDK中提供的文檔生成器是()。

A.javadoc.exe

B.javap.exe

C.java.exe

D.javaprof.exeA。【解析】在JDK中:javadoc.exe是文檔生成器,將Java源代碼和包以MML格式生成AP文檔;java.exe是Java解釋器;javap.exe是Java反匯編器;javaprof.exe是Java剖析工具,提供解釋器剖析信息。

20.下列不屬于Swing中構(gòu)件的是()。

A.JPanel

B.JTable

C.Menu

D.JFrameC?!窘馕鯹JPanel是Swing的中間容器;JTable是Swing中可編輯信息的構(gòu)件;JFrame是Swing的頂層容器。閱讀下面程序

importjava.io.*;

publicclassTypeTransition{

publicstaticvoidmain(Stringargs[]){

chara=’h’;

inti=100;

intJ=97;

intaa=a+i;

System.out.println("aa="+aa);

charbb=(char)j;

System.out.println("bb="+bb):

}

}

如果輸出結(jié)果的第二行為bb=a,那么第一行的輸出結(jié)果是()。

A.a(chǎn)a=I

B.a(chǎn)a=204

C.a(chǎn)a=v

D.a(chǎn)a=156B?!窘馕觥勘绢}考查的是Java的基本數(shù)據(jù)類型及其運(yùn)算。程序開始生成了一個(gè)字符型變量a和3個(gè)整型變量i、j、aa。而整型變量aa的初始值是a+i,其中a是一個(gè)字符

型變量。如何進(jìn)行加法運(yùn)算呢?Java語言規(guī)定,char型數(shù)據(jù)可以自動(dòng)轉(zhuǎn)換成int類型,轉(zhuǎn)換的結(jié)果就是該字符的ASCIl碼值。因此,整型變量aa的初始值為字符”h”的ASCIl碼值加上l00。如果記住h的ASCIl碼值是104,則直接就確定aa的初始值是204,選項(xiàng)B為正確答案。如果記不得h的ASCIl碼,題目中則給出提示。題目中說”輸出結(jié)果的第二行為bb=a”,也就是字符bb的值為字符a,bb的生成語句是charbb=(char)j,是把整型變量j的值強(qiáng)制轉(zhuǎn)換為字符型。同樣,把ASCIl碼值為j(97)所對(duì)應(yīng)的字符賦值給bb。顯然,字符a的ASCIl碼值為97,字符b的ASCIl碼值為98,依次類推,字符h的ASCIl碼為l04。因此,本題的正確答案是B。

22.閱讀下面程序

publicclassOperatorsAndExpressions(

voidequalsMethodl(){

Stringsl一newString("howareyou");

Strings2=newString("howareyou");

System.out.println(s1==s2):

}

publicstaticvoidmain(Stringargs[]){

OperatorsAndExpressionsOperAndExp=newOper-

atorsAndExpressions

();

//用于復(fù)合類型數(shù)據(jù)的”==”運(yùn)算符

OperAndExp.equalsMethodl();

}

}

程序運(yùn)行結(jié)果是()。

A.==

B.true

C.false

D.equal

C?!窘馕觥勘绢}考查的是Java語言中運(yùn)算符的特殊用法。相等比較運(yùn)算符"==",不僅可用于基本類型的數(shù)據(jù)之間的比較,還可以用于復(fù)合類型數(shù)據(jù)之間的比較。但是,對(duì)于復(fù)合類型數(shù)據(jù)的"=="運(yùn)算,其比較的目標(biāo)是兩個(gè)操作數(shù)是否是同一個(gè)對(duì)象。如果需要比較兩個(gè)對(duì)象的值是否相同,則可以調(diào)用equals()方法。題目中函數(shù)equalsMethodl()的代碼非常簡單,首先生成兩個(gè)字符串對(duì)象sl和s2,然后輸出表達(dá)式"sl==s2"的結(jié)果。根據(jù)上面介紹的相等比較運(yùn)算符的用法,字符串對(duì)象sl和s2是復(fù)合類型數(shù)據(jù),因此表達(dá)式"sl==s2"比較的是sl和s2是否同一個(gè)對(duì)象。顯然,sl和s2雖然具有相同的值,即"howareyou",但它們是兩個(gè)不同的對(duì)象。因此,本題的正確答案是C。23.閱讀下面代碼

if(x==0){System.out.println("冠軍");)

elseif(x>一3){System.Out.println("亞軍");}

else{System.out.println("季軍");}

若要求打印字符串”季軍”,則變量X的取值范圍是()。

A.x=d&x<=-3

B.x>O

C.x>-3

D.x<=-3

23.D。【解析】本題考查的是條件分支語句if-else。if-else根據(jù)判定條件的真假來執(zhí)行兩種操作中的一種。當(dāng)條件為真時(shí),執(zhí)行if語句后面的代碼塊;當(dāng)條件為假時(shí),執(zhí)行else后面的代碼塊。題目中的代碼段是一個(gè)if-else的嵌套語句,根據(jù)if-else語句的執(zhí)行過程來進(jìn)行分析。當(dāng)x的值為0時(shí),布爾表達(dá)式"x==0"的結(jié)果為真,就輸出”冠軍”;當(dāng)x的值不為0時(shí),則執(zhí)行else語句中的內(nèi)容。else語句中的代碼又是一個(gè)if-else語句,還是和上面一樣進(jìn)行分析。當(dāng)X的值不等于0且大于-3時(shí),布爾表達(dá)式”x>-3”的結(jié)果為真,輸出"亞軍";當(dāng)x的值不等于0且不大干-3,也就是X的值不等于0同時(shí)x的值小于等于-3時(shí),則輸出"季軍"。經(jīng)過上述分析可知,要想輸出"季軍",x所滿足的條件為x!=O&x<=-3,但是當(dāng)x<=-3時(shí),x的值一定不會(huì)為0。所以,X所滿足的條件可以簡寫為x<=-3。因此,本題的正確答案為D。

24.下列關(guān)于構(gòu)造方法的敘述中,錯(cuò)誤的是()。

A.Java語言規(guī)定構(gòu)造方法名與類名必須相同

B.Java語言規(guī)定構(gòu)造方法沒有返回值,但不用void聲明

C.Java語言規(guī)定構(gòu)造方法不可以重載

D.Java語言規(guī)定構(gòu)造方法只能通過new自動(dòng)調(diào)用C?!窘馕觥勘绢}考查的是構(gòu)造方法的使用。Java語言中,構(gòu)造方法是一種特殊的方法,是為對(duì)象初始化操作編寫的方法,用它來定義對(duì)象的初始狀態(tài)。Java中的每個(gè)類都有構(gòu)造方法,它也是由方法名、參數(shù)和方法體組成的。構(gòu)造方法有如下特點(diǎn):

·構(gòu)造方法的名字必須與類名相同。

·構(gòu)造方法不返回任何數(shù)據(jù),但不用void來聲明。

·用戶不能直接調(diào)用構(gòu)造方法,必須通過關(guān)鍵字new自動(dòng)調(diào)用。

·構(gòu)造方法可由用戶在類中定義,默認(rèn)時(shí)由Java語言自動(dòng)生成。但它是個(gè)空方法,變量被賦予該數(shù)據(jù)類型的默認(rèn)值。

·在構(gòu)造方法實(shí)現(xiàn)中,可以進(jìn)行方法重載,即定義多個(gè)構(gòu)造方法。重載構(gòu)造方法的目的是使類具有不同的初始值,為類對(duì)象的初始化提供方便。根據(jù)上述構(gòu)造方法的特點(diǎn)可知,本題選項(xiàng)C的說法是錯(cuò)誤的。

25.下列適配器類中不屬于事件適配器的是()。

A.MouseAdapter

B.KeyAdapter

C.ComponentAdapter

D.FrameAdapter

D?!窘馕觥勘绢}考查java.a(chǎn)wt.event包中定義的適配器類。該包中定義的適配器類包括①ComponentAdapter構(gòu)件適配器;②ContainerAdapter容器適配器;③FocusAdapter焦點(diǎn)適配器;④MouseAdapter鼠標(biāo)適配器;⑤KeyAdapter鍵盤適配器⑥WindowAdapter窗口適配器,由此可知本題答案為D。26.下列類中屬于字節(jié)輸入抽象類的是()。

A.FileInputStream

B.ObjectInputStream

C.FiterInputStream

D.InputStream

D?!窘馕觥吭贘ava中定義了兩種類型的流,字節(jié)型和字符型,這兩種流分別用4個(gè)抽象類表示:InputStream,OutputStream,Reader,Writer,其中InptutStream和OutStream表示字節(jié)流,Reader和Reader是表示字符流,所以字節(jié)輸入抽象類為InptutStream。27.能向內(nèi)部直接寫入數(shù)據(jù)的流是()。

A.FileOutputStream

B.FileInputStream

C.ByteArrayOutputStream

D.ByteArraylnputStream

C?!窘馕觥勘绢}考查Java的內(nèi)存讀寫。在java.io中,還提供了ByteArrayInputStream、ByteArrayoutputStream和StringBufferInputStream類可直接訪問內(nèi)存,它們是InputStream和OutputStream的子類。用ByteArrayOutputStream可向字節(jié)數(shù)組寫入數(shù)據(jù);ByteArrayInputStream可從字節(jié)數(shù)組中讀取數(shù)據(jù)。28.下列運(yùn)算符中屬于關(guān)系運(yùn)算符的是()。

A.==

B.=

C.+=

D.-=

A?!窘馕觥勘绢}考查Java的關(guān)系運(yùn)算符。B中寫法不正確,C、D均為賦值運(yùn)算符。29.下列方法中,聲明拋出InterruptedException類型異常的方法是()。

A.suspend()

B.resume()

C.sleep()

D.start()

C。【解析】本題考查線程的基本操作。Java中提供了interrupt方法用來中斷一個(gè)線程,當(dāng)調(diào)用一個(gè)線程的interrupt方法時(shí),即向該線程發(fā)送一個(gè)中斷請(qǐng)求。在調(diào)用線程的interrupt方法時(shí),如果該線程由于調(diào)用了sleep方法或wait方法而正在處于阻塞狀態(tài),那么線程會(huì)拋出一個(gè)InterruptException異常。30.下列關(guān)于System類的敘述中,錯(cuò)誤的是()。

A.System類是一個(gè)final類

B.System類不能實(shí)例化

C.System類中沒有定義屬性

D.System類主要提供了系統(tǒng)環(huán)境參數(shù)的訪問C?!窘馕觥勘绢}考查System類的基本知識(shí)。Systern類是一個(gè)final類,所有的方法都用類變量來調(diào)用,對(duì)System類不可能實(shí)例化。System類主要用來提供標(biāo)準(zhǔn)輸入/輸出和系統(tǒng)環(huán)境信息的訪問設(shè)置。而System類的屬性有:①publicstaticfinalInputStreamin;標(biāo)準(zhǔn)輸入;②publicstaticfinalOutputStreamout;標(biāo)準(zhǔn)輸出;③pubhcstaticfinalPrintStreamerr;標(biāo)準(zhǔn)錯(cuò)誤輸出。閱讀下面程序

publicclassIncrement{

publicstaticvoidmain(stringargs[]){

intC;

c=5:

System.out.println(c);

System.out.println(c++):

System.out.println(c);

}

}

程序運(yùn)行結(jié)果是()。

A.5

6

6

B.5

5

6

C.6

7

7

D.6

6

6

B?!窘馕觥勘绢}考查的是Java增量運(yùn)算符"++"。x++是先使用后加l,即首先使用X的值進(jìn)行表達(dá)式的計(jì)算,然后才對(duì)x的值加1。而++x是先加1后使用,即首先對(duì)x的值加1,然后使用x的值進(jìn)行表達(dá)式的計(jì)算。本題首先生成一個(gè)整型變量C,其初始值為5。第一條輸出語句輸出c的初始值,即5。然后,第二條輸出表達(dá)式c++的結(jié)果,即先輸出C的值,然后才對(duì)c的值加1,所以,第二條輸出語句輸出的是5,輸出后c的結(jié)果才為6。最后一條輸出語句輸出結(jié)果為6。因此,本題的正確答案為B。32.下列敘述中,錯(cuò)誤的是()。

A.JavaApplication與Applet所用編譯命令相同

B.通常情況下JavaApplication只能有一個(gè)main()方法

C.JavaApplet必須有HTML文件才能運(yùn)行

D.JavaApplet程序的.class文件可用Java命令運(yùn)行

D?!窘馕觥勘绢}考查的是Java中的Applet以及Applet與Application的區(qū)別。Applet是能夠嵌入HTML語言中,并能夠在瀏覽器中運(yùn)行的類。Applet的運(yùn)行環(huán)境是Web瀏覽器,所以必須建立HTML文件,告訴瀏覽器如何加載與運(yùn)行Applet。因?yàn)锳pplet是不能直接通過Java命令行啟動(dòng)運(yùn)行的。所以選項(xiàng)D的說法錯(cuò)誤。33.下列關(guān)于Java語言中線程的敘述中,正確的是()。

A.線程由代碼、數(shù)據(jù)、內(nèi)核狀態(tài)和一組寄存器組成

B.線程間的數(shù)據(jù)是不共享的

C.用戶只能通過創(chuàng)建Thread類的實(shí)例或者定義和創(chuàng)建Thread子類的實(shí)例,建立和控制自己的線程

D.因多線程并發(fā)執(zhí)行而引起的執(zhí)行順序的不確定性可能造成執(zhí)行結(jié)果的不確定

D。【解析】本題考查線程的基本知識(shí)。線程與進(jìn)程在概念上是相關(guān)的,線程是由表示程序運(yùn)行狀態(tài)的寄存器、程序計(jì)數(shù)器、棧指針以及堆棧組成,它不包含進(jìn)程地址空間中的代碼和數(shù)據(jù)。代碼所操作的數(shù)據(jù)是Java線程模型中的一個(gè)組成部分,數(shù)據(jù)與代碼是獨(dú)立的。數(shù)

據(jù)可以被多個(gè)線程共享,也可不共享。Java語言中提供兩種創(chuàng)建線程的方法,一種是通過繼承Thread類創(chuàng)建線程,另一種是通過實(shí)現(xiàn)Runnable接口來創(chuàng)建線程。34.處理對(duì)象傳輸?shù)慕涌谑?)。

A.Serializable

B.C:loneable

C.hemListener

D.ActionListener

A?!窘馕觥刻幚韺?duì)象傳輸就是把對(duì)象串行化。Java語言中,如果要串行化某些類的對(duì)象,這些類就必須實(shí)現(xiàn)Serializable接口。35.在讀取二進(jìn)制數(shù)據(jù)文件的記錄時(shí),為了提高效率常

常使用的一種輔助類是()。

A.InputStream

B.FileInputStream

C.StringBuffer

D.BufferedReader

C?!窘馕觥勘绢}考查Java語言的輸入/輸出流。InputStream類、FilelnputStream類和BufferedReader類都是Java語言中和輸入輸出直接相關(guān)的類,不屬于輔助類,因此可以直接判斷出選項(xiàng)C為正確答案。36.在Applet中顯示文字、圖形等信息時(shí),應(yīng)使用的方法是()。

A.init()

B.start()

C.paint()

D.destroy()

C?!窘馕觥縫aint()是與Applet顯示相關(guān)的方法,由它來具體執(zhí)行Applet的繪制功能。init()方法用于初始化Applet,start()方法用于激活A(yù)pplet。在init()方法完成后,將調(diào)用start()方法,而且在Applet每次顯示時(shí)都要調(diào)用。destroy()方法用于徹底終止Applet。37.關(guān)于線程的生命周期以下狀態(tài)正確的是()。

A.新建狀態(tài)、可運(yùn)行狀態(tài)、阻塞狀態(tài)、恢復(fù)狀態(tài)和終止?fàn)顟B(tài)

B.新建狀態(tài)、運(yùn)行狀態(tài)、阻塞狀態(tài)、恢復(fù)狀態(tài)和終止?fàn)顟B(tài)

C.新建狀態(tài)、可運(yùn)行狀態(tài)、運(yùn)行狀態(tài)、阻塞狀態(tài)和終止?fàn)顟B(tài)

D.新建狀態(tài)、可運(yùn)行狀態(tài)、運(yùn)行狀態(tài)、恢復(fù)狀態(tài)和終止?fàn)顟B(tài)

C?!窘馕觥烤€程生命周期中出現(xiàn)的狀態(tài)包括:新建狀態(tài)、可運(yùn)行狀態(tài)、運(yùn)行狀態(tài)、阻塞狀態(tài)和終止?fàn)顟B(tài)。38.Thread類中能運(yùn)行線程的方法是()。

A.resume()

B.start()

C.run()

D.init()

C?!窘馕觥縭esume()是Thread類提供的用于線程控制的方法;start()是Thread類中的方法,新建的線程不會(huì)自動(dòng)運(yùn)行,必須調(diào)用線程的start()方法才能運(yùn)行該線程;run()是Thread類中的方法,在該方法中定義了線程的具體行為,線程開始執(zhí)行時(shí),就是從它的run()方法開始執(zhí)行的,就像Java應(yīng)用程序從main()開始、Applet從ink()開始一樣;init()不是Thread類中的方法。39.以下不是APPLET標(biāo)記的選項(xiàng)是()。

A.PARAM

B.BODY

C.CODEBASE

D.ALT

B?!窘馕觥繕?biāo)記的一般格式是:

[CODEBASE=codebaseURL]

CODE=appletFile

[ALT=alternateText]

[NAME=appletlnstanceName]

WIDTH=pixels

HEIGHT=pixels

[ALIGN=alignment]

[VSPACE=pixels]

[HSPACE=pixels]

[ARCHIVE=archiveFiles]

>

[

ue>]

[

ue>]

[alternateHTML]

因此可以看出,選項(xiàng)B不是APPLET標(biāo)記。40.在Java中,與數(shù)據(jù)庫連接的技術(shù)是()。

A.開放數(shù)據(jù)庫連接

B.Java數(shù)據(jù)庫連接

C.?dāng)?shù)據(jù)庫廠家驅(qū)動(dòng)程序

D.?dāng)?shù)據(jù)庫廠家的連接協(xié)議B。【解析】開放數(shù)據(jù)庫連接(ODBC,OpenDatebaseConnectivity),它是用C語言定義的。由于J2EE要求與Java綁定,因此規(guī)定使用Java數(shù)據(jù)庫連接(JDBC,JavaDataBaseConnectivity),作為Java與數(shù)據(jù)庫連接的技術(shù)?;静僮黝}(共18分)

本題定義了一個(gè)求兩個(gè)數(shù)的最大值的方法max,并調(diào)用該方法計(jì)算67和23的最大值。

publicclassjaval{

publicstaticvoidmain(String[]args){

javaltemp=newjaval();

intres=max(67,23);

System.out.println("res="+res);

}

staticintmaX(){

intmaxNum;

if(a>b)

;

else

maxNum=b;

;

}

}第1處:inta,intb

第2處:maxNum=a

第3處:returnmaxNum

【解析】第1處定義max()方法中的兩個(gè)整型形參;第2處將兩者中較大的賦給maxNum;第3處返回最大值。

三、簡單應(yīng)用題(共24分)

本題的功能是對(duì)下拉菜單項(xiàng)的操作,包括添加和刪除。頁面包括一個(gè)下拉菜單、一個(gè)文本框和兩個(gè)按鈕“刪除”和“添加”,選中下拉菜單的一項(xiàng)后,可以通過“刪除”按鈕從下拉菜單中刪除該項(xiàng),在文本框中填入字符串后,單擊“添加”按鈕就可以將該項(xiàng)添加到下拉菜單中,所有信息都將顯示在右側(cè)的文本域中。

importjava.a(chǎn)wt.*;

importjava.a(chǎn)wt.event.*;

publicclassjava2extendsjava.a(chǎn)pplet.Appletimple-

mentshemListener,ActionListener

{Choicechoice;

TextFieldtext;

TextAreaarea;

Buttonadd,del;

publicvoidinit().

{choice:newChoice();

text=newTextField(8);

area:newTextArea(6,15);

choice.a(chǎn)dd("音樂天地");

choice.a(chǎn)dd("武術(shù)天地");

choice.a(chǎn)dd("象棋樂園");

choice.a(chǎn)dd("交友聊天");

add=newButton("添加");

del=newButton("刪除");

add.a(chǎn)ddActionListener(this);

del.a(chǎn)ddActionListener(this);

choice.a(chǎn)ddItemListener(this);

add(choice);

add(del);add(text);add(add);add(area);

}

publicvoiditemStateChanged(hemEvente)

{Stringname=;

intindex=choice.getSelectedIndex();

area.setText("\n"+index+":"+name);

}

publicvoidactionPerformed(ActionEvente)

{if(e.getSource()==add||e.getSource()==

text)

{Stringname=text.getText();

if(name.length()>0)

{choice.a(chǎn)dd(name);

choice.select(name);

area.a(chǎn)ppend("\n添加"+name);

}

}

elseif(e.getSource()==del)

{choice.remove();

area.a(chǎn)ppend("\n刪除"+choice.getSelectedItem

());

}

}

}第1處:choice.getSelectedltem()

第2處:choice.getSelectedIndex()

【解析】第1處是獲取當(dāng)前選中項(xiàng)的數(shù)據(jù);第2處清除選中項(xiàng)的索引號(hào)。綜合應(yīng)用題(共18分)

本題的功能是定義自已的組件類。窗口中排布著12

個(gè)按鈕,鼠標(biāo)移動(dòng)按鈕時(shí),按鈕背景顏色改變,用鼠標(biāo)單擊

按鈕時(shí),后臺(tái)將顯示該按鈕對(duì)應(yīng)的字符。

importjava.a(chǎn)wt.*;

importjava.a(chǎn)wt.event.*;

importjava.util.*;

classjava3extendsFrame{

Stringkeys="l23456789*0#";

java3(){

super("java3");

addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

System.exit(O);

}

});

setLayout(newGridLayout(4,3,6,6));

for(inti=0;i

KeyButtonkb=newKeyButton(keys.charAt

(i));

kb.a(chǎn)ddkeyListener(this);

kb.setBackground(Color.pink);

kb.setForeground(Color.black);

add(kb);

}

setSize(200,200);

show();

}

classKeyEventHandlerextendsKeyAdapter{

publicvoidkeyTyPed(KeyEventevt){

System.out.println(evt.getChar());

}

}

publicstaticvoidmain(String[]args){

newjava3();

}

}

classKeyButtonextendsComponent{

KeyListenerkeyListener;

booleanhighlighted;

charkey;

KeyButton(chark){

this.key=k;

addMouseListener(newMouseEventHandler()):

}

publicvoidpaint(Graphicsg){

intW=getSize().width;

inth=getSize().height;

Strings=""+key;

FontMetricsfm=g.getFontMetrics();

if(highlighted){

g.setColor(getBackground());

g.fillRoundRect(0,0,w-1,h-1,10,10);

}

g.setColor(getForeground());

g.drawRoundRect(0,0,w-1,h-1,10,10);

g.drawString(s,(w-fm.stringWidth(s))/2,

(h-fm.getHeight())/2+fm.getAscent());

}

classMouseEventHandlerextendsMouseAdapter{

publicvoidmousePressed(MouseEventevt){

if(keyListener!=null){

keyListener.keyTyped(

newKeyEvent(KeyButton.this,KeyEvent.KEY_

TYPED,

System.currentTimeMillis(),

0,KeyEvent.VK_UNDEFINED,key));

}

}

publicvoidmouseEntered(MouseEventevt){

highlighted=true;

repaint();

}

publicvoidmouseExited(MouseEventevt){

highlighted=false;

repaint();

}

}

publicsynchronizedvoidaddKeyListerner(KeyLis-

tenerl){

keyListener=AWTEventMuhieaster.a(chǎn)dd(key-

Listener,1);

}

publicsynchronizedvoidremoveKeyListener(Key-

Listenerl){

keyListener=AWTEventMuhicaster.remove

(keyListener,1);

}

}第1處:inti=0;i

第2處:kb.a(chǎn)ddKeyListener(newKeyEventHandler())

第3處:system.out.println(evt.getKeyChar())

【解析】第1處是作為遍歷keys中元素的條件,而keys中的字符元素就是各個(gè)按鈕對(duì)應(yīng)的字符。第2處注冊(cè)鍵盤事件監(jiān)聽功能,KeyButton實(shí)現(xiàn)了KeyLIstener接口,而kb是KeyButton類的對(duì)象,所以它是合格的監(jiān)聽者。第3處將從鍵盤讀到的字符輸出。公共基礎(chǔ)知識(shí)及C++語言程序設(shè)計(jì)(考試時(shí)間90分鐘,滿分100)分)(1)C(2)C(3)B(4)A(5)D一、選擇題((1)~(35)每小題2分,共70分)下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確選項(xiàng)涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。(1)下面敘述正確的是A)算法的執(zhí)行效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無關(guān)B)算法的空間復(fù)雜度是指算法程序中指令(或語句)的條數(shù)C)算法的有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止D)以上三種描述都不對(duì)(2)以下數(shù)據(jù)結(jié)構(gòu)中不屬于線性數(shù)據(jù)結(jié)構(gòu)的是A)隊(duì)列B)線性表C)二叉樹D)棧(3)在一棵二叉樹上第5層的結(jié)點(diǎn)數(shù)最多是A)8B)16C)32D)(4)下面描述中,符合結(jié)構(gòu)化程序設(shè)計(jì)風(fēng)格的是A)使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)表示程序的控制邏輯B)模塊只有一個(gè)入口,可以有多個(gè)出口C)注重提高程序的執(zhí)行效率D)不使用goto語句(5)下面概念中,不屬于面向?qū)ο蠓椒ǖ氖茿)對(duì)象B)繼承C)類D)過程調(diào)用(6)在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是A)可行性分析B)需求分析C)詳細(xì)設(shè)計(jì)D)程序編碼(7)在軟件開發(fā)中,下面任務(wù)不屬于設(shè)計(jì)階段的是A)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)B)給出系統(tǒng)模塊結(jié)構(gòu)C)定義模塊算法D)定義需求并建立系統(tǒng)模型(8)數(shù)據(jù)庫系統(tǒng)的核心是A)數(shù)據(jù)模型C)軟件工具B)數(shù)據(jù)庫管理系統(tǒng)D)數(shù)據(jù)庫(9)下列敘述中正確的是A)數(shù)據(jù)庫系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持B)數(shù)據(jù)庫設(shè)計(jì)是指設(shè)計(jì)數(shù)據(jù)庫管理系統(tǒng)C)數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問題D)數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致(10)下列模式中,能夠給出數(shù)據(jù)庫物理存儲(chǔ)結(jié)構(gòu)與物理存取方法的是A)內(nèi)模式B)外模式C)概念模式D)邏輯模式(11)關(guān)于面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,下列說法正確的是A)“封裝性”指的是將不同類型的相關(guān)數(shù)據(jù)組合在一起,作為一個(gè)整體進(jìn)行處理B)“多態(tài)性”指的是對(duì)象的狀態(tài)會(huì)根據(jù)運(yùn)行時(shí)要求自動(dòng)變化C)基類的私有成員在派生類的對(duì)象中不可訪問,也不占內(nèi)存空間D)在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,結(jié)構(gòu)化程序設(shè)計(jì)方法仍有著重要作用(12)判斷字符型變量ch是否為大寫英文字母,應(yīng)使用表達(dá)式A)ch>='A'&ch<='Z'B)ch<='A'||ch>='Z'C)'A'<=ch<='Z'D)ch>='A'&&ch<='Z'(13)已知下列語句中的x和y都是int型變量,其中錯(cuò)誤的語句A)x=y++;B)x=++y;C)(x+y)++;D)++x=y;(14)執(zhí)行語句序列intn;cin>>n;switch(n){case1:case2:cout<<'1';case3:case4:cout<<'2';break;default:cout<<'3';}時(shí),若鍵盤輸入1,則屏幕顯示A)1B)2C)3D)12(15)下列程序的輸出結(jié)果是#include<iostream>usingnamespacestd;intmain(){chara[]="Hello,World";char*ptr=a;while(*ptr){if(*ptr>='a'&&*ptr<='z')cout<<char(*ptr+'A'-'a');elsecout<<*ptr;ptr++;}return0;}A)HELLO,WORLDB)Hello,WorldC)hELLO,wORLDD)hello,world(16)已知:intm=10;在下列定義引用的語句中,正確的是A)int&x=m;B)inty=&m;C)int&z;D)int&t=&m;(17)下列函數(shù)原型聲明中錯(cuò)誤的是A)voidFun(intx=0,inty=0);B)voidFun(intx,inty);C)voidFun(intx,inty=0);D)voidFun(intx=0,inty);(18)已知程序中已經(jīng)定義了函數(shù)test,其原型是inttest(int,int,int);,則下列重載形式中正確的是A)chartest(int,int,int);B)doubletest(int,int,double);C)inttest(int,int,int=0);D)floattest(int,int,float=3.5F);(19)有以下程序#include<iostream>inti=0;voidfun(){{staticinti=1;std::cout<<i++<<',';}std::cout<<i<<',';}intmain(){fun();fun();return0;}程序執(zhí)行后的輸出結(jié)果是A)1,2,1,2,B)1,2,2,3,C)2,0,3,0,D)1,0,2,0,(20)已知函數(shù)f的原型是:voidf(int*a,long&b);變量v1、v2的定義是:intv1;longv2;,正確的調(diào)用語句是A)f(v1,&v2); B)f(v1,v2);C)f(&v1,v2); D)f(&v1,&v2);(21)有以下類定義classMyClass{public:MyClass(){cout<<1;}};則執(zhí)行語句MyClassa,b[2],*p[2];后,程序的輸出結(jié)果是A)11B)111C)1111D)11111(22)關(guān)于友元,下列說法錯(cuò)誤的是A)如果類A是類B的友元,那么類B也是類A的友元B)如果函數(shù)fun()被說明為類A的友元,那么在fun()中可以訪問類A的私有成員C)友元關(guān)系不能被繼承D)如果類A是類B的友元,那么類A的所有成員函數(shù)都是類B的友元(23)關(guān)于動(dòng)態(tài)存儲(chǔ)分配,下列說法正確的是A)new和delete是C++語言中專門用于動(dòng)態(tài)內(nèi)存分配和釋放的函數(shù)B)動(dòng)態(tài)分配的內(nèi)存空間也可以被初始化C)當(dāng)系統(tǒng)內(nèi)存不夠時(shí),會(huì)自動(dòng)回收不再使用的內(nèi)存單元,因此程序中不必用delete釋放內(nèi)存空間D)當(dāng)動(dòng)態(tài)分配內(nèi)存失敗時(shí),系統(tǒng)會(huì)立刻崩潰,因此一定要慎用new(24)有以下程序#include<iostream>usingnamespacestd;classMyClass{public:MyClass(intn){number=n;}//拷貝構(gòu)造函數(shù)MyClass(MyClass&other){number=other.number;}~MyClass(){}private:intnumber;};MyClassfun(MyClassp){MyClasstemp(p);returntemp;}intmain(){MyClassobj1(10),obj2(0);MyClassobj3(obj1);obj2=fun(obj3);return0;}程序執(zhí)行時(shí),MyClass類的拷貝構(gòu)造函數(shù)被調(diào)用的次數(shù)是A)5B)4C)3D)2(25)在公有派生的情況下,派生類中定義的成員函數(shù)只能訪問原基類的A)公有成員和私有成員B)私有成員和保護(hù)成員C)公有成員和保護(hù)成員D)私有成員、保護(hù)成員和公有成員(26)在C++中用來實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性的是A)重載函數(shù)B)析構(gòu)函數(shù)C)構(gòu)造函數(shù)D)虛函數(shù)(27)一個(gè)類可以同時(shí)繼承多個(gè)類,稱為多繼承。下列關(guān)于多繼承和虛基類的表述中,錯(cuò)誤的是A)每個(gè)派生類的構(gòu)造函數(shù)都要為虛基類構(gòu)造函數(shù)提供實(shí)參B)多繼承時(shí)有可能出現(xiàn)對(duì)基類成員訪問的二義性問題C)使用虛基類可以解決二義性問題并實(shí)現(xiàn)運(yùn)行時(shí)的多態(tài)性D)建立最派生類對(duì)象時(shí),虛基類的構(gòu)造函數(shù)會(huì)首先被調(diào)用(28)在一個(gè)類體的下列聲明中,正確的純虛函數(shù)聲明是A)virtualvoidvf()=0;B)voidvf(int)=0;C)virtualintvf(int);D)virtualvoidvf(int){}(29)在下面的運(yùn)算符重載函數(shù)的原型中,錯(cuò)誤的是A)Volumeoperator-(double,double);B)doubleVolume::operator-(double);C)VolumeVolume::operator-(Volume);D)Volumeoperator-(Volume,Volume);(30)下列是模板聲明的開始部分,其中正確的是A)template<T>B)template<classT1,T2>C)template<classT1,classT2>D)template<classT1;classT2>(31)執(zhí)行語句序列ofstreamoutfile("DATA.DAT");if(...)cout<<"OK";elsecout<<"FAIL";后,如果文件打開成功顯示“OK”,否則就顯示“F厶n。”。由此可知,上面if語句的...處的表達(dá)式應(yīng)是A)outfile.fail()或outfileB)outfile.good()或!outfileC)outfile.good()或outfileD)outfile.fail()或!outfile(32)C++流中重載的運(yùn)算符>>是一個(gè)()A)用于輸出操作的非成員函數(shù)B)用于輸入操作的非成員函數(shù)C)用于輸出操作的成員函數(shù)D)用于輸入操作的成員函數(shù)(33)有以下類定義classPoint{public:Point(intx=0,inty=0){_.x=x;_.y=y;}voidMove(intxOff,intyOff){_x+=xOff;_.y+=yOff;}voidPrint()const{cout<<'('<<_x<<','<<_y<<')'<<endl;}private:int_x,_y;};下列語句中會(huì)發(fā)生編譯錯(cuò)誤的是A)Pointpt;pt.Print();B)constPointpt;pt.Print();C)Pointpt;pt.Move(l,2);D)constPointpt;pt.Move(l,2);(34)有以下類定義classMyClass{private:intid;chargender,char*phone;public:MyClass():id(0),gender('#'),phone(NULL){}MyClass(intno,charge='#',char*ph=NULl.){id=no;gende=ge;phone=ph;}};下列類對(duì)象定義語句中錯(cuò)誤的是A)MyClassmyObj;B)MyClassmyObj(11,);C)MyClassmyObj(12,'m');D)MyClassmyObj(12);(35)有以下程序#include<iostream>usingnamespacestd;classComplex{public:Complex(doubler=0,doublei=0):re(r),im(i){}doublereal()const{returnre;}doubleimag()const{returnim;}Complexoperator+(Complexc)const{returnComplex(re+c.re,im+c.im);}private:doublere,im;};intmain(){Complexa=Complex(l,1)+Complex(5);cout<<a.real()<<'+'<<a.imag()<<'i'<<endl;return0;}程序執(zhí)行后的輸出結(jié)果是A)6+6iB)6+1iC)1+6iD)1+1i二、填空題(每空2分,共30分)請(qǐng)將每一個(gè)空的正確答案寫在答題卡[1]-[15]序號(hào)的橫線上,答在試卷上不得分。注意:以命令關(guān)鍵字填空的必須拼寫完整。(1)算法的復(fù)雜度主要包括時(shí)間[1]復(fù)雜度和空間復(fù)雜度。(2)數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的[2]存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)或物理存儲(chǔ)結(jié)構(gòu)。(3)若按功能劃分,軟件測試的方法通常分為白盒測試方法和[3]黑盒或黑箱測試方法。(4)如果一個(gè)工人可管理多個(gè)設(shè)備,而一個(gè)設(shè)備只被一個(gè)工人管理,則實(shí)體“工人”與實(shí)體“設(shè)備”之間存在[4]一對(duì)多的聯(lián)系。(5)關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括選擇、連接和[5]投影。(6)設(shè)有定義語句:inta=12;,則表達(dá)式a*=2+3的運(yùn)算結(jié)果是[6]60。(7)從實(shí)現(xiàn)的角度劃分,C++所支持的兩種多態(tài)性分別是[7]編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)性。(8)將—個(gè)函數(shù)聲明為一個(gè)類的友元函數(shù)必須使用關(guān)鍵字[8]friend。(9)請(qǐng)按下面注釋的提示,將類B的構(gòu)造函數(shù)定義補(bǔ)充完整。classA{inta;public:A(intaa=0){a=aa;}};classB:publicA{intb;Ac;public://用aa初始化基類A,用aa+1初始化類對(duì)象成員cB(intaa):[9]A(aa),c(aa+1){b=aa+2;}};(10)下列程序的輸出結(jié)果是[10]7。#include<iostream>usingnamespacestd;intmain(){inti=5;int&r=i;r=7;cout<<i<<endl;return0;}(11)下列程序的輸出結(jié)果是[11]042。#include<iostream>usingnamespacestd;classTest{public:Test(){cnt++;}~Test(){cnt--;}staticintCount(){returncnt;}private:staticintcnt;};intTest::cnt=0;intmain(){cout<<Test::Count0<<'';Testtl,t2;Test*pT3=newTest;Test*pT4=newTest;cout<<Test::Count0<<'';deletepT4;deletepT3;cout<<Test::Count()<<endl;return0;}(12)下面是用來計(jì)算n的階乘的遞歸函數(shù),請(qǐng)將該函數(shù)的定義補(bǔ)充完整。(注:階乘的定義是n!=n*(n-1)*...*2*1)unsignedfact(unsignedn){if(n<=1)return1;return[12]n*fact(n-1);}(13)下列程序的輸出結(jié)果是[13]3,3.14。#include<iostream>usingnamespacestd;template<tytenameT>Tfun(Ta,Tb){return(a<=b)?:b;}intmain(){cout<<fun(3,6)<<','<<fun(3.14F,6.28F)<<endl;return0;}(14)與成員訪問表達(dá)式p->name等價(jià)的表達(dá)式是[14](*p).name。(15)下列程序的輸出結(jié)果是[15]25。#include<iostream>usingnamespacestd;classbase{public:intn;base(intx){n=x;}virtualvoidset(intm){n=m;cout<<n<<'';}};classderiveA:publicbase{public:deriveA(intx):base(x){}voidset(mtm){n+=m;cout<<n<<'';}};classderiveB:publicbase[public:deriveB(intx):base(x){}voidset(intm){n+=m;cout<<n<<'';}};intmain(){deriveAdl(1);deriveBd2(3);base*pbase;pbase=&dl;pbase->set(1);pbase=&d2;pbase->set(2);return0;}2004年9月全國計(jì)算機(jī)等級(jí)考試二級(jí)筆試試卷公共基礎(chǔ)知識(shí)及C++語言程序設(shè)計(jì)答案及評(píng)分標(biāo)準(zhǔn)選擇題((1)—(35)每小題2分,共70分)(1)C(2)C(3)B(4)A(5)D(6)B(7)D(8)B(9)C(10)A(11)D(12)D(13)C(14)D(15)A(16)A(17)D(18)B(19)D(20)C(21)B(22)A(23)B(24)B(25)C(26)D(27)C(28)A(29)A(30)C(31)C(32)B(33)D(34)B(35)B二、填空題(每空2分,共30分)(1)[1]時(shí)間(2)[2]存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)或物理存儲(chǔ)結(jié)構(gòu)(3)[3]黑盒或黑箱(4)[4]一對(duì)多或1對(duì)多或I:M或I:N(其中M、N大小寫均可)(5)[5]投影(6)[6]60(7)[7]編譯(8)[8]friend(9)[9]A(aa),c(aa+1)或c(aa+1),A(aa)(10)[10]7(11)[11]042(12)[12]n*fact(n-1)(13)[13]3,3.14(14)[14](*p).name(15)[15]252010年3月計(jì)算機(jī)等級(jí)考試二級(jí)C++筆試試題一、選擇題(每小題2分,共70分)下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的。請(qǐng)將正確選項(xiàng)填涂在答題卡相應(yīng)位置上,答在試卷上不得分。(1)下列敘述中正確的是A)對(duì)長度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為nB)對(duì)長度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(n/2)C)對(duì)長度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(log2n)D)對(duì)長度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(nlog2n)(2)算法的時(shí)間復(fù)雜度是指A)算法的執(zhí)行時(shí)間B)算法所處理的數(shù)據(jù)量C)算法程序中的語句或指令條數(shù)D)算法在執(zhí)行過程中所需要的基本運(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ū)ο蠓椒ǖ男枨蠓治龉ぞ?6)軟件生命周期可分為定義階段,開發(fā)階段和維護(hù)階段。詳細(xì)設(shè)計(jì)屬于A)定義階段B)開發(fā)階段C)維護(hù)階段D)上述三個(gè)階段(7)數(shù)據(jù)庫管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語言是A)數(shù)據(jù)定義語言B)數(shù)據(jù)管理語言C)數(shù)據(jù)操縱語言D)數(shù)據(jù)控制語言(8)在學(xué)生管理的關(guān)系數(shù)據(jù)庫中,存取一個(gè)學(xué)生信息的數(shù)據(jù)單位是A)文件B)數(shù)據(jù)庫C)字段D)記錄(9)數(shù)據(jù)庫設(shè)計(jì)中,用E-R圖來描述信息結(jié)構(gòu)但不涉及信息在計(jì)算機(jī)中的表示,它屬于數(shù)據(jù)庫設(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)下列關(guān)于函數(shù)的描述中,錯(cuò)誤的是A)函數(shù)可以沒有返回值B)函數(shù)可以沒有參數(shù)C)函數(shù)可以是一個(gè)類的成員D)函數(shù)不能被定義為模板(12)若MyClass是一個(gè)類名,且有如下語句序列MyClassc1,*c2;MyClass*c3=newMyClass;MyClass&c4=c1;上面的語句序列所定義的類對(duì)象的個(gè)數(shù)是A)1B)2C)3D)4(13)下列關(guān)于繼承方式的描述中,錯(cuò)誤的是A)如果不顯式地指定繼承方式,缺省的繼承方式是私有(private)B)采用公有繼承方式時(shí),基類中的公有成員在派生類中仍然是公有成員C)采用保護(hù)繼承方式時(shí),基類中的保護(hù)成員在派生類中仍然是保護(hù)成員D)采用私有繼承方式時(shí),基類中的私有成員在派生類中仍然是私有成員(14)將前綴運(yùn)算符“--”重載為非成員函數(shù),下列原型中,能正確用于類中說明的是A)Decr&operator--(int);B)Decroperator--(Decr&,int);C)friendDecr&operator--(Decr&);D)frlendDecroperator--(Decr&,int);(15)若MyTemp是一個(gè)只有一個(gè)虛擬類型參數(shù)的類模板,且有如下語句序列MyTempp2;MyTempp3[2];編譯系統(tǒng)在處理上面的語句序列時(shí),所生成的模板MyTemp的實(shí)例的個(gè)數(shù)是A)1B)2C)3D)0(16)在C++中,cin是個(gè)A)類B)對(duì)象C)模板D)函數(shù)(17)在下列字符中,不允許作為C++標(biāo)識(shí)符的是A)bB)BC)_D)2(18)下列敘述中,錯(cuò)誤的是A)false是一個(gè)邏輯型常量B)"b"是一個(gè)字符型常量C)365是一個(gè)int常量D)3.1415926是一個(gè)double常量(19)若x和y是程序中的兩個(gè)整型變量,則下列if語句中正確的是A)if(x==0)y=1;elsey=2;B)if(x==0)theny=1elsey=2;C)if(x==0)y=1elsey=2;D)ifx==0y=1;elsey=2;(20)要定義整型數(shù)組x,使之包括初值為O的三個(gè)元素,下列語句中錯(cuò)誤的是A)intx[3]={0,0,0};B)intx[]={0};C)staticintx[3]={0};D)intx[]={0,0,0};(21)關(guān)于函數(shù)中的<返回類型>,下列表述中錯(cuò)誤的是A)<返回類型>中有可能包含關(guān)鍵字intB)<返回類型>中有可能包含自定義標(biāo)識(shí)符C)<返回類型>中有可能包含字符*D)<返回類型>中可能包含[](22)要定義一個(gè)引用變量p,使之引用類MyClass的一個(gè)對(duì)象,正確的定義語句是A)MyClassp=MyClass;B)MyClassp=newMyClass;C)MyClass&p=newMyClass;D)MyClassa,&p=a;(23)有如下兩個(gè)類定義classXX{private:doublex1;protected:doublex2;public:doublex3;};classYY:protectedXX{private:doubley1;protected:doubley2;public:doubley3;};在

溫馨提示

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

評(píng)論

0/150

提交評(píng)論