2005年程序員軟考上下午試題及答案word版_第1頁
2005年程序員軟考上下午試題及答案word版_第2頁
2005年程序員軟考上下午試題及答案word版_第3頁
2005年程序員軟考上下午試題及答案word版_第4頁
2005年程序員軟考上下午試題及答案word版_第5頁
已閱讀5頁,還剩102頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2008年下半年程序員考試試卷及答案 在word編輯狀態(tài)下,若要多次復制word中的格式,使用方法為:首先選中設置好格式的文字,在工具欄上 (1) 按鈕,光標將變成格式刷的樣式;然后,選中需要設置同樣格式的 (2) ,即可將選定格式復制到多個位置。取消格式刷時,只需在工具欄上再次單擊格式刷按鈕,或者按下esc鍵即可。(2)a. 文字,按下ctrl +v 鍵b. 圖像,按下ctrl +v 鍵c. 文字,或?qū)⑹髽艘频叫枰獜椭聘袷降亩温鋬?nèi),再單擊鼠標左鍵d. 圖像,或?qū)⑹髽艘频叫枰獜椭聘袷降膱D像內(nèi),再單擊鼠標左鍵 excel學生成績表如下表所示,若要計算表中每個學生計算機文化和英語課的平均成績,那么

2、,可通過在d3單元格中填寫 (3) ,并 (4) 拖動填充柄至d10單元格,則可自動算出這些學生的平均成績。abcd1學生成績表2姓名計算機文化英語平均成績3朱小梅80764于 洋85725趙玲玲90826馮 剛91797鄭 麗86788孟曉珊82769楊子健968610廖 東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) ”分為前后兩部分,分別指明用戶名

3、及郵件服務器的域名。(5)a. / b. c. d. . 計算機系統(tǒng)中用來連接 cpu、內(nèi)存儲器和 i/o 接口的總線稱為系統(tǒng)總線。 (6)總線屬于系統(tǒng)總線技術的一種。(6)a. ieee1394 b. pci c. rs-232 d. usb 微機系統(tǒng)中bios(基本輸入輸出系統(tǒng))保存在 (7) 中。(7)a. 主板上的rom b. dram c. 主板上的ram d. cd-rom (8) 不屬于存儲器的速度性能指標。(8)a. 存儲周期 b. 存取時間 c. 主頻 d. 存儲器帶寬 下面關于cache(高速緩沖存儲器)的敘述,“ (9) ”是錯誤的。(9)a. 在體系結(jié)構(gòu)上,cache存

4、儲器位于主存與cpu 之間b. cache存儲器存儲的內(nèi)容是主存部分內(nèi)容的拷貝c. 使用cache存儲器并不能擴大主存的容量d. cache的命中率只與其容量相關 計算機系統(tǒng)的可靠性通常用 (10) 來衡量。(10)a. 平均響應時間 b. 平均故障間隔時間c. 平均故障時間 d. 數(shù)據(jù)處理速率 計算機系統(tǒng)可維護性是指 (11) 。(11)a. 對系統(tǒng)進行故障檢測與修復的定期時間間隔b. 系統(tǒng)失效后能被修復的概率c. 在單位時間內(nèi)完成修復的概率d. 系統(tǒng)失效后在規(guī)定的時間內(nèi)可修復到規(guī)定功能的能力 有關哈夫曼編碼方法,以下說法正確的是 (12) 。(12)a. 哈夫曼編碼是一種用于校驗的編碼方法

5、b. 編碼過程中需要根據(jù)符號出現(xiàn)的概率來進行編碼c. 編碼過程中需要建立“詞典”d. 哈夫曼編碼方法不能用于靜態(tài)圖像壓縮 下列光盤格式中,可以多次擦除重寫數(shù)據(jù)的是 (13) 。(13)a. cd-rom b. cd-da c. cd-r d. cd-rw 某數(shù)碼相機內(nèi)置 128mb 的存儲空間,拍攝分辨率設定為 16001200 像素,顏色深度為24位,若不采用壓縮存儲技術,使用內(nèi)部存儲器最多可以拍攝 (14) 張照片。(14)a. b.c.d. 關于計算機病毒的說法,“ (15) ”是錯誤的。(15)a. 正版軟件不會感染病毒 b. 壓縮文件包中也可能包含病毒c. 病毒是一種特殊的軟件 d.

6、 病毒只有在一定的條件下才會發(fā)作 關于數(shù)字簽名,“ (16) ”是錯誤的。(16)a. 數(shù)字簽名可以保證數(shù)據(jù)的完整性 b. 發(fā)送方無法否認自己簽發(fā)的消息c. 接收方可以得到發(fā)送方的私鑰 d. 接收方可以確認發(fā)送方的身份 下列權利,不屬于軟件著作財產(chǎn)權的是 (17) 。(17)a. 復制權 b. 署名權 c. 發(fā)行權 d. 翻譯權 依據(jù)我國知識產(chǎn)權的有關規(guī)定, (18) 需要依法審查確認后方能受法律保護。(18)a. 專利權 b. 著作權 c. 商業(yè)秘密權 d. 信息網(wǎng)絡傳播權 在crc(循環(huán)冗余校驗)方法中,采用了 (19) 運算計算校驗碼。(19)a. 邏輯與 b. 邏輯或 c. 循環(huán)移位

7、d. 模2除法(異或) 若內(nèi)存按字節(jié)編址,用存儲容量為 8k8 比特的存儲器芯片構(gòu)成地址編號 7000h至efffh 的內(nèi)存空間,則至少需要 (20) 片。(20)a. 4 b. 6 c. 8 d. 10 已知 x = 121,若采用8位機器碼表示,則x原= (21) , x補= (22) 。(21)a. 11001001 b. 11111001 c. 01111001 d. 01011001(22)a. 10110111 b. 10000111 c. 10100111 d. 01111001 在windows系統(tǒng)中,當鼠標指針呈現(xiàn) (23) 形狀時表示處于等待狀態(tài)。(23)a. b.c. d

8、. 若分頁系統(tǒng)地址的結(jié)構(gòu)如下圖所示:該系統(tǒng)頁的大小為 (24) 字節(jié),頁號的取值范圍為 (25) 。(24)a. 1024 b. 2048 c. 4096 d. 8192(25)a. 0255 b. 1256 c. 0511 d. 1512 已知有 6 個進程共享一個互斥段,如果最多允許 3 個進程同時進入互斥段,則信號量s 的變化范圍是 (26) ;若信號量s 的當前值為-2,則表示系統(tǒng)中有 (27) 個正在等待該資源的進程。(26)a. -51 b. -33 c. -24 d. -25(27)a. 0 b. 1 c. 2 d. 3 編譯型程序設計語言若規(guī)定程序中的變量必須先定義(或聲明)再

9、引用,那么違反此規(guī)定的程序在 (28) 時報錯。(28)a. 編輯 b. 編譯 c. 鏈接 d. 運行 開發(fā)微型嵌入式應用系統(tǒng),采用 (29) 更合適。(29)a. c 語言或匯編語言 b. html或xml語言c. 腳本語言 d. sql語言 設正規(guī)式s=(a | ba)*,則其對應正規(guī)集的字符串 (30) 。(30)a. 長度必須是偶數(shù) b. 長度必須是奇數(shù)c. a不能連續(xù)出現(xiàn) d. b不能連續(xù)出現(xiàn) 對布爾表達式進行短路求值是指:無須對式中所有操作數(shù)或運算符進行計算就可確定表達式的值。對于表達式“b or (c d) and a)”, (31) 時可進行短路計算。(31)a. d為true

10、 b. a為true c. b為true d. c為true 函數(shù)f和g的定義如下圖所示。執(zhí)行函數(shù)f時需要調(diào)用函數(shù)g(a),若采用值調(diào)用方式(call by value) 調(diào)用g(a),則函數(shù)f的返回值為 (32) ;若采用引用 (call by reference)方式調(diào)用g(a),則函數(shù)f的返回值為 (33) 。(32)a. 6 b. 13 c. 25 d. 28(33)a. 35 b. 28 c. 25 d. 13 設數(shù)組a1.6,0.9的元素以行為主序存放,每個元素占用一個存儲單元,則數(shù)組元素a3,3的地址為 (34) 。(34)a. a+23 b. a+27 c. a+39 d. a

11、+35 若字符串s的長度為n(n 1)且其中的字符互不相同,則s的長度為2的子串有(35) 個。(35)a. n b. n-1 c. n-2 d. 2 若線性表(24, 13, 31, 6, 15, 18, 8)采用散列(hash)法進行存儲和查找,設散列函數(shù)為 h(key)=key mod 11,則構(gòu)造散列表時發(fā)生沖突的元素為 (36) 。(其中的 mod表示整除取余運算)(36)a. 24和13 b. 6 和15 c. 6 和24 d. 18和8 線性表采用順序存儲結(jié)構(gòu),若表長為 m,且在任何一個合法插入位置上進行插入操作的概率相同,則插入一個元素平均移動 (37) 個元素。(37)a.

12、m 1 b.2 c. 1 d. m 若二叉樹的先序遍歷序列與中序遍歷序列相同且樹中結(jié)點數(shù)大于1,則該二叉樹的(38) 。(38)a. 只有根結(jié)點無左子樹 b. 只有根結(jié)點無右子樹c. 非葉子結(jié)點只有左子樹 d. 非葉子結(jié)點只有右子樹 由關鍵字序列(12,7,36,25,18,2)構(gòu)造一棵二叉排序樹(初始為空,第一個關鍵字作為根結(jié)點插入,此后對于任意關鍵字,若小于根結(jié)點的關鍵字,則插入左子樹中,若大于根結(jié)點的關鍵字,則插入右子樹中,且左、右子樹均為二叉排序樹),該二叉排序樹的高度(層數(shù))為 (39) 。(39)a. 6 b. 5 c. 4 d. 3 對連通圖進行遍歷前設置所有頂點的訪問標志為fa

13、lse(未被訪問),遍歷圖后得到一個遍歷序列,初始狀態(tài)為空。深度優(yōu)先遍歷的含義是:從圖中某個未被訪問的頂點v出發(fā)開始遍歷,先訪問 v 并設置其訪問標志為 true(已訪問),同時將 v 加入遍歷序列,再從v的未被訪問的鄰接頂點中選一個頂點,進行深度優(yōu)先遍歷;若v的所有鄰接點都已訪問,則回到v在遍歷序列的直接前驅(qū)頂點,再進行深度優(yōu)先遍歷,直至圖中所有頂點被訪問過。 (40) 是下圖的深度優(yōu)先遍歷序列。(40)a. 1 2 3 4 6 5 b. 1 2 6 3 4 5 c. 1 6 2 5 4 3 d. 1 2 3 4 5 6 棧的運算特點是后進先出。元素a、b、c、d依次入棧,則不能得到的出棧序

14、列是(41) 。(41)a. a b c d b. c a b d c. d c b a d. b c d a 兩個遞增序列a 和b的長度分別為m和n(m(42)a. 當a 的最大元素大于b 的最大元素時b. 當a 的最大元素小于b 的最小元素時c. 當a 的最小元素大于b 的最小元素時d. 當a 的最小元素小于b 的最大元素時 在任意一棵非空的二叉樹中,終端結(jié)點(葉子)的數(shù)目總是比具有兩個孩子的非終端結(jié)點的數(shù)目 (43) 。(43)a. 多0個 b. 多1個 c. 多2個 d. 多3個 (44) 是對象之間關聯(lián)的一個重要方面,它說明了在關聯(lián)中一個類的對象可以對應另一個類的多個對象。(44)a

15、. 繼承 b. 多態(tài) c. 封裝 d. 多重性 聚集的一種形式是聚集對象和它的組成對象之間具有強關聯(lián)關系,這種聚集稱為(45) ,其關鍵特征是部分對象只能存在于組成對象之中。(45)a. 集合 b. 組合 c. 關聯(lián) d. 弱關聯(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. 設計(48)a. 編程 b. 實現(xiàn) c. 分析 d. 設計 (49) 屬于

16、動態(tài)交互圖,它們關注系統(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)為基礎,通過一組映射或轉(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

17、. 需求分析 b. 維護c. 編碼 d. 測試 軟件測試分為黑盒測試和白盒測試,其中 (53) 方法屬于黑盒測試。(53)a. 等價類劃分和邊界值劃分b. 循環(huán)覆蓋以及基本路徑測試c. 錯誤推測和邏輯覆蓋d. 因果圖和路徑覆蓋 關于軟件文檔的敘述, “ (54) ”是錯誤的。(54)a. 文檔就是指軟件的操作說明書b. 文檔是軟件產(chǎn)品的一部分,沒有文檔的軟件就不成為軟件c. 高質(zhì)量文檔對于軟件開發(fā)、維護和使用有重要的意義d. 測試用例也是重要的軟件文檔 為了改善系統(tǒng)硬件環(huán)境和運行環(huán)境而產(chǎn)生的系統(tǒng)更新?lián)Q代需求而導致的軟件維護屬于 (55) 維護。(55)a. 適應性 b. 正確性 c. 完善性

18、d. 預防性 某軟件在進行維護時,因誤刪除一個標識符而引起的錯誤是 (56) 副作用。(56)a. 文檔 b. 數(shù)據(jù) c. 編碼 d. 設計 采用二維表格結(jié)構(gòu)表達實體類型及實體間聯(lián)系的數(shù)據(jù)模型稱為 (57) 。(57)a. 層次模型 b. 網(wǎng)狀模型 c. 關系模型 d. 實體聯(lián)系模型 關系數(shù)據(jù)庫是表的集合。對視圖進行查詢,本質(zhì)上就是對從 (58) 中導出的數(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) 某銀行

19、信貸額度關系credit-in(c_no, c_name, limit, credit_balance)中的四個屬性分別表示用戶號、用戶姓名、信貸額度和累計消費額。該關系的 (60) 屬性可以作為主鍵。下表為關系credit-in的一個具體實例。查詢累計消費額大于3000的用戶姓名以及剩余消費額的sql語句應為:select (61)from credit-inwhere (62) ;(60)a. c_no b. c_namec. credit_balance d. limit(61)a. c_name,credit_balance - limit b. c_name,limit - cred

20、it_balancec. c_name,limit,credit_balance d. c_name,credit_balance(62)a. limit3000 b. credit_balance3000c. limit - credit_balance3000 d. credit_balance - limit3000 某一類應用問題中,需要求正比例函數(shù)與反比例函數(shù)之和的極值。例如,正比例函數(shù)4x 與反比例函數(shù)9/x 之和用f(x)表示,即f(x)=4x + 9/x,(x0) ,那么函數(shù)f(x) (63) 。(63)a. 沒有極小值 b. 在x=1時達到極大值c. 在4x=9/x時達到極小

21、值 d. 極大值是極小值的9/4倍 某民辦學校有若干間宿舍準備安排給一批女生住。如果每間住3人,則會有21人無法安排;如果每間住6人,則最后一間不空也不滿。根據(jù)上述情況,可以推算出,該學校有 (64) 間宿舍,有 (65) 名女生需要安排住宿。(64)a. 5 b. 6 c. 7 d. 8(65)a. 45 b. 42 c. 39 d. 36 安全的web服務器與客戶機之間通過 (66) 協(xié)議進行通信。(66)a. http+ssl b. telnet+sslc. telnet+http d. http+ftp 下列internet應用中,傳輸層需要采用udp 協(xié)議的是 (67) 。(67)a

22、. ip 電話 b. 瀏覽web頁面 c. telnet d. 發(fā)送電子郵件 網(wǎng)絡用戶能進行qq聊天, 但在瀏覽器地址欄中輸入?yún)s不能正常訪問該頁面,此時應檢查 (68) 。(68)a. 網(wǎng)絡物理連接是否正常 b. dns 服務器是否正常工作c. 默認網(wǎng)關設置是否正確 d. ip 地址設置是否正確 一個html文件的起始標記為 (69) 。(69)a. b. c. d. arp 協(xié)議的功能是 (70) 。(70)a. 由目標的ip 地址求目標的mac 地址b. 由目標的mac 地址求目標的ip 地址c. 由源的ip 地址求源的mac 地址d. 由源的mac 地址求源的

23、ip 地址 as an operating system repeatedly allocates and frees storage space, many physically separated unused areas appear. this phenomenon is called (71) .(71)a. fragmentation b. compaction c. swapping d. paging to document your code can increase program (72) and make program easier to(73).(72) a. re

24、liability b. security c. readability d. usability(73) a. execute b. interpret c. compile d. maintain we can use the word processor to (74) your documents.(74)a. edit b. compute c. translate d. unload a (75) infected computer may lose its data.(75)a. file b. data base c. virus d. program試題一(共15分)閱讀以下

25、說明和流程圖,填補流程圖中的空缺(1)(5),將解答填入答題紙的對應欄內(nèi)。說明下面流程圖的功能是:在已知字符串a(chǎn) 中查找特定字符串b,如果存在,則輸出b串首字符在 a 串中的位置,否則輸出-1。設串 a 由 n 個字符 a(0)、a(1)、a(n-1)組成,串b由m個字符b(0)、b(1)、b(m-1)組成,其中nm0。在串a(chǎn)中查找串b的基本算法如下:從串a(chǎn) 的首字符a(0)開始,取子串a(chǎn)(0)a(1)a(m-1)與串b比較;若不同,則再取子串a(chǎn)(1)a(2)a(m)與串b 比較,依次類推。例如,字符串“cabbrffd”中存在字符子串“brf”(輸出3),不存在字符子串“rfd”(輸出-1)

26、。在流程圖中,i用于訪問串a(chǎn)中的字符(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 程序代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內(nèi)。說明下面c 程序代碼的功能是:對于輸入的一個正整數(shù)n(100n 0) /*從個位數(shù)開始逐個取出m的各位數(shù)字并存入字符數(shù)組str*/strk+ = (1) + 0;m =

27、 m / 10;for(i = 0; i k/2; i+) /*判斷str中的k個數(shù)字字符序列是否是回文*/if ( stri != str (2) ) return 0;return 1;int main( )long n, a, t;printf(input a positive integer:); scanf(%ld,&n);if (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;

28、t = t / 10; /*end of for*/n = (5) ; /*與反序數(shù)求和*/ /*end of while*/printf(%ldn,n);system(pause); return 0;試題三(共15 分)閱讀以下說明和c 函數(shù),將應填入 (n) 處的字句寫在答題紙的對應欄內(nèi)。說明已知某二叉樹的非葉子結(jié)點都有兩個孩子結(jié)點,現(xiàn)將該二叉樹存儲在結(jié)構(gòu)數(shù)組 ht中。結(jié)點結(jié)構(gòu)及數(shù)組ht的定義如下:#define maxleafnum 30struct nodechar ch; /*當前結(jié)點表示的字符,對于非葉子結(jié)點,此域不用*/char *pstr; /*當前結(jié)點的編碼指針,非葉子結(jié)點

29、不用*/int parent; /*當前結(jié)點的父結(jié)點,為0時表示無父結(jié)點*/int lchild,rchild;/*當前結(jié)點的左、右孩子結(jié)點,為0時表示無對應的孩子結(jié)點*/;struct node ht2 * maxleafnum; /*數(shù)組元素ht0不用*/該二叉樹的n個葉子結(jié)點存儲在下標為1n的ht數(shù)組元素中。例如,某二叉樹如圖3-1所示,其存儲結(jié)構(gòu)如圖3-2所示,其中,與葉子結(jié)點a對應的數(shù)組元素下標為1,a 的父結(jié)點存儲在 ht5,表示為 ht1.parent=5。ht7.parent=0 表示 7 號結(jié)點是樹根,ht7.lchild=3、ht7.rchild=6 分別表示 7 號結(jié)點的

30、左孩子是 3號結(jié)點、右孩子是 6 號結(jié)點。 如果用“0”或“1”分別標識二叉樹的左分支和右分支(如圖 3-1 所示),從根結(jié)點開始到葉子結(jié)點為止,按所經(jīng)過分支的次序?qū)⑾鄳獦俗R依次排列,可得到一個 0、1序列,稱之為對應葉子結(jié)點的編碼。例如,圖3-1中a、b、c、d的編碼分別是100、101、0、11。函數(shù)leafcode(ht,n)的功能是:求解存儲在ht中的二叉樹中所有葉子結(jié)點(n個)的編碼,葉子結(jié)點存儲在ht1htn中,求出的編碼存儲區(qū)由對應的數(shù)組元素pstr域指示。函數(shù)leafcode從葉子到根逆向求葉子結(jié)點的編碼。例如,對圖3-1中葉子結(jié)點a求編碼的過程如圖3-3所示。 圖3-3從葉子

31、到根求結(jié)點編碼示意圖typedef enum status error, ok status;函數(shù)status leafcode(struct node ht, int n)int pc, pf; /*pc用于指出樹中的結(jié)點,pf則指出pc所對應結(jié)點的父結(jié)點*/int i,start;char tstr31 = 0; /*臨時存儲給定葉子結(jié)點的編碼,從高下標開始存入*/for(i=1;(1) ; i+) /*對所有葉子結(jié)點求編碼,i表示葉結(jié)點在ht數(shù)組中的下標*/start = 29;pc = i; pf = hti.parent;while (pf != (2) ) /*沒有到達樹根時,繼續(xù)

32、求編碼*/if ( (3) .lchild = pc ) /*pc所表示的結(jié)點是其父結(jié)點的左孩子*/tstr-start = 0;elsetstr-start = 1;pc = (4) ; pf = htpf.parent; /*pc和pf分別向根方向回退一層*/* end of while */hti.pstr = (char *) malloc(31-start);if (!hti.pstr) return error;strcpy(hti.pstr, (5) );/* end of for */return ok;/* end of leafcode */試題四(共15 分)閱讀以下說明

33、和c 函數(shù)代碼,回答問題并將解答寫在答題紙的對應欄內(nèi)。說明著名的菲波那契數(shù)列定義式為f1 = 1 f2 = 1 fn = 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在n2時不能獲得正確結(jié)

34、果,請寫出fib2中錯誤所在行修改正確后的完整代碼。問題2(3 分)將函數(shù)fib1和fib2改正后進行測試,發(fā)現(xiàn)前46項都正確,而第47項的值是一個負數(shù),請說明原因。問題3(6 分)函數(shù)fib1、fib2求得菲波那契數(shù)列第n項(n40)的速度并不相同,請指出速度慢的函數(shù)名,并簡要說明原因。試題五(共15 分)閱讀以下應用說明、屬性設置以及visual basic 程序代碼,將解答寫在答題紙的對應欄內(nèi)。應用說明本應用運行時,由用戶輸入一個正整數(shù)n后自動產(chǎn)生n個正整數(shù),然后按照用戶的指定要求對該組數(shù)進行處理。該應用的運行界面如下圖所示: 1. 窗體中有兩個文本框(txtsrc,txtobj)、兩個

35、標簽(lblsrc,lblobj)、三個命令按鈕(cmdgendat,cmdproc,cmdquit)和一個彈出式菜單(procmenu,初始時不可見)。2.文本框txtsrc(由標簽lblsrc提示)用于顯示產(chǎn)生的數(shù)據(jù),文本框txtobj(由標簽lblobj提示)用于顯示處理結(jié)果,要求每行顯示一個整數(shù)。3. 程序啟動時,命令按鈕cmdproc(運算要求)不可用。點擊命令按鈕cmdgendat(產(chǎn)生數(shù)據(jù))后,提示用戶輸入一個n的值并生成n個正整數(shù)存入數(shù)組元素a(1)a(n),然后將數(shù)據(jù)逐行顯示在txtsrc中,并設置命令按鈕cmdproc可用。4. 點擊命令按鈕cmdproc(運算要求)后彈出

36、菜單。選擇菜單項并單擊后,進行相應處理并將結(jié)果顯示在txtobj中,同時將lblobj的標題改為該菜單項表示的處理命令。彈出式菜單“運算要求”的結(jié)構(gòu)如下表所示: 標題 名稱 層次 運算要求 procmenu 1 排序 sorting 2 遞增排列 ascend 3 遞減排列 descend 3 找特殊數(shù) specnum 2 中位數(shù) midnum 3 求均數(shù) avgnum 3 一個整數(shù)序列的中位數(shù)指對該序列進行非遞減(增)排列后最中間位置上的元素。若序列長度為偶數(shù),則取中間兩個元素的平均值為其中位數(shù)。屬性設置為實現(xiàn)單擊命令按鈕 cmdproc 后彈出“運算要求”菜單(procmenu),設計時需

37、將procmenu的 (1) 屬性設置成false。供(1)選擇的屬性: default enabled scalemode style visible 從下列3道試題(試題五至試題七)中任選1道解答。如果解答的試題數(shù)超過1道,則題號小的1道解答有效。visual basic 程序代碼dim a() as integer, n as integerprivate sub form_load()txtsrc.text = : txtobj.text = : (2) = falseend subprivate sub cmdgendat_click() 生成正整數(shù)序列并存入數(shù)組aon error

38、goto error_handlern = inputbox$(請輸入數(shù)組元素個數(shù):, 輸入序列長度)if (n 1) thenmsgbox 輸入數(shù)據(jù)錯誤!, vbokonly, 提示:goto error_handler:end ifredim a(n) as integers = for i = 1 to n 將生成的正整數(shù)存入a(1)a(n)中a(i) = int(rnd * 10000) : s = s & str$(a(i) & vbcrlfnexttxtsrc.text = s(3) 設置運算要求命令按鈕可用error_handler:end subprivate sub cmdp

39、roc_click()popupmenu procmenuend subprivate sub midnum_click() 求中位數(shù)lblobj.caption = midnum.caption & :for i = 1 to round(n + 1)/2) 用選擇排序法對數(shù)組a進行部分排序a(0) = a(i):k = i a(0)用作臨時變量,暫存第i次選出的最小元素for j = i + 1 to nif a(j) a(0) thena(0) = a(j): k = (4)end ifnextif k i thena(k) = a(i): a(i) = a(0)end ifnextif

40、 n / 2 - n 2 0 then n為奇數(shù)時,取中間一個數(shù)txtobj.text = str$(a( (5) )else n為偶數(shù)時,取中間兩個數(shù)的平均值txtobj.text = str$(int(a(n 2) + a(n 2 + 1) / 2)end ifend sub其他代碼略試題六(共15 分)閱讀以下說明和c+代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內(nèi)。說明c+標準模板庫中提供了vector模板類,可作為動態(tài)數(shù)組使用,并可容納任意數(shù)據(jù)類型,其所屬的命名空間為std。vector模板類的部分方法說明如下表所示:方法含義push_back(k)向 vector 對象的尾部

41、添加一個元素 k begin()返回一個迭代器對象,該對象指向 vector 中的第一個元素end()返回一個迭代器對象,該對象指向 vector 中的最后一個元素empty()測試 vector 對象是否為空erase(ptr)刪除 vector 中 ptr 指向的元素c+代碼#include #include using namespace (1) ;typedef vector intvector;const int array_size = 6;void showvector(intvector &thevector);int main()intvector thevector;/ 初

42、始化thevector,將thevector的元素依次設置為0至5for (int ceachitem = 0; ceachitem array_size; ceachitem+)thevector.push_back( (3) );showvector(thevector); / 依次輸出thevector中的元素thevector.erase(thevector.begin() + 3);showvector(thevector);void showvector(intvector &thevector) if (thevector.empty() cout thevector is em

43、pty. endl; return;intvector:iterator (4) ;for(theiterator = thevector.begin(); theiterator != thevector.end(); theiterator+)cout *theiterator;if (theiterator != thevector.end()-1) cout , ;cout endl;該程序運行后的輸出結(jié)果為:0, 1, 2, 3, 4, 5(5)試題七(共15 分)閱讀以下說明和java代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內(nèi)。說明java.util庫中提供了vector

44、模板類,可作為動態(tài)數(shù)組使用,并可容納任意數(shù)據(jù)類型。該類的部分方法說明如下表所示:方法名 含義add(k) 向 vector 對象的尾部添加一個元素 kremoveelementat(i) 刪除序號為 i 的元素(vector 元素序號從 0 開始)isempty() 判斷 vector 對象是否含有元素size() 返回 vector 對象中所包含的元素個數(shù) java 代碼 import (1) ;public class javamain static private final int (2) = 6;public static void main(string args)vector t

45、hevector = new vector();/ 初始化thevector,將thevector的元素設置為0至5for (int ceachitem = 0; ceachitem array_size; ceachitem+)thevector.add( (4) );showvector(thevector); / 依次輸出thevector中的元素thevector.removeelementat(3);showvector(thevector);public static void showvector(vector thevector)if (thevector.isempty()

46、system.out.println(thevector is empty.);return;for (int loop = 0; loop thevector.size(); loop+) system.out.print(thevector.get(loop);system.out.print(, );system.out.println();該程序運行后的輸出結(jié)果為:0, 1, 2, 3, 4, 5(5)全國計算機技術與軟件專業(yè)技術資格(水平)考試2008 年上半年程序員上午試卷 (考試時間 9 : 0011 : 30 共 150 分鐘) 請按下述要求正確填寫答題卡請按下述要求正確填寫答

47、題卡 1.在答題卡的指定位置上正確寫入你的姓名和準考證號,并用正規(guī)2b鉛筆 在你寫入的準考證號下填涂準考證號。 2.本試卷的試題中共有 75 個空格,需要全部解答,每個空格 1 分,滿分 75 分。 3.每個空格對應一個序號,有 a、b、c、d 四個選項,請選擇一個最恰當?shù)?選項作為解答,在答題卡相應序號下填涂該選項。 4.解答前務必閱讀例題和答題卡上的例題填涂樣式及填涂注意事項。解答時用 正規(guī)2b鉛筆正確填涂選項,如需修改,請用橡皮擦干凈,否則會導致不 能正確評分。 例題例題 例題例題 2008 年上半年全國計算機技術與軟件專業(yè)技術資格 (水平)考試日期是(88)月(89)日。 (88)a.

48、 4 b. 5 c. 6 d. 7 (89)a. 21b. 22c. 23 d. 24 因為考試日期是 “5 月 24 日”,故(88)選 b,(89)選d,應在答題卡序 號88 下對b填涂,在序號 89下對d填涂 (參看答題卡)。 (1) ”按鈕;然后移動鼠標到待格 式化的文本開始處,(2 )。 (1)ab/ c/ d/ (2 )a按鍵的同時單擊鼠標左鍵即可 b按鍵的同時單擊鼠標右鍵即可 c按住鼠標左鍵拖動鼠標,到達待格式化的文本末尾時松開鼠標鍵 d按住鼠標右鍵拖動鼠標,到達待格式化的文本末尾時松開鼠標鍵 excel 單列表格 (3) 可以根據(jù) “分隔符號”分列成多列表格。如果選中某單元 格

49、并輸入 2000,回車后此單元格的顯示內(nèi)容為¥2000,那么應將此單元格的格式設置成(4) 。 (3) abcd(4 )a數(shù)值b人民幣 c貨幣 d科學記數(shù) 因特網(wǎng)最高層域名分為機構(gòu)性域名和地理性域名兩大類,目前主要有 14 種機構(gòu)性 域名,其中 “ (5) ”是教育機構(gòu)域名。 (5)acom bedu cgov dorg 將十六進制數(shù) 9b 轉(zhuǎn)換為八進制數(shù)為(6) 。 (6) a233b433 c463 d531 馮諾依曼體系結(jié)構(gòu)的計算機有兩個主要組成部件:內(nèi)存和處理器。其中,內(nèi)存用于存儲指令和數(shù)據(jù)。在大多數(shù)高級語言程序中, (7) 是內(nèi)存單元的抽象。微處理器中 的alu 可執(zhí)行算術運算和 (8) 操作。 (7)a變量 b關鍵字 c語句 d 數(shù)據(jù)類型(8)a浮點 b定點c邏輯 d控制 已知某字符的編碼為 “0100101 ”,若最高位增加一個偶校驗位,則其編碼變?yōu)?(9) 。 a10100101 b11001010 c01000110

溫馨提示

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

評論

0/150

提交評論