




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
數(shù)據(jù)結(jié)構(gòu)與算法
1.1算法
算法:是指解題方案的準確而完整的描述。
算法不等于程序,也不等計算機方法,程序的編制不可能優(yōu)于算法的
設(shè)計。
算法的基本特征:是一組嚴謹?shù)囟x運算順序的規(guī)則,每一個規(guī)則都
是有效的,是明確的,此順序?qū)⒃谟邢薜拇螖?shù)下終止。特征包括:
(1)可行性;
(2)確定性,算法中每一步驟都必須有明確定義,不充許有模棱兩
可的解釋,不允許有多義性;
(3)有窮性,算法必須能在有限的時間內(nèi)做完,即能在執(zhí)行有限個
步驟后終止,包括合理的執(zhí)行時間的含義;
(4)擁有足夠的情報。
算法的基本要素:一是對數(shù)據(jù)對象的運算和操作;二是算法的控制結(jié)
構(gòu)。
指令系統(tǒng):一個計算機系統(tǒng)能執(zhí)行的所有指令的集合。
基本運算和操作包括:算術(shù)運算、邏輯運算、關(guān)系運算、數(shù)據(jù)傳輸。
算法的控制結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。
算法基本設(shè)計方法:列舉法、歸納法、遞推、遞歸、減斗遞推技術(shù)、
回溯法。
算法復雜度:算法時間復雜度和算法空間復雜度。
算法時間復雜度是指執(zhí)行算法所需要的計算工作量。
算法空間復雜度是指執(zhí)行這個算法所需要的內(nèi)存空間。
1.2數(shù)據(jù)結(jié)構(gòu)的基本基本概念
數(shù)據(jù)結(jié)構(gòu)研究的三個方面:
(1)數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系,即數(shù)據(jù)的邏輯
結(jié)構(gòu);
(2)在對數(shù)據(jù)進行處理時,各數(shù)據(jù)元素在計算機中的存儲關(guān)系,即
數(shù)據(jù)的存儲結(jié)構(gòu);
(3)對各種數(shù)據(jù)結(jié)構(gòu)進行的運算。
數(shù)據(jù)結(jié)構(gòu)是指相互有關(guān)聯(lián)的數(shù)據(jù)元素的集合。
數(shù)據(jù)的邏輯結(jié)構(gòu)包含:
(1)表示數(shù)據(jù)元素的信息;
(2)表示各數(shù)據(jù)元素之間的前后件關(guān)系。
數(shù)據(jù)的存儲結(jié)構(gòu)有順序、鏈接、索引等。
線性結(jié)構(gòu)條件:
(1)有且只有一個根結(jié)點;
(2)每一個結(jié)點最多有一個前件,也最多有一個后件。
非線性結(jié)構(gòu):不滿足線性結(jié)構(gòu)條件的數(shù)據(jù)結(jié)構(gòu)。
1.3線性表及其順序存儲結(jié)構(gòu)
線性表由一組數(shù)據(jù)元素構(gòu)成,數(shù)據(jù)元素的位置只取決于自己的序號,
元素之間的相對位置是線性的。
在復雜線性表中,由若干項數(shù)據(jù)元素組成的數(shù)據(jù)元素稱為記錄,而由
多個記錄構(gòu)成的線性表又稱為文件。
非空線性表的結(jié)構(gòu)特征:
(1)且只有一個根結(jié)點al,它無前件;
(2)有且只有一個終端結(jié)點an,它無后件;
(3)除根結(jié)點與終端結(jié)點外,其他所有結(jié)點有且只有一個前件,也
有且只有一個后件。結(jié)點個數(shù)n稱為線性表的長度,當n=0時,稱為
空表。
線性表的順序存儲結(jié)構(gòu)具有以下兩個基本特點:
(1)線性表中所有元素的所占的存儲空間是連續(xù)的;
(2)線性表中各數(shù)據(jù)元素在存儲空間中是按邏輯順序依次存放的。
ai的存儲地址為:ADR(ai)=ADR(al)+(i-l)k,,ADR(al)為第一個元
素的地址,k代表每個元素占的字節(jié)數(shù)。
順序表的運算:插入、刪除。(詳見14—16頁)
1.4棧和隊列
棧是限定在一端進行插入與刪除的線性表,允許插入與刪除的一端稱
為棧頂,不允許插入與刪除的另一端稱為棧底。
棧按照“先進后出"(FILO)或“后進先出"(LIFO)組織數(shù)據(jù),棧具
有記憶作用。用top表示棧頂位置,用bottom表示棧底。
棧的基本運算:(1)插入元素稱為入棧運算;(2)刪除元素稱為退棧
運算;(3)讀棧頂元素是將棧頂元素賦給一個指定的變量,此時指針
無變化。
隊列是指允許在一端(隊尾)進入插入,而在另一端(隊頭)進行刪
除的線性表。Rear指針指向隊尾,front指針指向隊頭。
隊列是“先進行出"(FIFO)或“后進后出”(LIL0)的線性表。
隊列運算包括(1)入隊運算:從隊尾插入一個元素;(2)退隊運算:
從隊頭刪除一個元素。
循環(huán)隊列:s=0表示隊列空,s=l且front=rear表示隊列滿
第一章1.5線性鏈表
數(shù)據(jù)結(jié)構(gòu)中的每一個結(jié)點對應于一個存儲單元,這種存儲單元稱為存
儲結(jié)點,簡稱結(jié)點。
結(jié)點由兩部分組成:(1)用于存儲數(shù)據(jù)元素值,稱為數(shù)據(jù)域;(2)用
于存放指針,稱為指針域,用于指向前一個或后一個結(jié)點。
在鏈式存儲結(jié)構(gòu)中,存儲數(shù)據(jù)結(jié)構(gòu)的存儲空間可以不連續(xù),各數(shù)據(jù)結(jié)
點的存儲順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,而數(shù)據(jù)元素之
間的邏輯關(guān)系是由指針域來確定的。
鏈式存儲方式即可用于表示線性結(jié)構(gòu),也可用于表示非線性結(jié)構(gòu)。
線性鏈表,HEAD稱為頭指針,HEAD=NULL(或0)稱為空表,如果是
兩指針:左指針(Llink)指向前件結(jié)點,右指針(Rlink)指向后件
,結(jié)口占小\O
線性鏈表的基本運算:查找、插入、刪除。
1.6樹與二叉樹
樹是一種簡單的非線性結(jié)構(gòu),所有元素之間具有明顯的層次特性。
在樹結(jié)構(gòu)中,每一個結(jié)點只有一個前件,稱為父結(jié)點,沒有前件的結(jié)
點只有一個,稱為樹的根結(jié)點,簡稱樹的根。每一個結(jié)點可以有多個
后件,稱為該結(jié)點的子結(jié)點。沒有后件的結(jié)點稱為葉子結(jié)點。
在樹結(jié)構(gòu)中,一個結(jié)點所擁有的后件的個數(shù)稱為該結(jié)點的度,所有結(jié)
點中最大的度稱為樹的度。樹的最大層次稱為樹的深度。
二叉樹的特點:(1)非空二叉樹只有一個根結(jié)點;(2)每一個結(jié)點最
多有兩棵子樹,且分別稱為該結(jié)點的左子樹與右子樹。
二叉樹的基本性質(zhì):
(1)在二叉樹的第k層上,最多有2kT(k)l)個結(jié)點;
(2)深度為m的二叉樹最多有2m-l個結(jié)點;
(3)度為0的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個;
(4)具有n個結(jié)點的二叉樹,其深度至少為[log2n]+l,其中[log2n]
表示取log2n的整數(shù)部分;
(5)具有n個結(jié)點的完全二叉樹的深度為[log2n]+1;
(6)設(shè)完全二叉樹共有n個結(jié)點。如果從根結(jié)點開始,按層序(每
一層從左到右)用自然數(shù)1,2,....n給結(jié)點進行編號(k=l,2....n),
有以下結(jié)論:
①若k=l,則該結(jié)點為根結(jié)點,它沒有父結(jié)點;若k>l,則該結(jié)點的
父結(jié)點編號為INT(k/2);
②若2k4n,則編號為k的結(jié)點的左子結(jié)點編號為2k;否則該結(jié)點無
左子結(jié)點(也無右子結(jié)點);
③若2k+l4n,則編號為k的結(jié)點的右子結(jié)點編號為2k+l;否則該結(jié)
點無右子結(jié)點。
滿二叉樹是指除最后一層外,每一層上的所有結(jié)點有兩個子結(jié)點,則
k層上有2k-l個結(jié)點深度為m的滿二叉樹有2m-l個結(jié)點。
完全二叉樹是指除最后一層外,每一層上的結(jié)點數(shù)均達到最大值,在
最后一層上只缺少右邊的若干結(jié)點。
二叉樹存儲結(jié)構(gòu)采用鏈式存儲結(jié)構(gòu),對于滿二叉樹與完全二叉樹可以
按層序進行順序存儲。
二叉樹的遍歷:
(1)前序遍歷(DLR),首先訪問根結(jié)點,然后遍歷左子樹,最后遍
歷右子樹;
(2)中序遍歷(LDR),首先遍歷左子樹,然后訪問根結(jié)點,最后遍
歷右子樹;
(3)后序遍歷(LRD)首先遍歷左子樹,然后訪問遍歷右子樹,最后
訪問根結(jié)點。
1.7查找技術(shù)
順序查找的使用情況:
(1)線性表為無序表;
(2)表采用鏈式存儲結(jié)構(gòu)。
二分法查找只適用于順序存儲的有序表,對于長度為n的有序線性
表,最壞情況只需比較log2n次。
1.8排序技術(shù)
排序是指將一個無序序列整理成按值非遞減順序排列的有序序列。
交換類排序法:(1)冒泡排序法,需要比較的次數(shù)為n(n-1)/2;(2)
快速排序法。
插入類排序法:(1)簡單插入排序法,最壞情況需要n(n-1)/2次比
較(2)希爾排序法,最壞情況需要0(nl.5)次比較。
選擇類排序法:(1)簡單選擇排序法,
最壞情況需要n(n-l)/2次比較;(2)堆排序法,最壞情況需要
0(nlog2n)次比較。
第二章第二章程序設(shè)計基礎(chǔ)
2.1程序設(shè)計設(shè)計方法和風格
如何形成良好的程序設(shè)計風格
1、源程序文檔化;2、數(shù)據(jù)說明的方法;
3、語句的結(jié)構(gòu);4、輸入和輸出。
注釋分序言性注釋和功能性注釋,語句結(jié)構(gòu)清晰第一、效率第二。
2.2結(jié)構(gòu)化程序設(shè)計
結(jié)構(gòu)化程序設(shè)計方法的四條原則是:L自頂向下;2.逐步求精;3.
模塊化;4.限制使用goto語句。
結(jié)構(gòu)化程序的基本結(jié)構(gòu)和特點:
(1)順序結(jié)構(gòu):一種簡單的程序設(shè)計,最基本、最常用的結(jié)構(gòu);
(2)選擇結(jié)構(gòu):又稱分支結(jié)構(gòu),包括簡單選擇和多分支選擇結(jié)構(gòu),
可根據(jù)條件,判斷應該選擇哪一條分支來執(zhí)行相應的語句序列;
(3)重復結(jié)構(gòu):又稱循環(huán)結(jié)構(gòu),可根據(jù)給定條件,判斷是否需要重
復執(zhí)行某一相同程序段。
2.3面向?qū)ο蟮某绦蛟O(shè)計
面向?qū)ο蟮某绦蛟O(shè)計:以60年代末挪威奧斯陸大學和挪威計算機中
心研制的SIMULA語言為標志。
面向?qū)ο蠓椒ǖ膬?yōu)點:
(1)與人類習慣的思維方法一致;
(2)穩(wěn)定性好;
(3)可重用性好;
(4)易于開發(fā)大型軟件產(chǎn)品;
(5)可維護性好。
對象是面向?qū)ο蠓椒ㄖ凶罨镜母拍?,可以用來表示客觀世界中的任
何實體,對象是實體的抽象。
面向?qū)ο蟮某绦蛟O(shè)計方法中的對象是系統(tǒng)中用來描述客觀事物的一
個實體,是構(gòu)成系統(tǒng)的一個基本單位,由一組表示其靜態(tài)特征的屬性
和它可執(zhí)行的一組操作組成。
屬性即對象所包含的信息,操作描述了對象執(zhí)行的功能,操作也稱為
方法或服務。
對象的基本特點:
(1)標識惟一性;
(2)分類性;
(3)多態(tài)性;
(4)封裝性;
(5)模塊獨立性好。
類是指具有共同屬性、共同方法的對象的集合。所以類是對象的抽象,
對象是對應類的一個實例。
消息是一個實例與另一個實例之間傳遞的信息。
消息的組成包括(1)接收消息的對象的名稱;(2)消息標識符,也
稱消息名;(3)零個或多個參數(shù)。
繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復定義他們。
繼承分單繼承和多重繼承。單繼承指一個類只允許有一個父類,多重
繼承指一個類允許有多個父類。
多態(tài)性是指同樣的消息被不同的對象接受時可導致完全不同的行動
的現(xiàn)象。
第三章第三章軟件工程基礎(chǔ)
3.1軟件工程基本概念
計算機軟件是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。
軟件的特點包括:
(1)軟件是一種邏輯實體;
(2)軟件的生產(chǎn)與硬件不同,它沒有明顯的制作過程;
(3)軟件在運行、使用期間不存在磨損、老化問題;
(4)軟件的開發(fā)、運行對計算機系統(tǒng)具有依賴性,受計算機系統(tǒng)的
限制,這導致了軟件移植的問題;
(5)軟件復雜性高,成本昂貴;
(6)軟件開發(fā)涉及諸多的社會因素。
軟件按功能分為應用軟件、系統(tǒng)軟件、支撐軟件(或工具軟件)。
軟件危機主要表現(xiàn)在成本、質(zhì)量、生產(chǎn)率等問題。
軟件工程是應用于計算機軟件的定義、開發(fā)和維護的一整套方法、工
具、文檔、實踐標準和工序。
軟件工程包括3個要素:方法、工具和過程。
軟件工程過程是把軟件轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動,包
含4種基本活動:
(1)P一一軟件規(guī)格說明;
(2)D——軟件開發(fā);
(3)C一一軟件確認;
(4)A——軟件演進。
軟件周期:軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程。
軟件生命周期三個階段:軟件定義、軟件開發(fā)、運行維護,主要活動
階段是:
(1)可行性研究與計劃制定;
(2)需求分析;
(3)軟件設(shè)計;
(4)軟件實現(xiàn);
(5)軟件測試;
(6)運行和維護。
軟件工程的目標和與原則:
目標:在給定成本、進度的前提下,開發(fā)出具有有效性、可靠性、可
理解性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可
互操作性且滿足用戶需求的產(chǎn)品。
基本目標:付出較低的開發(fā)成本;達到要求的軟件功能;取得較好的
軟件性能;開發(fā)軟件易于移植;需要較低的費用;能按時完成開發(fā),
及時交付使用。
基本原則:抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完
備性和可驗證性。
軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和軟件
工程管理。
軟件開發(fā)技術(shù)包括:軟件開發(fā)方法學、開發(fā)過程、開發(fā)工具和軟件工
程環(huán)境。
軟件工程管理包括:軟件管理學、軟件工程經(jīng)濟學、軟件心理學等內(nèi)
容。
軟件管理學包括人員組織、進度安排、質(zhì)量保證、配置管理、項目計
劃等。
軟件工程原則包括抽象、信息隱蔽、模塊化、局部化、確定性、一致
性、完備性和可驗證性。
3.2結(jié)構(gòu)化分析方法
結(jié)構(gòu)化方法的核心和基礎(chǔ)是結(jié)構(gòu)化程序設(shè)計理論。
需求分析方法有(1)結(jié)構(gòu)化需求分析方法;(2)面向?qū)ο蟮姆治?/p>
的方法。
從需求分析建立的模型的特性來分:靜態(tài)分析和動態(tài)分析。
結(jié)構(gòu)化分析方法的實質(zhì):著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立
系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏
輯模型。
結(jié)構(gòu)化分析的常用工具
(1)數(shù)據(jù)流圖;(2)數(shù)據(jù)字典;(3)判定樹;(4)
判定表。
數(shù)據(jù)流圖:描述數(shù)據(jù)處理過程的工具,是需求理解的邏輯模型的圖形
表示,它直接支持系統(tǒng)功能建模。
數(shù)據(jù)字典:對所有與系統(tǒng)相關(guān)的數(shù)據(jù)元素的一個有組織的列表,以及
精確的、嚴格的定義,使得用戶和系統(tǒng)分析員對于輸入、輸出、存儲
成分和中間計算結(jié)果有共同的理解。
判定樹:從問題定義的文字描述中分清哪些是判定的條件,哪些是判
定的結(jié)論,根據(jù)描述材料中的連接詞找出判定條件之間的從屬關(guān)系、
并列關(guān)系、選擇關(guān)系,根據(jù)它們構(gòu)造判定樹。
判定表:與判定樹相似,當數(shù)據(jù)流圖中的加工要依賴于多個邏輯條件
的取值,即完成該加工的一組動作是由于某一組條件取值的組合而引
發(fā)的,使用判定表描述比較適宜。
數(shù)據(jù)字典是結(jié)構(gòu)化分析的核心。
軟件需求規(guī)格說明書的特點:
(1)正確性;
(2)無岐義性;
(3)完整性;
(4)可驗證性;
(5)一致性;
(6)可理解性;
(7)可追蹤性。3.3結(jié)構(gòu)化設(shè)計方法
軟件設(shè)計的基本目標是用比較抽象概括的方式確定目標系統(tǒng)如何完
成預定的任務,軟件設(shè)計是確定系統(tǒng)的物理模型。
軟件設(shè)計是開發(fā)階段最重要的步驟,是將需求準確地轉(zhuǎn)化為完整的軟
件產(chǎn)品或系統(tǒng)的唯一途徑。
從技術(shù)觀點來看,軟件設(shè)計包括軟件結(jié)構(gòu)設(shè)計、數(shù)據(jù)設(shè)計、接口設(shè)計、
過程設(shè)計。
結(jié)構(gòu)設(shè)計:定義軟件系統(tǒng)各主要部件之間的關(guān)系。
數(shù)據(jù)設(shè)計:將分析時創(chuàng)建的模型轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)的定義。
接口設(shè)計:描述軟件內(nèi)部、軟件和協(xié)作系統(tǒng)之間以及軟件與人之間如
何通信。
過程設(shè)計:把系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述。
從工程管理角度來看:概要設(shè)計和詳細設(shè)計。
軟件設(shè)計的一般過程:軟件設(shè)計是一個迭代的過程;先進行高層次的
結(jié)構(gòu)設(shè)計;后進行低層次的過程設(shè)計;穿插進行數(shù)據(jù)設(shè)計和接口設(shè)計。
衡量軟件模塊獨立性使用耦合性和內(nèi)聚性兩個定性的度量標準。
在程序結(jié)構(gòu)中各模塊的內(nèi)聚性越強,則耦合性越弱。優(yōu)秀軟件應高內(nèi)
聚,低耦合。
軟件概要設(shè)計的基本任務是:
(1)設(shè)計軟件系統(tǒng)結(jié)構(gòu);(2)數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計;
(3)編寫概要設(shè)計文檔;(4)概要設(shè)計文檔評審。
模塊用一個矩形表示,箭頭表示模塊間的調(diào)用關(guān)系。
在結(jié)構(gòu)圖中還可以用帶注釋的箭頭表示模塊調(diào)用過程中來回傳遞的
信息。還可用帶實心圓的箭頭表示傳遞的是控制信息,空心圓箭心表
示傳遞的是數(shù)據(jù)。
結(jié)構(gòu)圖的基本形式:基本形式、順序形式、重復形式、選擇形式。
結(jié)構(gòu)圖有四種模塊類型:傳入模塊、傳出模塊、變換模塊和協(xié)調(diào)模塊。
典型的數(shù)據(jù)流類型有兩種:變換型和事務型。
變換型系統(tǒng)結(jié)構(gòu)圖由輸入、中心變換、輸出三部分組成。
事務型數(shù)據(jù)流的特點是:接受一項事務,根據(jù)事務處理的特點和性質(zhì),
選擇分派一個適當?shù)奶幚韱卧?,然后給出結(jié)果。
詳細設(shè)計:是為軟件結(jié)構(gòu)圖中的每一個模塊確定實現(xiàn)算法和局部數(shù)據(jù)
結(jié)構(gòu),用某種選定的表達工具表示算法和數(shù)據(jù)結(jié)構(gòu)的細節(jié)。
常見的過程設(shè)計工具有:圖形工具(程序流程圖)、表格工具(判定
表)、語言工具(PDL)o
3.4軟件測試
軟件測試定義:使用人工或自動手段來運行或測定某個系統(tǒng)的過程,
其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預期結(jié)果與實際結(jié)
果之間的差別。
軟件測試的目的:發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。
軟件測試方法:靜態(tài)測試和動態(tài)測試。
靜態(tài)測試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量。不實際運行
軟件,主要通過人工進行。
動態(tài)測試:是基本計算機的測試,主要包括白盒測試方法和黑盒測試
方法。
白盒測試:在程序內(nèi)部進行,主要用于完成軟件內(nèi)部操作的驗證。主
要方法有邏輯覆蓋、基本基路徑測試。
黑盒測試:主要診斷功能不對或遺漏、界面錯誤、數(shù)據(jù)結(jié)構(gòu)或外部數(shù)
據(jù)庫訪問錯誤、性能錯誤、初始化和終止條件錯,用于軟件確認。主
要方法有等價類劃分法、邊界值分析法、錯誤推測法、因果圖等。
軟件測試過程一般按4個步驟進行:單元測試、集成測試、驗收測試
(確認測試)和系統(tǒng)測試。
3.5程序的調(diào)試
程序調(diào)試的任務是診斷和改正程序中的錯誤,主要在開發(fā)階段進行。
程序調(diào)試的基本步驟:
(1)錯誤定位;
(2)修改設(shè)計和代碼,以排除錯誤;
(3)進行回歸測試,防止引進新的錯誤。
軟件調(diào)試可分表靜態(tài)調(diào)試和動態(tài)調(diào)試。靜態(tài)調(diào)試主要是指通過人的思
維來分析源程序代碼和排錯,是主要的設(shè)計手段,而動態(tài)調(diào)試是輔助
靜態(tài)調(diào)試。主要調(diào)試方法有:
(1)強行排錯法;
(2)回溯法;
(3)原因排除法。.1數(shù)據(jù)庫系統(tǒng)的基本概念
數(shù)據(jù):實際上就是描述事物的符號記錄。
數(shù)據(jù)的特點:有一定的結(jié)構(gòu),有型與值之分,如整型、實型、字符型
等。而數(shù)據(jù)的值給出了符合定型的值,如整型值15。
數(shù)據(jù)庫:是數(shù)據(jù)的集合,具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介
質(zhì)內(nèi),是多種應用數(shù)據(jù)的集成,并可被各個應用程序共享。
數(shù)據(jù)庫存放數(shù)據(jù)是按數(shù)據(jù)所提供的數(shù)據(jù)模式存放的,具有集成與共享
的特點。
數(shù)據(jù)庫管理系統(tǒng):一種系統(tǒng)軟件,負責數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操
縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務等,是數(shù)據(jù)庫的核心。
數(shù)據(jù)庫管理系統(tǒng)功能:
(1)數(shù)據(jù)模式定義:即為數(shù)據(jù)庫構(gòu)建其數(shù)據(jù)框架;
(2)數(shù)據(jù)存取的物理構(gòu)建:為數(shù)據(jù)模式的物理存取與構(gòu)建提供有效
的存取方法與手段;
(3)數(shù)據(jù)操縱:為用戶使用數(shù)據(jù)庫的數(shù)據(jù)提供方便,如查詢、插入、
修改、刪除等以及簡單的算術(shù)運算及統(tǒng)計;
(4)數(shù)據(jù)的完整性、安生性定義與檢查;
(5)數(shù)據(jù)庫的并發(fā)控制與故障恢復;
(6)數(shù)據(jù)的服務:如拷貝、轉(zhuǎn)存、重組、性能監(jiān)測、分析等。
為完成以上六個功能,數(shù)據(jù)庫管理系統(tǒng)提供以下的數(shù)據(jù)語言:
(1)數(shù)據(jù)定義語言:負責數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;
(2)數(shù)據(jù)操縱語言:負責數(shù)據(jù)的操縱,如查詢與增、刪、改等;
(3)數(shù)據(jù)控制語言:負責數(shù)據(jù)完整性、安全性的定義與檢查以及并
發(fā)控制、故障恢復等。
數(shù)據(jù)語言按其使用方式具有兩種結(jié)構(gòu)形式:交互式命令(又稱自含型
或自主型語言)宿主型語言(一般可嵌入某些宿主語言中)。
數(shù)據(jù)庫管理員:對數(shù)據(jù)庫進行規(guī)劃、設(shè)計、維護、監(jiān)視等的專業(yè)管理
人員。
數(shù)據(jù)庫系統(tǒng):由數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管
理員(人員)、硬件平臺(硬件)、軟件平臺(軟件)五個部分構(gòu)成的
運行實體。
數(shù)據(jù)庫應用系統(tǒng):由數(shù)據(jù)庫系統(tǒng)、應用軟件及應用界面三者組成。
文件系統(tǒng)階段:提供了簡單的數(shù)據(jù)共享與數(shù)據(jù)管理能力,但是它無法
提供完整的、統(tǒng)一的、管理和數(shù)據(jù)共享的能力。
層次數(shù)據(jù)庫與網(wǎng)狀數(shù)據(jù)庫系統(tǒng)階段:為統(tǒng)一與共享數(shù)據(jù)提供了有力
支撐。
關(guān)系數(shù)據(jù)庫系統(tǒng)階段
數(shù)據(jù)庫系統(tǒng)的基本特點:數(shù)據(jù)的集成性、數(shù)據(jù)的高共享性與低冗余
性、數(shù)據(jù)獨立性(物理獨立性與邏輯獨立性)、數(shù)據(jù)統(tǒng)一管理與控制。
數(shù)據(jù)庫系統(tǒng)的三級模式:
(1)概念模式:數(shù)據(jù)庫系統(tǒng)中全局數(shù)據(jù)邏輯結(jié)構(gòu)的描述,全體用戶
公共數(shù)據(jù)視圖;
(2)外模式:也稱子模式與用戶模式。是用戶的數(shù)據(jù)視圖,也就是
用戶所見到的數(shù)據(jù)模式;
(3)內(nèi)模式:又稱物理模式,它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理
存取方法。
數(shù)據(jù)庫系統(tǒng)的兩級映射:
(1)概念模式到內(nèi)模式的映射;
(2)外模式到概念模式的映射。
4.2數(shù)據(jù)模型
數(shù)據(jù)模型的概念:是數(shù)據(jù)特征的抽象,從抽象層次上描述了系統(tǒng)的靜
態(tài)特征、動態(tài)行為和約束條件,為數(shù)據(jù)庫系統(tǒng)的信息表與操作提供一
個抽象的框架。描述了數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作及數(shù)據(jù)約束。
E-R模型的基本概念
(1)實體:現(xiàn)實世界中的事物;
(2)屬性:事物的特性;
(3)聯(lián)系:現(xiàn)實世界中事物間的關(guān)系。實體集的關(guān)系有一對一、一
對多、多對多的聯(lián)系。
E-R模型三個基本概念之間的聯(lián)接關(guān)系:實體是概念世界中的基本單
位,屬性有屬性域,每個實體可取屬性域內(nèi)的值。一個實體的所有屬
性值叫元組。
E-R模型的圖示法:(1)實體集表示法;(2)屬性表法;(3)聯(lián)
系表示法。層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),具有以下特點:
(1)每棵樹有且僅有一個無雙親結(jié)點,稱為根;
(2)樹中除根外所有結(jié)點有且僅有一個雙親。
從圖論上看,網(wǎng)狀模型是一個不加任何條件限制的無向圖。
關(guān)系模型采用二維表來表示,簡稱表,由表框架及表的元組組成。一
個二維表就是一個關(guān)系。
在二維表中凡能唯一標識元組的最小屬性稱為鍵或碼。從所有侯選健
中選取一個作為用戶使用的鍵稱主鍵。表A中的某屬性是某表B的鍵,
則稱該屬性集為A的外鍵或外碼。
關(guān)系中的數(shù)據(jù)約束:
(1)實體完整性約束:約束關(guān)系的主鍵中屬性值不能為空值;
(2)參照完全性約束:是關(guān)系之間的基本約束;
(3)用戶定義的完整性約束:它反映了具體應用中數(shù)據(jù)的語義要求。
4.3關(guān)系代數(shù)
關(guān)系數(shù)據(jù)庫系統(tǒng)的特點之一是它建立在數(shù)據(jù)理論的基礎(chǔ)之上,有很多
數(shù)據(jù)理論可以表示關(guān)系模型的數(shù)據(jù)操作,其中最為著名的是關(guān)系代數(shù)
與關(guān)系演算。
關(guān)系模型的基本運算:
(1)插入(2)刪除(3)修改(4)查詢(包括投影、選擇、笛卡
爾積運算)
4.4數(shù)據(jù)庫設(shè)計與管理
數(shù)據(jù)庫設(shè)計是數(shù)據(jù)應用的核心。
數(shù)據(jù)庫設(shè)計的兩種方法:
(1)面向數(shù)據(jù):以信息需求為主,兼顧處理需求;
(2)面向過程:以處理需求為主,兼顧信息需求。
數(shù)據(jù)庫的生命周期:需求分析階段、概念設(shè)計階段、邏輯設(shè)計階段、
物理設(shè)計階段、編碼階段、測試階段、運行階段、進一步修改階段。
需求分析常用結(jié)構(gòu)析方法和面向?qū)ο蟮姆椒?。結(jié)構(gòu)化分析(簡稱SA)
方法用自頂向下、逐層分解的方式分析系統(tǒng)。用數(shù)據(jù)流圖表達數(shù)據(jù)和
處理過程的關(guān)系。對數(shù)據(jù)庫設(shè)計來講,數(shù)據(jù)字典是進行詳細的數(shù)據(jù)收
集和數(shù)據(jù)分析所獲得的主要結(jié)果。
數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,包括5個部分:數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、
數(shù)據(jù)流(可以是數(shù)據(jù)項,也可以是數(shù)據(jù)結(jié)構(gòu))、數(shù)據(jù)存儲、處理過程。
數(shù)據(jù)庫概念設(shè)計的目的是分析數(shù)據(jù)內(nèi)在語義關(guān)系。設(shè)計的方法有兩種
(1)集中式模式設(shè)計法(適用于小型或并不復雜的單位或部門);
(2)視圖集成設(shè)計法。
設(shè)計方法:E-R模型與視圖集成。
視圖設(shè)計一般有三種設(shè)計次序:自頂向下、由底向上、由內(nèi)向外。
視圖集成的幾種沖突:命名沖突、概念沖突、域沖突、約束沖突。
關(guān)系視圖設(shè)計:關(guān)系視圖的設(shè)計又稱外模式設(shè)計。
關(guān)系視圖的主要作用:
(1)提供數(shù)據(jù)邏輯獨立性;
(2)能適應用戶對數(shù)據(jù)的不同需求;
(3)有一定數(shù)據(jù)保密功能。
數(shù)據(jù)庫的物理設(shè)計主要目標是對數(shù)據(jù)內(nèi)部物理結(jié)構(gòu)作調(diào)整并選擇合
理的存取路徑,以提高數(shù)據(jù)庫訪問速度有效利用存儲空間。一般RDBMS
中留給用戶參與物理設(shè)計的內(nèi)容大致有索引設(shè)計、集成簇設(shè)計和分區(qū)
設(shè)計。
數(shù)據(jù)庫管理的內(nèi)容:
(1)數(shù)據(jù)庫的建立;
(2)數(shù)據(jù)庫的調(diào)整;
(3)數(shù)據(jù)庫的重組;
(4)數(shù)據(jù)庫安全性與完整性控制;
(5)數(shù)據(jù)庫的故障恢復;
(6)數(shù)據(jù)庫監(jiān)控。(1)下面敘述正確的是_____。(0
A.算法的執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)
B.算法的空間復雜度是指算法程序中指令(或語句)的條數(shù)(指
的是算法所占用的空間)
C.算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止
D.以上三種描述都不對
(2)以下數(shù)據(jù)結(jié)構(gòu)中不屬于線性數(shù)據(jù)結(jié)構(gòu)的是-----。(C)
A.隊列
B.線性表
C.二叉樹
D.棧
(3)在一棵二叉樹上第5層的結(jié)點數(shù)最多是_____。(B)2n-1
A.8
B.16
C.32
D.15
(4)下面描述中,符合結(jié)構(gòu)化程序設(shè)計風格的是_____。(A)
A.使用順序、選擇和重復(循環(huán))三種基本控制結(jié)構(gòu)表示程序
的控制邏輯
B.模塊只有一個入口,可以有多個出口(可以有0個入口)
C.注重提高程序的執(zhí)行效率
D.不使用got。語句(只是限制使用)
(5)下面概念中,不屬于面向?qū)ο蠓椒ǖ氖?----。(D)
A.對象
B.繼承
C.類
D.過程調(diào)用
(6)在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟
件開發(fā)階段是------。(B)
A.可行性分析
B.需求分析
C.詳細設(shè)計
D.程序編碼
(7)在軟件開發(fā)中,下面任務不屬于設(shè)計階段的是-----。(D)
A.數(shù)據(jù)結(jié)構(gòu)設(shè)計
B.給出系統(tǒng)模塊結(jié)構(gòu)
C.定義模塊算法
D.定義需求并建立系統(tǒng)模型
(8)數(shù)據(jù)庫系統(tǒng)的核心是______。(B)
A.數(shù)據(jù)模型
B.數(shù)據(jù)庫管理系統(tǒng)
C.軟件工具
D.數(shù)據(jù)庫
(9)下列敘述中正確的是_____。(C)
A.數(shù)據(jù)庫是一個獨立的系統(tǒng),不需要操作系統(tǒng)的支持
B,數(shù)據(jù)庫設(shè)計是指設(shè)計數(shù)據(jù)庫管理系統(tǒng)
C.數(shù)據(jù)庫技術(shù)的根本目標是要解決數(shù)據(jù)共享的問題
D.數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致
(10)下列模式中,能夠給出數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方
法的是_____。(A)
A.內(nèi)模式
B.外模式
C.概念模式(1)算法的時間復雜度是指-----?(0
A.執(zhí)行算法程序所需要的時間
B.算法程序的長度
C.算法執(zhí)行過程中所需要的基本運算次數(shù)
D.算法程序中的指令條數(shù)
(2)下列敘述中正確的是_____。(A)
A.線性表是線性結(jié)構(gòu)
B.棧與隊列是非線性結(jié)構(gòu)
C.線性鏈表是非線性結(jié)構(gòu)
D.二叉樹是線性結(jié)構(gòu)
(3)設(shè)一棵完全二叉樹共有699個結(jié)點,則在該二叉樹中的葉子
結(jié)點數(shù)為------o(B)
A.349
B.350
C.255
D.351
(4)結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是-----。(B)
A.程序的規(guī)模
B.程序的易讀性
C.程序的執(zhí)行效率
D.程序的可移植性
(5)在軟件生命周期中,能準確地確定軟件系統(tǒng)必須做什么和必
須具備哪些功能的階段是-----。(D)
A.概要設(shè)計
B.詳細設(shè)計
C.可行性分析
D.需求分析
(6)數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一
些特定的圖符構(gòu)成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符
的是-----。(A)
A.控制流
B.加工
C.數(shù)據(jù)存儲
D.源和潭
(7)軟件需求分析階段的工作,可以分為四個方面:需求獲取、
需求分析、編寫需求規(guī)格說明書以及-----。(B)
A.階段性報告
B.需求評審
C.總結(jié)
D,都不正確
(8)下述關(guān)于數(shù)據(jù)庫系統(tǒng)的敘述中正確的是_____。(A)
A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余
B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余
C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致
D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)
(9)關(guān)系表中的每一橫行稱為一個-----。(A)
A.元組
B.字段
C.屬性
D.碼
(10)數(shù)據(jù)庫設(shè)計包括兩個方面的設(shè)計內(nèi)容,它們是-----。(A)
A.概念設(shè)計和邏輯設(shè)計
B.模式設(shè)計和內(nèi)模式設(shè)計
C.內(nèi)模式設(shè)計和物理設(shè)計
D.結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計
D.邏輯模式⑴算法的空間復雜度是指-----。(D)
A.算法程序的長度
B.算法程序中的指令條數(shù)
C.算法程序所占的存儲空間
D.算法執(zhí)行過程中所需要的存儲空間
(2)下列關(guān)于棧的敘述中正確的是-----。(D)
A.在棧中只能插入數(shù)據(jù)
B.在棧中只能刪除數(shù)據(jù)
C.棧是先進先出的線性表
D.棧是先進后出的線性表
(3)在深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為-----。(0
A.32
B.31
C.16
D.15
(4)對建立良好的程序設(shè)計風格,下面描述正確的是_____。(A)
A.程序應簡單、清晰、可讀性好
B.符號名的命名要符合語法
C.充分考慮程序的執(zhí)行效率
D.程序的注釋可有可無
(5)下面對對象概念描述錯誤的是_____。(A)
A.任何對象都必須有繼承性
B.對象是屬性和方法的封裝體
C.對象間的通訊靠消息傳遞
D.操作是對象的動態(tài)性屬性
(6)下面不屬于軟件工程的3個要素的是-----。(D)
A.工具
B.過程
C.方法
D.環(huán)境
(7)程序流程圖(PFD)中的箭頭代表的是-----。(B)
A.數(shù)據(jù)流
B.控制流
C.調(diào)用關(guān)系
D.組成關(guān)系
(8)在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件
系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨立性最高的階段是------。
(A)
A.數(shù)據(jù)庫系統(tǒng)
B.文件系統(tǒng)
C.人工管理
D.數(shù)據(jù)項管理
(9)用樹形結(jié)構(gòu)來表示實體之間聯(lián)系的模型稱為-----。(B)
A.關(guān)系模型
B.層次模型
C.網(wǎng)狀模型
D.數(shù)據(jù)模型
(10)關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關(guān)系運算包括-----。
(B)
A.排序、索引、統(tǒng)計
B.選擇、投影、連接
C.關(guān)聯(lián)、更新、排序
D.顯示、打印、制表(1)算法一般都可以用哪幾種控制結(jié)構(gòu)
組合而成_____。①)
A.循環(huán)、分支、遞歸
B.順序、循環(huán)、嵌套
C.循環(huán)、遞歸、選擇
D.順序、選擇、循環(huán)
(2)數(shù)據(jù)的存儲結(jié)構(gòu)是指-----。(B)
A.數(shù)據(jù)所占的存儲空間量
B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示
C.數(shù)據(jù)在計算機中的順序存儲方式
D.存儲在外存中的數(shù)據(jù)
(3)在面向?qū)ο蠓椒ㄖ?,一個對象請求另一對象為其服務的方式
是通過發(fā)送-----。(D)
D.消息
A.調(diào)用語句
B.命令
C.口令
(4)檢查軟件產(chǎn)品是否符合需求定義的過程稱為-----。(A)
A.確認測試
B.集成測試
C.驗證測試
D.驗收測試
(5)下列工具中屬于需求分析常用工具的是-----。(D)
A.PAD
B.PFD
C.N-S
D.DFD
(6)下面不屬于軟件設(shè)計原則的是-----。(0
A.抽象
B.模塊化
C.自底向上
D.信息隱蔽
(7)索引屬于_____o(B)
A.模式
B.內(nèi)模式
C.外模式
D.概念模式
(8)在關(guān)系數(shù)據(jù)庫中,用來表示實體之間聯(lián)系的是-----。(D)
A.樹結(jié)構(gòu)
B.網(wǎng)結(jié)構(gòu)
C.線性表
D.二維表
(9)將E-R圖轉(zhuǎn)換到關(guān)系模式時,實體與聯(lián)系都可以表示成
_____。(B)
A.屬性
B.關(guān)系
C.鍵
D.域⑴下面敘述正確的是_____。(C)
A.算法的執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)
B.算法的空間復雜度是指算法程序中指令(或語句)的條數(shù)
C.算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止
D.以上三種描述都不對
(2)以下數(shù)據(jù)結(jié)構(gòu)中不屬于線性數(shù)據(jù)結(jié)構(gòu)的是-----。(C)
A.隊列
B.線性表
C.二叉樹
D.棧
(3)在一棵二叉樹上第5層的結(jié)點數(shù)最多是_____。(B)
A.8
B.16
C.32
D.15
(4)下面描述中,符合結(jié)構(gòu)化程序設(shè)計風格的是_____。(A)
A.使用順序、選擇和重復(循環(huán))三種基本控制結(jié)構(gòu)表示程序的控
制邏輯
B.模塊只有一個入口,可以有多個出口
C.注重提高程序的執(zhí)行效率
D.不使用goto語句
(5)下面概念中,不屬于面向?qū)ο蠓椒ǖ氖?----。(D)
A.對象
B.繼承
C.類
D.過程調(diào)用
(6)在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開
發(fā)階段是-----o(B)
A.可行性分析
B.需求分析
C.詳細設(shè)計
D.程序編碼
(7)在軟件開發(fā)中,下面任務不屬于設(shè)計階段的是-----。(D)
A.數(shù)據(jù)結(jié)構(gòu)設(shè)計
B.給出系統(tǒng)模塊結(jié)構(gòu)
C.定義模塊算法
D.定義需求并建立系統(tǒng)模型
(8)數(shù)據(jù)庫系統(tǒng)的核心是_____。(B)
A.數(shù)據(jù)模型
B.數(shù)據(jù)庫管理系統(tǒng)
C.軟件工具
D.數(shù)據(jù)庫
(9)下列敘述中正確的是-----。(0
A.數(shù)據(jù)庫是一個獨立的系統(tǒng),不需要操作系統(tǒng)的支持
B.數(shù)據(jù)庫設(shè)計是指設(shè)計數(shù)據(jù)庫管理系統(tǒng)
C.數(shù)據(jù)庫技術(shù)的根本目標是要解決數(shù)據(jù)共享的問題
D.數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致
(10)下列模式中,能夠給出數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法的
是-----。(A)
A.內(nèi)模式
B.外模式
C.概念模式
D.邏輯模式
(11)算法的時間復雜度是指-----。(0
A.執(zhí)行算法程序所需要的時間
B.算法程序的長度
C.算法執(zhí)行過程中所需要的基本運算次數(shù)
D.算法程序中的指令條數(shù)
(12)下列敘述中正確的是______。(A)
A.線性表是線性結(jié)構(gòu)
B.棧與隊列是非線性結(jié)構(gòu)
C.線性鏈表是非線性結(jié)構(gòu)
D.二叉樹是線性結(jié)構(gòu)
(13)設(shè)一棵完全二叉樹共有699個結(jié)點,則在該二叉樹中的葉子結(jié)
點數(shù)為------。(B)
A.349
B.350
C.255
D.351
(14)結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是_____。(B)
A.程序的規(guī)模
B.程序的易讀性
C.程序的執(zhí)行效率
D.程序的可移植性(15)在軟件生命周期中,能準確地確定軟件系
統(tǒng)必須做什么和必須具備哪些功能的階段是-----。(D)
A.概要設(shè)計
B.詳細設(shè)計
C.可行性分析
D.需求分析
(16)數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些
特定的圖符構(gòu)成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的
是-----o(A)
A.控制流
B.加工
C.數(shù)據(jù)存儲
D.源和潭
(17)軟件需求分析階段的工作,可以分為四個方面:需求獲取、需
求分析、編寫需求規(guī)格說明書以及-----。(B)
A.階段性報告
B.需求評審
C.總結(jié)
D.都不正確
(18)下述關(guān)于數(shù)據(jù)庫系統(tǒng)的敘述中正確的是-----。(A)
A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余
B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余
C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致
D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)
(19)關(guān)系表中的每一橫行稱為一個-----。(A)
A.元組
B.字段
C.屬性
D.碼
(20)數(shù)據(jù)庫設(shè)計包括兩個方面的設(shè)計內(nèi)容,它們是-----。(A)
A.概念設(shè)計和邏輯設(shè)計
B.模式設(shè)計和內(nèi)模式設(shè)計
C.內(nèi)模式設(shè)計和物理設(shè)計
D.結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計
(21)算法的空間復雜度是指-----。(D)
A.算法程序的長度
B.算法程序中的指令條數(shù)
C.算法程序所占的存儲空間
D.算法執(zhí)行過程中所需要的存儲空間
(22)下列關(guān)于棧的敘述中正確的是_____。(D)
A.在棧中只能插入數(shù)據(jù)
B.在棧中只能刪除數(shù)據(jù)
C.棧是先進先出的線性表
D.棧是先進后出的線性表
(23)在深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為-----。(C)
A.32
B.31
C.16
D.15
(24)對建立良好的程序設(shè)計風格,下面描述正確的是_____。(A)
A.程序應簡單、清晰、可讀性好
B.符號名的命名要符合語法
C.充分考慮程序的執(zhí)行效率
D.程序的注釋可有可無
(25)下面對對象概念描述錯誤的是_____。(A)
A.任何對象都必須有繼承性
B.對象是屬性和方法的封裝體
C.對象間的通訊靠消息傳遞
D.操作是對象的動態(tài)性屬性
(26)下面不屬于軟件工程的3個要素的是_____。(D)
A.工具
B.過程
C.方法
D.環(huán)境
(27)程序流程圖(PFD)中的箭頭代表的是-----。(B)
A.數(shù)據(jù)流
B.控制流
C.調(diào)用關(guān)系
D.組成關(guān)系
(28)在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系
統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨立性最高的階段是-----o(A)
A.數(shù)據(jù)庫系統(tǒng)
B.文件系統(tǒng)
C.人工管理
D.數(shù)據(jù)項管理
(29)用樹形結(jié)構(gòu)來表示實體之間聯(lián)系的模型稱為-----。(B)
A.關(guān)系模型
B.層次模型
C.網(wǎng)狀模型
D.數(shù)據(jù)模型(30)關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關(guān)系運算包括
_____。(B)
A.排序、索引、統(tǒng)計
B.選擇、投影、連接
C.關(guān)聯(lián)、更新、排序
D.顯示、打印、制表
(31)算法一般都可以用哪幾種控制結(jié)構(gòu)組合而成-----。①)
A.循環(huán)、分支、遞歸
B.順序、循環(huán)、嵌套
C.循環(huán)、遞歸、選擇
D.順序、選擇、循環(huán)
(32)數(shù)據(jù)的存儲結(jié)構(gòu)是指-----。(B)
A.數(shù)據(jù)所占的存儲空間量
B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示
C.數(shù)據(jù)在計算機中的順序存儲方式
D.存儲在外存中的數(shù)據(jù)
(33)設(shè)有下列二叉樹:
對此二叉樹中序遍歷的結(jié)果為-----。(B)
A.ABCDEF
B.DBEAFC
C.ABDECF
D.DEBFCA
(34)在面向?qū)ο蠓椒ㄖ校粋€對象請求另一對象為其服務的方式是
通過發(fā)送_____。(D)
A.調(diào)用語句B.命令
C.口令D.息
(35)檢查軟件產(chǎn)品是否符合需求定義的過程稱為-----。(A)
A.確認測試
B.集成測試
C.驗證測試
D.驗收測試
(36)下列工具中屬于需求分析常用工具的是-----。(D)
A.PAD
B.PFD
C.N-S
D.DFD
(37)下面不屬于軟件設(shè)計原則的是-----。(0
A.抽象
B.模塊化
C.自底向上
D.信息隱蔽
(38)索引屬于-----。(B)
A.模式
B.內(nèi)模式
C.外模式
D.概念模式
(39)在關(guān)系數(shù)據(jù)庫中,用來表示實體之間聯(lián)系的是-----。(D)
A.樹結(jié)構(gòu)
B.網(wǎng)結(jié)構(gòu)
C.線性表
D.二維表
(40)將E-R圖轉(zhuǎn)換到關(guān)系模式時,實體與聯(lián)系都可以表示成-----
A.關(guān)系B.鍵C.域
(41)在下列選項中,哪個不是一個算法一般應該具有的基本特征
_____。(C)
A.確定性
B.可行性
C.無窮性
D.擁有足夠的情報(42)希爾排序法屬于哪一種類型的排序法
_____。(B)
A.交換類排序法
B.插入類排序法
C.選擇類排序法
D.建堆排序法
(43)下列關(guān)于隊列的敘述中正確的是-----。(C)
A.在隊列中只能插入數(shù)據(jù)
B.在隊列中只能刪除數(shù)據(jù)
C.隊列是先進先出的線性表
D.隊列是先進后出的線性表
(44)對長度為N的線性表進行順序查找,在最壞情況下所需要的比
較次數(shù)為-----。(B)
A.N+1
B.N
C.(N+l)/2
D.N/2
(45)信息隱蔽的概念與下述哪一種概念直接相關(guān)-----。(B)
A.軟件結(jié)構(gòu)定義
B.模塊獨立性
C.模塊類型劃分
D.模擬耦合度
(46)面向?qū)ο蟮脑O(shè)計方法與傳統(tǒng)的的面向過程的方法有本質(zhì)不同,
它的基本原理是_____。(C)
A.模擬現(xiàn)實世界中不同事物之間的聯(lián)系
B.強調(diào)模擬現(xiàn)實世界中的算法而不強調(diào)概念
C.使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題
D.鼓勵開發(fā)者在軟件開發(fā)的絕大部分中都用實際領(lǐng)域的概念去思考
(47)在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是
_____。(0
A.詳細設(shè)計
B.需求分析
C.總體設(shè)計
D.編程調(diào)試
(48)軟件調(diào)試的目的是_____.(B)
A.發(fā)現(xiàn)錯誤
B.改正錯誤
C.改善軟件的性能
D.挖掘軟件的潛能
(49)按條件f對關(guān)系R進行選擇,其關(guān)系代數(shù)表達式為-----。(0
A.R|X|R
B.R|X|Rf
C.6f(R)
D.nf(R)
(50)數(shù)據(jù)庫概念設(shè)計的過程中,視圖設(shè)計一般有三種設(shè)計次序,以
下各項中不對的是-----。(D)
A.自頂向下
B.由底向上
C.由內(nèi)向外
D.由整體到局部
(51)在計算機中,算法是指-----。(O
A.查詢方法
B.加工方法
C.解題方案的準確而完整的描述
D.排序方法
(52)棧和隊列的共同點是_____。(0
A.都是先進后出
B.都是先進先出
C.只允許在端點處插入和刪除元素
D.沒有共同點
(53)已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它
的前序遍歷序列是-----。(A)
A.cedba
B.acbed
C.decab
D.deabc
(54)在下列幾種排序方法中,要求內(nèi)存量最大的是-----。(D)
A.插入排序
B.選擇排序
C.快速排序
D.歸并排序
(55)在設(shè)計程序時,應采納的原則之一是_____。(A)
A.程序結(jié)構(gòu)應有助于讀者理解
B.不限制goto語句的使用
C.減少或取消注解行
D.程序越短越好
(56)下列不屬于軟件調(diào)試技術(shù)的是-----。(B)
A.強行排錯法
B.集成測試法
C.回溯法
D.原因排除法
(57)下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是-----
(D)
A.便于用戶、開發(fā)人員進行理解和交流
B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C.作為確認測試和驗收的依據(jù)
D.便于開發(fā)人員進行需求分析
(58)在數(shù)據(jù)流圖(DFD)中,帶有名字的箭頭表示-----。(0A.控
制程序的執(zhí)行順序
B.模塊之間的調(diào)用關(guān)系
C.數(shù)據(jù)的流向
D.程序的組成成分
(59)SQL語言又稱為_____。(C)
A.結(jié)構(gòu)化定義語言
B.結(jié)構(gòu)化控制語言
C.結(jié)構(gòu)化查詢語言
D.結(jié)構(gòu)化操縱語言
(60)視圖設(shè)計一般有3種設(shè)計次序,下列不屬于視圖設(shè)計的是
_____。(B)
A.自頂向下
B.由外向內(nèi)
C.由內(nèi)向外
D.自底向上(61)數(shù)據(jù)結(jié)構(gòu)中,與所使用的計算機無關(guān)的是數(shù)據(jù)的
______o(0
A.存儲結(jié)構(gòu)
B.物理結(jié)構(gòu)
C.邏輯結(jié)構(gòu)
D.物理和存儲結(jié)構(gòu)
(62)棧底至棧頂依次存放元素A、B、C、D,在第五個元素E入棧前,
棧中元素可以出棧,則出棧序列可能是-----。⑴)
A.ABCED
B.DBCEA
C.CDABE
D.DCBEA
(63)線性表的順序存儲結(jié)構(gòu)和線性表的鏈式存儲結(jié)構(gòu)分別是
_____。(B)
A.順序存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)
B.隨機存取的存儲結(jié)構(gòu)、順序存取的存儲結(jié)構(gòu)
C.隨機存取的存儲結(jié)構(gòu)、隨機存取的存儲結(jié)構(gòu)
D.任意存取的存儲結(jié)構(gòu)、任意存取的存儲結(jié)構(gòu)
(64)在單鏈表中,增加頭結(jié)點的目的是-----。(A)
A.方便運算的實現(xiàn)
B.使單鏈表至少有一個結(jié)點
C.標識表結(jié)點中首結(jié)點的位置
D.說明單鏈表是線性表的鏈式存儲實現(xiàn)
(65)軟件設(shè)計包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計,其中軟件的
過程設(shè)計是指-----。(B)
A.模塊間的關(guān)系
B.系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述
C.軟件層次結(jié)構(gòu)
D.軟件開發(fā)過程
(66)為了避免流程圖在描述程序邏輯時的靈活性,提出了用方框圖
來代替?zhèn)鹘y(tǒng)的程序流程圖,通常也把這種圖稱為-----。(B)
A.PAD圖
B.N-S圖
C.結(jié)構(gòu)圖
D.數(shù)據(jù)流圖
(67)數(shù)據(jù)處理的最小單位是_____。(C)
A.數(shù)據(jù)
B.數(shù)據(jù)元素
C.數(shù)據(jù)項
D.數(shù)據(jù)結(jié)構(gòu)
(68)下列有關(guān)數(shù)據(jù)庫的描述,正確的是_____。(0
A.數(shù)據(jù)庫是一個DBF文件
B.數(shù)據(jù)庫是一個關(guān)系
C.數(shù)據(jù)庫是一個結(jié)構(gòu)化的數(shù)據(jù)集合
D.數(shù)據(jù)庫是一組文件
(69)單個用戶使用的數(shù)據(jù)視圖的描述稱為_____。(A)
A.外模式
B.概念模式
C.內(nèi)模式
D.存儲模式
(70)需求分析階段的任務是確定-----。(D)
A.軟件開發(fā)方法
B.軟件開發(fā)工具
C.軟件開發(fā)費用
D.軟件系統(tǒng)功能
(71)算法分析的目的是_____。(D)
A.找出數(shù)據(jù)結(jié)構(gòu)的合理性
B.找出算法中輸入和輸出之間的關(guān)系
C.分析算法的易懂性和可靠性
D.分析算法的效率以求改進
(72)n個頂點的強連通圖的邊數(shù)至少有_____。(C)
A.n-1
B.n(n-1)
C.n
D.n+1
(73)已知數(shù)據(jù)表A中每個元素距其最終位置不遠,為節(jié)省時間,應
采用的算法是-----。(B)
A.堆排序
B.直接插入排序
C.快速排序
D.直接選擇排序(74)用鏈表表示線性表的優(yōu)點是-----。(A)
A.便于插入和刪除操作
B.數(shù)據(jù)元素的物理順序與邏輯順序相同
C.花費的存儲空間較順序存儲少
D.便于隨機存取
(75)下列不屬于結(jié)構(gòu)化分析的常用工具的是-----。(D)
A.數(shù)據(jù)流圖
B.數(shù)據(jù)字典
C.判定樹
D.PAD圖
(76)軟件開發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成
_____。(A)
A.定義、開發(fā)、運行維護
B.設(shè)計階段、編程階段、測試階段
C.總體設(shè)計、詳細設(shè)計、編程調(diào)試
D.需求分析、功能定義、系統(tǒng)設(shè)計
(77)在軟件工程中,白箱測試法可用于測試程序的內(nèi)部結(jié)構(gòu)。此方
法將程序看做是-----。(0
A.循環(huán)的集合
B.地址的集合
C.路徑的集合
D.目標的集合
(78)在數(shù)據(jù)管理技術(shù)發(fā)展過程中,文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的主要區(qū)
別是數(shù)據(jù)庫系統(tǒng)具有-----。①)
A.數(shù)據(jù)無冗余
B.數(shù)據(jù)可共享
C.專門的數(shù)據(jù)管理軟件
D.特定的數(shù)據(jù)模型
(79)分布式數(shù)據(jù)庫系統(tǒng)不具有的特點是-----。(B)
A.分布式
B.數(shù)據(jù)冗余
C.數(shù)據(jù)分布性和邏輯整體性
D.位置透明性和復制透明性
(80)下列說法中,不屬于數(shù)據(jù)模
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB32/T 3909-2020病媒生物防制技術(shù)規(guī)范居民區(qū)
- DB32/T 3858-2020白葉黑茶加工技術(shù)規(guī)程
- DB31/T 914.2-2021小型游樂設(shè)施安全第2部分:安裝要求
- DB31/T 891-2015預拌現(xiàn)澆泡沫混凝土應用技術(shù)規(guī)程
- DB31/T 637-2012高等學校學生公寓管理服務規(guī)范
- DB31/T 540-2022重點單位消防安全管理要求
- DB31/T 300-2018燃氣燃燒器具安全和環(huán)保技術(shù)要求
- DB31/T 1303-2021誠信計量示范社(街)區(qū)建設(shè)評價導則
- DB31/T 1230-2020呼吸道傳染病流行期間社會福利機構(gòu)安全操作指南
- DB31/T 1146.3-2019智能電網(wǎng)儲能系統(tǒng)性能測試技術(shù)規(guī)范第3部分:頻率調(diào)節(jié)應用
- 《人胎盤間充質(zhì)干細胞誘導為胰島樣細胞對妊娠期糖尿病大鼠的干預實驗研究》
- 【MOOC】政府審計學-南京審計大學 中國大學慕課MOOC答案
- 《非織造產(chǎn)品課程設(shè)計》課程教學大綱
- 2024年第一季度醫(yī)療安全(不良)事件分析報告
- DB51-T 5048-2017 四川省地基與基礎(chǔ)施工工藝規(guī)程
- 房產(chǎn)抵押合同模板格式
- 23J916-1 住宅排氣道(一)
- 深圳小孩上學租房合同
- 接地電阻、絕緣電阻和漏電保護器漏電動作參數(shù)測定記錄表
- 工程合同管理課程設(shè)計實踐報告
- 專題十五 民事權(quán)利與義務(考點講析+練習)-2025年高考政治三輪沖刺過關(guān)(全國適用)
評論
0/150
提交評論