2023年下半年程序員考試試卷及答案_第1頁
2023年下半年程序員考試試卷及答案_第2頁
2023年下半年程序員考試試卷及答案_第3頁
2023年下半年程序員考試試卷及答案_第4頁
2023年下半年程序員考試試卷及答案_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2023年下半年程序員考試試卷及答案●在Word編輯狀態(tài)下,若要多次復(fù)制Word中的格式,使用方法為:一方面選中設(shè)立好格式的文字,在工具欄上(1)按鈕,光標(biāo)將變成格式刷的樣式;然后,選中需要設(shè)立同樣格式的(2),即可將選定格式復(fù)制到多個位置。取消格式刷時,只需在工具欄上再次單擊格式刷按鈕,或者按下Esc鍵即可。

(2)A.文字,按下Ctrl+V鍵B.圖像,按下Ctrl+V鍵C.文字,或?qū)⑹髽?biāo)移到需要復(fù)制格式的段落內(nèi),再單擊鼠標(biāo)左鍵D.圖像,或?qū)⑹髽?biāo)移到需要復(fù)制格式的圖像內(nèi),再單擊鼠標(biāo)左鍵●Excel學(xué)生成績表如下表所示,若要計算表中每個學(xué)生計算機文化和英語課的平均成績,那么,可通過在D3單元格中填寫(3),并(4)拖動填充柄至D10單元格,則可自動算出這些學(xué)生的平均成績。

ABCD1學(xué)生成績表2姓名計算機文化英語平均成績3朱小梅8076

4于洋8572

5趙玲玲9082

6馮剛9179

7鄭麗8678

8孟曉珊8276

9楊子健9686

10廖東9380

(3)A.=AVG(B3+C3)B.=AVERAGE(B3+C3)C.=AVG(B3/C3)D.=AVERAGE(B3:C3)(4)A.向垂直方向B.向水平方向C.按住Shift鍵向垂直方向D.按住Shift鍵向水平方向●E-mail地址由分隔符“(5)”分為前后兩部分,分別指明用戶名及郵件服務(wù)器的域名。(5)A.//B.\\C.@D..●計算機系統(tǒng)中用來連接CPU、內(nèi)存儲器和I/O接口的總線稱為系統(tǒng)總線。(6)總線屬于系統(tǒng)總線技術(shù)的一種。(6)A.IEEE1394B.PCIC.RS-232D.USB●微機系統(tǒng)中BIOS(基本輸入輸出系統(tǒng))保存在(7)中。(7)A.主板上的ROMB.DRAMC.主板上的RAMD.CD-ROM●(8)不屬于存儲器的速度性能指標(biāo)。(8)A.存儲周期B.存取時間C.主頻D.存儲器帶寬●下面關(guān)于Cache(高速緩沖存儲器)的敘述,“(9)”是錯誤的。(9)A.在體系結(jié)構(gòu)上,Cache存儲器位于主存與CPU之間B.Cache存儲器存儲的內(nèi)容是主存部分內(nèi)容的拷貝C.使用Cache存儲器并不能擴大主存的容量D.Cache的命中率只與其容量相關(guān)●計算機系統(tǒng)的可靠性通常用(10)來衡量。(10)A.平均響應(yīng)時間B.平均故障間隔時間C.平均故障時間D.數(shù)據(jù)解決速率●計算機系統(tǒng)可維護性是指(11)。(11)A.對系統(tǒng)進行故障檢測與修復(fù)的定期時間間隔B.系統(tǒng)失效后能被修復(fù)的概率C.在單位時間內(nèi)完畢修復(fù)的概率D.系統(tǒng)失效后在規(guī)定的時間內(nèi)可修復(fù)到規(guī)定功能的能力●有關(guān)哈夫曼編碼方法,以下說法對的的是(12)。(12)A.哈夫曼編碼是一種用于校驗的編碼方法B.編碼過程中需要根據(jù)符號出現(xiàn)的概率來進行編碼C.編碼過程中需要建立“詞典”D.哈夫曼編碼方法不能用于靜態(tài)圖像壓縮●下列光盤格式中,可以多次擦除重寫數(shù)據(jù)的是(13)。(13)A.CD-ROMB.CD-DAC.CD-RD.CD-RW●某數(shù)碼相機內(nèi)置128MB的存儲空間,拍攝分辨率設(shè)定為1600×1200像素,顏色深度為24位,若不采用壓縮存儲技術(shù),使用內(nèi)部存儲器最多可以拍攝(14)張照片。(14)A.B.

C.D.

●關(guān)于計算機病毒的說法,“(15)”是錯誤的。(15)A.正版軟件不會感染病毒B.壓縮文獻包中也也許包含病毒C.病毒是一種特殊的軟件D.病毒只有在一定的條件下才會發(fā)作●關(guān)于數(shù)字署名,“(16)”是錯誤的。(16)A.數(shù)字署名可以保證數(shù)據(jù)的完整性B.發(fā)送方無法否認自己簽發(fā)的消息C.接受方可以得到發(fā)送方的私鑰D.接受方可以確認發(fā)送方的身份●下列權(quán)利,不屬于軟件著作財產(chǎn)權(quán)的是(17)。(17)A.復(fù)制權(quán)B.署名權(quán)C.發(fā)行權(quán)D.翻譯權(quán)●依據(jù)我國知識產(chǎn)權(quán)的有關(guān)規(guī)定,(18)需要依法審查確認后方能受法律保護。(18)A.專利權(quán)B.著作權(quán)C.商業(yè)秘密權(quán)D.信息網(wǎng)絡(luò)傳播權(quán)●在CRC(循環(huán)冗余校驗)方法中,采用了(19)運算計算校驗碼。(19)A.邏輯與B.邏輯或C.循環(huán)移位D.模2除法(異或)●若內(nèi)存按字節(jié)編址,用存儲容量為8K×8比特的存儲器芯片構(gòu)成地址編號7000H至EFFFH的內(nèi)存空間,則至少需要(20)片。(20)A.4B.6C.8D.10●已知X=–121,若采用8位機器碼表達,則[X]原=(21),[X]補=(22)。(21)A.11001001B.11111001C.01111001D.01011001(22)A.10110111B.10000111C.10100111D.01111001●在Windows系統(tǒng)中,當(dāng)鼠標(biāo)指針呈現(xiàn)(23)形狀時表達處在等待狀態(tài)。(23)A.B.C.D.

●若分頁系統(tǒng)地址的結(jié)構(gòu)如下圖所示:

該系統(tǒng)頁的大小為(24)字節(jié),頁號的取值范圍為(25)。(24)A.1024B.2048C.4096D.8192(25)A.0~255B.1~256C.0~511D.1~512●已知有6個進程共享一個互斥段,假如最多允許3個進程同時進入互斥段,則信號量S的變化范圍是(26);若信號量S的當(dāng)前值為-2,則表達系統(tǒng)中有(27)個正在等待該資源的進程。(26)A.-5~1B.-3~3C.-2~4D.-2~5(27)A.0B.1C.2D.3●編譯型程序設(shè)計語言若規(guī)定程序中的變量必須先定義(或聲明)再引用,那么違反此規(guī)定的程序在(28)時報錯。(28)A.編輯B.編譯C.鏈接D.運營●開發(fā)微型嵌入式應(yīng)用系統(tǒng),采用(29)更合適。(29)A.C語言或匯編語言B.HTML或XML語言C.腳本語言D.SQL語言●設(shè)正規(guī)式S=(a|ba)*,則其相應(yīng)正規(guī)集的字符串(30)。(30)A.長度必須是偶數(shù)B.長度必須是奇數(shù)C.a不能連續(xù)出現(xiàn)D.b不能連續(xù)出現(xiàn)●對布爾表達式進行短路求值是指:無須對式中所有操作數(shù)或運算符進行計算就可擬定表達式的值。對于表達式“bor((c>d)anda)”,(31)時可進行短路計算。(31)A.d為trueB.a為trueC.b為trueD.c為true●函數(shù)f和g的定義如下圖所示。執(zhí)行函數(shù)f時需要調(diào)用函數(shù)g(a),若采用值調(diào)用方式(callbyvalue)調(diào)用g(a),則函數(shù)f的返回值為(32);若采用引用(callbyreference)方式調(diào)用g(a),則函數(shù)f的返回值為(33)。

(32)A.6B.13C.25D.28(33)A.35B.28C.25D.13●設(shè)數(shù)組a[1..6,0..9]的元素以行為主序存放,每個元素占用一個存儲單元,則數(shù)組元素a[3,3]的地址為(34)。(34)A.a+23B.a+27C.a+39D.a+35●若字符串s的長度為n(n>1)且其中的字符互不相同,則s的長度為2的子串有(35)個。(35)A.nB.n-1C.n-2D.2●若線性表(24,13,31,6,15,18,8)采用散列(Hash)法進行存儲和查找,設(shè)散列函數(shù)為H(Key)=Keymod11,則構(gòu)造散列表時發(fā)生沖突的元素為(36)。(其中的mod表達整除取余運算)(36)A.24和13B.6和15C.6和24D.18和8●線性表采用順序存儲結(jié)構(gòu),若表長為m,且在任何一個合法插入位置上進行插入操作的概率相同,則插入一個元素平均移動(37)個元素。(37)A.m?1B.2C.1D.m●若二叉樹的先序遍歷序列與中序遍歷序列相同且樹中結(jié)點數(shù)大于1,則該二叉樹的(38)。(38)A.只有根結(jié)點無左子樹B.只有根結(jié)點無右子樹C.非葉子結(jié)點只有左子樹D.非葉子結(jié)點只有右子樹●由關(guān)鍵字序列(12,7,36,25,18,2)構(gòu)造一棵二叉排序樹(初始為空,第一個關(guān)鍵字作為根結(jié)點插入,此后對于任意關(guān)鍵字,若小于根結(jié)點的關(guān)鍵字,則插入左子樹中,若大于根結(jié)點的關(guān)鍵字,則插入右子樹中,且左、右子樹均為二叉排序樹),該二叉排序樹的高度(層數(shù))為(39)。(39)A.6B.5C.4D.3●對連通圖進行遍歷前設(shè)立所有頂點的訪問標(biāo)志為false(未被訪問),遍歷圖后得到一個遍歷序列,初始狀態(tài)為空。深度優(yōu)先遍歷的含義是:從圖中某個未被訪問的頂點v出發(fā)開始遍歷,先訪問v并設(shè)立其訪問標(biāo)志為true(已訪問),同時將v加入遍歷序列,再從v的未被訪問的鄰接頂點中選一個頂點,進行深度優(yōu)先遍歷;若v的所有鄰接點都已訪問,則回到v在遍歷序列的直接前驅(qū)頂點,再進行深度優(yōu)先遍歷,直至圖中所有頂點被訪問過。(40)是下圖的深度優(yōu)先遍歷序列。

(40)A.123465B.126345C.162543D.123456●棧的運算特點是后進先出。元素a、b、c、d依次入棧,則不能得到的出棧序列是(41)。(41)A.abcdB.cabdC.dcbaD.bcda●兩個遞增序列A和B的長度分別為m和n(m(42)A.當(dāng)A的最大元素大于B的最大元素時B.當(dāng)A的最大元素小于B的最小元素時C.當(dāng)A的最小元素大于B的最小元素時D.當(dāng)A的最小元素小于B的最大元素時●在任意一棵非空的二叉樹中,終端結(jié)點(葉子)的數(shù)目總是比具有兩個孩子的非終端結(jié)點的數(shù)目(43)。(43)A.多0個B.多1個C.多2個D.多3個●(44)是對象之間關(guān)聯(lián)的一個重要方面,它說明了在關(guān)聯(lián)中一個類的對象可以相應(yīng)另一個類的多個對象。(44)A.繼承B.多態(tài)C.封裝D.多重性●聚集的一種形式是聚集對象和它的組成對象之間具有強關(guān)聯(lián)關(guān)系,這種聚集稱為(45),其關(guān)鍵特性是部分對象只能存在于組成對象之中。(45)A.集合B.組合C.關(guān)聯(lián)D.弱關(guān)聯(lián)●(46)是類的特性,它描述了類的對象所具有的一系列特性值。(46)A.屬性B.操作C.行為D.狀態(tài)●面向?qū)ο?47)強調(diào)對問題的調(diào)查而不是如何擬定解決方案,面向?qū)ο?48)強調(diào)的是問題的邏輯解決方案,即系統(tǒng)如何才干滿足需求。(47)A.編程B.實現(xiàn)C.分析D.設(shè)計(48)A.編程B.實現(xiàn)C.分析D.設(shè)計●(49)屬于動態(tài)交互圖,它們關(guān)注系統(tǒng)的動態(tài)特性。(49)A.序列圖和通信圖B.序列圖和類圖C.類圖和對象圖D.用例圖和通信圖●結(jié)構(gòu)化分析方法(SA)采用“自頂向下,逐層分解”的開發(fā)策略,其需求分析的結(jié)果中不涉及(50)。(50)A.一套分層的數(shù)據(jù)流圖B.一本數(shù)據(jù)字典C.一組加工邏輯D.一組用戶界面●(51)是一種面向數(shù)據(jù)結(jié)構(gòu)的軟件開發(fā)方法,該方法以數(shù)據(jù)結(jié)構(gòu)為基礎(chǔ),通過一組映射或轉(zhuǎn)換過程來建立程序的結(jié)構(gòu)。(51)A.結(jié)構(gòu)化開發(fā)方法B.Jackson系統(tǒng)開發(fā)方法C.Booch方法D.UML(統(tǒng)一建模語言)●通常在軟件開發(fā)過程的(52)階段,無需用戶參與。(52)A.需求分析B.維護C.編碼D.測試●軟件測試分為黑盒測試和白盒測試,其中(53)方法屬于黑盒測試。(53)A.等價類劃分和邊界值劃分B.循環(huán)覆蓋以及基本途徑測試C.錯誤推測和邏輯覆蓋D.因果圖和途徑覆蓋●關(guān)于軟件文檔的敘述,“(54)”是錯誤的。(54)A.文檔就是指軟件的操作說明書B.文檔是軟件產(chǎn)品的一部分,沒有文檔的軟件就不成為軟件C.高質(zhì)量文檔對于軟件開發(fā)、維護和使用有重要的意義D.測試用例也是重要的軟件文檔●為了改善系統(tǒng)硬件環(huán)境和運營環(huán)境而產(chǎn)生的系統(tǒng)更新?lián)Q代需求而導(dǎo)致的軟件維護屬于(55)維護。(55)A.適應(yīng)性B.對的性C.完善性D.防止性●某軟件在進行維護時,因誤刪除一個標(biāo)記符而引起的錯誤是(56)副作用。(56)A.文檔B.數(shù)據(jù)C.編碼D.設(shè)計●采用二維表格結(jié)構(gòu)表達實體類型及實體間聯(lián)系的數(shù)據(jù)模型稱為(57)。(57)A.層次模型B.網(wǎng)狀模型C.關(guān)系模型D.實體聯(lián)系模型●關(guān)系數(shù)據(jù)庫是表的集合。對視圖進行查詢,本質(zhì)上就是對從(58)中導(dǎo)出的數(shù)據(jù)進行查詢;支持數(shù)據(jù)庫各種操作的軟件系統(tǒng)稱為(59)。(58)A.一個或若干個基本表B.一個或若干個索引文獻C.一個或若干個視圖D.一個視圖(59)A.數(shù)據(jù)庫系統(tǒng)B.文獻系統(tǒng)C.數(shù)據(jù)庫管理系統(tǒng)D.操作系統(tǒng)●某銀行信貸額度關(guān)系credit-in(C_no,C_name,limit,Credit_balance)中的四個屬性分別表達用戶號、用戶姓名、信貸額度和累計消費額。該關(guān)系的(60)屬性可以作為主鍵。下表為關(guān)系credit-in的一個具體實例。

查詢累計消費額大于3000的用戶姓名以及剩余消費額的SQL語句應(yīng)為:Select(61)Fromcredit-inWhere(62);(60)A.C_noB.C_nameC.Credit_balanceD.limit(61)A.C_name,Credit_balance-limitB.C_name,limit-Credit_balanceC.C_name,limit,Credit_balanceD.C_name,Credit_balance(62)A.limit>3000B.Credit_balance>3000C.limit-Credit_balance>3000D.Credit_balance-limit>3000●某一類應(yīng)用問題中,需規(guī)定正比例函數(shù)與反比例函數(shù)之和的極值。例如,正比例函數(shù)4x與反比例函數(shù)9/x之和用f(x)表達,即f(x)=4x+9/x,(x>0),那么函數(shù)f(x)(63)。(63)A.沒有極小值B.在x=1時達成極大值C.在4x=9/x時達成極小值D.極大值是極小值的9/4倍●某民辦學(xué)校有若干間宿舍準(zhǔn)備安排給一批女生住。假如每間住3人,則會有21人無法安排;假如每間住6人,則最后一間不空也不滿。根據(jù)上述情況,可以推算出,該學(xué)校有(64)間宿舍,有(65)名女生需要安排住宿。(64)A.5B.6C.7D.8(65)A.45B.42C.39D.36●安全的Web服務(wù)器與客戶機之間通過(66)協(xié)議進行通信。(66)A.HTTP+SSLB.Telnet+SSLC.Telnet+HTTPD.HTTP+FTP●下列Internet應(yīng)用中,傳輸層需要采用UDP協(xié)議的是(67)。(67)A.IP電話B.瀏覽Web頁面C.telnetD.發(fā)送電子郵件●網(wǎng)絡(luò)用戶能進行QQ聊天,但在瀏覽器地址欄中輸入.org卻不能正常訪問該頁面,此時應(yīng)檢查(68)。(68)A.網(wǎng)絡(luò)物理連接是否正常B.DNS服務(wù)器是否正常工作C.默認網(wǎng)關(guān)設(shè)立是否對的D.IP地址設(shè)立是否對的●一個HTML文獻的起始標(biāo)記為(69)。(69)A.

<body>

B.

<title>

C.

<html>

D.

<meta>●ARP協(xié)議的功能是(70)。(70)A.由目的的IP地址求目的的MAC地址B.由目的的MAC地址求目的的IP地址C.由源的IP地址求源的MAC地址D.由源的MAC地址求源的IP地址●Asanoperatingsystemrepeatedlyallocatesandfreesstoragespace,manyphysicallyseparatedunusedareasappear.Thisphenomenoniscalled(71).(71)A.fragmentationB.compactionC.swappingD.paging●Todocumentyourcodecanincreaseprogram(72)andmakeprogrameasierto(73).(72)A.reliabilityB.securityC.readabilityD.usability(73)A.executeB.interpretC.compileD.maintain●Wecanusethewordprocessorto(74)yourdocuments.(74)A.editB.computeC.translateD.unload●A(75)infectedcomputermayloseitsdata.(75)A.fileB.databaseC.virusD.program試題一(共15分)閱讀以下說明和流程圖,填補流程圖中的空缺(1)~(5),將解答填入答題紙的相應(yīng)欄內(nèi)。[說明]下面流程圖的功能是:在已知字符串A中查找特定字符串B,假如存在,則輸出B串首字符在A串中的位置,否則輸出-1。設(shè)串A由n個字符A(0)、A(1)、…、A(n-1)組成,串B由m個字符B(0)、B(1)、…、B(m-1)組成,其中n≥m>0。在串A中查找串B的基本算法如下:從串A的首字符A(0)開始,取子串A(0)A(1)…A(m-1)與串B比較;若不同,則再取子串A(1)A(2)…A(m)與串B比較,依次類推。例如,字符串“CABBRFFD”中存在字符子串“BRF”(輸出3),不存在字符子串“RFD”(輸出-1)。在流程圖中,i用于訪問串A中的字符(i=0,1,…,n-1),j用于訪問串B中的字符(j=0,1,…,m-1)。在比較A(i)A(i+1)…A(i+m-1)與B(0)B(1)…B(m-1)時,需要對A(i)與B(0)、A(i+1)與B(1)、…、A(i+j)與B(j)、…逐對字符進行比較。若發(fā)現(xiàn)不同,則需要取下一個子串進行比較,依此類推。[流程圖]試題二(共15分)閱讀以下說明和C程序代碼,將應(yīng)填入(n)處的字句寫在答題紙的相應(yīng)欄內(nèi)。[說明]下面C程序代碼的功能是:對于輸入的一個正整數(shù)n(100≤n<1000),先判斷其是否是回文數(shù)(正讀反讀都同樣的數(shù))。若不是,則將n與其反序數(shù)相加,再判斷得到的和數(shù)是否為回文數(shù),若還不是,再將該和數(shù)與其反序數(shù)相加并進行判斷,依此類推,直到得到一個回文數(shù)為止。例如,278不是回文數(shù),其反序數(shù)為872,相加后得到的1150還不是回文數(shù),再將1150與其反序數(shù)511相加,得到的1661是回文數(shù)。函數(shù)intisPalm(longm)的功能是:將正整數(shù)m的各位數(shù)字取出存入數(shù)組中,然后判斷其是否為回文數(shù)。若m是回文數(shù)則返回1,否則返回0。[C程序代碼]#include#includeintisPalm(longm){/*判斷m是否為回文數(shù)*/inti=0,k=0;charstr[32];while(m>0){/*從個位數(shù)開始逐個取出m的各位數(shù)字并存入字符數(shù)組str*/str[k++]=(1)+'0';m=m/10;}for(i=0;i<k/2;i++)/*判斷str中的k個數(shù)字字符序列是否是回文*/if(str[i]!=str[(2)])return0;return1;}intmain(){longn,a,t;printf("inputapositiveinteger:");scanf("%ld",&n);if(n<100||n>=1000)return-1;while((3)){/*n不是回文數(shù)時執(zhí)行循環(huán)*/printf("%ld->",n);for(a=0,t=n;t>0;){/*計算n的反序數(shù)并存入a*/a=(4)*10+t%10;t=t/10;}/*endoffor*/n=(5);/*與反序數(shù)求和*/}/*endofwhile*/printf("%ld\n",n);system("pause");return0;}試題三(共15分)閱讀以下說明和C函數(shù),將應(yīng)填入(n)處的字句寫在答題紙的相應(yīng)欄內(nèi)。[說明]已知某二叉樹的非葉子結(jié)點都有兩個孩子結(jié)點,現(xiàn)將該二叉樹存儲在結(jié)構(gòu)數(shù)組Ht中。結(jié)點結(jié)構(gòu)及數(shù)組Ht的定義如下:#defineMAXLEAFNUM30structnode{charch;/*當(dāng)前結(jié)點表達的字符,對于非葉子結(jié)點,此域不用*/char*pstr;/*當(dāng)前結(jié)點的編碼指針,非葉子結(jié)點不用*/intparent;/*當(dāng)前結(jié)點的父結(jié)點,為0時表達無父結(jié)點*/intlchild,rchild;/*當(dāng)前結(jié)點的左、右孩子結(jié)點,為0時表達無相應(yīng)的孩子結(jié)點*/};structnodeHt[2*MAXLEAFNUM];/*數(shù)組元素Ht[0]不用*/該二叉樹的n個葉子結(jié)點存儲在下標(biāo)為1~n的Ht數(shù)組元素中。例如,某二叉樹如圖3-1所示,其存儲結(jié)構(gòu)如圖3-2所示,其中,與葉子結(jié)點a相應(yīng)的數(shù)組元素下標(biāo)為1,a的父結(jié)點存儲在Ht[5],表達為Ht[1].parent=5。Ht[7].parent=0表達7號結(jié)點是樹根,Ht[7].lchild=3、Ht[7].rchild=6分別表達7號結(jié)點的左孩子是3號結(jié)點、右孩子是6號結(jié)點。假如用“0”或“1”分別標(biāo)記二叉樹的左分支和右分支(如圖3-1所示),從根結(jié)點開始到葉子結(jié)點為止,按所通過度支的順序?qū)⑾鄳?yīng)標(biāo)記依次排列,可得到一個0、1序列,稱之為相應(yīng)葉子結(jié)點的編碼。例如,圖3-1中a、b、c、d的編碼分別是100、101、0、11。函數(shù)LeafCode(Ht[],n)的功能是:求解存儲在Ht中的二叉樹中所有葉子結(jié)點(n個)的編碼,葉子結(jié)點存儲在Ht[1]~Ht[n]中,求出的編碼存儲區(qū)由相應(yīng)的數(shù)組元素pstr域指示。函數(shù)LeafCode從葉子到根逆向求葉子結(jié)點的編碼。例如,對圖3-1中葉子結(jié)點a求編碼的過程如圖3-3所示。圖3-3從葉子到根求結(jié)點編碼示意圖typedefenumStatus{ERROR,OK}Status;[函數(shù)]StatusLeafCode(structnodeHt[],intn){intpc,pf;/*pc用于指出樹中的結(jié)點,pf則指出pc所相應(yīng)結(jié)點的父結(jié)點*/inti,start;chartstr[31]={'\0'};/*臨時存儲給定葉子結(jié)點的編碼,從高下標(biāo)開始存入*/for(i=1;(1);i++){/*對所有葉子結(jié)點求編碼,i表達葉結(jié)點在HT數(shù)組中的下標(biāo)*/start=29;pc=i;pf=Ht[i].parent;while(pf!=(2)){/*沒有到達樹根時,繼續(xù)求編碼*/if((3).lchild==pc)/*pc所表達的結(jié)點是其父結(jié)點的左孩子*/tstr[--start]='0';elsetstr[--start]='1';pc=(4);pf=Ht[pf].parent;/*pc和pf分別向根方向回退一層*/}/*endofwhile*/Ht[i].pstr=(char*)malloc(31-start);if(!Ht[i].pstr)returnERROR;strcpy(Ht[i].pstr,(5));}/*endoffor*/returnOK;}/*endofLeafCode*/試題四(共15分)閱讀以下說明和C函數(shù)代碼,回答問題并將解答寫在答題紙的相應(yīng)欄內(nèi)。[說明]著名的菲波那契數(shù)列定義式為f1=1f2=1fn=fn-1+fn-2(n=3,4,…)因此,從第1項開始的該數(shù)列為1,1,2,3,5,8,13,21,…。函數(shù)fib1和fib2分別用遞歸方式和迭代方式求解菲波那契數(shù)列的第n項(調(diào)用fib1、fib2時可保證參數(shù)n獲得一個正整數(shù))。[C函數(shù)代碼][問題1](6分)函數(shù)fib1和fib2存在錯誤,只需分別修改其中的一行代碼即可改正錯誤。(1)函數(shù)fib1不能通過編譯,請寫出fib1中錯誤所在行修改對的后的完整代碼;(2)函數(shù)fib2在n≤2時不能獲得對的結(jié)果,請寫出fib2中錯誤所在行修改對的后的完整代碼。[問題2](3分)將函數(shù)fib1和fib2改正后進行測試,發(fā)現(xiàn)前46項都對的,而第47項的值是一個負數(shù),請說明因素。[問題3](6分)函數(shù)fib1、fib2求得菲波那契數(shù)列第n項(n>40)的速度并不相同,請指出速度慢的函數(shù)名,并簡要說明因素。試題五(共15分)閱讀以下應(yīng)用說明、屬性設(shè)立以及VisualBasic程序代碼,將解答寫在答題紙的對應(yīng)欄內(nèi)。[應(yīng)用說明]本應(yīng)用運營時,由用戶輸入一個正整數(shù)n后自動產(chǎn)生n個正整數(shù),然后按照用戶的指定規(guī)定對該組數(shù)進行解決。該應(yīng)用的運營界面如下圖所示:1.窗體中有兩個文本框(txtSrc,txtObj)、兩個標(biāo)簽(lblSrc,lblObj)、三個命令按鈕(cmdGendat,cmdProc,cmdQuit)和一個彈出式菜單(procMenu,初始時不可見)。2.文本框txtSrc(由標(biāo)簽lblSrc提醒)用于顯示產(chǎn)生的數(shù)據(jù),文本框txtObj(由標(biāo)簽lblObj提醒)用于顯示解決結(jié)果,規(guī)定每行顯示一個整數(shù)。3.程序啟動時,命令按鈕cmdProc(運算規(guī)定)不可用。點擊命令按鈕cmdGendat(產(chǎn)生數(shù)據(jù))后,提醒用戶輸入一個n的值并生成n個正整數(shù)存入數(shù)組元素a(1)~a(n),然后將數(shù)據(jù)逐行顯示在txtSrc中,并設(shè)立命令按鈕cmdProc可用。4.點擊命令按鈕cmdProc(運算規(guī)定)后彈出菜單。選擇菜單項并單擊后,進行相應(yīng)解決并將結(jié)果顯示在txtObj中,同時將lblObj的標(biāo)題改為該菜單項表達的解決命令。彈出式菜單“運算規(guī)定”的結(jié)構(gòu)如下表所示:標(biāo)題名稱層次運算規(guī)定procMenu1排序Sorting2遞增排列Ascend3遞減排列Descend3找特殊數(shù)SpecNum2中位數(shù)MidNum3求均數(shù)AvgNum3一個整數(shù)序列的中位數(shù)指對該序列進行非遞減(增)排列后最中間位置上的元素。若序列長度為偶數(shù),則取中間兩個元素的平均值為其中位數(shù)。[屬性設(shè)立]為實現(xiàn)單擊命令按鈕cmdProc后彈出“運算規(guī)定”菜單(procMenu),設(shè)計時需將procMenu的(1)屬性設(shè)立成false。供(1)選擇的屬性:DefaultEnabledScaleModeStyleVisible從下列3道試題(試題五至試題七)中任選1道解答。假如解答的試題數(shù)超過1道,則題號小的1道解答有效。[VisualBasic程序代碼]Dima()AsInteger,nAsIntegerPrivateSubForm_Load()txtSrc.Text="":txtObj.Text="":(2)=FalseEndSubPrivateSubcmdGendat_Click()'生成正整數(shù)序列并存入數(shù)組aOnErrorGoToError_handlern=InputBox$("請輸入數(shù)組元素個數(shù):","輸入序列長度")If(n<1)ThenMsgBox"輸入數(shù)據(jù)錯誤!",vbOKOnly,"提醒:"GoToError_handler:EndIfReDima(n)AsIntegers=""Fori=1Ton'將生成的正整數(shù)存入a(1)~a(n)中a(i)=Int(Rnd*10000):s=s&Str$(a(i))&vbCrLfNexttxtSrc.Text=s(3)'設(shè)立運算規(guī)定命令按鈕可用Error_handler:EndSubPrivateSubcmdProc_Click()PopupMenuprocMenuEndSubPrivateSubMidNum_Click()'求中位數(shù)lblObj.Caption=MidNum.Caption&":"Fori=1Toround((n+1)/2)'用選擇排序法對數(shù)組a進行部分排序a(0)=a(i):k=i'a(0)用作臨時變量,暫存第i次選出的最小元素Forj=i+1TonIfa(j)<a(0)Thena(0)=a(j):k=(4)EndIfNextIfk<>iThena(k)=a(i):a(i)=a(0)EndIfNextIfn/2-n\2>0Then'n為奇數(shù)時,取中間一個數(shù)txtObj.Text=Str$(a((5)))Else'n為偶數(shù)時,取中間兩個數(shù)的平均值txtObj.Text=Str$(Int((a(n\2)+a(n\2+1))/2))EndIfEndSub'其他代碼略試題六(共15分)閱讀以下說明和C++代碼,將應(yīng)填入(n)處的字句寫在答題紙的相應(yīng)欄內(nèi)。[說明]C++標(biāo)準(zhǔn)模板庫中提供了vector模板類,可作為動態(tài)數(shù)組使用,并可容納任意數(shù)據(jù)類型,其所屬的命名空間為std。vector模板類的部分方法說明如下表所示:方法含義push_back(k)向vector對象的尾部添加一個元素kbegin()返回一個迭代器對象,該對象指向vector中的第一個元素end()返回一個迭代器對象,該對象指向vector中的最后一個元素empty()測試vector對象是否為空erase(ptr)刪除vector中ptr指向的元素[C++代碼]#include#includeusingnamespace(1);typedefvector<(2)>INTVECTOR;constintARRAY_SIZE=6;voidShowVector(INTVECTOR&theVector);intmain(){INTVECTORtheVector;//初始化theVector,將theV

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論