2022年下半-程序員-上午卷和下午卷--試題和詳細(xì)答案_第1頁
2022年下半-程序員-上午卷和下午卷--試題和詳細(xì)答案_第2頁
2022年下半-程序員-上午卷和下午卷--試題和詳細(xì)答案_第3頁
2022年下半-程序員-上午卷和下午卷--試題和詳細(xì)答案_第4頁
2022年下半-程序員-上午卷和下午卷--試題和詳細(xì)答案_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、全國計(jì)算機(jī)技術(shù)與軟件專業(yè)技術(shù)資格(水平)考試2016 年下半年程序員上午和下午試卷(考試時(shí)間 9 : 0011 : 30 共 150 分鐘)請按下述要求正確填寫答題卡1. 在答題卡的指定位置上正確寫入你的姓名和準(zhǔn)考證號(hào),并用正規(guī) 2B 鉛筆在你寫入的準(zhǔn)考證號(hào)下填涂準(zhǔn)考證號(hào)。2. 本試卷的試題中共有 75 個(gè)空格,需要全部解答,每個(gè)空格 1 分,滿分75 分。3. 每個(gè)空格對應(yīng)一個(gè)序號(hào),有 A 、B、C、D 四個(gè)選項(xiàng),請選擇一個(gè)最恰當(dāng)?shù)倪x項(xiàng)作為解答,在答題卡相應(yīng)序號(hào)下填涂該選項(xiàng)。4. 解答前務(wù)必閱讀例題和答題卡上的例題填涂樣式及填涂注意事項(xiàng)。解答時(shí)用正規(guī) 2B 鉛筆正確填涂選項(xiàng), 如需修改, 請

2、用橡皮擦干凈, 否則會(huì)導(dǎo)致不能正確評(píng)分。例題 2016 年下半年全國計(jì)算機(jī)技術(shù)與軟件專業(yè)技術(shù)資格(水平)考試日期是(88) 月 (89) 日。(88)A. 9 B. 10 C. 11 D. 12 (89)A. 4 B. 5 C. 6 D. 7 因?yàn)榭荚嚾掌谑恰?1 月 4 日” ,故( 88)選 C,(89)選 A ,應(yīng)在答題卡序號(hào) 88 下對 C 填涂,在序號(hào) 89 下對 A 填涂(參看答題卡)。某質(zhì)量技術(shù)監(jiān)督部門為檢測某企業(yè)生產(chǎn)的某個(gè)批次的化妝品含鉛量是否超標(biāo),通常宜采用( 1)的方法。(1)A. 普查B.查有無合格證C.抽樣檢查D.查閱有關(guān)單據(jù)【答案】 C 【解析】某企業(yè)資料室員工張某和

3、王某負(fù)責(zé)向系統(tǒng)中錄入一批圖書信息(如:圖書編號(hào)、書名、作者、出版社,聯(lián)系方式等信息)要求在保證質(zhì)量的前提下,盡可能高效率地完成任務(wù)。對于如下: AD四種工作方式, ( 2)方式比較恰當(dāng)。(2)A. 張某獨(dú)立完成圖書信息的錄入,王某抽查 B.張某獨(dú)立完成圖書信息的錄入,王某逐條核對 C.張某和王某各錄一半圖書信息,再交叉逐條核對 D.張某和王某分工協(xié)作,分別錄入圖書信息的不同字段,再核對并合并在起【答案】 C 【解析】在 Excel 中,假設(shè)單元格A1、A2、A3 和 A4 的值分別為23、45、36、18,單元格 B1、B2、B3、B4 的值分別為 29. 、38、25、21,在單元格 C1

4、中輸入“ :-SUM(MAX(A1:A4),MIN(B1: B4) ” (輸入內(nèi)容不含引號(hào))并按 Enter 后, C1單元格顯示的內(nèi)容為(3)。(3)A.44B.66C.74D.84 【答案】 B 【解析】在 Excel 中,若在單元格A6 中輸入“-Sheet1!D5 +Sheet2 !B4:D4+Sheet3!A2:G2 ” ,則該公式( 4)。(4)A. 共引用了 2 張工作表的 5 個(gè)單元格的數(shù)據(jù) B. 共引用了 2 張工作表的 11 個(gè)單元格的數(shù)據(jù) C.共引用了 3 張工作表的 5 個(gè)單元格的數(shù)據(jù) 11 個(gè)單元格的數(shù)據(jù) D.共引用了 3 張工作表的【答案】 D 【解析】“ http

5、 :/www.x123.arts.hk” 中的“arts.hk” 代表的是( 5)。D. 香港的藝術(shù)機(jī)(5)A. 韓國的商業(yè)機(jī)構(gòu) B. 香港的商業(yè)機(jī)構(gòu)C.韓國的藝術(shù)機(jī)構(gòu)構(gòu)【答案】 D 【解析】在匯編指令中,操作數(shù)在某寄存器中的尋址方式稱為(6)尋址。(6)A. 直接B.變址C.寄存器D.寄存器間接【答案】 D 【解析】計(jì)算機(jī)系統(tǒng)中,虛擬存儲(chǔ)體系由(7)兩級(jí)存儲(chǔ)器構(gòu)成。(7)A. 主存一輔存 B. 寄存器一 Cache C.寄存器一主存【答案】 A 【解析】程序計(jì)數(shù)器( PC)是( 8)中的寄存器。(8)A. 運(yùn)算器 B. 控制器 C.Cache D.I/O 設(shè)備【答案】 B 【解析】中斷向量提

6、供(9)。(9)A. 外設(shè)的接口地址 B.待傳送數(shù)據(jù)的起始和終止地址 C.主程序的斷點(diǎn)地址 D.中斷服務(wù)程序入口地址【答案】 D 【解析】D.Cache 一主存在計(jì)算機(jī)系統(tǒng)中總線寬度分為地址總線寬度和數(shù)據(jù)總線寬度。若計(jì)算機(jī)中地址總線的寬度為 32 位,則最多允許直接訪問主存儲(chǔ)器(10)的物理空間。(10)A.40MBB.4GBC.40GBD.400GB 【答案】 B 【解析】為了提高計(jì)算機(jī)磁盤存取效率,通??梢裕?1)。(11)A. 用磁盤格式化程序定期對 ROM進(jìn)行碎片整理 B.用磁盤碎片整理程序定期對內(nèi)存進(jìn)行碎片整理 C.用磁盤碎片整理程序定期對磁盤進(jìn)行碎片整理 D.用磁盤格式化程序定期對

7、磁盤進(jìn)行碎片整理【答案】 C 【解析】商標(biāo)權(quán)保護(hù)的對象是指(12)。(12)A. 商品B.商標(biāo)C.己使用商標(biāo)D.注冊商標(biāo)【答案】 D 【解析】兩名以上的申請人分別就同樣的軟件發(fā)明創(chuàng)造申請專利時(shí),(13)可取得專利權(quán)。(13)A. 最先發(fā)明的人B.最先申請的人C.所有申請的人D.最先使用人【答案】 B 【解析】自然界的聲音信號(hào)一般都是多種頻率聲音的復(fù)合信號(hào),圍的參數(shù)被稱為信號(hào)的(14)。D.頻度(14)A. 帶寬B.音域C.響度【答案】 A 【解析】用來描述組成復(fù)合信號(hào)的頻率范信號(hào)的帶寬是指該信號(hào)所包含的各種不同頻率成分所占據(jù)的頻率范圍。這是百度對帶寬的解釋,所以本題應(yīng)該選帶寬。以下媒體文件格式

8、中, (15)是視頻文件格式。(15)A.WAVB.BMPC.MOVD.MP3 【答案】 C 【解析】使用 150DPI 的掃描分辨率掃描一幅3x4 英寸的彩色照片, 得到原始的24 位真彩色圖像的數(shù)據(jù)量是( 16) Byte 。(16)A.1800B.90000C.270000D.810000 【答案】 D 【解析】150*3*150*4*24/8=810000 下列病毒中,屬于后門類病毒的是(17)。(17)A.Trojan.Lmir.PSW.60B.Hack.Nether.Client C.Macro.word97D.Script.Redlof 【答案】 A 【解析】一般地, 根據(jù)計(jì)算機(jī)

9、病毒的發(fā)作方式和原理,病毒的制作原理和發(fā)作方式。在病毒名稱前面加上相應(yīng)的代碼以表示該例如, 以 Trojan.開始的病毒一般為木馬病毒,以 VBS.、JS. 、Script.開頭的病毒一般為腳本病毒,以Worm.開頭的一般為蠕蟲病毒等。安全的電子郵件協(xié)議為(18)。(18)A.MIMEB.PGPC.POP3D.SMTP 【答案】 B 【解析】PGP(Pretty Good Privacy),是一個(gè)基于RSA公鑰加密體系的郵件加密軟件,提供一種安全的通訊方式。在浮點(diǎn)表示格式中,數(shù)的精度是由(19)的位數(shù)決定的。(19)A. 尾數(shù)B.階碼C.數(shù)符D.階符【答案】 A 【解析】目前的小型和微型計(jì)算機(jī)

10、系統(tǒng)中普遍采用的字母與字符編碼是(20)。(20)A.BCD 碼 B.海明碼 C.ASC碼 D.補(bǔ)碼【答案】 C 【解析】已知 x = -53/64,若采用 8 位定點(diǎn)機(jī)器碼表示,則【x】原 =(21),【x】補(bǔ) =(22)。(21)A.01101101B.11101010C.11100010D.01100011 (22)A.11000011B.11101010C.10011110D.10010110 【答案】 B D 【解析】操作系統(tǒng)通過(23)來組織和管理外存中的信息。(23)A. 字處理程序B. 設(shè)備驅(qū)動(dòng)程序C.文件目錄和目錄項(xiàng)D.語言翻譯程序【答案】 C 【解析】下列操作系統(tǒng)中, (2

11、4)保留了網(wǎng)絡(luò)系統(tǒng)的全部功能,并具有透明性、可靠性和高性能等特性。(24)A. 批處理操作系統(tǒng)B.分時(shí)操作系統(tǒng) C. 分布式操作系統(tǒng) D. 實(shí)時(shí)操作系統(tǒng)【答案】 C 【解析】在進(jìn)程狀態(tài)轉(zhuǎn)換過程中,可能會(huì)引起進(jìn)程阻塞的原因是(25)。(25)A. 時(shí)間片到B. 執(zhí)行 V 操作C.I/O 完成D.執(zhí)行 P操作【答案】 D 【解析】假設(shè)系統(tǒng)有n(n 3) 個(gè)進(jìn)程共享資源R,且資源 R的可用數(shù) 3。若采用 PV操作,則相應(yīng)的信號(hào)量 S的取值范圍應(yīng)為(26)。(26)A.-1n-1B.-33C.-(n-3 )3 D.- (n-1 )1 【答案】 C 【解析】某分頁存儲(chǔ)管理系統(tǒng)中的地址結(jié)構(gòu)如下圖所示。若系

12、統(tǒng)以字節(jié)編址,則該系統(tǒng)每個(gè)頁面的大小為( 27)。(27)A.4096KBB.1MBC.2MBD.4MB 【答案】 B 【解析】以下關(guān)于解釋方式下運(yùn)行程序的敘述中,錯(cuò)誤的是(28)。(28)A. 先將高級(jí)語言程序轉(zhuǎn)換為字節(jié)碼,再由解釋器運(yùn)行字節(jié)碼 B.由解釋器直接分析并執(zhí)行高級(jí)語言程序代碼 C.先將高級(jí)語言程序轉(zhuǎn)換為某種中間代碼,再由解釋器運(yùn)行中間代碼 D.先將高級(jí)語言程序轉(zhuǎn)換為機(jī)器語言,再由解釋器運(yùn)行機(jī)器語言代碼【答案】 C 【解析】編寫 C程序時(shí)通常為了提高可讀性而加入注釋,注釋并不參與程序的運(yùn)行過程。通常,編譯程序在( 29)階段就會(huì)刪除源程序中的注釋。(29)A. 詞法分析B. 語法分

13、析C.語義分析D.代碼優(yōu)化【答案】 D 【解析】某 C語言程序中有表達(dá)式x%m(即 x 被 m除取余數(shù)),其中, x 為浮點(diǎn)型變量, m為整型非 0 常量,則該程序在(30)時(shí)會(huì)報(bào)錯(cuò),該錯(cuò)誤屬于(31)錯(cuò)誤。(30)A. 編譯 B.預(yù)處理 C. 編輯 D.運(yùn)行(31)A. 邏輯 B.語法 C.語義 D.運(yùn)行【答案】 A C 【解析】程序代碼中的錯(cuò)誤可分為語法錯(cuò)誤和語義錯(cuò)誤。程序語言的語法表述的是語言的形式,或者說是語言的樣子和結(jié)構(gòu)。程序語言還有更重要的一個(gè)方面,就是附著于語言結(jié)構(gòu)上的語義。語義揭示了程序本身的含義、施加于語言結(jié)構(gòu)上的限制或者要執(zhí)行的動(dòng)作。程序語言的語義分為靜態(tài)語義和動(dòng)態(tài)語義。編

14、譯時(shí)進(jìn)行的是靜態(tài)語義的分析,主要包括: 檢查語言結(jié)構(gòu)的語義是否正確, 即是否結(jié)構(gòu)正確的句子所表示的意思也合法;執(zhí)行規(guī)定的語義動(dòng)作,如表達(dá)式的求值、符號(hào)表的填寫、中間代碼的生成等。整除取余運(yùn)算符“%” 的有效運(yùn)算對象是兩個(gè)整數(shù)。在形式上,只要“%” 的兩個(gè)運(yùn)算對象存在,其語法就是正確的;在語義上,“ %” 的運(yùn)算對象中有浮點(diǎn)數(shù)則不符合整除取余運(yùn)算的含義。因此,這是運(yùn)算對象與運(yùn)算符的類型不匹配錯(cuò)誤,屆于靜態(tài)語義錯(cuò)誤,在編譯階段可以發(fā)現(xiàn)該錯(cuò)誤。在單 CPU計(jì)算機(jī)系統(tǒng)中,完成相同功能的遞歸程序比非遞歸程序(32)。(32)A. 運(yùn)行時(shí)間更短,占用內(nèi)存空間更少 C.運(yùn)行時(shí)間更短,占用內(nèi)存空間更多【答案】

15、 B 【解析】B.運(yùn)行時(shí)間更長,占用內(nèi)存空間更多 D.運(yùn)行時(shí)間更長,占用內(nèi)存空間更少已知函數(shù) f(). G() 的定義如下所示,調(diào)用函數(shù) f 時(shí)傳遞給形參 x 的值是 5。若 g(a) 采用引用調(diào)用 ( call by reference) 方式傳遞參數(shù),則函數(shù) f 的返回值為( 33);若 g(a) 采用值調(diào)用 (.call by value) 的方式傳遞參數(shù),則函數(shù) f 的返回值為( 34)。其中,表達(dá)式“X 1” 的含義是將 x 的值右移 1 位,相當(dāng)于 x=2。(33)A.35B.32C.11D.7 (34)A.35B.32C.11D.7 【答案】 C B 【解析】在值調(diào)用方式下,g

16、函數(shù)中調(diào)用函數(shù) f 時(shí)傳遞給形參 x 的值是 5,也就是說在函數(shù) g 中的 x 和 f 函數(shù)的值已經(jīng)沒有關(guān)系了,因此,返回函數(shù) g 中的 x=5* (5+1)=30,再執(zhí)行 f 中的a+x 運(yùn)算后得到 32, 因此空( 34) 應(yīng)填入的值為 32。設(shè)數(shù)組 a0 n-1,0 m-1(n1 ,m1)中的元素以行為主序存放,每個(gè)元素占用 4 個(gè)存儲(chǔ)單元,則數(shù)組元素ai,j(01n,0 j2 時(shí) f(n)=f(n-1)+f(n-2) 據(jù)此可以導(dǎo)出,n1 時(shí),有向量的遞推關(guān)系式:(f(n+1),f(n)=f(f(n),f(n-1)A 其中 A 是 2*2 矩陣( 64)。從而, (f(n+1),f(n)

17、=(f(2),f(1)*(65). (64)A. B. C. D.(65)A.An-1 B.AnC.A n+1D.An+2【答案】 D A 【解析】Windows系統(tǒng)中定義了一些用戶組,擁有完全訪問權(quán)的用戶組是(66)。(66)A.Power UsersB.UsersC.AdministratorsD.Guests 【答案】 C 【解析】瀏覽器本質(zhì)上是一個(gè)(67)。(67)A. 連入 Internet的 TCP/IP 程序 B. 連入 Internet的 SNMP程序C.瀏覽 Web頁面的服務(wù)器程序【答案】 D 【解析】D.瀏覽 Web頁面的客戶程序在 HTML文件中, 標(biāo)簽的作用是(68)。

18、(68)A. 換行 B.增大字體 C. 加粗 D.錨【答案】 C 【解析】在 HTML中, border 屬性用來指定表格(69)。(69)A. 邊框?qū)挾菳. 行高C. 列寬D.樣式【答案】 A 【解析】某 PC出現(xiàn)網(wǎng)絡(luò)故障,一般應(yīng)首先檢查 (70) 。(70)A.DNS 服務(wù)器 B. 路由配置 C.系統(tǒng)病毒 D.物理連通性【答案】 D 【解析】Since tablet computers and smart phones have(71)interface, many people believe that all home and business computers will event

19、ually have this kind of interface too. (71)A.CRTB.LEDC.Touch-screenD.Large screen 【答案】 C 【解析】(72)are specialized programs that assist you locating information on the web. (72)A.OSB.BrowseC.DBMSD.Search engines 【答案】 D 【解析】Program(73)describes programs objectives, desired output, input data required,

20、processing requirement, and documentation. (73)A.specificationB.flowchartC.structureD.address 【答案】 C 【解析】it. A good program should be(74) by programmers other than the person who wrote (74)A.reliableB.understandableC.structuredD.blocked 【答案】 B 【解析】(75)refers to the process of testing and then elimin

21、ating errors. (75)A.DebuggingB.ProgrammingC.AnalysisD.Maintenance 【答案】 A 【解析】試題一(共 15 分)閱讀以下說明和流程圖,填補(bǔ)流程圖中的空缺,將解答填入答題紙的對應(yīng)欄內(nèi)?!菊f明】設(shè)有整數(shù)數(shù)組 A1:N(N1),其元素有正有負(fù)。下面的流程圖在該數(shù)組中尋找連續(xù)排列的若干個(gè)元素, 使其和達(dá)到最大值, 并輸出其起始下標(biāo) K、元素個(gè)數(shù) L 以及最大的和值 M。例如,若數(shù)組元素依次為 3,-6 , 2,4,-2 ,3,-1 ,則輸出 K=3,L=4,M=7。該流程圖中考察了 A1 :N中所有從下標(biāo) i 到下標(biāo) j (j i )的各

22、元素之和 S,并動(dòng)態(tài)地記錄其最大值 M?!玖鞒虉D】注:循環(huán)開始框內(nèi)應(yīng)給出循環(huán)控制變量的初值和終值,默認(rèn)遞增值為 1,格式為:循環(huán) 控制變量 =初值,終值1、j=i+1 2、Aj 3、S 4、j 5、Aj 試題二(共 15 分)閱讀以下代碼,回答問題:【代碼 1】#include 1 至問題 3 ,將解答填入答題紙的對應(yīng)欄內(nèi)。void swap(int x, int y) int tmp =x; x= y; y= tmp; int maim() int a= 3, b= 7; printf(a1= %d b1=%dn,a,b); Swap( a, b); Printf(a2 = %d b2=%d

23、n” ,a,b) ;return 0; 【代碼 2】#include #define SPACE / 空格字符 Int main() char str128 =” Nothing is impossible! “ ;int i,num =0,wordMark=0; for(i=0;stri;i+) If(stri=SPACE) WordMark=0; else If(wordMark=0) wordMark=1; Mun+; Printf(“ %d/n” ,num) retun 0; 【代碼 3】#include #define SPACE “/ 空格字符int countStrs(char

24、*); int main() char str128 = Nothing is impossible! ; Printf(%d/n, (1) (str) retum 0; int countStrs(char *p) int num=0, wordMark= 0; for(;(2);p+) If((3)=SPACE) wordMark= 0; else if( !wordMark ) wordMark = 1; +num return (4) 【問題 1】(4 分)寫出代碼 1 運(yùn)行后的輸出結(jié)果。a1=3 b1=7 a2=7 b2=3 【問題 2】(3 分)寫出代碼 2 運(yùn)行后的輸出結(jié)果。3

25、【問題 3】(8 分)代碼 3 的功能與代碼2 完全相同,請補(bǔ)充3 中的空缺,將解答寫入答題紙的對應(yīng)欄內(nèi)。1) CountStr 2) pi 3) pi 4) num 試題三(共 15 分)閱讀以下說明和代碼,填補(bǔ)代碼中的空缺,將解答填入答題紙的對應(yīng)欄內(nèi)?!菊f明】下面的程序利用快速排序中劃分的思想在整數(shù)序列中找出第 到大排序后,取第 k 個(gè)元素)。k 小的元素(即將元素從小對一個(gè)整數(shù)序列進(jìn)行快速排序的方法是:在待排序的整數(shù)序列中取第一個(gè)數(shù)作為基準(zhǔn)值,然后根據(jù)基準(zhǔn)值進(jìn)行劃分,從而將待排序的序列劃分為不大于基準(zhǔn)值者(稱為左子序列)和大于基準(zhǔn)值者(稱為右子序列)到非遞減的有序序列。,然后再對左子序列

26、和右子序列分別進(jìn)行快速排序,最終得例如,整數(shù)序列“19, 12, 30, 11,7,53, 78, 25 的第 3 小元素為 12。整數(shù)序列“19, 12,7,30, 11, 11,7,53. 78, 25, 7 的第 3 小元素為 7。函數(shù) partition(int a, int low,int high)以 alow 的值為基準(zhǔn),對 alow 、alow+l、 、ahigh 進(jìn)行劃分,最后將該基準(zhǔn)值放入 ai (low i high) ,并使得 alow 、alow+l、,、Ai-1 都小于或等于 ai,而 ai+l、ai+2、ahigh 都大于 ai。函 教 findkthElem(i

27、nt a,int startIdx,int endIdx,inr k) 在 astartIdx、astartIdx+1、.、aendIdx 中找出第 k 小的元素?!敬a】#include #include Int partition(int a ,int low, int high)/ 對 alow.high進(jìn)行劃分,使得alow.i中的元素都不大于ai+1.high中的元素。int pivot=alow; /pivot表示基準(zhǔn)元素Int i=low,j=high; while( (1)) While(ipivot)-j; ai=aj While(ipivot)+i; aj=ai (2);

28、/ 基準(zhǔn)元素定位return i; Int findkthElem(int a,int startIdx,int endIdx, int k)/ 整數(shù)序列存儲(chǔ)在astartldx.endldx中,查找并返回第k 小的元素。if (startldx0 |endIdxendIdx | kendIdx |k-1startIdx) Return-1; / 參數(shù)錯(cuò)誤if(startIdxendldx) 位置 int loc=partition(a, startIdx, endldx); 進(jìn)行劃分,確定基準(zhǔn)元素的if (loc=k-1) 找到第 k 小的元素return (3) ;if(k-l loc)

29、/ 繼續(xù)在基準(zhǔn)元素之前查找return findkthElem(a, (4) ,k);else 繼續(xù)在基準(zhǔn)元素之后查找return findkthElem(a, (5) ,k); return astartIdx; int main() int i, k; int n; int a = 19, 12, 7, 30, 11, 11, 7, 53, 78, 25, 7; n= sizeof(a)sizeof(int) /計(jì)算序列中的元素個(gè)數(shù)for (k=1;k n+1;k+) for(i=0;in;i+) printf(“ %d/t” ,ai); printf(“n” );輸出序列中第k 小的元素

30、printf(“ elem %d=%dn,k,findkthElem(a,0,n-1,k);/ return 0; 1、!i=j 2、ai=pivot 3、aloc 4、loc-1 5、loc+1 試題四閱讀以下說明和代碼,填補(bǔ)代碼中的空缺,將解答填入答題紙的對應(yīng)欄內(nèi)?!菊f明】圖是很多領(lǐng)域中的數(shù)據(jù)模型,遍歷是圖的一種基本運(yùn)算。從圖中某頂點(diǎn)v 出發(fā)進(jìn)行廣度優(yōu)先遍歷的過程是:訪問頂點(diǎn) v;訪問 V 的所有未被訪問的鄰接頂點(diǎn) W1 ,W2 ,.,Wk;依次從這些鄰接頂點(diǎn) W1 ,W2 ,.,Wk 出發(fā),訪問其所有未被訪問的鄰接頂點(diǎn);依此類推,直到圖中所有訪問過的頂點(diǎn)的鄰接頂點(diǎn)都得到訪問。顯然,上述過

31、程可以訪問到從頂點(diǎn) V 出發(fā)且有路徑可達(dá)的所有頂點(diǎn)。對于從 v 出發(fā)不可達(dá)的頂點(diǎn) u,可從頂點(diǎn) u 出發(fā)再次重復(fù)以上過程 , 直到圖中所有頂點(diǎn)都被訪問到。例如,對于圖 4-1 所示的有向圖 G,從 a 出發(fā)進(jìn)行廣度優(yōu)先遍歷,訪問頂點(diǎn)的一種順序?yàn)?a、b、c、e、 f 、d。設(shè)圖 G采用數(shù)組表示法(即用鄰接矩陣arcs 存儲(chǔ)),元素 arcsij定義如下:a 的鄰圖 4-1 的鄰接矩陣如圖4-2 所示,頂點(diǎn)af 對應(yīng)的編號(hào)依次為05. 因此,訪問頂點(diǎn)接頂點(diǎn)的順序?yàn)閎,c,e。利用隊(duì)列實(shí)現(xiàn)圖G的廣度優(yōu)先遍歷。函數(shù) BFSTraverse(Graph G)相關(guān)的符號(hào)和類型定義如下:#define M

32、axN :50 * 圖中最多頂點(diǎn)數(shù) *typedef int AdjMatrixMaxNMaxN;typedef struct int vexnum , edgenum; *圖中實(shí)際頂點(diǎn)數(shù)和邊(?。?shù) * AdjMatrix arcs; *鄰接矩陣 *)Graph ;typedef int QElemType;enum ERROR=0;OK=l; 代碼中用到的隊(duì)列運(yùn)算的函數(shù)原型如表4-1 所述,隊(duì)列類型名為QUEUE。表 4-1 實(shí)現(xiàn)隊(duì)列運(yùn)算的函數(shù)原型及說明【代碼】int BFSTraverse(Graph G) / 圖 G進(jìn)行廣度優(yōu)先遍歷,圖采用鄰接矩陣存儲(chǔ)unsigned char*vis

33、ited; /visited用于存儲(chǔ)圖G 中各頂點(diǎn)的訪問標(biāo)志,0 表示未訪問int v, w;u;QUEUEQ Q; 申請存儲(chǔ)頂點(diǎn)訪問標(biāo)志的空間,成功時(shí)將所申請空間初始化為 0 visited=(char*)calloc(G.vexnum, sizeof(char); If( (1)) retum ERROR; (2) ; / 初始化 Q為空隊(duì)列 for( v=0; vG.vexnum; v+) if(!visitedv) / 從頂點(diǎn) v 出發(fā)進(jìn)行廣度優(yōu)先遍歷 printf(%d” ,v) ; / 訪問頂點(diǎn) v 并將其加入隊(duì)列 visitedv=l;(3) ;while( ! isEmpty(

34、Q) (4) ; / 出隊(duì)列并用 u 表示出隊(duì)的元素 for(v=0;vG.vexnum; w+) if (G.arcsuw!=0& (5) ) /w 是 u 的鄰接頂點(diǎn)且未訪問過 printf(%d” ,w); / 訪問頂點(diǎn) w visitedw=1;EnQueue(&Q, w); free(visited); return OK; )/BFSTraverse 1、visited=NULL 2、InitQueue(&Q) 3、EnQueue(&Q,v) 4、DeQueue(&Q,&u) 5、visited=0 試題五閱讀以下說明和 Java 程序,填補(bǔ)代碼中的空缺,將解答填入答題紙的對應(yīng)欄內(nèi)

35、?!菊f明】以下 Java 代碼實(shí)現(xiàn)一個(gè)簡單的聊天室系統(tǒng)(ChatRoomSystem),多個(gè)用戶 (User) 可以向聊天室 ( ChatRoom) 發(fā)送消息,聊天室將消息展示給所有用戶。類圖如圖 5-1 所示。【Java 代碼】class ChatRoom public static void showMessage(User user, Strmg message) System.out.println( + user.getName() + : + message); classUser private String name; public String getName() return name; public void setName(String name) = name; public User(String name) (1) =name; public void sendMessage(String message) (2) (this, message); public class Chat:RoomSystem public void startup() User zhang= new User(John); User li =new User(Leo); zhang.sendMessage(Hi! Leo! ); 1i.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論