二級公共基礎知識試題11篇
二級公共基礎知識試題(1)
一.數據結構與算法
一、基本概念:
? 數據(Data):信息的載體,能夠被計算機識別、存儲和加工處理的物理符號。包括文本類型的數據(如:字母、數字、漢字)和多媒體類型的數據(如:聲音、動畫、圖像)。
? 數據元素(Data Element):是數據的基本單位,有時也稱為元素、結點、頂點、記錄,可以有若干個數據項(字段、域、屬性)組成。
? 數據結構(Data Structure):指的是數據之間的相互關系,即數據的組織形式。其包括三個部分:
1、邏輯結構:數據元素之間的邏輯關系
2、存儲結構:數據元素及其關系在計算機存儲器內的表示。
3、數據的運算(算法):即對數據施加的操作
? 數據的邏輯結構有兩大類:
1、線性結構:
特征是:若結構是非空集,則有且僅有一個開始結點和一個終端結點,并且所有結點最多只有一個直接前趨和一個直接后繼。
例:一維數組、鏈表、棧、隊列、串
2、非線性結構:
特征是:一個結點可能有多個直接前趨和直接后繼。
例:多維數組、廣義表、樹、圖
? 數據的存儲結構有以下基本存儲方法:
1、順序存儲方法:
該方法是將邏輯上相鄰的結點存儲在物理位置上相鄰的存儲單元里,結點間的邏輯關系由存儲單元的鄰接關系來體現,一般通過數組來實現的。
2、鏈接存儲方法:
該方法不要求邏輯上相鄰的結點在物理位置上亦相鄰,結點間的邏輯關系是由附加的指針字段表示的。通過指針類型來實現的。
3、索引存儲方法:
該方法通常是在存儲結點信息的同時,還建立附加的索引表,索引表中的每一項稱為索引項,索引項的一般形式是:關鍵字,地址。
4、散列存儲方法:
該方法的基本思想是根據結點的關鍵字直接計算出該結點的存儲地址,通過散列函數實現。例:除余法散列函數、相乘取整法散列函數
? 算法的基本特征:
1、可行性(Effectiveness):針對實際問題而設計的算法,執行后能夠得到滿意的結果。
2、確定性(Definiteness):算法中的每一個步驟都必須有明確的定義,不允許出現歧義性。
3、有窮性(Finiteness):算法必須在有限時間內做完,即必須在執行有限個步驟之后終止。
? 時間復雜度:該算法執行的時間耗費,它是該算法所求解問題規模n的函數。
? 空間復雜度:該算法執行時所耗費的存儲空間,它也是問題規模n的函數。
二、線性表:
? 線性表(Linear List):是由n(n>=0)個數據元素(結點)a1,a2,a3,······,an組成的有限序列。對于非空的線性表,有且僅有一個開始結點a1,它沒有直接前趨;有且僅有一個終端結點an,它沒有直接后繼;其余的結點有且僅有一個直接前趨結點和一個直接后繼結點。
? 線性表的存儲結構:
1、順序存儲(Sequential List):將線性表的結點按邏輯次序依次存放在一組地址連續的存儲單元里,用這種方法存儲的線性表稱為順序表。
2、鏈式存儲(Linked List):邏輯上相鄰的結點,物理上也相鄰,存儲單元可以是連續的,也可以是不連續的,在存儲每個結點值的同時,還存儲指向其后繼結點的地址,用這種方法存儲的線性表稱為鏈表。
? 常見的運算有:
表的初始化、求表的長度、取表中的第i個結點、查找結點、插入新的結點、刪除結點。
? 順序表和鏈表的比較:
1、基于空間的考慮:
A、順序表的存儲空間是靜態分配的,而鏈表的存儲空間是動態分配的。
B、順序表占的存儲空間必須是連續的,而鏈表占的存儲空間可以是連續的,也可是不連續的
C、順序表存儲密度為1,而鏈表中的每個結點,除了數據域外,還要額外的設置指針域,存儲密度小于1
2、基于時間的考慮:
A、在鏈表中的任何位置上進行插入和刪除,只需要修改指針,而順序表中平均將要移動近一半的結點。
B、順序表是隨機存取結構,它的存取時間為O(1),而鏈表需從頭結點順著鏈掃描鏈表。
總之,當線性表的長度變化不大,易于事先確定其大小時,為了節約存儲空間,宜采用順序表作為存儲結構;當線性表的長度變化較大,難以估計其存儲規模時,以采用鏈表作為存儲結構為好。若線性表的操作主要是進行查找,很少做插入和刪除操作時,采用順序表做存儲結構為宜;對于頻繁進行插入和刪除的線性表,宜采用鏈表做存儲結構。
例:關于線性表的描述中,錯誤的是( )
A、線性表是線性結構 B、線性表的順序存儲結構,必須占用一片連續的存儲單元
C、線性表是單鏈表 D、線性表的鏈式存儲結構,不必占用一片連續的存儲單元
用數組表示線性表的優點是( )
A、便于插入和刪除操作 B、便于隨機存取
C、可以動態地分配存儲空間 D、不需要占用一片連續的存儲空間
三、棧:
? 棧(Stack):是限制僅在表的一端進行插入和刪除運算的線性表,通常稱插入、刪除的這一端為棧頂(Top),另一端稱為棧底(Bottom)。當表中沒有元素時稱為空棧。是一種后進先出的線性表,又稱為LIFO表。
? 棧的基本運算有:
棧的初始化、判棧空、判棧滿、進棧、出棧等
? 棧的存儲:
順序存儲、鏈式存儲
例:若進棧的輸入序列是A、B、C、D、E,并且在它們進棧的過程中可以進行出棧操作,則不可能出現的出棧序列是( )
A、EDCBA B、DECBA C、DCEAB D、ABCDE
四、隊列:
? 隊列(Queue):也是一種運算受限的線性表,它只允許在表的一端進行插入,而在另一端進行刪除。允許刪除的一段稱為隊頭(Front),允許插入的一段稱為隊尾(Rear)。(類似于生活中的購物排隊)。是一種先進先出的線性表,又稱為FIFO表。
? 隊列的基本運算:
隊列的初始化、判隊空、判隊滿、入隊、出隊
? 隊列的存儲實現:
順序存儲、鏈式存儲
例:一個隊列的入隊序列是1,2,3,4,則隊列的輸出序列是 ( )
A、4,3,2,1 B、1,2,3,4 C、1,4,3,2 D、3,2,4,1
五、串:
? 串(String):是零個或多個字符組成的有限序列。
串中所包含的字符個數稱為該串的長度。
串中任意個連續字符組成的子序列稱為該串的子串,包含子串的串相應地稱為主串
注:空串是任意串的子串,任意串是其自身的子串
? 串有串常量、串變量之分:
1、串常量在程序中只能被引用但不能改變其值,即只能讀不能寫。
2、串變量其值是可以改變的。
? 串的基本運算:
求串長、串復制、串聯接、串比較、字符定位、
六、樹(非線性結構):
? 樹(Tree):是n(n>=0)個結點的有限集T,T(n=0)為空時稱為空樹,否則它滿足如下兩個條件:
1、有且僅有一個特定的稱為根(Root)的結點
2、其余的結點可分為m(m>=0)個互不相交的子集T1,T2,…….,Tm,其中每個子集本身又是一棵樹,并稱其為根的子樹(Subtree)。
? 在樹的樹形圖表示中,結點通常是用圓圈表示的,結點的名字一般是寫在圓圈旁邊,有時亦可寫在圓圈內。
? 度(Degree):一個結點擁有的子樹數稱為該結點的度。一棵樹的度是指該樹中結點的最大度數。
? 葉子(Leaf):度為零的結點稱為葉子或終端結點
? 分支結點(Node):度不為零的結點稱為分支結點。
? 樹中某個結點的子樹之根稱為該結點的孩子(Child)結點或子結點,相應的該結點稱為孩子結點的雙親(Parents)結點或父結點。
? 同一個雙親的孩子稱為兄弟結點(Sibling)
? 結點的層數(Level)是從根起算,設根的層數為1,其余結點的層數等于其雙親結點的層數加1.
? 樹中結點的最大層數稱為樹的高度(Height)或深度(Depth).
? 森林(Forest):是m(m>=0)棵互不相交的樹的集合。刪去一棵樹的根,就得到一個森林,反之,加上一個結點作樹根,森林就變為一棵樹。
? 二叉樹(Binary Tree):是n(n>=0)個結點的有限集,它或者是空集(n=0),或者由一個根結點及兩棵互不相交的、分別稱作這個根的左子樹和右子樹的二叉樹組成。
二叉樹中,每個結點最多只能有兩棵子樹,并且有左右之分。
? 二叉樹的五種基本形態:
例:具有3個結點的二叉樹有幾種形態。
? 滿二叉樹(Full Binary Tree):一棵深度為k且有2k-1個結點的二叉樹稱為滿二叉樹
? 完全二叉樹(Complete Binary Tree):若一棵二叉樹至多只有最下面的兩層上結點的度數可以小于2,并且最下一層上的結點都集中在該層最左邊的若干位置上,則此二叉樹稱為完全二叉樹。
二叉樹的性質:
性質1:二叉樹第i層上的結點數目最多為2i-1(i>=1)
性質2:深度為k的二叉樹至多有2k-1個結點(k>=1)
性質3:在任意一棵二叉樹中,若終端結點的個數為n0,度為2的結點數為n2,則n0=n2+1
性質4:具有n個結點的完全二叉樹的深度為[]+1(取下整) 或 [](取上整)。
例:一棵二叉樹的結點數為18個,求它的最小高度
已知度為2的結點數為15個,求葉子結點數 15
二叉樹的遍歷:
? 遍歷(Traversal):是指沿著某條搜索路線,依次對樹中每個結點均做一次且僅做一次訪問。
前序遍歷:(又稱為先序遍歷、先根遍歷)
若二叉樹為空,則執行空操作。否則:
1、訪問根結點;
2、前序遍歷左子樹;
3、前序遍歷右子樹。
中序遍歷:(又稱為中根遍歷)
若二叉樹為空,則執行空操作。否則:
1、中序遍歷左子樹;
2、訪問根結點;
3、中序遍歷右子樹。
后序遍歷:(又稱為后根遍歷)
若二叉樹為空,則執行空操作。否則:
1、后序遍歷左子樹;
2、后序遍歷右子樹;
3、訪問根結點。
例:已知一棵二叉樹的中序遍歷序列是:FDGBACHE,其后序遍歷序列是:FGDBHECA
求其前序遍歷序列。
一棵二叉樹的前序遍歷序列為ABDGCFK,中序遍歷序列為DGBAFCK,則結點的后序遍歷序列是( )
A、ACFKDBG B、GDBFKCA C、KCFAGDB D、ABCDFKG
七、排序(Sort):
? 所謂排序,就是指整理文件中的記錄,使之按關鍵字遞增(或遞減)次序排列起來。
? 冒泡排序(Bubble Sorting):
通過對待排序序列從后向前或從前向后(從下標較大的元素開始),依次比較相鄰元素的排序碼,若發現逆序則交換,使排序碼較大的元素逐漸從前部移向后部或較小的元素逐漸從后部移向前部(從下標較大的單元移向下標較小的單元)。
? 直接選擇排序(Selection Sorting):
掃描整個線性表,從中選出最小的元素,將它交換到表的最前面;然后對剩下的子表采用同樣的方法,直到子表空為止。
? 直接插入排序(Insertion Sorting):
每次將一個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子文件中的適當位置,直到全部記錄插入完成為止。
? 快速排序(Quick Sorting):任取待排序序列中的某個元素作為基準(一般取第一個元素),通過一趟排序,將待排元素分為左右兩個子序列,左子序列元素的排序碼均小于或等于基準元素的排序碼,右子序列的排序碼則大于基準元素的排序碼,然后分別對兩個子序列繼續進行排序,直至整個序列有序。
各種內部排序方法的比較
例:對一個具有n個元素的序列進行冒泡排序,在最壞情況下,要進行交換的次數是( )
A、n(n+1)/2 B、n(n-1)/2 C、n*n/2 D、n(n+1)/2-1
對n個元素進行冒泡排序過程中,最好情況下的時間復雜性為( )
A、O(1) B、O(log2n) C、O(n2) D、O(n)
對n個元素進行快速排序的過程中,平均情況下的時間復雜性為( )
A、O(1) B、O(lgn) C、O(n2) D、O(nlgn)
八、查找(Searching):
? 所謂查找是指給定一個值K,在含有n個結點的表中找出關鍵字等于給定值K的結點。若找到,則查找成功,返回該結點的信息或該結點在表中的位置;否則查找失敗,返回相關的提示信息。
? 順序查找(Sequential Search)的基本思想是:從表的一端開始,順序掃描線性表,依次將掃描到的結點關鍵字和給定值K相比較,若當前掃描到的結點關鍵字與K相等,則查找成功;若掃描結束后,仍未找到關鍵字等于K的結點,則查找失敗。順序查找即適用順序存儲結構,又適用鏈式存儲結構。
查找成功的平均查找長度為:(n為結點數目)
(1+2+3+4+···+n) / n = (n+1)/2
? 二分查找(Binary Search)又稱折半查找,它是一種效率較高的查找方法,二分查找要求線性表是有序表,即表中結點按關鍵字有序,并且要用向量作為表的存儲結構。另外,二分查找只適用順序存儲結構,在鏈式存儲結構上無法實現二分查找。
查找成功時的平均查找長度:(n為結點數目)
word/media/image7.gif
當n很大時,可用近似公式: lg(n+1)-1 表示
二.程序設計2.1 程序設計方法與風格
程序設計是一門技術,需要相應理論、技術、方法和工具來支持。程序設計方法和技術的發展而言,主要經過了結構化程序設計和面向對象的程序設計階段。
養成良好的程序設計的設計風格,主要考慮下述的因素:
1. 源程序文檔化
源程序文檔化應考慮如下幾點:
(1)符號名的命名:符號名的命名有一定含義,便于理解
(2)程序注釋:正確的注釋幫助讀者理解程序
(3)視覺組織:程序層次清晰
2. 數據說明的方法
數據說明應考慮如下幾點:
(1)數據說明的次序規范化
(2)說明語句中變量安排有序化。
(3)使用注釋來說明復雜數據結構
3. 語句的結構
程序應該簡單易懂,語句構造應該簡單直接。應該注意的是:
(1)在一行內只寫一條語句
(2)程序編寫應優選考慮清晰性
(3)除非對效率有特殊要求,程序編寫要清晰第一、效率第二
(4)首先要保證程序正確,然后要求提高速度
(5)避免使用臨時變量而使程序可讀性下降
(6)避免不必要的轉移
(7)盡可能使用庫函數
(8)避免使用復雜的條件語句
(9)盡量減少使用“否定”條件的條件語句
(10)數據結構要有利于程序的簡化
(11)要模塊化,使模塊功能盡可能單一化
(12)利用信息隱藏,確保每一個模塊的獨立性
(13)從數據出發去構造程序
(14)不要修補不好的程序,要重新編寫
??? 4. 輸入和輸出
???? 無論是批處理的輸入和輸出方式,還是交互式的輸入和輸出方式,在設計和編程時都應該考慮如下原則:
(1)對所有的輸入數據都要檢驗數據的合理性
(2)檢查輸入項的各種重要組合的合理性
(3)輸入格式要簡單。
(4)輸入數據時,應允許使用自由格式
(5)應允許缺省值
(6)輸入一批數據時,最好使用輸入結束標志
(7)在交互式輸入/輸出方式進行輸入時,要在屏幕上使用提示符明確提示輸入要求,在數據輸入過程中和輸入結束時應在屏幕給出狀態信息
(8)當程序設計語言對輸入格式有嚴格要求時,應保持輸入格式與輸出語句的一致性。給所有輸入加注釋,并設計輸出報表格式。
2.2 結構化程序設計
2.2.1 結構化程序設計的原則
???? 結構化程序設計方法主要原則包括:
????? 1. 自頂向下。設計程序時先考慮總體,后考慮細節
????? 2. 逐步求精。對復雜問題,逐步細化。
????? 3. 模塊化。
????? 4. 限制使用goto語句
2.2.2 結構化程序的基本結構與特點
??? 結構化程序設計方法是程序設計的先進方法和。和采用結構化程序設計方法編寫程序,可使程序結構良好、易讀、易理解、易維護。結構化程序設計方法基本可用三種基本結構就可實現。
1. 順序結構
順序結構是順序順序執行結構,即是按照程序語句的自然順序,一條一條語句地執行。
2. 選擇結構?
選擇結構又稱分支結構,它包括簡單選擇和多分支選擇,這種結構可以根據給定條件,判斷執行哪一個分支中的語句。
3. 重復結構?
重復結構又稱為循環結構。它根據給定的條件判斷是否重復執行某一段相同的程序。?
2.2.3 結構化程序設計原則和方法的應用
在結構化程序設計的具體實施中,要注意把握如下要素:
(1)使用程序設計語言中的順序、選擇、循環等控制結構表示程序的控制邏輯
(2)選用的控制結構只準許有一個入口和一個出口
(3)程序語句組成容易識別的程序專項,每塊只有一個入口和一個出口
(4)復雜結構應該用嵌套的基本控制結構進行組合嵌套來實現
(5)語言中所沒有的控制結構,應該采用前后一致的方法來模擬
(6)嚴格控制GOTO語句使用。
2.3 面向對象的程序設計
2.3.1 關于面向對象方法
面向對象(Object Oriented)方法已經發展成為主流的軟件開發方法。面向對象方法的形成起源于實現語言,首先對設計語言的研究,隨之形成面向對象分析和設計方法。
面向對象方法的本質,就是主張從客觀世界固有的事物出發來構造系統,提倡用人類在現實生活中常用的思維方法來認識、理解和描述客觀事物,強調最終建立的系統能夠映射問題域。也就是說,系統中的對象以及對象之間的關系能夠如實反映問題域中固有事物及其關系。
面向對象方法有如下優點:
? 1. 與人類習慣的思維方法一致
??? 面向對象和技術以對象為核心,對象是由數據和容許的操作組成的封裝體,與客觀實體有直接的對應關系。對象之間通過傳遞消息互相聯系,以模擬現實世界中不同事物彼此之間的聯系。如CD播放器、媒體播放器、軟件窗口等等
? 2. 穩定性好
??? 面向對象的軟件系統的結構是根據問題領域的模型建立起來的,當對系統的功能需求變化時并不會引起軟件結構的整體變化,往往僅需要作一些局部性的修改。
? 3. 可重用性好?
軟件重用是指在不同的軟件開發過程中重復使用相同或相似軟件元素(一般稱為類)的過程。重用是提高軟件生產率的最主要的方法。
利用可重用的軟件成分構造新的軟件系統,一個對象類可以重復使用,對象類可以創建,也以在已有的類上修改,但不影響原有類。
? 4. 易于開發大型軟件產品
??? 可以把一個大型產品看作一系列互相獨立的小產品來處理,這樣不公降低了技術難度,而又使開發工作的管理變得容易。
? 5. 可維護性好
??? 一般用傳統的開發方法和面向過程的方法開發出來的軟件很難維護,而面向對象的方法開發的軟件可維護性好。
??? (1)穩定性較好
??? (2)易于修改
??? (3)易于理解
??? (4)易于測試和調試
?
2.3.2 面向對象方法的基本概念
??? 關于面向對象方法,對其概念有許多不同的看法,但都涵蓋了對象及對象屬性、方法、類、繼承、多態性幾個基本要素。
?? 1. 對象(object)
對象是面向對象方法中最基本的概念。對象用來表示客觀世界中的任何實體。
面向對象的程序設計方法中涉及的對象是系統中用來描述客觀事物的一個實體,是構成系統的一個基本單位,它由一組表示其靜態特征的屬性和它可執行的一組操作組成。
對象有如下特點:
(1)標識惟一性
(2)分類性
(3)多態性
(4)封裝性
(5)模塊獨立性好
?2. 類(Class)和實例(Instance)
?將屬性、操作相似的對象歸為類,類具有共同屬性、共同方法的對象的集合。如中圖中命令按鈕就是同類對象。?3. 消息(Message)
面向對象的世界是通過對象與對象彼此的相互合作來推動的,對象間的這種相互合作需要一個機制協助進行,這的機制稱為“消息”。
消息是一個實例與另一個實例之間傳遞的信息,它請求對象執行某一處理或回答某一要求的信息,它統一了數據流和控制流。
一個消息由三部分組成:
(1)接收消息的對象的名稱
(2)消息標識符(也稱消息名)
(3)零個或多個參數
比如在窗體上畫一個圓,對象名MyForm,消息名Circle,參數(50,50)為圓心,25為半徑
MyForm.Circle (50,50),25?4. 繼承(Inheritance)
繼承是面向對象的方法的一個主要特征。繼承是使用已有的類定義作為基礎(直接獲得已有的性質和特征)建立新類的定義技術。
已有的類可以當做基類引用,則新類可當做派生類引用。
如右圖就是VB中的基類:?5. 多態性(Polymorphism)
?? 對象根據所接受的消息而做出動作,同樣的消息被不同的對象接受時可導致完全不同的行動,該現象稱為多態性
三.軟件工程基礎
一、基本概念:
? 軟件(Software):軟件是一種產品(邏輯產品),指的是計算機中程序及其說明程序的各種文檔。“程序”是計算任務的處理對象和處理規則的描述;“文檔”是有關計算機程序功能、設計、編制、使用的文字或圖形資料。
? 軟件危機的表現:
1、軟件需求的增長得不到滿足
2、軟件開發成本和進度無法控制
3、軟件質量難以保證
4、軟件不可維護或維護程度非常低
5、軟件成本不斷提高
6、軟件開發生產效率的提高趕不上硬件的發展和應用需求的增長
? 軟件工程(Software Engineering):用工程化的方法、科學知識和技術原理來定義、開發、維護軟件的一門學科。
? 軟件工程的目標:
付出較低的開發成本;達到要求的軟件功能;取得較好的軟件性能;開發的軟件易于移植;需要較低的維護費用;能按時完成開發任務,及時交付使用;開發的軟件可靠性高。
? 軟件工程研究的主要內容是軟件開發技術和軟件開發管理兩個方面。
? 軟件生存周期:是指一個軟件從提出開發要求開始直到該軟件報廢(停止運行)為止的整個時期。
? 軟件生存周期模型:是描述軟件開發過程中各種活動如何執行的模型。
? 常用的模型有:瀑布模型、增量模型、螺旋模型、噴泉模型、變換模型和基于知識的模型
瀑布模型是將軟件生存周期各個活動規定為依線性順序連接的若干階段的模型。主要包括問題定義及可行性分析、項目開發計劃、需求分析、概要設計、詳細設計、編碼、測試和維護幾個階段。
例:下列描述中正確的是( )
A、程序就是軟件 B、軟件開發不受計算機系統的限制
C、軟件既是邏輯實體,又是物理實體 D、軟件是程序、數據與相關文檔的集合
二、軟件可行性研究與項目開發計劃:
? 軟件可行性研究的目的是用最小的代價在盡可能短的時間內確定該軟件項目是否能夠開發,是否值得去開發。
? 可行性研究的任務:
A、技術可行性
B、經濟可行性
C、社會可行性(法律可行性)
? 可行性研究的具體步驟:
1、確定項目規模和目標
2、研究正在運行的系統
3、建立新系統的高層邏輯模型
4、導出和評價各種方案
5、推薦可行的方案
6、編寫可行性研究報告
三、軟件需求分析:
? 需求分析是指開發人員要準確理解用戶的要求,進行細致的調查分析,將用戶非形式的需求陳述轉化為完整的需求定義,再由需求定義轉換到相應的形式功能規約(需求規格說明)的過程。
? 需求分析的基本任務:
1、問題識別
A、功能需求
B、性能需求
C、環境需求
D、用戶界面需求
2、分析與綜合,導出軟件的邏輯模型
3、編寫文檔(需求規格說明書)
? 需求分析的方法:
1、結構化分析(Structured Analysis):是面向數據流進行需求分析的方法。
SA方法利用圖形等半形式化的描述方式表達需求,主要描述工具:
A、數據流圖(DFD):是SA方法中用于表示系統邏輯模型的一種工具,以圖形的方式描繪數據在系統中流動和處理的過程。
B、數據字典(DD):用以定義數據流圖中的各個成分的具體含義,為系統的分析、設計及維護提供了有關元素的一致的定義和詳細的描述。
C、描述加工邏輯的結構化語言、判定表、判定樹
2、IDEF方法(是 ICAM Definition的縮寫):
是一種用于進行復雜系統分析和設計的方法,是在結構化分析和設計技術的基礎上提出來的。
3、面向對象分析方法(OOP):
將客觀世界的事物抽象為對象,通過屬性和方法描述對象的狀態和行為,具有繼承、封裝和多態性等特征。
例:軟件開發的結構化分析方法中,常用的描述軟件功能需求的工具是( )
A、業務流程圖、處理說明 B、軟件流程圖、模塊說明
C、數據流程圖、數據字典 D、系統流程圖、程序編碼
四、軟件概要設計:
將軟件需求轉換為軟件表示的過程。
? 軟件概要設計的基本任務:
1、設計軟件系統結構
2、數據結構及數據庫設計(概要設計、邏輯設計、物理設計):
3、編寫概要設計文檔:
4、評審:
? 軟件設計的方法:
模塊化:模塊在程序中是數據說明、可執行語句等程序對象的集合,或者是單獨命名和編址的元素,如高級語言中的過程、函數、子程序等。
? 模塊獨立性指每個模塊只完成系統要求的獨立的子功能,并且與其他模塊的聯系最少且接口簡單。其度量標準是:耦合性和內聚性
? 耦合性也稱塊間聯系,指軟件系統結構中各模塊間相互聯系緊密程度的一種度量。模塊之間聯系越緊密,其耦合性就越強,模塊的獨立性則越差。
? 內聚性也稱塊內聯系,指模塊功能強度的度量,即一個模塊內部各個元素(語句之間、程序段之間)彼此結合的緊密程度的度量。
? 將軟件系統劃分模塊時,盡量做到高內聚低耦合。
例:為了使模塊盡可能獨立,要求( )
A、模塊的內聚程序要盡量高,且各模塊間的耦合程序要盡量強
B、模塊的內聚程序要盡量高,且各模塊間的耦合程序要盡量弱
C、模塊的內聚程序要盡量低,且各模塊間的耦合程序要盡量弱
D、模塊的內聚程序要盡量低,且各模塊間的耦合程序要盡量強
五、軟件詳細設計:
主要確定每個模塊具體執行過程
? 軟件詳細設計的基本任務:
1、為每個模塊進行詳細的算法設計:
2、為模塊內的數據結構進行設計:
3、對數據庫進行物理設計:
4、輸入、輸出格式設計
5、編寫詳細設計說明書:
6、評審:
? 詳細設計常用三種工具:
圖形(流程圖、盒圖、問題分析圖PAD)、
表格(判定表)、
語言(過程設計語言,又稱為偽碼)
六、軟件編碼:
主要是將詳細設計得到的處理過程描述轉換為基于某種計算機語言的程序
常用的計算機語言:Pascal 、C、C++、Java等
七、軟件測試:
軟件測試代表了需求分析、設計、編碼的最終復審。軟件測試貫穿于軟件開發的全過程。
? 軟件測試的目的:
1、軟件測試是為了盡可能多地發現程序中的錯誤而執行程序的過程。
2、一個好的測試用例能夠發現至今尚未發現的錯誤。
3、一個成功的測試是發現了至今尚未發現的錯誤的測試。
? 軟件測試的原則:
1、測試用例應由輸入數據和預期的輸出數據兩部分組成。
2、測試用例不僅選用合理的輸入數據,還要選擇不合理的輸入數據
3、除了檢查程序是否做了它應該做的事
4、應制定測試計劃并嚴格執行,排除隨意性
5、長期保留測試用例
6、對發現錯誤較多的程序段,應進行更深入的測試
7、程序員避免測試自己的程序
? 軟件測試方法:
1、靜態測試:
是指被測試程序不在機器上運行,而是采用人工檢測和計算機輔助靜態分析的手段對程序進行檢測。
2、動態測試:是指通過運行程序發現錯誤
A、黑盒測試法(功能測試):
主要對軟件的接口進行測試,依據需求規格說明書,檢查程序是否滿足功能要求。常用的技術是等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、綜合策略法
B、白盒測試法(結構測試):
主要測試程序的內部結構和處理過程。常用的技術是語句覆蓋、條件覆蓋、路徑覆蓋、判定覆蓋等
? 軟件測試的實施:
1、單元測試:
單元測試是對軟件設計的最小單位——模塊(程序單元)進行正確性檢驗測試,主要針對模塊的以下五個基本特征進行測試:
A、模塊接口
B、局部數據結構:
C、重要的執行路徑:
D、錯誤處理測試:
E、邊界條件:
2、集成測試:
集成測試是指在單元測試的基礎上,將所有模塊按照設計要求組裝成一個完整的系統進行的測試,故也稱組裝測試或聯合測試。
主要方法有兩種:
非漸增式測試:首先對每個模塊分別進行單元測試,然后再把所有的模塊按設計要求組裝在一起進行測試。
漸增式測試:逐個把未經過測試的模塊組裝到已經過測試的模塊上去,進行集成測試,每加入一個新模塊進行一次集成測試,重復此過程直至程序組裝完畢。
3、確認測試:
確認測試又稱有效性測試,它的任務是檢查軟件的功能與性能是否與需求規格說明書中確定的指標相符合,因而需求規格說明是確認測試的基礎。
4、系統測試:
系統測試是通過測試確認的軟件作為整個計算機系統的一個元素,與計算機硬件、外設、支撐軟件、數據和人員等其他系統元素組合在一起,在實際運行環境下對計算機系統進行一系列的集成測試和確認測試。
? 程序調試:
調試是在進行了成功的測試之后才開始的工作,目的是確定錯誤的原因和位置,并改正錯誤,又稱為糾錯。
例:軟件測試的目的是( )
A、證明軟件的正確性 B、找出軟件系統中存在的所有錯誤
C、盡可能多地發現軟件系統中的錯誤 D、證明軟件系統中存在錯誤
在軟件測試方法中,黑箱測試法和白箱測試法是常用的方法,其中黑箱測試法主要是
用于測試( )
A、結構合理性 B、軟件外部功能 C、程序正確性 D、程序內部邏輯
八、軟件維護:
軟件投入使用后進行的階段,是軟件生存周期中時間最長的一個階段,所花費的精力和費用也是最多的一個階段。主要是因為:隱含的錯誤要修改;新增的功能要加入進去;環境的變化對程序進行變動等。
? 軟件維護的內容有四類:
1、校正性維護:
為了識別和糾正錯誤,修改軟件性能上的缺陷,其占整個維護工作的 21%
2、適應性維護:
為了使應用軟件適應環境(硬件、系統軟件、數據)的變化而修改軟件的過程稱為適應性維護,其占整個維護工作的25%
3、完善性維護:
增加軟件功能、增強軟件性能、提高軟件運行效率而進行的維護活動稱為完善性維護,其占整個維護工作的 50%
4、預防性維護:
為了提高軟件的可維護性和可靠性而對軟件進行的修改稱為預防性維護,其占整個維護工作的 4%
例:軟件維護是指( )
A、維護軟件正常運行 B、軟件的配置更新
C、對軟件的改進、適應和完善 D、軟件開發期的一個階段
軟件生命周期中所花費用最多的階段是( )
A、詳細設計 B、軟件編碼 C、軟件測試 D、軟件維護
四.數據庫原理基礎
一、基本概念:
? 數據處理:是指將數據轉換成信息的過程
? 數據管理是指對數據的組織、分類、編碼、存儲、檢索和維護提供操作手段
其經歷了以下階段:
1、人工管理
2、文件系統
3、數據庫系統
4、分布式數據庫系統階段
5、面向對象的數據庫系統階段
? 數據庫(Database):是指存儲在計算機存儲設備上的結構化的相關數據的集合,不僅包括數據本身,還包括事物之間的聯系。
?
?
?
?
?
?
?
?
?
? 數據庫應用系統(DBAS):是指系統開發人員利用數據庫系統資源開發出來的,面向某一類實際應用的應用軟件系統。
?
? 數據庫管理系統(DBMS):
?
?
?
?
?
?
對數據庫的建立、使用和維護進行管理和配置的軟件系統。
是數據庫系統的核心
? 數據庫系統(DBS):由硬件系統、數據庫集合、數據庫管理系統及相關軟件、數據庫管理員和用戶組成。
? 數據庫系統的特點:
實現數據共享、減少數據冗余
采用特定的數據模型
具有較高的數據獨立性
統一的數據控制功能
? 實體: 客觀存在并且可以相互區別的事物稱為實體。
? 實體的屬性:實體所具有的物性稱為實體的屬性。
? 實體集:同類型的實體的集合稱為實體集。
? 實體型:屬性的集合表示一種實體類型,稱為實體型。
例:數據庫管理系統能實現對數據庫中數據的查詢、插入、修改和刪除,這類功能稱為( )
A、數據定義功能 B、數據管理功能 C、數據操縱功能 D、數據控制功能
? 聯系:實體之間的對應關系。
聯系的類型:
1、一對一聯系:表現為主表中的每一條記錄只與相關表中的一條記錄相關聯。
例如: 班級與班長, 學校與校長
2、一對多聯系:表現為主表中的每一條記錄與相關表中的多條記錄相關聯。
例如: 班級與學生,部門與職工
3、多對多聯系:表現為一個表中的多個記錄在相關表中同樣有多個記錄相關聯。
例如: 學生與課程, 工程項目與零件
? 數據模型:不僅反映事物本身,還用來表示實體及實體之間聯系的方法。
1、層次模型:用樹形結構表示實體及其之間聯系的模型稱為層次模型。
2、網狀模型:用網狀結構表示實體及其之間聯系的模型稱為網狀模型。
3、關系模型:用二維表結構來表示實體及實體之間的聯系的模型稱為關系模型。
一個二維表稱為一個關系,在VFP稱為數據表。一個關系不僅表示實體本身還表示實體之間的聯系。
例:用樹形結構表示實體之間聯系的模型是( )
A、關系模型 B、網狀模型 C、層次模型 D、以上三個都是
二、關系數據庫:
? 元組(Record):在一個關系中,水平方向的行稱為元組。在VFP中稱為記錄
? 屬性(Field):一個二維表中垂直方向的列稱為屬性。在VFP中稱為字段名
? 域(Domain):屬性的取值范圍。根據數據類型和寬度來決定的。
? 關鍵字(Primary Key):其值能夠惟一標識一個元組的屬性或屬性的組合。
注:關鍵字不能出現空值或重復值
? 外部關鍵字(Foreign Key):如果表中的一個字段不是本表的主關鍵字或侯選關鍵字,而是另外一個表的主關鍵字或侯選關鍵字,這個字段在本表中稱為外部關鍵字。
? 關系性質:
二維表中元組的個數是有限的——元組個數有限性
二維表中元組均不相同——元組的惟一性
二維表中元組的次序可以任意交換——元組的次序無關性
二維表中元組的分量是不可分割的基本數據項——元組分量的原子性
二維表中屬性名各不相同——屬性名惟一性
二維表中屬性與次序無關,可任意交換——屬性的次序無關性
例:關系數據模型中表示實體和實體間的聯系的結構是( )
A、樹型 B、網狀 C、二維表 D、對象
三、關系運算:
? 并(Union):是由兩個關系的元組組成的集合。(兩個關系必須具有相同的關系模式)
? 差(Difference):若有兩個相同結構的關系R和S,R差S的結果屬于R但不屬于S的元組組成的集合。
? 交(Intersection):若有兩個相同的結構關系R和S,交的結果為兩個關系共同的元組。
? 選擇(Selection):從關系中找出滿足給定條件的元組的操作稱為選擇。
? 投影(Projection):從關系模式中指定若干個屬性組成新的關系稱為投影。
? 聯接(Join):是關系的橫向結合,關系模式改變了,是多個關系的關系模式的組合。聯接的結果是多個關系中滿足條件的元組。
二級公共基礎知識試題(2)
第一章 數據結構與算法
經過對部分考生的調查以及對近年真題的總結分析,筆試部分經常考查的是算法復雜度、數據結構的概念、棧、二叉樹的遍歷、二分法查找,讀者應對此部分進行重點學習。
詳細重點學習知識點:
1.算法的概念、算法時間復雜度及空間復雜度的概念
2.數據結構的定義、數據邏輯結構及物理結構的定義
3.棧的定義及其運算、線性鏈表的存儲方式
4.樹與二叉樹的概念、二叉樹的基本性質、完全二叉樹的概念、二叉樹的遍歷
5.二分查找法
6.冒泡排序法
1.1算法
考點1 算法的基本概念
考試鏈接:
考點1在筆試考試中考核的幾率為30%,主要是以填空題的形式出現,分值為2分,此考點為識記內容,讀者還應該了解算法中對數據的基本運算。
計算機解題的過程實際上是在實施某種算法,這種算法稱為計算機算法。
1.算法的基本特征:可行性、確定性、有窮性、擁有足夠的情報。
2.算法的基本要素:
(1)算法中對數據的運算和操作
一個算法由兩種基本要素組成:一是對數據對象的運算和操作;二是算法的控制結構。
在一般的計算機系統中,基本的運算和操作有以下4類:算術運算、邏輯運算、關系運算和數據傳輸。
(2)算法的控制結構:算法中各操作之間的執行順序稱為算法的控制結構。
描述算法的工具通常有傳統流程圖、N-S結構化流程圖、算法描述語言等。一個算法一般都可以用順序、選擇、循環3種基本控制結構組合而成。
考點2 算法復雜度
考試鏈接:
考點2在筆試考試中,是一個經常考查的內容,在筆試考試中出現的幾率為70%,主要是以選擇的形式出現,分值為2分,此考點為重點識記內容,讀者還應該識記算法時間復雜度及空間復雜度的概念。
1.算法的時間復雜度
算法的時間復雜度是指執行算法所需要的計算工作量。
同一個算法用不同的語言實現,或者用不同的編譯程序進行編譯,或者在不同的計算機上運行,效率均不同。這表明使用絕對的時間單位衡量算法的效率是不合適的。撇開這些與計算機硬件、軟件有關的因素,可以認為一個特定算法"運行工作量"的大小,只依賴于問題的規模(通常用整數n表示),它是問題規模的函數。即
算法的工作量=f(n)
2.算法的空間復雜度
算法的空間復雜度是指執行這個算法所需要的內存空間。
一個算法所占用的存儲空間包括算法程序所占的空間、輸入的初始數據所占的存儲空間以及算法執行過程中所需要的額外空間。其中額外空間包括算法程序執行過程中的工作單元以及某種數據結構所需要的附加存儲空間。如果額外空間量相對于問題規模來說是常數,則稱該算法是原地工作的。在許多實際問題中,為了減少算法所占的存儲空間,通常采用壓縮存儲技術,以便盡量減少不必要的額外空間。
word/media/image1_1.png 疑難解答:算法的工作量用什么來計算?
算法的工作量用算法所執行的基本運算次數來計算,而算法所執行的基本運算次數是問題規模的函數,即算法的工作量=f(n),其中n是問題的規模。
1.2數據結構的基本概念
考點3 數據結構的定義
考試鏈接:
考點3在筆試考試中,是一個經常考查的內容,在筆試考試中出現的幾率為70%,主要是以選擇的形式出現,分值為2分,此考點為識記內容,讀者還應該識記數據的邏輯結構和存儲結構的概念。
數據結構作為計算機的一門學科,主要研究和討論以下三個方面:
(1)數據集合中個數據元素之間所固有的邏輯關系,即數據的邏輯結構;
(2)在對數據元素進行處理時,各數據元素在計算機中的存儲關系,即數據的存儲結構;
(3)對各種數據結構進行的運算。
數據:是對客觀事物的符號表示,在計算機科學中是指所有能輸入到計算機中并被計算機程序處理的符號的總稱。
數據元素:是數據的基本單位,在計算機程序中通常作為一個整體進行考慮和處理。
數據對象:是性質相同的數據元素的集合,是數據的一個子集。
數據的邏輯結構是對數據元素之間的邏輯關系的描述,它可以用一個數據元素的集合和定義在此集合中的若干關系來表示。數據的邏輯結構有兩個要素:一是數據元素的集合,通常記為D;二是D上的關系,它反映了數據元素之間的前后件關系,通常記為R。一個數據結構可以表示成
B=(D,R)
其中B表示數據結構。為了反映D中各數據元素之間的前后件關系,一般用二元組來表示。
數據的邏輯結構在計算機存儲空間中的存放形式稱為數據的存儲結構(也稱數據的物理結構)。
由于數據元素在計算機存儲空間中的位置關系可能與邏輯關系不同,因此,為了表示存放在計算機存儲空間中的各數據元素之間的邏輯關系(即前后件關系),在數據的存儲結構中,不僅要存放各數據元素的信息,還需要存放各數據元素之間的前后件關系的信息。
一種數據的邏輯結構根據需要可以表示成多種存儲結構,常用的存儲結構有順序、鏈接、索引等存儲結構。而采用不同的存儲結構,其數據處理的效率是不同的。因此,在進行數據處理時,選擇合適的存儲結構是很重要的。
考點4 線性結構與非線性結構
考試鏈接:
考點4在筆試考試中,雖然說不是考試經常考查的內容,但讀者還是對此考點有所了解,在筆試考試中出現的幾率為30%,主要是以填空題出現的形式出現,分值為2分,此考點為識記內容。
根據數據結構中各數據元素之間前后件關系的復雜程度,一般將數據結構分為兩大類型:線性結構與非線性結構。如果一個非空的數據結構滿足下列兩個條件:
(1)有且只有一個根結點;
(2)每一個結點最多有一個前件,也最多有一個后件。
則稱該數據結構為線性結構。線性結構又稱線性表。在一個線性結構中插入或刪除任何一個結點后還應是線性結構。如果一個數據結構不是線性結構,則稱之為非線性結構。
word/media/image1_1.png 疑難解答:空的數據結構是線性結構還是非線性結構?
一個空的數據結構究竟是屬于線性結構還是屬于非線性結構,這要根據具體情況來確定。如果對該數據結構的算法是按線性結構的規則來處理的,則屬于線性結構;否則屬于非線性結構。
1.3棧及線性鏈表
考點5 棧及其基本運算
考試鏈接:
考點5在筆試考試中,是一個必考的內容,在筆試考試中出現的幾率為100%,主要是以選擇的形式出現,分值為2分,此考點為重點掌握內容,讀者應該掌握棧的運算 。
1.棧的基本概念
棧是限定只在一端進行插入與刪除的線性表,通常稱插入、刪除的這一端為棧頂,另一端為棧底。當表中沒有元素時稱為空棧。棧頂元素總是后被插入的元素,從而也是最先被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。棧是按照"先進后出"或"后進先出"的原則組織數據的。
2.棧的順序存儲及其運算
用一維數組S(1∶m)作為棧的順序存儲空間,其中m為最大容量。
在棧的順序存儲空間S(1∶m)中,S(bottom)為棧底元素,S(top)為棧頂元素。top=0表示棧空;top=m表示棧滿。
棧的基本運算有三種:入棧、退棧與讀棧頂元素。
(1)入棧運算:入棧運算是指在棧頂位置插入一個新元素。首先將棧頂指針加一(即top加1),然后將新元素插入到棧頂指針指向的位置。當棧頂指針已經指向存儲空間的最后一個位置時,說明棧空間已滿,不可能再進行入棧操作。這種情況稱為棧"上溢"錯誤。
(2)退棧運算:退棧是指取出棧頂元素并賦給一個指定的變量。首先將棧頂元素(棧頂指針指向的元素)賦給一個指定的變量,然后將棧頂指針減一(即top減1)。當棧頂指針為0時,說明棧空,不可進行退棧操作。這種情況稱為棧的"下溢"錯誤。
(3)讀棧頂元素:讀棧頂元素是指將棧頂元素賦給一個指定的變量。這個運算不刪除棧頂元素,只是將它賦給一個變量,因此棧頂指針不會改變。當棧頂指針為0時,說明棧空,讀不到棧頂元素。
word/media/image1_1.png小技巧:棧是按照"先進后出"或"后進先出"的原則組織數據,但是出棧方式有多種選擇,在考題中經常考查各種不同的出棧方式。
考點6 線性鏈表的基本概念
考試鏈接:
考點6在筆試考試中出現的幾率為30%,主要是以選擇的形式出現,分值為2分,此考點為識記內容。重點識記結點的組成。
在鏈式存儲方式中,要求每個結點由兩部分組成:一部分用于存放數據元素值,稱為數據域,另一部分用于存放指針,稱為指針域。其中指針用于指向該結點的前一個或后一個結點(即前件或后件)。
鏈式存儲方式既可用于表示線性結構,也可用于表示非線性結構。
(1)線性鏈表
線性表的鏈式存儲結構稱為線性鏈表。
在某些應用中,對線性鏈表中的每個結點設置兩個指針,一個稱為左指針,用以指向其前件結點;另一個稱為右指針,用以指向其后件結點。這樣的表稱為雙向鏈表。
(2)帶鏈的棧
棧也是線性表,也可以采用鏈式存儲結構。帶鏈的棧可以用來收集計算機存儲空間中所有空閑的存儲結點,這種帶鏈的棧稱為可利用棧。
word/media/image1_1.png 疑難解答:在鏈式結構中,存儲空間位置關系與邏輯關系是什么?
在鏈式存儲結構中,存儲數據結構的存儲空間可以不連續,各數據結點的存儲順序與數據元素之間的邏輯關系可以不一致,而數據元素之間的邏輯關系是由指針域來確定的。
1.4樹與二叉樹
考點7 樹與二叉樹及其基本性質
考試鏈接:
考點7在筆試考試中,是一個必考的內容,在筆試考試中出現的幾率為100%,主要是以選擇的形式出現,有時也有出現在填空題中,分值為2分,此考點為重點掌握內容。重點識記樹及二叉樹的性質。
誤區警示:
滿二叉樹也是完全二叉樹,而完全二叉樹一般不是滿二叉樹。應該注意二者的區別。
1、樹的基本概念
樹(tree)是一種簡單的非線性結構。在樹結構中,每一個結點只有一個前件,稱為父結點,沒有前件的結點只有一個,稱為樹的根結點。每一個結點可以有多個后件,它們稱為該結點的子結點。沒有后件的結點稱為葉子結點。
在樹結構中,一個結點所擁有的后件個數稱為該結點的度。葉子結點的度為0。在樹中,所有結點中的最大的度稱為樹的度。
2、二叉樹及其基本性質
(1)二叉樹的定義
二叉樹是一種很有用的非線性結構,具有以下兩個特點:
①非空二叉樹只有一個根結點;
②每一個結點最多有兩棵子樹,且分別稱為該結點的左子樹和右子樹。
由以上特點可以看出,在二叉樹中,每一個結點的度最大為2,即所有子樹(左子樹或右子樹)也均為二叉樹,而樹結構中的每一個結點的度可以是任意的。另外,二叉樹中的每個結點的子樹被明顯地分為左子樹和右子樹。在二叉樹中,一個結點可以只有左子樹而沒有右子樹,也可以只有右子樹而沒有左子樹。當一個結點既沒有左子樹也沒有右子樹時,該結點即為葉子結點。
(2)二叉樹的基本性質
二叉樹具有以下幾個性質:
性質1:在二叉樹的第k層上,最多有2k-1(k≥1)個結點;
性質2:深度為m的二叉樹最多有2m-1個結點;
性質3:在任意一棵二叉樹中,度為0的結點(即葉子結點)總是比度為2的結點多一個。
性質4:具有n個結點的二叉樹,其深度至少為[log2n]+1,其中[log2n]表示取log2n的整數部分。
word/media/image1_1.png小技巧:在二叉樹的遍歷中,無論是前序遍歷,中序遍歷還是后序遍歷,二叉樹的葉子結點的先后順序都是不變的。
3、滿二叉樹與完全二叉樹
滿二叉樹是指這樣的一種二叉樹:除最后一層外,每一層上的所有結點都有兩個子結點。在滿二叉樹中,每一層上的結點數都達到最大值,即在滿二叉樹的第k層上有2k-1個結點,且深度為m的滿二叉樹有2m-1個結點。
完全二叉樹是指這樣的二叉樹:除最后一層外,每一層上的結點數均達到最大值;在最后一層上只缺少右邊的若干結點。
對于完全二叉樹來說,葉子結點只可能在層次最大的兩層上出現:對于任何一個結點,若其右分支下的子孫結點的最大層次為p,則其左分支下的子孫結點的最大層次或為p,或為p+1。
完全二叉樹具有以下兩個性質:
性質5:具有n個結點的完全二叉樹的深度為[log2n]+1。
性質6:設完全二叉樹共有n個結點。如果從根結點開始,按層次(每一層從左到右)用自然數1,2,……,n給結點進行編號,則對于編號為k(k=1,2,……,n)的結點有以下結論:
①若k=1,則該結點為根結點,它沒有父結點;若k>1,則該結點的父結點編號為INT(k/2)。
②若2k≤n,則編號為k的結點的左子結點編號為2k;否則該結點無左子結點(顯然也沒有右子結點)。
③若2k+1≤n,則編號為k的結點的右子結點編號為2k+1;否則該結點無右子結點。
考點8 二叉樹的遍歷
考試鏈接:
考點8在筆試考試中考核幾率為30%,分值為2分,讀者應該熟練掌握各種遍歷的具體算法,能由兩種遍歷的結果推導另一種遍歷的結果。
在遍歷二叉樹的過程中,一般先遍歷左子樹,再遍歷右子樹。在先左后右的原則下,根據訪問根結點的次序,二叉樹的遍歷分為三類:前序遍歷、中序遍歷和后序遍歷。
(1)前序遍歷:先訪問根結點、然后遍歷左子樹,最后遍歷右子樹;并且,在遍歷左、右子樹時,仍然先訪問根結點,然后遍歷左子樹,最后遍歷右子樹。
(2)中序遍歷:先遍歷左子樹、然后訪問根結點,最后遍歷右子樹;并且,在遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結點,最后遍歷右子樹。
(3)后序遍歷:先遍歷左子樹、然后遍歷右子樹,最后訪問根結點;并且,在遍歷左、右子樹時,仍然先遍歷左子樹,然后遍歷右子樹,最后訪問根結點。
word/media/image1_1.png 疑難解答:樹與二叉樹的不同之處是什么?
在二叉樹中,每一個結點的度最大為2,即所有子樹(左子樹或右子樹)也均為二叉樹,而樹結構中的每一個結點的度可以是任意的。
1.5查找技術
考點9 順序查找
考試鏈接:
考點9在筆試考試中考核幾率在30%,一般出現選擇題中,分值為2分,讀者應該具體掌握順序查找的算法。
查找是指在一個給定的數據結構中查找某個指定的元素。從線性表的第一個元素開始,依次將線性表中的元素與被查找的元素相比較,若相等則表示查找成功;若線性表中所有的元素都與被查找元素進行了比較但都不相等,則表示查找失敗。
在下列兩種情況下也只能采用順序查找:
(1)如果線性表為無序表,則不管是順序存儲結構還是鏈式存儲結構,只能用順序查找。
(2)即使是有序線性表,如果采用鏈式存儲結構,也只能用順序查找。
考點10 二分法查找
考試鏈接:
考點10在筆試考試中考核幾率為30%,一般出現填空題中,分值為2分,考核比較多查找的比較次數,讀者應該具體掌握二分查找法的算法。
二分法只適用于順序存儲的,按非遞減排列的有序表,其方法如下:
設有序線性表的長度為n,被查找的元素為i,
(1)將i與線性表的中間項進行比較;
(2)若i與中間項的值相等,則查找成功;
(3)若i小于中間項,則在線性表的前半部分以相同的方法查找;
(4)若i大于中間項,則在線性表的后半部分以相同的方法查找。
word/media/image1_1.png 疑難解答:二分查找法適用于哪種情況?
二級公共基礎知識試題(3)
公共英語二級(PETS2)語法基礎知識
一、名詞
1.可數名詞 可數名詞是指能計數事物名稱的詞,包括個體名詞和集體名詞,有單、復數形式。復數名詞構成法如下: 以s,x,ch,sh結尾的名詞加-es(除stomach)。 以輔音字母加y結尾的名詞,要變y為-ies。但以元音字母加y結尾時直接加-s。 以f或fe結尾的名詞須直接加-s的,如:beliefs,roofs,proofs,gulfs,chiefs,safes,serfs。變f或fe為-ves的,如:knives,leaves,halves,wives,lives,thieves.wolves,shelves,loaves。注意handkerchief的復數可直接加-s。也可變f為-ves。 以o結尾直接加-s,如:zoos,pianos,kilos,photos,autos,radios。加-es,如:Negroes,heroes,potatoes。 復數不規則的名詞,如:man—men,woman—women,foot—feet,goose—geese,ox—oxen,child—children,tooth—teeth等。 單復數形式一樣的名詞,如:Chinese,Japanese,sheep,deer,means,works等。
2.不可數名詞 不可數名詞一般沒有單復數之分,它包括物質名詞、抽象名詞和專有名詞。 以-ics結尾的表示學科名稱的名詞一般用做單數。 某些以-s結尾的表示單一事物的專有名詞常用做單數。
3.名詞的所有格 (1) “’s”所有格。一般名詞后加“’s”。如:Tom’s brother’s bag。 以-s或-es結尾的復數名詞,在名詞右上方加“’”。如:the workers’organization。 以-s結尾的專有名詞所有格,若以讀音[Z]結尾,一般可在名詞右上方加“’”,也可加“’s”。如:Dickens’/Dickens’s cup。 如果一樣東西為兩個人共有,則只有后一個名詞加“’s”;如果不是共有的,兩個名詞后都要加“’s”。如:Tom and Mary’s room(共有);Mary’s and Tom’s cups(不共有)。 (2) 表示無生命東西的名詞,通常采用of+名詞的結構來表示所有關系,總的來講of所有格是’s所有格的一種替換形式。如:the class—room of the school。 (3) 表示時間、距離、國家、城市、團體、機構等無生命東西的名詞,也可以加“’s”來構成所有格。如:today’s newspaper。
二、冠詞
1.不定冠詞a,an 表示one或every。如:You have a mouth。 表示某一類人、事或物,相當于any。如:A spade is a tool。 用于某些固定詞組中。如:a bit,a lot of。 泛指某人或某物。如:A boy is waiting for her。 用在rather,many,what等詞之后。如:You are rather a fool。 注意:名詞以元音音素開頭時,前面若加不定冠詞,要用“an”。
2.定冠詞the 表示上文已提到過或下文將要提到的人或事物。如:I am very interested in the book。 表示獨一無二的人或事物。如:the world,the sun,the moon,the earth。 用在序數詞、形容詞最高級及對兩人或物進行比較時起特定作用的比較級前。如:the young,the second story,the largest room。 用在以-ese,-ch,-sh等結尾和表示國家、黨派等專有名詞前,以及在江、河、湖、海、山川、群島的名詞前。如:the Communist Party of China,the Changjiang River,the Great Lake。 用在方位名詞前以及某些表示時間的詞組或習慣語中。如:in the west,on the right。 用在形容詞前表示一類人。如:the young,the dead。 在姓氏復數形式前,表示全家人,或這一姓氏的夫婦倆。如:The Turners are sitting at the breakfast table。 用在單數可數名詞前,表示某一類人或事物。如:The horse is a use-ful animal。 在藝術、文娛活動名稱前通常用定冠詞。如:go to the cinema。
3.不加冠詞 (1) 一般專有名詞、物質名詞、抽象名詞、人名、地名等名詞前不加冠詞。如:America,China,Shanghai Railway Station。但是當一個抽象名詞或物質名詞被限定時,前面加the。如:The milk in the bottle has gone bad抽象名詞或物質名詞前或后加上表示其特殊性質或類別的修飾詞,指概念的“一種”、“一類”、“一次”等時,用不定冠詞。如:After a swim,he had a rest。 (2) 可數名詞前有物主代詞、指示代詞、不定代詞、名詞所有格等限制時,不加冠詞。如:This book is mine。 (3) 季節、月份、日期、一日三餐前一般不加冠詞。如:Summer is the warmest season of the year。如果月份等被一個限定性定語修飾,就要加冠詞。如:Jack joined the Army in the spring of 2002。 (4) 表示語言學科名稱、球類運動的名詞前一般不用冠詞。如:He is studying French in Paris。但是在the Chinese language,the English lan-guage等中要用定冠詞。 (5) 在以“普通名詞或形容詞最高級+as”開始的讓步狀語從句中,前面不加冠詞。如:Shortest as he is。
三、數詞
1.基數詞 (1) 21~99之間的二位數由十位數加個位數再加連字符構成。如24可寫成twenty-four。 (2) 101~999之間的三位數由hundred加and再加二位數或末位數構成。加489可寫成four hundred and eighty-nine。 (3) 表示確切數目時,基數詞hundred,thousand,million,billion不加s。如several hundred,ten million。但是表示不確定數目時,要用復數形式。如hundreds of。 (4) 表示“在幾十年代”用“in+the+逢十的數詞復數”。如in the1980s或80’s。
2.序數詞 一般由基數詞加-th構成,前面一般加定冠詞the。如the two hundredth。 以y結尾的基數詞構成序數詞時,把y改成i,再加-eth。如the fiftieth。 不規則的序數詞有first,second,third,fifth,eighth,ninth,twelfth。
3.其他幾種數詞 (1) 分數由基數詞和序數詞合成,分子用基數詞,分母用序數詞。分子大于l時,分母的序數詞要用復數形式。如 11/3讀做three and two thirds 1/3讀做one(a)third; 但1/2讀做one(a)half,1/4讀做one(a)quarter。 (2) 小數點讀做point;“零”讀做zero;帶小數點的數字從左至右依次讀出。如0.2讀做zero point two。 (3) 百分數讀做percent。如17%讀做seventeen percent。
四、代詞
1.人稱代詞 人稱代詞的主格做主語;賓格做賓語或表語。
2.物主代詞 物主代詞有兩大類,一般形容詞性物主代詞做定語;名詞性物主代詞做主語、賓語和表語。
3.反身代詞 反身代詞由形容詞性物主代詞加-self或-selves構成 如:myself,yourself,himself,herself,itself,ourselves,yourselves,themselves 反身代詞在句子中可充當賓語、表語和同位語。
4.疑問代詞 常用的疑問代詞有who,whom,whose,whoever,which,what等。疑問代詞用來構成特殊疑問句,可用做主語、賓語、表語和定語。
5.指示代詞 指示代詞表示單數的有this,that;表示復數的有these,those。用法如下: (1) 在句中做主語、賓語和定語。 (2) this(these)一般用來指時間和空間上較近的人或物;that(those)指時間和空間上較遠的人或物。
6.不定代詞 不定代詞具有名詞和形容詞的性質,并有可數與不可數的區別。不定代詞的種類較多,用法和側重點略有不同,介紹如下。 (1) one,some與any的區別:one作為不定代詞可以泛指任何人,還可以替代名詞詞組或名詞詞組中的中心詞,其復數形式為ones;some表示肯定意義,一般用于肯定旬;any表示否定或疑問意義,多用于疑問、否定句中。 (2) each與every的區別:each通常用來指小到兩個,強調個別,可以充當定語、主語、賓語和同位語;every則通常指三個以上的人,強調整體,相當于漢語的“每個都”,在句中只做定語。 (3) none與no的區別:no(not any)在句子中做定語;none在句中做主語或賓語,代替不可數名詞做主語時,謂語動詞用單數形式;代替可數名詞做主語時,謂語動詞可用單數,也可用復數。 (4) other與another的區別:other可用于單數和復數,泛指“另外的”,做定語,常與復數名詞或單數不可數名詞連用;others是other的復數形式,泛指“別的人或物”,但不是全部;the other指“兩者中的另一個”,常與one連用,做定語修飾復數名詞時,表示另一方中的“全部其余的”;the others是the other的復數形式,特指“全部其余的人或物”;another指不確定的另一個,三個或三個以上中的“任何一個”、“再一…”、“另一個”,做代詞或形容詞。 (5) both與all的區別:both指兩個人或物;all指三個以上的人或物。兩者在句中都可做主語、賓語、表語、同位語和定語。 (6) either與neither的區別:either表示“兩個中的任何一個”;neither表示“兩個中的任何一個都不”。兩個詞都表示單數。
五、形容詞和副詞的比較等級
比較等級分為原級、比較級和最高級。
1.原級用法 ① 表示被比較雙方在某一方面相等或相同時, 用as + adj / adv + as結構, 表示“…和…一樣” 。如: a. Xiao Li is as tall as his sister. b. It is as cold today as it was yesterday. c. There are as many seats in this hall as in that hall. ② 表示被比較雙方在某一方面不相等或不同時, 用not as / so + adj / adv + as, 表示“…和…不一樣” a. Xiao Li is not as / so tall as his brother. b. It is not so / as cold today as yesterday. c. There are not so / as many seats in this hall as in that hall.
2.比較級的用法 ① 對方比較,表示一方超過另一方時,用“比較級 + than”的結構表示。如: This picture is more beautiful than that one. ② 表示一方不及另一方時,用“less + 原級 + than”的結構表示。如: This room is less beautiful than that one. ③ 表示一方超過另一方的程度或數量時,可在比較級前加表示程度的狀語,如even、a lot、a bit、a little、still、much、far、yet、by fay等修飾。如: He works even harder than before. 注意:英語的比較級前如無even、still或yet等時,譯成漢語時可用“較”或“…一些”或不譯出,一般不可有“更”。如: She is better than she was yesterday. Please come earlier tomorrow. 另注意:by far通常用于強調最高級。用于比較級時,一般放在比較級的后面,如在前面,應在二者中間加“the”。如: He is taller by far than his brother. He is by far the taller of the two brothers. ④ 表示一方隨另一方的程度而變化時,用“the + 比較級(主語 + 謂語),the + 比較級(主語 + 謂語)”的結構(意為“越……越……”)。如: The harder he works, the happier he feels. ⑤ 不與其他事物相比,表示本身程度的改變時,用“比較級 + and + 比較級”的結構。如: The weather is getting colder and colder. The girl becomes more and more beautiful. ⑥ 某些以-ior結尾的形容詞進行比較時,用to代替than。這些詞有inferior(劣等的,次的)、superior(較好的,優于……)、junior(資歷較淺的)、senior(資格較老的)、prior(在……之前)等。 He is superior to Mr. Zhang in chemistry. ⑦ 在比較從句中為了避免重復,我們通常用that(those)、one(ones)代替前面出現的名詞。that指物,one既可指人又可指物。that可代替可數名詞單數和不可數名詞,而one只能代替可數名詞。 The book on the table is more interesting than that(或the one)on the desk. A box made of steel is stronger than one made of wood. ⑧ 倍數表達法。 (A)A is three(four, etc.)times the size(height, length etc.)of B. 如:The new building is four times the size(the height)of the old one.? (B)A is three(four, etc.)times as big(high, long, etc.)as B. 如:Asia is four times as large as Europe.? (C)A is three (four, etc.)times bigger(higher, longer, etc.)than B. 如:Your school is three times bigger than ours.? 用times 表倍數通常用于三倍以上,兩倍可以用twice或double.
3.最高級的用法 ①三者或三者以上相比,表示最高程度時,用“the + 最高級”的結構表示。這種句式一般常有表示比較范圍的介詞短語。如: Zhang Hua is the tallest of the three. He works(the)hardest in his class. ②最高級可被序數詞以及much、by far、nearly、almost 、by no means、not quite、not really、nothing like等詞語所修飾。如: This hat is by far / much / nearly / almost / not nearly / by no means / not quite / nothing like the biggest. How much did the second most expensive hat cost? ③表示“最高程度”的形容詞,如excellent、extreme、perfect等,沒有最高級,也不能用比較級。 ④形容詞最高級修飾作表語或介詞賓語的名詞、代詞時,被修飾的詞往往省略。如: He is the tallest(boy)in his class. ⑤作狀語的副詞最高級前可以不加定冠詞。如: Of all the boys he came(the)earlies
六、情態動詞
情態動詞表示的是說話人的態度,沒有人稱和數的變化,雖然其本身具有一定的詞匯意義,但不能獨立使用。它與其后邊的動詞原形構成謂語。具體用法如下:
1.can和could的用法 表示智力或體力方面的能力或表示客觀的可能性,還可以表示請求和允許。用在否定句、疑問句或感嘆句中,表示驚異、懷疑、不相信的態度。
2.may和might的用法 表示可能、允許。表示請求、允許時,might比may客氣些。否定回答時可用can’t或mustn’t,表示“不可以”、“禁止”、“阻止”之意。 用May I…征詢對方許可,在文體上比較正式,在口氣上比較客氣。在日常口語中,特別是在現代口語中,用Can I…征詢對方意見更為常見。 用于祈使句中表示祝愿。 表示推測、可能(不用于疑問句)。
3.must和have to的用法 (1) 表示“必要的”must問句,如果是否定的回答,不能用mustn’t,而要用needn’t或don’t have to。 (2) 表示“可能性很大的“推測,結構為“must be+表語”,它的否定或疑問形式用can代替must。 (3) must和have to表示“必須”時,意思很相似,但應注意下列幾點區別: must表示的是說話人的主觀看法;而have to則往往強調客觀條件的作用。 must一般只有現在時;have to則有更多的時態形式。 must可以表示推斷;而have to則不能表示推斷。 詢問對方的意愿時應用must。 二者的否定意義大不相同。must not表示禁止,是說話人強有力的勸告,意為“絕不可以”、“不準”、“不允許”。don’t have to意為“不必”。
4.shall和should的用法 shall用于第一人稱時,表示說話人征求對方的意愿,用于第一、第三人稱疑問旬中時,表示說話人征求對方的意見或向對方請求,用于第二、第三人稱時,表示說話人給對方的命令、警告、允許或威脅。 should表示勸告、建議、命令,其同義詞是ought to。在疑問句中,通常用should 代替ought to。
5.will和would的用法 (1) 表示請求、建議時,would的語氣比will委婉。 (2) 表示意志、愿望和決心時用will。 (3) 表示過去習慣用would,比used to正式,且沒有“現已無此習慣”的含義。 (4) would表示估計或猜想。
七、動詞
動詞是表示動作或狀態的詞,有時態、語態、語氣和數等形式上的變化。
1.動詞的時態 時態是動作或情況發生于不同時間時,謂語動詞的不同形式。英語動詞常用的有8種:一般現在時、一般過去時、一般將來時、現在進行時、過去進行時、現在完成時、過去完成時、過去將來時。
(1) 一般現在時 表示現在經常性、習慣性的動作及現在的狀態、特征、普通真理或事實。 在時間、條件狀語從句中,表示將來。 表示按計劃、規定要發生的動作或要做的事。 表示狀態和感覺的動詞常用一般現在時,不用現在進行時。 書報的標題、小說等的情節介紹常用一般現在時。
(2) 一般過去時 表示過去的動作或狀態。 表示過去經常發生的動作,也可用“used to”和“would+動詞原形”。
(3) 一般將來時 表示將來要發生的動作或將要所處的狀態。其表達形式除了“will或shall+動詞原形”外,還有以下幾種: “be going to do”表示即將發生的或最近打算做的事。 “be to do”表示按計劃進行或征求對方意見。 “be about to do”表示即將發生的動作,意同be ready to do sth.,后面一般不跟時間狀語。 go,come,move,leave,stay等可用進行時態表示按計劃即將發生的動作。 在日程計劃安排方面,也可以用某些動詞(如:go,leave,start,stay等)的一般現在時表示將來。
(4) 現在進行時 表示現在正在進行的動作,由“to be+現在分詞”構成。另外,“系動詞+介詞或副詞”也表示進行時的意義。 表示感覺、愿望和狀態的某些動詞(如:have,be,hear,see,like等)一般不用進行時。
(5) 現在完成時 由“have+過去分詞”構成。其使用有兩種情況: 表示的動作在說話之前已完成或剛完成,但對現在有影響。 表示的動作開始于過去,持續到現在。 還可用在時間和條件狀語從句中,表示將來某時完成的動作。
(6) 過去進行時 表示在過去某一時刻、某一段時間進行的動作,由“was(were)+現在分詞”構成。
(7) 過去完成時 過去完成時由“had +過去分詞”構成。表示過去某一時刻以前完成的動作或狀態。 表示過去某一時刻之前發生的動作或狀態持續到過去某個時間或持續下去。
(8) 過去將來時 表示從過去某時看將來要發生的動作或存在的狀態。過去將來時由“should或would+動詞原形”構成。第一人稱用should,其他人稱用would。
2.被動語態 (1) 當句子的主語是動作的承受者時,謂語的形式叫被動語態,由助動詞be+過去分詞構成,時態通過be表現出來。
(2) 一些特殊的被動結構如下:帶情態動詞的被動結構。如:This work can be finished in a week。 帶不定式的被動結構。如:The homework needs to be done with care。
八、介詞
介詞又叫前置詞,是一種虛詞。常用于名詞詞組和其他與之相當的結構之前,表示類似成分的關系。
1.介詞構成
(1) 簡單介詞是南一個單詞構成的介詞,可分為3類: ①普通介詞:如at,by,for,from,in,of,on,to,with等,這里列舉的9個介詞是英語中最常用的簡單介詞,它們約占介詞使用率的92%; ②合成介詞:如onto,within等; ③分詞介詞:如including等。
(2) 二重介詞是由兩個簡單介詞連用而構成。如from behind,until after等。
(3) 短語介詞是由兩個或兩個以上的詞所組成的短語構成的介詞。一般說來,這個短語的最后一個詞是簡單介詞。如in front of,because of等。
2.幾個常用介詞的區別
(1) at,in,on和by表示時間的區別在于:at表示時間的單位最小,通常表示時間的某一點、某一時刻等。如:at four o’clock。也可指某個節日或一年中發生大事的日子。如:Her grandfather died at seventy-two。 in表示某個較長的時間(如世紀、朝代、年、月、季節,以及泛指的上午、下午和傍晚等)內。如:He was born in 2002。 on表示具體的時日和一個特定的時間,如:某節日、星期幾以及在某個特定的早晨、下午或晚上,也可表示“準(時),按(時)”等。如:on New Year’s day。 by表示“不遲于,在(某時)前,在……前,在……的時候”。如:I don’t like travelling by night。
(2) near,by,beside均表示“在……附近”,但它們之間有所區別: near表示相對的“近”,實際距離可能還很遠。如:Tianjin is near Beijing。 by和beside都表示“靠近”,實際距離不可能很遠,beside比by更具體地表示出“有……旁邊”的意思。如:He was sitting beside her。 by還可表示“尺寸、距離”。如:They escaped death by inches。
(3) at,in和on均表示地點,但它們之間有所區別: at表示較小的地方。如:She shall wait for you at the station。 in表示較大的地方。如:She lives in Beijing。雖然是很小的地方,如果說話人住在那里,也可用in。機構的組織用at,機構所在的地方用in。如:He is at college及He is in the college today。 on表示在某個物體上面,意為“在……上”。如:She put the glass on the table and sat on the chair。
(4) in,to和on都用在方位名詞前,但它們之間有所區別: in表示在某范圍之內。 t0表示在某范圍之外的地方。 on表示“毗鄰”、“接壤”。
(5) above,over和on均表示“在……上”但它們之間有所區別: above表示在物體上方,不一定在正上方,其反義詞是below。如:He keeps his head above water。 over表示在物體的正上方,其反義詞是under。如:There is a lamp o-ver the desk。 on在物體之上,表示與表面接觸。如:He put a book on the desk。
3、通過活動,使學生養成博覽群書的好習慣。
B比率分析法和比較分析法不能測算出各因素的影響程度。√C采用約當產量比例法,分配原材料費用與分配加工費用所用的完工率都是一致的。X
C采用直接分配法分配輔助生產費用時,應考慮各輔助生產車間之間相互提供產品或勞務的情況。錯
C產品的實際生產成本包括廢品損失和停工損失。√
C成本報表是對外報告的會計報表。×
C成本分析的首要程序是發現問題、分析原因。×
C成本會計的對象是指成本核算。×
C成本計算的輔助方法一般應與基本方法結合使用而不單獨使用。√C成本計算方法中的最基本的方法是分步法。XD當車間生產多種產品時,“廢品損失”、“停工損失”的借方余額,月末均直接記入該產品的產品成本
中。×
D定額法是為了簡化成本計算而采用的一種成本計算方法。×
F“廢品損失”賬戶月末沒有余額。√
F廢品損失是指在生產過程中發現和入庫后發現的不可修復廢品的生產成本和可修復廢品的修復費用。X
F分步法的一個重要特點是各步驟之間要進行成本結轉。(√)
G各月末在產品數量變化不大的產品,可不計算月末在產品成本。錯
G工資費用就是成本項目。(×)
G歸集在基本生產車間的制造費用最后均應分配計入產品成本中。對
J計算計時工資費用,應以考勤記錄中的工作時間記錄為依據。(√)
J簡化的分批法就是不計算在產品成本的分批法。(×)
J簡化分批法是不分批計算在產品成本的方法。對
J加班加點工資既可能是直接計人費用,又可能是間接計人費用。√J接生產工藝過程的特點,工業企業的生產可分為大量生產、成批生產和單件生產三種,XK可修復廢品是指技術上可以修復使用的廢品。錯
K可修復廢品是指經過修理可以使用,而不管修復費用在經濟上是否合算的廢品。X
P品種法只適用于大量大批的單步驟生產的企業。×
Q企業的制造費用一定要通過“制造費用”科目核算。X
Q企業職工的醫藥費、醫務部門、職工浴室等部門職工的工資,均應通過“應付工資”科目核算。X
S生產車間耗用的材料,全部計入“直接材料”成本項目。X
S適應生產特點和管理要求,采用適當的成本計算方法,是成本核算的基礎工作。(×)
W完工產品費用等于月初在產品費用加本月生產費用減月末在產品費用。對
Y“預提費用”可能出現借方余額,其性質屬于資產,實際上是待攤費用。對
Y引起資產和負債同時減少的支出是費用性支出。XY以應付票據去償付購買材料的費用,是成本性支出。XY原材料分工序一次投入與原材料在每道工序陸續投入,其完工率的計算方法是完全一致的。X
Y運用連環替代法進行分析,即使隨意改變各構成因素的替換順序,各因素的影響結果加總后仍等于指標的總差異,因此更換各因索替換順序,不會影響分析的結果。(×)
Z在產品品種規格繁多的情況下,應該采用分類法計算產品成本。對
Z直接生產費用就是直接計人費用。XZ逐步結轉分步法也稱為計列半成品分步法。√
A按年度計劃分配率分配制造費用,“制造費用”賬戶月末(可能有月末余額/可能有借方余額/可能有貸方余額/可能無月末余額)。
A按年度計劃分配率分配制造費用的方法適用于(季節性生產企業)
二級公共基礎知識試題(4)
數據結構與算法
一、基本概念:
? 數據(Data):信息的載體,能夠被計算機識別、存儲和加工處理的物理符號。包括文本類型的數據(如:字母、數字、漢字)和多媒體類型的數據(如:聲音、動畫、圖像)。
? 數據元素(Data Element):是數據的基本單位,有時也稱為元素、結點、頂點、記錄,可以有若干個數據項(字段、域、屬性)組成。
? 數據結構(Data Structure):指的是數據之間的相互關系,即數據的組織形式。其包括三個部分:
1、邏輯結構:數據元素之間的邏輯關系
2、存儲結構:數據元素及其關系在計算機存儲器內的表示。
3、數據的運算(算法):即對數據施加的操作
? 數據的邏輯結構有兩大類:
1、線性結構:
特征是:若結構是非空集,則有且僅有一個開始結點和一個終端結點,并且所有結點最多只有一個直接前趨和一個直接后繼。
例:一維數組、鏈表、棧、隊列、串
2、非線性結構:
特征是:一個結點可能有多個直接前趨和直接后繼。
例:多維數組、廣義表、樹、圖
? 數據的存儲結構有以下基本存儲方法:
1、順序存儲方法:
該方法是將邏輯上相鄰的結點存儲在物理位置上相鄰的存儲單元里,結點間的邏輯關系由存儲單元的鄰接關系來體現,一般通過數組來實現的。
2、鏈接存儲方法:
該方法不要求邏輯上相鄰的結點在物理位置上亦相鄰,結點間的邏輯關系是由附加的指針字段表示的。通過指針類型來實現的。
3、索引存儲方法:
該方法通常是在存儲結點信息的同時,還建立附加的索引表,索引表中的每一項稱為索引項,索引項的一般形式是:關鍵字,地址。
4、散列存儲方法:
該方法的基本思想是根據結點的關鍵字直接計算出該結點的存儲地址,通過散列函數實現。例:除余法散列函數、相乘取整法散列函數
? 算法的基本特征:
1、可行性(Effectiveness):針對實際問題而設計的算法,執行后能夠得到滿意的結果。
2、確定性(Definiteness):算法中的每一個步驟都必須有明確的定義,不允許出現歧義性。
3、有窮性(Finiteness):算法必須在有限時間內做完,即必須在執行有限個步驟之后終止。
? 時間復雜度:該算法執行的時間耗費,它是該算法所求解問題規模n的函數。
? 空間復雜度:該算法執行時所耗費的存儲空間,它也是問題規模n的函數。
二、線性表:
? 線性表(Linear List):是由n(n>=0)個數據元素(結點)a1,a2,a3,······,an組成的有限序列。對于非空的線性表,有且僅有一個開始結點a1,它沒有直接前趨;有且僅有一個終端結點an,它沒有直接后繼;其余的結點有且僅有一個直接前趨結點和一個直接后繼結點。
? 線性表的存儲結構:
1、順序存儲(Sequential List):將線性表的結點按邏輯次序依次存放在一組地址連續的存儲單元里,用這種方法存儲的線性表稱為順序表。
2、鏈式存儲(Linked List):邏輯上相鄰的結點,物理上也相鄰,存儲單元可以是連續的,也可以是不連續的,在存儲每個結點值的同時,還存儲指向其后繼結點的地址,用這種方法存儲的線性表稱為鏈表。
? 常見的運算有:
表的初始化、求表的長度、取表中的第i個結點、查找結點、插入新的結點、刪除結點。
? 順序表和鏈表的比較:
1、基于空間的考慮:
A、順序表的存儲空間是靜態分配的,而鏈表的存儲空間是動態分配的。
B、順序表占的存儲空間必須是連續的,而鏈表占的存儲空間可以是連續的,也可是不連續的
C、順序表存儲密度為1,而鏈表中的每個結點,除了數據域外,還要額外的設置指針域,存儲密度小于1
2、基于時間的考慮:
A、在鏈表中的任何位置上進行插入和刪除,只需要修改指針,而順序表中平均將要移動近一半的結點。
B、順序表是隨機存取結構,它的存取時間為O(1),而鏈表需從頭結點順著鏈掃描鏈表。
總之,當線性表的長度變化不大,易于事先確定其大小時,為了節約存儲空間,宜采用順序表作為存儲結構;當線性表的長度變化較大,難以估計其存儲規模時,以采用鏈表作為存儲結構為好。若線性表的操作主要是進行查找,很少做插入和刪除操作時,采用順序表做存儲結構為宜;對于頻繁進行插入和刪除的線性表,宜采用鏈表做存儲結構。
例:關于線性表的描述中,錯誤的是( )
A、線性表是線性結構 B、線性表的順序存儲結構,必須占用一片連續的存儲單元
C、線性表是單鏈表 D、線性表的鏈式存儲結構,不必占用一片連續的存儲單元
用數組表示線性表的優點是( )
A、便于插入和刪除操作 B、便于隨機存取
C、可以動態地分配存儲空間 D、不需要占用一片連續的存儲空間
三、棧:
? 棧(Stack):是限制僅在表的一端進行插入和刪除運算的線性表,通常稱插入、刪除的這一端為棧頂(Top),另一端稱為棧底(Bottom)。當表中沒有元素時稱為空棧。是一種后進先出的線性表,又稱為LIFO表。
? 棧的基本運算有:
棧的初始化、判棧空、判棧滿、進棧、出棧等
? 棧的存儲:
順序存儲、鏈式存儲
例:若進棧的輸入序列是A、B、C、D、E,并且在它們進棧的過程中可以進行出棧操作,則不可能出現的出棧序列是( )
A、EDCBA B、DECBA C、DCEAB D、ABCDE
四、隊列:
? 隊列(Queue):也是一種運算受限的線性表,它只允許在表的一端進行插入,而在另一端進行刪除。允許刪除的一段稱為隊頭(Front),允許插入的一段稱為隊尾(Rear)。(類似于生活中的購物排隊)。是一種先進先出的線性表,又稱為FIFO表。
? 隊列的基本運算:
隊列的初始化、判隊空、判隊滿、入隊、出隊
? 隊列的存儲實現:
順序存儲、鏈式存儲
例:一個隊列的入隊序列是1,2,3,4,則隊列的輸出序列是 ( )
A、4,3,2,1 B、1,2,3,4 C、1,4,3,2 D、3,2,4,1
五、串:
? 串(String):是零個或多個字符組成的有限序列。
串中所包含的字符個數稱為該串的長度。
串中任意個連續字符組成的子序列稱為該串的子串,包含子串的串相應地稱為主串
注:空串是任意串的子串,任意串是其自身的子串
? 串有串常量、串變量之分:
1、串常量在程序中只能被引用但不能改變其值,即只能讀不能寫。
2、串變量其值是可以改變的。
? 串的基本運算:
求串長、串復制、串聯接、串比較、字符定位、
六、樹(非線性結構):
? 樹(Tree):是n(n>=0)個結點的有限集T,T(n=0)為空時稱為空樹,否則它滿足如下兩個條件:
1、有且僅有一個特定的稱為根(Root)的結點
2、其余的結點可分為m(m>=0)個互不相交的子集T1,T2,…….,Tm,其中每個子集本身又是一棵樹,并稱其為根的子樹(Subtree)。
? 在樹的樹形圖表示中,結點通常是用圓圈表示的,結點的名字一般是寫在圓圈旁邊,有時亦可寫在圓圈內。
? 度(Degree):一個結點擁有的子樹數稱為該結點的度。一棵樹的度是指該樹中結點的最大度數。
? 葉子(Leaf):度為零的結點稱為葉子或終端結點
? 分支結點(Node):度不為零的結點稱為分支結點。
? 樹中某個結點的子樹之根稱為該結點的孩子(Child)結點或子結點,相應的該結點稱為孩子結點的雙親(Parents)結點或父結點。
? 同一個雙親的孩子稱為兄弟結點(Sibling)
? 結點的層數(Level)是從根起算,設根的層數為1,其余結點的層數等于其雙親結點的層數加1.
? 樹中結點的最大層數稱為樹的高度(Height)或深度(Depth).
? 森林(Forest):是m(m>=0)棵互不相交的樹的集合。刪去一棵樹的根,就得到一個森林,反之,加上一個結點作樹根,森林就變為一棵樹。
? 二叉樹(Binary Tree):是n(n>=0)個結點的有限集,它或者是空集(n=0),或者由一個根結點及兩棵互不相交的、分別稱作這個根的左子樹和右子樹的二叉樹組成。
二叉樹中,每個結點最多只能有兩棵子樹,并且有左右之分。
? 二叉樹的五種基本形態:
例:具有3個結點的二叉樹有幾種形態。
? 滿二叉樹(Full Binary Tree):一棵深度為k且有2k-1個結點的二叉樹稱為滿二叉樹
? 完全二叉樹(Complete Binary Tree):若一棵二叉樹至多只有最下面的兩層上結點的度數可以小于2,并且最下一層上的結點都集中在該層最左邊的若干位置上,則此二叉樹稱為完全二叉樹。
二叉樹的性質:
性質1:二叉樹第i層上的結點數目最多為2i-1(i>=1)
性質2:深度為k的二叉樹至多有2k-1個結點(k>=1)
性質3:在任意一棵二叉樹中,若終端結點的個數為n0,度為2的結點數為n2,則n0=n2+1
性質4:具有n個結點的完全二叉樹的深度為[lgn]+1(取下整) 或 [lg(n+1)](取上整)。
例:一棵二叉樹的結點數為18個,求它的最小高度
已知度為2的結點數為15個,求葉子結點數
二叉樹的遍歷:
? 遍歷(Traversal):是指沿著某條搜索路線,依次對樹中每個結點均做一次且僅做一次訪問。
前序遍歷:(又稱為先序遍歷、先根遍歷)
若二叉樹為空,則執行空操作。否則:
1、訪問根結點;
2、前序遍歷左子樹;
3、前序遍歷右子樹。
中序遍歷:(又稱為中根遍歷)
若二叉樹為空,則執行空操作。否則:
1、中序遍歷左子樹;
2、訪問根結點;
3、中序遍歷右子樹。
后序遍歷:(又稱為后根遍歷)
若二叉樹為空,則執行空操作。否則:
1、后序遍歷左子樹;
2、后序遍歷右子樹;
3、訪問根結點。
例:已知一棵二叉樹的中序遍歷序列是:FDGBACHE,其后序遍歷序列是:FGDBHECA
求其前序遍歷序列。
一棵二叉樹的前序遍歷序列為ABDGCFK,中序遍歷序列為DGBAFCK,則結點的后序遍歷序列是( )
A、ACFKDBG B、GDBFKCA C、KCFAGDB D、ABCDFKG
七、排序(Sort):
? 所謂排序,就是指整理文件中的記錄,使之按關鍵字遞增(或遞減)次序排列起來。
? 冒泡排序(Bubble Sorting):
通過對待排序序列從后向前或從前向后(從下標較大的元素開始),依次比較相鄰元素的排序碼,若發現逆序則交換,使排序碼較大的元素逐漸從前部移向后部或較小的元素逐漸從后部移向前部(從下標較大的單元移向下標較小的單元)。
? 直接選擇排序(Selection Sorting):
掃描整個線性表,從中選出最小的元素,將它交換到表的最前面;然后對剩下的子表采用同樣的方法,直到子表空為止。
? 直接插入排序(Insertion Sorting):
每次將一個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子文件中的適當位置,直到全部記錄插入完成為止。
? 快速排序(Quick Sorting):任取待排序序列中的某個元素作為基準(一般取第一個元素),通過一趟排序,將待排元素分為左右兩個子序列,左子序列元素的排序碼均小于或等于基準元素的排序碼,右子序列的排序碼則大于基準元素的排序碼,然后分別對兩個子序列繼續進行排序,直至整個序列有序。
各種內部排序方法的比較
例:對一個具有n個元素的序列進行冒泡排序,在最壞情況下,要進行交換的次數是( )
A、n(n+1)/2 B、n(n-1)/2 C、n*n/2 D、n(n+1)/2-1
對n個元素進行冒泡排序過程中,最好情況下的時間復雜性為( )
A、O(1) B、O(log2n) C、O(n2) D、O(n)
對n個元素進行快速排序的過程中,平均情況下的時間復雜性為( )
A、O(1) B、O(lgn) C、O(n2) D、O(nlgn)
八、查找(Searching):
? 所謂查找是指給定一個值K,在含有n個結點的表中找出關鍵字等于給定值K的結點。若找到,則查找成功,返回該結點的信息或該結點在表中的位置;否則查找失敗,返回相關的提示信息。
? 順序查找(Sequential Search)的基本思想是:從表的一端開始,順序掃描線性表,依次將掃描到的結點關鍵字和給定值K相比較,若當前掃描到的結點關鍵字與K相等,則查找成功;若掃描結束后,仍未找到關鍵字等于K的結點,則查找失敗。順序查找即適用順序存儲結構,又適用鏈式存儲結構。
查找成功的平均查找長度為:(n為結點數目)
(1+2+3+4+···+n) / n = (n+1)/2
? 二分查找(Binary Search)又稱折半查找,它是一種效率較高的查找方法,二分查找要求線性表是有序表,即表中結點按關鍵字有序,并且要用向量作為表的存儲結構。另外,二分查找只適用順序存儲結構,在鏈式存儲結構上無法實現二分查找。
查找成功時的平均查找長度:(n為結點數目)
當n很大時,可用近似公式: lg(n+1)-1 表示
軟件工程基礎
一、基本概念:
? 軟件(Software):軟件是一種產品(邏輯產品),指的是計算機中程序及其說明程序的各種文檔。“程序”是計算任務的處理對象和處理規則的描述;“文檔”是有關計算機程序功能、設計、編制、使用的文字或圖形資料。
? 軟件危機的表現:
1、軟件需求的增長得不到滿足
2、軟件開發成本和進度無法控制
3、軟件質量難以保證
4、軟件不可維護或維護程度非常低
5、軟件成本不斷提高
6、軟件開發生產效率的提高趕不上硬件的發展和應用需求的增長
? 軟件工程(Software Engineering):用工程化的方法、科學知識和技術原理來定義、開發、維護軟件的一門學科。
? 軟件工程的目標:
付出較低的開發成本;達到要求的軟件功能;取得較好的軟件性能;開發的軟件易于移植;需要較低的維護費用;能按時完成開發任務,及時交付使用;開發的軟件可靠性高。
? 軟件工程研究的主要內容是軟件開發技術和軟件開發管理兩個方面。
? 軟件生存周期:是指一個軟件從提出開發要求開始直到該軟件報廢(停止運行)為止的整個時期。
? 軟件生存周期模型:是描述軟件開發過程中各種活動如何執行的模型。
? 常用的模型有:瀑布模型、增量模型、螺旋模型、噴泉模型、變換模型和基于知識的模型
瀑布模型是將軟件生存周期各個活動規定為依線性順序連接的若干階段的模型。主要包括問題定義及可行性分析、項目開發計劃、需求分析、概要設計、詳細設計、編碼、測試和維護幾個階段。
例:下列描述中正確的是( )
A、程序就是軟件 B、軟件開發不受計算機系統的限制
C、軟件既是邏輯實體,又是物理實體 D、軟件是程序、數據與相關文檔的集合
二、軟件可行性研究與項目開發計劃:
? 軟件可行性研究的目的是用最小的代價在盡可能短的時間內確定該軟件項目是否能夠開發,是否值得去開發。
? 可行性研究的任務:
A、技術可行性
B、經濟可行性
C、社會可行性(法律可行性)
? 可行性研究的具體步驟:
1、確定項目規模和目標
2、研究正在運行的系統
3、建立新系統的高層邏輯模型
4、導出和評價各種方案
5、推薦可行的方案
6、編寫可行性研究報告
三、軟件需求分析:
? 需求分析是指開發人員要準確理解用戶的要求,進行細致的調查分析,將用戶非形式的需求陳述轉化為完整的需求定義,再由需求定義轉換到相應的形式功能規約(需求規格說明)的過程。
? 需求分析的基本任務:
1、問題識別
A、功能需求
B、性能需求
C、環境需求
D、用戶界面需求
2、分析與綜合,導出軟件的邏輯模型
3、編寫文檔(需求規格說明書)
? 需求分析的方法:
1、結構化分析(Structured Analysis):是面向數據流進行需求分析的方法。
SA方法利用圖形等半形式化的描述方式表達需求,主要描述工具:
A、數據流圖(DFD):是SA方法中用于表示系統邏輯模型的一種工具,以圖形的方式描繪數據在系統中流動和處理的過程。
B、數據字典(DD):用以定義數據流圖中的各個成分的具體含義,為系統的分析、設計及維護提供了有關元素的一致的定義和詳細的描述。
C、描述加工邏輯的結構化語言、判定表、判定樹
2、IDEF方法(是 ICAM Definition的縮寫):
是一種用于進行復雜系統分析和設計的方法,是在結構化分析和設計技術的基礎上提出來的。
3、面向對象分析方法(OOP):
將客觀世界的事物抽象為對象,通過屬性和方法描述對象的狀態和行為,具有繼承、封裝和多態性等特征。
例:軟件開發的結構化分析方法中,常用的描述軟件功能需求的工具是( )
A、業務流程圖、處理說明 B、軟件流程圖、模塊說明
C、數據流程圖、數據字典 D、系統流程圖、程序編碼
四、軟件概要設計:
將軟件需求轉換為軟件表示的過程。
? 軟件概要設計的基本任務:
1、設計軟件系統結構
2、數據結構及數據庫設計(概要設計、邏輯設計、物理設計):
3、編寫概要設計文檔:
4、評審:
? 軟件設計的方法:
模塊化:模塊在程序中是數據說明、可執行語句等程序對象的集合,或者是單獨命名和編址的元素,如高級語言中的過程、函數、子程序等。
? 模塊獨立性指每個模塊只完成系統要求的獨立的子功能,并且與其他模塊的聯系最少且接口簡單。其度量標準是:耦合性和內聚性
? 耦合性也稱塊間聯系,指軟件系統結構中各模塊間相互聯系緊密程度的一種度量。模塊之間聯系越緊密,其耦合性就越強,模塊的獨立性則越差。
? 內聚性也稱塊內聯系,指模塊功能強度的度量,即一個模塊內部各個元素(語句之間、程序段之間)彼此結合的緊密程度的度量。
? 將軟件系統劃分模塊時,盡量做到高內聚低耦合。
例:為了使模塊盡可能獨立,要求( )
A、模塊的內聚程序要盡量高,且各模塊間的耦合程序要盡量強
B、模塊的內聚程序要盡量高,且各模塊間的耦合程序要盡量弱
C、模塊的內聚程序要盡量低,且各模塊間的耦合程序要盡量弱
D、模塊的內聚程序要盡量低,且各模塊間的耦合程序要盡量強
五、軟件詳細設計:
主要確定每個模塊具體執行過程
? 軟件詳細設計的基本任務:
1、為每個模塊進行詳細的算法設計:
2、為模塊內的數據結構進行設計:
3、對數據庫進行物理設計:
4、輸入、輸出格式設計
5、編寫詳細設計說明書:
6、評審:
? 詳細設計常用三種工具:
圖形(流程圖、盒圖、問題分析圖PAD)、
表格(判定表)、
語言(過程設計語言,又稱為偽碼)
六、軟件編碼:
主要是將詳細設計得到的處理過程描述轉換為基于某種計算機語言的程序
常用的計算機語言:
Pascal 、C、C++、Java等
七、軟件測試:
軟件測試代表了需求分析、設計、編碼的最終復審。軟件測試貫穿于軟件開發的全過程。
? 軟件測試的目的:
1、軟件測試是為了盡可能多地發現程序中的錯誤而執行程序的過程。
2、一個好的測試用例能夠發現至今尚未發現的錯誤。
3、一個成功的測試是發現了至今尚未發現的錯誤的測試。
? 軟件測試的原則:
1、測試用例應由輸入數據和預期的輸出數據兩部分組成。
2、測試用例不僅選用合理的輸入數據,還要選擇不合理的輸入數據
3、除了檢查程序是否做了它應該做的事
4、應制定測試計劃并嚴格執行,排除隨意性
5、長期保留測試用例
6、對發現錯誤較多的程序段,應進行更深入的測試
7、程序員避免測試自己的程序
? 軟件測試方法:
1、靜態測試:
是指被測試程序不在機器上運行,而是采用人工檢測和計算機輔助靜態分析的手段對程序進行檢測。
2、動態測試:是指通過運行程序發現錯誤
A、黑盒測試法(功能測試):
主要對軟件的接口進行測試,依據需求規格說明書,檢查程序是否滿足功能要求。常用的技術是等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、綜合策略法
B、白盒測試法(結構測試):
主要測試程序的內部結構和處理過程。常用的技術是語句覆蓋、條件覆蓋、路徑覆蓋、判定覆蓋等
? 軟件測試的實施:
1、單元測試:
單元測試是對軟件設計的最小單位——模塊(程序單元)進行正確性檢驗測試,主要針對模塊的以下五個基本特征進行測試:
A、模塊接口
B、局部數據結構:
C、重要的執行路徑:
D、錯誤處理測試:
E、邊界條件:
2、集成測試:
集成測試是指在單元測試的基礎上,將所有模塊按照設計要求組裝成一個完整的系統進行的測試,故也稱組裝測試或聯合測試。
主要方法有兩種:
非漸增式測試:首先對每個模塊分別進行單元測試,然后再把所有的模塊按設計要求組裝在一起進行測試。
漸增式測試:逐個把未經過測試的模塊組裝到已經過測試的模塊上去,進行集成測試,每加入一個新模塊進行一次集成測試,重復此過程直至程序組裝完畢。
3、確認測試:
確認測試又稱有效性測試,它的任務是檢查軟件的功能與性能是否與需求規格說明書中確定的指標相符合,因而需求規格說明是確認測試的基礎。
4、系統測試:
系統測試是通過測試確認的軟件作為整個計算機系統的一個元素,與計算機硬件、外設、支撐軟件、數據和人員等其他系統元素組合在一起,在實際運行環境下對計算機系統進行一系列的集成測試和確認測試。
? 程序調試:
調試是在進行了成功的測試之后才開始的工作,目的是確定錯誤的原因和位置,并改正錯誤,又稱為糾錯。
例:軟件測試的目的是( )
A、證明軟件的正確性 B、找出軟件系統中存在的所有錯誤
C、盡可能多地發現軟件系統中的錯誤 D、證明軟件系統中存在錯誤
在軟件測試方法中,黑箱測試法和白箱測試法是常用的方法,其中黑箱測試法主要是
用于測試( )
A、結構合理性 B、軟件外部功能 C、程序正確性 D、程序內部邏輯
八、軟件維護:
軟件投入使用后進行的階段,是軟件生存周期中時間最長的一個階段,所花費的精力和費用也是最多的一個階段。主要是因為:隱含的錯誤要修改;新增的功能要加入進去;環境的變化對程序進行變動等。
? 軟件維護的內容有四類:
1、校正性維護:
為了識別和糾正錯誤,修改軟件性能上的缺陷,其占整個維護工作的 21%
2、適應性維護:
為了使應用軟件適應環境(硬件、系統軟件、數據)的變化而修改軟件的過程稱為適應性維護,其占整個維護工作的25%
3、完善性維護:
增加軟件功能、增強軟件性能、提高軟件運行效率而進行的維護活動稱為完善性維護,其占整個維護工作的 50%
4、預防性維護:
為了提高軟件的可維護性和可靠性而對軟件進行的修改稱為預防性維護,其占整個維護工作的 4%
例:軟件維護是指( )
A、維護軟件正常運行 B、軟件的配置更新
C、對軟件的改進、適應和完善 D、軟件開發期的一個階段
軟件生命周期中所花費用最多的階段是( )
A、詳細設計 B、軟件編碼 C、軟件測試 D、軟件維護
數據庫原理基礎
一、基本概念:
? 數據處理:是指將數據轉換成信息的過程
? 數據管理是指對數據的組織、分類、編碼、存儲、檢索和維護提供操作手段
其經歷了以下階段:
1、人工管理
2、文件系統
3、數據庫系統
4、分布式數據庫系統階段
5、面向對象的數據庫系統階段
? 數據庫(Database):是指存儲在計算機存儲設備上的結構化的相關數據的集合,不僅包括數據本身,還包括事物之間的聯系。
?
?
?
?
?
?
?
?
?
? 數據庫應用系統(DBAS):是指系統開發人員利用數據庫系統資源開發出來的,面向某一類實際應用的應用軟件系統。
?
? 數據庫管理系統(DBMS):
?
?
?
?
?
?
對數據庫的建立、使用和維護進行管理和配置的軟件系統。
是數據庫系統的核心
? 數據庫系統(DBS):由硬件系統、數據庫集合、數據庫管理系統及相關軟件、數據庫管理員和用戶組成。
? 數據庫系統的特點:
實現數據共享、減少數據冗余
采用特定的數據模型
具有較高的數據獨立性
統一的數據控制功能
? 實體: 客觀存在并且可以相互區別的事物稱為實體。
? 實體的屬性:實體所具有的物性稱為實體的屬性。
? 實體集:同類型的實體的集合稱為實體集。
? 實體型:屬性的集合表示一種實體類型,稱為實體型。
例:數據庫管理系統能實現對數據庫中數據的查詢、插入、修改和刪除,這類功能稱為( )
A、數據定義功能 B、數據管理功能 C、數據操縱功能 D、數據控制功能
? 聯系:實體之間的對應關系。
聯系的類型:
1、一對一聯系:表現為主表中的每一條記錄只與相關表中的一條記錄相關聯。
例如: 班級與班長, 學校與校長
2、一對多聯系:表現為主表中的每一條記錄與相關表中的多條記錄相關聯。
例如: 班級與學生,部門與職工
3、多對多聯系:表現為一個表中的多個記錄在相關表中同樣有多個記錄相關聯。
例如: 學生與課程, 工程項目與零件
? 數據模型:不僅反映事物本身,還用來表示實體及實體之間聯系的方法。
1、層次模型:用樹形結構表示實體及其之間聯系的模型稱為層次模型。
2、網狀模型:用網狀結構表示實體及其之間聯系的模型稱為網狀模型。
3、關系模型:用二維表結構來表示實體及實體之間的聯系的模型稱為關系模型。
一個二維表稱為一個關系,在VFP稱為數據表。一個關系不僅表示實體本身還表示實體之間的聯系。
例:用樹形結構表示實體之間聯系的模型是( )
A、關系模型 B、網狀模型 C、層次模型 D、以上三個都是
二、關系數據庫:
? 元組(Record):在一個關系中,水平方向的行稱為元組。在VFP中稱為記錄
? 屬性(Field):一個二維表中垂直方向的列稱為屬性。在VFP中稱為字段名
? 域(Domain):屬性的取值范圍。根據數據類型和寬度來決定的。
? 關鍵字(Primary Key):其值能夠惟一標識一個元組的屬性或屬性的組合。
注:關鍵字不能出現空值或重復值
? 外部關鍵字(Foreign Key):如果表中的一個字段不是本表的主關鍵字或侯選關鍵字,而是另外一個表的主關鍵字或侯選關鍵字,這個字段在本表中稱為外部關鍵字。
? 關系性質:
二維表中元組的個數是有限的——元組個數有限性
二維表中元組均不相同——元組的惟一性
二維表中元組的次序可以任意交換——元組的次序無關性
二維表中元組的分量是不可分割的基本數據項——元組分量的原子性
二維表中屬性名各不相同——屬性名惟一性
二維表中屬性與次序無關,可任意交換——屬性的次序無關性
例:關系數據模型中表示實體和實體間的聯系的結構是( )
A、樹型 B、網狀 C、二維表 D、對象
三、關系運算:
? 并(Union):是由兩個關系的元組組成的集合。(兩個關系必須具有相同的關系模式)
? 差(Difference):若有兩個相同結構的關系R和S,R差S的結果屬于R但不屬于S的元組組成的集合。
? 交(Intersection):若有兩個相同的結構關系R和S,交的結果為兩個關系共同的元組。
? 選擇(Selection):從關系中找出滿足給定條件的元組的操作稱為選擇。
? 投影(Projection):從關系模式中指定若干個屬性組成新的關系稱為投影。
? 聯接(Join):是關系的橫向結合,關系模式改變了,是多個關系的關系模式的組合。聯接的結果是多個關系中滿足條件的元組。
二級公共基礎知識試題(5)
一、填空題
1、食品的細菌污染中,假單胞菌屬多見于( )、( )屬在蛋品中常見, ( )屬在罐頭食品中常見,( )屬多乳品中多見。
2、血漿和體液中的鈣存在三種形式: ( )、( ) 和( )。
3、指溶性維生素包括( ) 、( ) 、( ) 、( )。
4、家庭中大米去除黃曲毒素的常用方法是:( ) 、( )。
5、醫院病人的膳食種類有:( ) 、( ) 和( )三類。
6、膳食纖維可分為( )與( )。
7、根據GMP的法律效力分為( )和( )。
二、判斷對錯
1、碳水化合物主要來源于谷薯類和蔬菜水果等植物性食物。( )
2、能量的國際單位是焦耳(J),1千卡=4.184千焦。( )
3、1g蛋白質提供能量4kcal,lg碳水化合物提供能量4kcal,lg脂肪的供能量7kcal.。( )
4、不溶性纖維包括纖維素、半纖維素和果膠。( )
5、嚴重的維生素B1缺乏可出現腳氣病,影響神經或心臟功能。( )
6、老年人膳食脂肪的構成比S:M:P=1.5:1.( )
7、硒對心臟有保護作用,缺乏可導致克山病。( )
8、運動員每人每日的“五個一”食譜包括:500克糧食、500克蔬菜、500克水果、500克奶和50克豆制品。( )
9、青少年減肥應嚴格限制能量攝入,并適得活動。( )
10、糖尿病和肥胖癥病人減何體重是時可以不攝入碳水化合物。( )
11、體力活動就是進行體育鍛煉。( )
12、孕婦血液循環系統發生改變,可出現心理生理性貧血。( )
13、糖尿病人血糖控制越低越好。( )
14、食物價格越貴、品質越精越有營養,進口比國產的有營養。( )
15、易引起臘樣芽孢桿菌食物中毒的不潔食物是剩米飯。( )
16、評價脂肪狀況的最常用指標是三頭肌皮褶厚度。( )
17、中醫理論認為人體生理隨四季而變化,春生,夏長,長夏化,秋收,冬藏。( )
18、根據陰陽五行和臟象學說理論,考|試/大五臟與五色的對應關系為:肝——青,心——赤,脾——黃,肺——白,腎——黑。( )
19、氣虛是臟腑組織機能減退所表現的證候。多由久病體虛,勞累過度,年老體弱等因素所致。( )
20、津液是人體異常水液的總稱。有滋養臟腑、滑潤關節、濡養肌膚等作用。( )
單項選擇題 1、碳水化合物占總能量的百分比為( ) A、12-14% B、25-30% C、55-65% D、30-50% 2、混合食物的特殊動力作用占基礎代謝的百分比是( ) A、4-5% B、5-6% C、10% D、30% 3、一成年男性,身高175cm,體重70kg,考|試/大其身體質量指數為( ) A、19.8 B、22.9 C、23.6 D、24.7 4、用于測定食物中蛋白質的含量的元素為( ) A、碳 B、氫 C、氮 D、氧 5、蛋白質的基本組成單位是( ) A、脂肪酸 B、氨基酸 C、肽 D、葡萄糖醛酸 6、按碳鏈長短分類,中鏈脂肪酸是指含碳( ) A、2-6 B、3-7 C、6-9 D、8-12 7、優質蛋白質主要來源于( ) A、谷類 B、肉蛋奶類 C、蔬菜 D、水果 8、以下哪種食物是鈣的最好來源( ) A、大白菜 B、谷類 C、牛奶 D、水果 9、維生素有多種命名方法,下列兩種命名法不一致的是( ) A、維生素A——視黃醇 B、維生素E——生育酚 C、維生素B1——生物素 D、維生素D——抗壞血酸 10、由胃排空最慢的營養物質是( ) A、碳水化合物 B、蛋白質 C、碳水化合物和蛋白質的混合物 D、脂肪 11、飲用牛奶后,常引起腸胃不適、考|試/大脹氣、痙攣、腹瀉等不良反應,主要原因是( ) A、淀粉酶缺乏或活性降低 B、乳糖酶缺乏或活性降低 C、麥芽糖酶缺乏或活性降低 D、凝乳酶缺乏或活性降低 12、青春發育期的女孩應常吃何種食物以增加碘的攝入( ) A、牛奶 B、瘦肉 C、海產品 D、蔬菜 13、促進兒童少年發育最積極的因素是( ) A、遺傳 B、營養和體育鍛煉 C、生活制度 D、疾病 14、關于運動員的飲食,下列哪項是錯誤的( ) A、飲食中供給足夠的能量 B、飲食中應含有運動員所需要的各種營養素 C、供給的飲食要能量高體積大 D、飲食在易于消化吸收 15、胎兒神經管畸形,考|試/大與何種營養素缺乏有關( ) A、鐵 B、鈣 C、葉酸 D、維生素E
16、糖尿病人治療時,要嚴格控制能量,其治療飲食是稱重飲食,以下哪種食物可以不稱重( ) A、谷類 B、蔬菜 C、水 D、植物油 17、蔬菜應現燒現吃,放置過久會產生對機體有害的物質是( ) A、蛋白質分解 B、酸度增加 C、亞硝酸鹽增加 D、水分增加 18、以下哪條不是中國居民膳食指南的內容( ) A、食物多種谷類為主 B、進食量與體力活動要平衡,保持適宜體重 C、吃清深究少鹽的飲食 D、戒煙限酒 19、以下哪種營養素是微量營養素( ) A、蛋白質 B、碳水化合物 C、脂肪 D、維生素A 20、關于母乳中鈣的含量,哪種說法是錯誤的( ) A、母乳中鈣易吸收 B、鈣磷比適宜 C、母乳鈣含量比牛奶高 D、母親膳食鈣攝入量對乳汁中鈣含量的影響不大 21、嬰兒應何時開始添加含鐵豐富的食物( ) A、2至4周 B、3至4個月 C、4至6個月 D、6至8個月 22、關于嬰幼兒生長所需能量,以下哪種說法是不參考的( ) A、生長的能量消耗為嬰幼兒所特有 B、與生長速度成正比 C、生長所需能量占總能量的60% D、能量供給不足,可導致生長發育遲緩 23、蛋白質對運動員的作用考|試/大哪項是錯誤的( ) A、加速疲勞恢復 B、增強肌肉力量 C、促進血紅蛋白合成 D、能量的主要來源 24、肝膽手術后早期,通常可以選用何種治療飲食( ) A、冷流質飲食 B、半流質飲食 C、低脂流質飲食 D、厚流質飲食 25、易引起亞銷酸鹽中毒的是( ) A、罐裝飲料 B、家藥噴灑蔬菜 C、進食粗制棉籽油 D、腌菜 26、含河豚魚毒素最毒的部位是( ) A、肝臟 B、腎臟 C、卵巢 D、皮膚 27、碘主要存在于( ) A、紅細胞 B、肌肉組織 C、骨骼、牙齒 D、甲狀腺 28、尼克酸缺乏可引起( ) A、夜盲癥 B、甲狀腺腫 C、癩皮病 D、壞血病 29、酪氨酸在體內可由哪種考|試/大必需氨基酸轉化而成( ) A、色氨酸 B、癩氨酸 C、苯丙按酸 D、蛋氨酸 30、下列哪種礦物質是微量元素( ) A、鈉 B、鈣 C、鐵 D、硫
31、急性腎炎飲食治療時,以下哪種食物不可以選用( ) A、面粉 B、咸肉 C、卷心菜 D、蘋果 32、食物與藥物的主要區別是( ) A、結構不同 B、性質不同 C、作用不同 D、來源不同 33、可部分在腸內細菌合成的維生素是( ) A、維生素A B、維生素D C、維生素E D、維生素K 34、大劑量服用維生素C可能引起( ) A、機體抵抗力下降 B、脂肪吸增加 C、腹瀉 D、壞血病 35、膳食調查的目的是( ) A、了解有無營養缺乏癥 B、了解膳食級成及營養素攝取情況 C、了解機體生長發育情況 D、了解機體營養狀況 36、大米和大豆混合食用,哪兩種氨基酸發揮了互補作用( ) A、亮氨酸和賴氨酸 B、賴氨酸和色氨酸 C、蛋氨酸和賴氨酸 D、賴氨酸和苯丙氨酸 37、食物有五味,下列哪項不是五味的內容( ) A、酸 B、辛 C、澀 D、甘 38、臨床見心悸,頭暈,失眠多夢,健忘,考|試/大面色淡白或萎黃,唇、舌色淡,脈細弱多屬( ) A、心氣虛癥 B、心陽虛癥 C、心血虛癥 D、心陰虛癥 39、津液辨證不包括( ) A、津液虧虛癥狀 B、脾癥 C、水停癥 D、痰飲 40、亞油酸是( ) A、18碳2稀酸 B、22碳4稀酸 C、24碳6稀酸 D、18碳4稀酸 42、中醫食物配伍包括( ) A、相須相使 B、以臟補臟 C、“發物”忌口論 D、藥食同源學說 43、黏膜所分泌的黏液中的黏液素(Mucin)是屬于那一種復合蛋白質( ) A、核蛋白質 B、醣蛋白 C、磷蛋白 D、色蛋白 44、那一種胺基酸,考|試/大可間接的合成一種重要的神經傳遞物乙酸膽堿(Acetylcholine)( ) A、笨丙胺酸 B、甲硫胺酸 C、甘胺酸 D、麩胺酸 45、一克食鹽(氯化鈉)含有( ) A、0.3gNa,17gCl B、0.5gNa,0.5gCl C、0.6gNa,0.4gCl D、0.4gNa,0.6gCl
46、B1亦稱為( ) A、抗壞血病因數 B、抗不孕因子 C、抗神經元因子 D、抗癩皮癥因子 47、B6缺乏產的貧血癥為( ) A、巨紅血球癥 B、小紅血球癥 C、溶血性紅血于癥 D、惡性貧血 48、VitB2最怕的是( ) A、光 B、熱 C、酸 D、以上皆非 49、Foklicacid能參與單碳分子的轉移,其活性型為( ) A、Monofolicacid B、Difolicacid C、Trifolicacid D、Tetrafolicacid 50、B2(Riboflavin)是何輔酶之成分?解答:( ) A、FAD B、NAD C、CoASH D、pyridoxal-5-phosphate 四、多項選擇題 1、人體的能量消耗包括以下哪些方面( ) A、基礎代謝 B、與外界交換 C、食物特殊動力作用 D、兒童和生長發育 E、體力活動 2、基礎代謝的影響因素包括( ) A、性別 B、年齡 C、體型 D、應激狀態 E、內分泌 3、以下是人體必需氨基酸的有( ) A、亮氨酸 B、蛋氨酸 C、谷氨酸 D、賴氨酸 E、甘氨酸 4、蛋白質的生理功能包括( ) A、構成和修補人體組織 B、提供能量 C、構成激素和酶 D、維持體內酸堿平衡 E、構成抗體 5、下列哪些物質含碳水化合物( ) A、糖白質 B、糖脂 C、白蛋白 D、DNA E、RNA 6、以下是人體必需脂肪酸的有( ) A、油酸 B、亞油酸 C、花生四烯酸 D、亞麻酸 E、草酸 7、下列哪些食物肥胖患者可以經常食用( ) A、香菇 B、腰果 C、海帶 D、蕎麥 E、芹菜 8、以下為雙糖的是( ) A、葡萄糖 B、蔗糖 C、果糖 D、乳糖 E、麥芽糖 9、下列哪些狀況下機體處于負氮平衡( ) A、長時間發熱 B、疾病恢復 C、老年 D、饑餓 E、兒童 10、膳食纖維是生理功能包括( ) A、降低血漿膽固醇 B、增加糞便體積 C、控制體重和減肥 D、減緩葡萄糖吸收,降低餐后血糖 E、促進胃腸蠕動
11、以下是脂溶性維生素的有( ) A、維生素A B、維生素C C、維生素D D、維生素E E、維生素K 12、維生素A缺乏可出現以下哪些癥狀( ) A、干眼病 B、口角炎 C、皮膚粗糙 D、夜盲 13、核黃素缺乏可出現以下哪些癥狀有( ) A、著倦乏力 B、口角炎 C、舌炎 D、皮炎 E、陰囊皮炎 14、由于鈣缺乏造成的疾病和癥狀包括( ) A、佝僂病 B、骨質疏松 C、肌肉痙攣 D、生長發育遲緩 E、精神緊張,脾氣暴躁 15、以下哪些食物是鐵的良好來源( ) A、動物血 B、肝臟 C、瘦肉 D、蛋黃 E、芝麻醬 16、鋅缺乏的臨床表現包括( ) A、偏食,異食癖 B、矮小,瘦弱 C、腹瀉 D、性功能低下 E、皮膚干燥,炎癥,傷口不易愈合 17、老年人的生理特點包括( ) A、基礎代謝下降 B、體脂增加,骨密度下降 C、消化功能減退 D、眼球晶體失去彈性,易患白內障、 18母乳喂養的優點為( ) A、營養豐富 B、易于消化吸收 C、不易污染 D、含有多種免疫因子 E、緩沖大小,對胃酸中和作用小 19、孕期營養不良對胎兒的影響為( ) A、低出生體重 B、早產兒或小于胎齡兒 C、腦發育受損 D、圍產期新生兒死亡率增高 E、先天畸形 20、與肥胖病發生有關的飲食因素有( ) A、進食過快 B、進食過慢 C、高熱能高脂肪低纖維飲食 D、晚餐過飽 E、高脂肪高碳水化合物
21、根據污染物的性質可將食品污染分為( ) A、生物性污染 B、化學性污染 C、放射性污染 D、雜物污染 E、寄生蟲污染 22、食物中毒發病的特點是( ) A、病人在同一時間食用同樣的食品 B、潛伏期短、來勢急 C、人與人之間沒有傳染性 D、所有病人臨床癥狀相似 E、相互之間有傳染 23、含單不飽和脂肪酸較多的食物有( ) A、豬油 B、茶油 C、椰子油 D、橄欖油 E、紅花油 24、診斷營養素缺乏癥時,用肉眼觀察病人的主要部位是( ) A、頭發 B、口唇、舌 C、眼 D、耳朵 E、皮膚 25、過量攝入蛋白質的危害有哪些( ) A、加重肝、腎負擔 B、脫水、脫鈣 C、泌尿系結石 D、動脈硬化 E、痛風 26、學齡兒童膳食指南的內容包括( ) A、保證吃好早餐 B、養成不挑食、不偏食的良好飲食習慣 C、每天飲奶 D、少吃零食,飲用清淡飲料 E、重視戶外活動 27、黃曲霉菌在下列哪些食品中最易產毒( ) A、大米 B、面粉 C、玉米 D、面包 E、花生 28、兒童、青少年不吃早餐的危害有( ) A、影響生長發育 B、影響學習成績和學習能力 C、體重減輕 D、可能導致肥胖 E、可誘發胃炎、膽結石 29、以下哪些因素發生變化可降低食物的生糖指數( ) A、增加直鏈淀粉 B、改葡萄糖為果糖 C、增加膠體含量 D、食物壓出水分,曬干、膨化 E、大顆粒 30、以下是成堿性食物的有( ) A、谷類 B、蔬菜 C、肉類 D、水果 E、牛奶
31、糖尿病并發癥有哪些( ) A、心臟病 B、中風 C、視網膜病變 D、腎病 32、腫瘤的病因包括( ) A、遺傳因素 B、物理因素 C、化學因素 D、病毒 E、飲食 33、防癌因素有哪些( ) A、維生素A B、植物化學物 C、低脂膳食 D、暴飲暴食 E、硒 34、中醫營養學的內容包括( ) A、食養 B、食療 C、食節 D、食忌 E、保健 35、中醫講“飲食養生,天人合一”,一年四季的物候特點是( ) A、春溫 B、夏熱 C、秋燥 D、科寒 E、長夏濕 36、食物的四氣又叫四性,是指( ) A、溫 B、寒 C、熱 D、平 E、涼 37、健康的生活方式包括( ) A、充足的睡眠 B、每天吃早餐,不吃零食 C、保持正常休重 D、經常鍛煉身體 E、適量飲酒,不吸煙 38、糖尿病治療包括以下哪些措施( ) A、飲食調節 B、注射胰島素 C、適當運動 D、相關教育 E、血、尿糖自我監測 39、補氣的食物有( ) A、粳米 B、黃豆 C、牛肉 D、雞蛋 E、土豆 40、補血的食物有( ) A、大棗 B、肝臟 C、瘦肉 D、桂圓 E、黑木耳
41、滋陰的食物有( ) A、烏骨雞 B、鴨肉 C、豬肉 D、甲魚 E、銀耳 42、補陽的食物有( ) A、羊肉 B、狗肉 C、蝦 D、韭菜 E、刀豆 43、中醫飲食宜忌理論包括( ) A、“食藥同源”學說 B、飲食物的四氣理論 C、飲食物的五味學說 D、飲食物的平衡膳食理論 44、血虛體質益吃( ) A、高鐵 B、高蛋白 C、高維生素 D、辛辣刺激性食物 45、陽虛體質忌食( ) A、干姜 B、鴨肉 C、甜瓜 D、人參 46、職業道德的基本內容是( ) A、愛崗 B、敬業 C、以錢為本 D、損人利已 47、肺虛體質宜食( ) A、百合 B、黃芪 C、豬肺 D、石榴 48、食品污染可造成哪些危害( ) A、急性中毒 B、致畸 C、致突變 D、致癌 E、內分泌失調 49、甲醇中毒可造成哪些損害( ) A、中樞神經系統損害 B、眼部損害 C、代謝性酸中毒 D、呼吸系統損害 E、惡心、嘔吐等消化系統癥狀 50、食物中毒的特點包括( ) A、中毒者在相近的時間內共同食用過同一種食物 B、不傳染 C、發病急劇 D、所有中毒者臨床表現基本相似 E、潛伏期短
51、礦物質的生理功能包括( ) A、維持酸堿平衡 B、構成酶的輔基 C、調節細胞膜的通透性 D、提供能量 E、參與酶的激活 52、與巨幼紅細胞性貧血有關的是( ) A、尼克酸 B、葉酸 C、維生素C D、維生素B12 E、鐵 53、與口咽部癌癥有關的不良膳食習慣有( ) A、食用腌制的肉干、硬餅 B、吃冷飲 C、多吃水果 D、長期飲酒 E、喜吃燙食 54、急性肝炎時飲食營養治療的目的是( ) A、減輕肝代謝負擔 B、促進肝細胞再生 C、抗病毒損傷肝臟 D、促進肝功能恢復 E、保護肝臟 55、食品營養價值的評定主要包括哪些方面( ) A、營養素的種類 B、營養素的含量 C、食品的合理烹調 D、營養素的消化率 E、營養素的利用率 56、人長期處于饑餓狀態,能量代謝負平衡,一定時期后會出現( ) A、基礎代謝降低 B、兒童生長發育停滯 C、成人消瘦,工作能力下降 D、心腦血管病危險性增加 E、能量代謝達到新的低水平上的平衡 57、以下微量元素中,具有潛在毒性,但低劑量時可能具有人體必須功能的是( ) A、錳 B、氟 C、砷 D、鎳 E、鉛 58、暗適應時間延長的原因有( ) A、眼部疾患 B、血糖低 C、睡眠不足 D、維生素A過多 E、維生素A缺乏 59、中國營養學會新公布的膳食參考攝入量(DRIs)包括( ) A、平均需要量(EAR) B、推薦的營養素供給量(RDA) C、推薦攝入量(RNI) D、適宜攝入量(AI) E、可耐愛最高攝入量(UL) 60、大米淘洗過程中,營養素損失的程度取決于( ) A、淘洗次數 B、淘洗水量 C、水溫 D、浸泡時間 E、搓洗程度
二級公共基礎知識試題(6)
二級公共基礎知識-70
(總分:100.00,做題時間:90分鐘)
一、{{B}}單項選擇題{{/B}}(總題數:58,分數:100.00)
1.設a=5,b=6,c=7,d=8,執行語句x=IIf((a>b)And(c>d),10,20)后,x的值是______。
? A.10
? B.20
? C.30
? D.200
(分數:1.50)
?A.
?B.?√
?C.
?D.
解析:[考點] IIf函數 [解析] IIf函數可用于執行簡單的條件判斷操作,它是“If...Then...Else”結構的簡寫版本。 result=IIf(<條件>,<True部分>,<False部分>) “result”是函數的返回值,“條件”是一個邏輯表達式。當“條件”為真時,返回“True部分”的值;當“條件”為假時,返回“False部分”的值。 本題中由于條件的判斷值為False,故此函數返回值為20。
2.語句Print Sgn(-6^2)+Abs(-6^2)+Int(-6^2)的輸出結果是______。
? A.-36
? B.1
? C.-1
? D.-72
(分數:1.50)
?A.
?B.
?C.?√
?D.
解析:[考點] 算術表達式 [解析] 算術表達式的運算次序為:冪(^)→取負(-)→乘、浮點除(*、/)→整除(/)→取模(Mod)→加、減(+、-)→連接(&),Sgn函數會返回參數的符號。所以在本題中表達式等于(-1)+(36)+(-36),最后結果為-1。
3.下面程序運行時,若輸入395,則輸出結果是______。
Private Sub Command1_Click()
Dim x%
x=InputBox("請輸入一個3位整數")
Print x Mod 10, x/100, (x Mod 100)/10
End Sub
? A.3 9 5
? B.5 3 9
? C.5 9 3
? D.3 5 9
(分數:1.50)
?A.
?B.?√
?C.
?D.
解析:[考點] 運算符及表達式 [解析] VB中常用算術運算符有8個,其中冪運算符(^)優先級最高;其次是取負(-)、乘(*)、浮點除(/)、整除(/)、取模(Mod)、加(+)、減(-)。
4.以下關于局部變量的敘述中錯誤的是______。
? A.在過程中用Dim語句或Static語句聲明的變量是局部變量
? B.局部變量的作用域是它所在的過程
? C.在過程中用Static語句聲明的變量是靜態局部變量
? D.過程執行完畢,該過程中用Dim或Static語句聲明的變量即被釋放
(分數:1.50)
?A.
?B.
?C.
?D.?√
解析:[考點] 局部變量 [解析] 局部變量是在過程(事件過程或通用過程)內定義的變量,作用域為該變量所在的過程,定義時使用.Dim、Static關鍵字。使用Dim關鍵字定義的是動態局部變量,過程執行結束后即被釋放;使用Static關鍵字定義的是靜態局部變量,過程執行結束后仍然保留。
5.窗體上有一個Text1文本框,一個Command1命令按鈕,并有以下程序:
Private Sub Command1_click()
Dim n
If Text1.Text<>"123456"Then
n=n+1
Print"口令輸入錯誤" & n & "次"
End If
End Sub
希望程序運行時得到上圖所示的效果,即:輸入口令,單擊“確認口令”命令按鈕,若輸入的口令不是“123456”,則在窗體上顯示輸入錯誤口令的次數。但上面的程序實際顯示的是下圖所示的效果,程序需要修改。下面修改方案中正確的是______。
? A.在Dim n語句的下面添加一句:n=0
? B.把Print"口令輸入錯誤" & n & "次"改為Print”口令輸入錯誤"+n+"次"
? C.把Print"口令輸入錯誤" & n & "次"改為Print”口令輸入錯誤"&Str(n)&"次"
? D.把Dim n改為Static n
(分數:1.50)
?A.
?B.
?C.
?D.?√
解析:[考點] 常量和變量 [解析] 本題中題干部分的程序之所以會產生不合要求的結果,其原因是在單擊事件中的第一條語句為Dim n,這樣的話每次單擊按鈕時觸發此事件,都將會執行這條語句,重新定義一個局部變量n并設其默認初值為0。Static語句在過程級別中使用,用于聲明變量并分配存儲空間,在整個代碼運行期間都能保留使用Static語句聲明的變量的值,因此此處應該使用Static n來聲明變量。
6.設窗體文件中有下面的事件過程:
Private Sub Command1_Click()
Dim s
a%=100
Print a
End Sub
其中變量a和s的數據類型分別是______。
? A.整型,整型
? B.變體型,變體型
? C.整型,變體型
? D.變體型,整型
(分數:1.50)
?A.
?B.
?C.?√
?D.
解析:[考點] 常量和變量 [解析] 在VB中,可以顯式聲明變量和隱式聲明變量。如果使用Dim、Public、Static等關鍵字來聲明變量,則為顯式聲明,此時如果不指定變量的類型,則該變量為變體型變量;如果不使用關鍵字聲明變量而直接使用,視為隱式聲明,此時變量的類型可以使用類型符號來規定,也可以默認為變體型。本題中的變量a就是使用%來隱式聲明,其類型為整型。
7.可以產生30~50(含30和50)之間的隨機整數的表達式是______。
? A.Int(Rnd*21+30)
? B.Int(Rnd*20+30)
? C.Int(Rnd*50-Rnd*30)
? D.Int(Rnd*30+50)
(分數:1.50)
?A.?√
?B.
?C.
?D.
解析:[考點] 內部函數 [解析] 隨機數函數Rnd的功能是用于產生一個小于1但大于或等于0的隨機數。為了生成某個指定范圍內的隨機整數,可使用以下公式: Int((upperbound-lowerbound+1)*Rnd+lowerbound),其中upperbound是隨機整數范圍的上限,lowerbound是隨機整數范圍的下限。本題中upperbound為50,lowerbound為30。
8.把數學表達式表示為正確的VB表達式應該是______。
? A.(5x+3)/(2y-6)
? B.x*5+3/2*y-6
? C.(5*x+3)÷(2*y-6)
? D.(x*5+3)/(y*2-6)
(分數:1.50)
?A.
?B.
?C.
?D.?√
解析:[考點] 運算符及表達式 [解析] VB中常用算術運算符有8個,其中冪運算符(^)優先級最高;其次是取負(-)、乘(+)、浮點除(/)、整除(/)、取模(Mod)、加(+)、減(-),要改變運算的優先級可使用圓括號。
9.以下變量名中合法的是______。
? A.x2-1
? B.print
? C.str_n
? D.2x
(分數:1.50)
?A.
?B.
?C.?√
?D.
解析:[考點] 常量和變量 [解析] 變量是一個名字,給變量命名時應遵循以下4條規則: ①名字只能由字母、數字和下劃線組成; ②名字的第1個字符必須是英文字母,最后一個字符可以是類型說明符; ③名字的有效字符為255個; ④不能用Visual Basic的保留字做變量名,也不能用末尾帶有類型說明符的保留字做變量名,但可以在變量名中嵌入保留字。
10.執行語句Dim X, Y As Integer后,______。
? A.X和Y均被定義為整型變量
? B.X和Y均被定義為變體類型變量
? C.X被定義為整型變量,Y被定義為變體類型變量
? D.X被定義為變體類型變量,Y被定義為整型變量
(分數:1.50)
?A.
?B.
?C.
?D.?√
解析:[考點] 常量和變量 [解析] 本題考查的考點是有關變量定義的。在VB中有一種特殊的類型:變體類型(Variant),這種類型可以包含大部分其他類型的數據。在VB中,如果沒有顯式聲明變量的類型,則該變量默認為變體型(Variant)。如果一條定義語句定義多個變量,每個變量必須單獨說明其類型,若不說明則為變體型。
11.以下關系表達式中,其值為True的是______。
? A."XYZ">"XYz"
? B."VisualBasic"<>"visualbasic"
? C."the"="there"
? D."Integer"<"Int"
(分數:1.50)
?A.
?B.?√
?C.
?D.
解析:[考點] 運算符及表達式 [解析] 本題考查的考點是有關字符串比較的。在VB中可以采用簡單的邏輯運算符進行兩個字符串的比較,即<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、=(等于)、<>(不等于)。在進行比較的時候,將會首先比較字符串第一位的ASCII碼,若相同則比較第二位……以此類推。
12.執行以下程序段
a$="Visual Basic Programming"
b$="C++"
c$=UCase(Left$(a$,7)) & b$ & Right$(a$,12)
后,變量c$的值為______。
? A.Visual BASIC Programming
? B.VISUAL C++Programming
? C.Visual C++Programming
? D.VISUAL BASIC Programming
(分數:1.50)
?A.
?B.?√
?C.
?D.
解析:[考點] 內部函數 [解析] 本題考查的考點是有關取子串函數的。在VB中有3種取子串函數:Left函數用于從字符串左端開始取n個字符;Right函數用于從字符串右端開始取n個字符(注意子串中字符的順序與母串中相同);Mid函數可以實現在任何位置取任何長度的子串,其中長度省略的話將會一直取到串尾。UCase函數用于把字符串轉換成大寫表示。
13.閱讀程序:
Private Sub Form_Click()
a=0
For j=1 To 15
a=a+j Mod 3
Next j
Print a
End Sub
程序運行后,單擊窗體,輸出結果是______。
? A.105
? B.1
? C.120
? D.15
(分數:1.50)
?A.
?B.
?C.
?D.?√
解析:[考點] 運算符及表達式和FOR循環 [解析] 解析:本題考查的考點是有關循環的。本題中循環的特點是:每執行3次循環,依次向a中加上0+1+2也就是3;循環共執行了15次,所以a中的值應該為15。
14.設有如下通用過程:
Public Function Fun(xStr As String)As String
Dim tStr As String, strL As Integer
tStr=""
strL=Len(xStr)
i=strL/2
Do While i<=StrL
tStr=tStr & Mid(xStr,i+1,1)
i=i+1
Loop
Fun=tStr & tStr
End Function
在窗體上畫一個名稱為Text1的文本框和一個名為Command1的命令按鈕。然后編寫如下的事件過程:
Private Sub Command1_Click()
Dim S1 As String
S1="ABCDEF"
Text1.Text=LCase(Fun(S1))
End Sub
程序運行后,單擊命令按鈕,文本框中顯示的是______。
? A.ABCDEF
? B.abcdef
? C.defdef
? D.defabc
(分數:1.50)
?A.
?B.
?C.?√
?D.
解析:[考點] 內部函數和DO循環 [解析] 本題考查的考點是有關字符串處理的。本題中過程中的循環變量i的初值是字符串長度的一半,終值是字符串長度,結合循環中的取子串函數,整個循環的功能是取得字符串的后一半放入tstr中,然后連接上自身的值返回到調用程序。
15.為把圓周率的近似值3.14159存放在變量pi中,應該把變量pi定義為______。
? A.Dim pi As Integer
? B.Dim pi(7) As Integer
? C.Dim pi As Single
? D.Dim pi As Long
(分數:1.50)
?A.
?B.
?C.?√
?D.
解析:[考點] 常量和變量 [解析] 本題考查的考點是有關VB中的數據類型的。VB提供了很多種數據類型,其中能接受小數值的有單精度型Single和雙精度型Double。
16.表達式2*3^2+4*2/2+3^2的值是______。
? A.30
? B.31
? C.49
? D.48
(分數:1.50)
?A.
?B.?√
?C.
?D.
解析:[考點] 運算符及表達式 [解析] 本題考查的考點是有關算術運算的。按照運算符的優先級,首先執行3^2得到9,然后用2乘以9得到18;然后計算4*2/2=4;最后計算3^2得到9,三者相加得到最后結果31。
17.設a=4,b=5,c=6,執行語句Print a<b And b<c后,窗體上顯示的是______。
? A.True
? B.False
? C.出錯信息
? D.0
(分數:1.50)
?A.?√
?B.
?C.
?D.
解析:[考點] 運算符及表達式 [解析] 本題考查的考點是有關邏輯運算和關系運算的。邏輯運算就是兩個邏輯型的量進行運算,邏輯運算符的優先級低于關系運算符,故本題先計算And兩端的表達式結果,這兩個表達式的結果都為True,所以二者相與的結果也為True。
18.以下不能輸出“Program”的語句是______。
? A.Print Mid("VBProgram", 3, 7)
? B.Print Right("VBProgram", 7)
? C.Print Mid("VBProgram", 3)
? D.Print Left("VBProgram", 7)
(分數:1.50)
?A.
?B.
?C.
?D.?√
解析:[考點] 內部函數 [解析] 本題考查的考點是有關取子串函數的。在VB中有3種取子串函數:Left函數用于從字符串左端開始取n個字符;Right函數用于從字符串右端開始取n個字符(注意子串中字符的順序與母串中相同);Mid函數可以實現在任何位置取任何長度的子串,其中長度省略的話將會一直取到串尾。本題中D選項的結果是VBprogr,不符合題意。
19.若變量a未事先定義而直接使用(例如:a=0),則變量a的類型是______。
? A.Integer
? B.String
? C.Boolean
? D.Variant
(分數:1.50)
?A.
?B.
?C.
?D.?√
解析:[考點] 常量和變量 [解析] 本題考查的考點是有關變量定義的。在VB中有一種特殊的類型:變體類型(Variant),這種類型可以包含大部分其它類型的數據。在VB中,如果沒有顯式聲明變量的類型,則該變量默認為變體型(Variant)。
20.以下選項中,不合法的Visual Basic的變量名是______。
? A.a5b
? B._xyz
? C.a-b
? D.andif
(分數:1.50)
?A.
?B.?√
?C.
?D.
解析:[考點] 常量和變量 [解析] VB中變量的命名應遵循規則為:①名字只能由字母、數字和下劃線組成;②名字的第一個字符必須是英文字母,最后一個字符可以是類型說明符;③名字的有效字符為255個;④不能用VB中的保留字做變量名。
21.在Visual Basic中,表達式3*2/5 Mod 3的值是______。
? A.1
? B.0
? C.3
? D.出現錯誤提示
(分數:1.50)
?A.?√
?B.
?C.
?D.
解析:[考點] 運算符及表達式 [解析] 在VB的常見算術運算符中,冪運算符(^)優先級最高,后面依次是取負(-)、乘(*)、浮點除(/)、整除(/)、取模(Mod)、加(+)、減(-)、字符串連接(&)。其中,乘和浮點除是同級運算符,加和減是同級運算符。按優先級順序本題逐步運算結果為:3*2/5 Mod 3=6/5 Mod 3=1 Mod 3=1。
22.窗體上有一個名稱為Text1的文本框,一個名稱為Command1的命令按鈕。窗體文件的程序如下:
Private Type x
a As Integer
b As Integer
End Type
Private Sub Command1_Click()
Dim y As x
y.a=InputBox("")
If y.a/2=y.a/2Then
y.b=y.a*y.a
Else
y.b=Fix(y.a/2)
End If
Text1.Text=y.b
End Sub
對以上程序,下列敘述中錯誤的是______。
? A.x是用戶定義的類型
? B.InputBox函數彈出的對話框中沒有提示信息
? C.若輸入的是偶數,y.b的值為該偶數的平方
? D.Fix(y.a/2)把y.a/2的小數部分四舍五入,轉換為整數返回
(分數:1.50)
?A.
?B.
?C.
?D.?√
解析:[考點] 數據類型 [解析] 在VB中可以利用Type語句定義自己的數據類型;InputBox()函數用于顯示一個輸入框,提示用戶輸入一個數據,該函數返回值默認為字符串類型,其常用語法格式為:InputBox(Prompt[,Title][,Default])。其中,Prompt字符串為輸入框上顯示的提示文本、Title字符串在輸入框的標題欄上顯示、Default字符串為輸入框的缺省文本;Fix函數將刪除所給數的小數部份后返回剩下的整數;表達M/2=M/2可用于判斷整數M是否為偶數。 本題中當輸入的數是偶數時,y.b的值將為其的平方。
23.關于下面用戶自定義類型Employee的定義,說法正確的是______。
Type Employee
GiverName As String: FamilyName As String*10
Extension As Variant: Salary As Long
End Type
? A.Employee的定義有錯誤,成員Salary的定義有誤
? B.Employee的定義有錯誤,Extension不能定義為變體Variant類型
? C.Employee的定義有錯誤,GiverName應該為定長的字符串
? D.Employee的定義是正確的,GiverName可以為變長的字符串
(分數:1.50)
?A.
?B.
?C.
?D.?√
解析:[考點] 自定義數據類型 [解析] 用Type語句定義的數據類型也稱為記錄類型,其每個元素可被定義為不同的數據類型,但在隨機文件中使用時,字符串型元素必須使用定長字符串。題目中的自定義類型完全正確。
24.以下能正確定義數據類型SystemInfo的代碼是______。
? A.Type SystemInfo DiskDrives As String*10 Memory As Long End Type
? B.Type Systeminfo DiskDrives As String*10 Memory As Long End Systemlnfo
? C.Type SystemInfo DiskDrives String*10 Memory Long End Type SystemInfo
? D.DefType Systemlnfo DiskDrives String*10 Memory Long End Type
(分數:1.50)
?A.?√
?B.
?C.
?D.
解析:[考點] 自定義數據類型 [解析] 用Type語句自定義數據類型時,其語法格式為: Type數據類型名 數據類型元素名As類型名 數據類型元素名As類型名 ... End Type
25.設有如下的記錄類型:
Type Student
Number As String: Name As String
Age As Integer
End Type
則能正確引用該記錄類型變量的代碼是______。
? A.Student.name=" "
? B.Dim s As Student: s.age=17
? C.Dim s As Type Student: s.name="小明"
? D.Dim s As Type: s.Number="1001"
(分數:1.50)
?A.
?B.?√
?C.
?D.
解析:[考點] 自定義數據類型 [解析] 變量在聲明為自定義數據類型(即記錄類型)后,才能作為記錄類型變量使用,引用該記錄類型變量中某元素的格式為:記錄類型變量名.元素名。
26.關于用戶自定義數據類型的說法錯誤的是______。
? A.可以用Type語句創建用戶定義的類型,該語句必須置于模塊的聲明部分
? B.用戶定義類型可以用適當的關鍵字聲明為Private或Public
? C.對于兩個屬于同一個用戶定義類型的變量,不能將其中一個變量賦給另一個變量
? D.對同一種用戶定義類型,可以聲明為局部的、私有的或公用的模塊級變量
(分數:1.50)
?A.
?B.
?C.?√
?D.
解析:[考點] 自定義數據類型 [解析] 對于兩個屬于同一個用戶定義類型的變量,能將其中一個變量賦給另一個變量。
27.關于變量作用域,下列敘述中正確的是______。
? A.局部變量的作用域可以超出所定義的過程
? B.在窗體的Form Load事件過程中定義的變量是全局變量
? C.在調用過程時,所有局部變量被系統初始化為0或空字符串
? D.在某個Sub過程中定義的局部變量可以與其他事件過程中定義的局部變量同名,但其作用域只限于該過程
(分數:1.50)
?A.
?B.
?C.
?D.?√
解析:[考點] 變量作用域 [解析] 在過程(事件過程或通用過程)內定義的變量是局部變量,其作用域為該變量所在的過程,不同過程中定義的局部變量可以同名。在過程中用Static定義的變量,在每次調用該過程時,該變量的值將被保留。
28.下列敘述中有錯誤的是______。
? A.變量名的第一個字符必須是字母
? B.變量名的長度不超過255個字符
? C.變量名可以包含小數點或者內嵌的類型聲明字符
? D.變量名不能使用關鍵字
(分數:1.50)
?A.
?B.
?C.?√
?D.
解析:[考點] 變量命名 [解析] 給:①名字只能由字母、數字和下劃線組成;②名字的第1個字符必須是英文字母,最后一個字符可以是類型說明符;③名字的有效字符為255個;④不能用Visual Basic的保留字做變量名,也不能用末尾帶有類型說明符的保留字做變量名,但可以在變量名中的保留字嵌入。
29.下列______標識符不能作為VB的變量名。
? A.ABCabe
? B.b1234
? C.28wed
? D.crud
(分數:1.50)
?A.
?B.
?C.?√
?D.
解析:[考點] 變量命名 [解析] 根據變量命名的4條規則,C選項以數字開頭,不能用做變量名。
30.聲明一個變量為局部變量應該用______。
? A.Global
? B.Private
? C.Static
? D.Public
(分數:1.50)
?A.
?B.
?C.?√
?D.
解析:[考點] 變量 [解析] 聲明一個變量為局部變量應該用Dim或Static關鍵字。
31.設有變量聲明語句:Dim DateA As Date,為變量DateA正確賦值的表達方式是______。
? A.DateA=#1/1/2009#
? B.DateA=#"1/1/2009"#
? C.DateA=date("1/1/2009")
? D.DateA=Format("m/d/yy","1/1/2009")
(分數:1.50)
?A.?√
?B.
?C.
?D.
解析:[考點] 日期型變量 [解析] 在程序中使用日期型數據時,應將該數據放在一對“#”中間。
32.以下聲明語句中錯誤的是______。
? A.Constx="ABC"
? B.Dim x=123
? C.DefInt a-z
? D.Static x As Integer
(分數:1.50)
?A.
?B.?√
?C.
?D.
解析:[考點] 變量賦值 [解析] 在顯示聲明一個變量時,不能同時為該變量賦值。
33.下列語句運行時系統會給出錯誤提示的是______。
? A.Print -32000-799
? B.Print "12"+10
? C.Print "AB" & 888
? D.Print 3=6=8
(分數:1.50)
?A.?√
?B.
?C.
?D.
解析:[考點] 變量取值范圍 [解析] 表達式“-32000-799”的值為-32799,超過了整型數取值范圍:-32768~32767,將出現溢出錯誤。
34.已知變量x、y為整數型,且x=4,y=12,s為字符串型,且s="a",LblOk為標簽控件,下列賦值語句合法的是______。
? A.x=LblOk.Caption
? B.LblOk.caption=Str(x)
? C.x*3=y
? D.y=x*s
(分數:1.50)
?A.
?B.?√
?C.
?D.
解析:[考點] 賦值語句 [解析] 賦值語句:目標操作符=源操作符,一般情況下“目標操作符”和“源操作符”的數據類型必須一致,否則將出現“數據類型不匹配”錯誤。也不能給一個表達式賦值。
35.以下選項中,正確地描述了x>y和y>z同時成立的表達式是______。
? A.x>y.And.y>z
? B.x>y>z
? C.x>y And x>z
? D.x>y And y>z
(分數:1.50)
?A.
?B.
?C.
?D.?√
解析:[考點] 關系運算符與邏輯運算符 [解析] 在Visual Basic中表示區間與數學中有所不同。例如判斷區間[a,b],應表示為a<=i And i<=b,其中And為邏輯與運算符。
36.以下4個語句中,輸出邏輯值為"True"的是______。
? A.Print Not(3+5<4+6)
? B.Print 2>1 And 3<2
? C.Print 1>2 Or 2>3
? D.Print Not(1>2)
(分數:1.50)
?A.
?B.
?C.
?D.?√
解析:[考點] 關系運算符與邏輯運算符 [解析] 在一個包含多種運算的表達式中,優先級順序為:首先進行函數運算,接著進行算術運算,然后進行關系運算(=、>、<、>=、<=、<>),最后進行邏輯運算(Not→And→Or→Xor→Eqv→Imp)。本題A、B、C選項表達式運算結果均為False,D選項表達式運算結果為True。
37.不能正確表示條件“兩個整型變量A和B之一為0,但不能同時為0”的布爾表達式是______。
? A.A*B=0 And A+B<>0
? B.(A=0 or B=0)And(A<>0 Or B<>0)
? C.not(A=0 And B=0)And(A=0 or B=0)
? D.A*B=0 And(A=0 or B=0)
(分數:1.50)
?A.
?B.
?C.
?D.?√
解析:[考點] 關系運算符與邏輯運算符 [解析] 本題選項D中,關系表達式A*B=0中,可能是A=0或B=0或A、B同時為0,而布爾表達式A=0 or B=0可能的情況也是A=0或B=0或A、B同時為0。
38.表達式Int(8*Sqr(36)*10^(-2)*10+0.5)/10的值是______。
? A.0.48
? B.0.048
? C.0.5
? D.0.05
(分數:1.50)
?A.
?B.
?C.?√
?D.
解析:[考點] 運算符及表達式 [解析] Int()取整函數刪除所給數的小數部分而返回剩下的整數,Sqr()平方根函數返回所給數的算術平方根。本題逐步運算結果為:Int(8*Sqr(36)*10^(-2)*10+0.5)/10=Int(8*6*10^(-2)*10+0.5)/10=Int(8*6*0.01*10+0.5)/10=Int(4.8+0.5)/10=Int(5.3)/10=5/10=0.5。
39.設x=4,y=8,z=7,則表達式“x<y And(Not y>z)Or z<x”的運算結果是______。
? A.1
? B.-1
? C.True
? D.False
(分數:1.50)
?A.
?B.
?C.
?D.?√
解析:[考點] 關系運算符及表達式 [解析] 按優先級順序,本題逐步運算結果為:x<y And(Not y>z)Or z<x→True And(Not True)Or False→True And False Or False→False Or False→False。
40.表達式13000+"129" & 200的值是______。
? A.13329
? B."13129200"
? C."130********"
? D."13329"
(分數:1.50)
?A.
?B.
?C.?√
?D.
解析:[考點] 算術運算符 [解析] 在Visual Basic中“+”除了可以用于算術運算外,也可用于字符串之間的連接,但為避免不必要的錯誤,常用“&”作為字符串連接符。
41.若a=8,b=6,c=1,執行語句:Print a>b>c后,窗體上顯示的是______。
? A.False
? B.True
? C.1
? D.出錯信息
(分數:1.50)
?A.?√
?B.
?C.
?D.
解析:[考點] 關系運算符 [解析] 本題逐步運算結果為:a>b>c→True>1→False,在VB中,True轉換為整型數為-1。
42.若a=3,b=5,則以下表達式值為真的是______。
? A.(a>b) Or (b>0)
? B.a>=b And b>10
? C.(a<0) Eqv (b>0)
? D.(-3+5>a) And (b>0)
(分數:1.50)
?A.?√
?B.
?C.
?D.
解析:[考點] 關系運算和邏輯運算 [解析] 邏輯運算符And為邏輯與,Or為邏輯或,Eqv為等價。
43.設有聲明語句:Dim N As Integer。如果Sgn(N)的值為-1,則N的值是______。
? A.大于0的整數
? B.小于0的整數
? C.小于0的數
? D.等于0的整數
(分數:1.50)
?A.
?B.
?C.?√
?D.
解析:[考點] 變量與數學函數 [解析] Sgn(N)符號函數,返回一個表示N(數值型數據)的正、負或0的值。N>0,返回1;N=0,返回0;N<0,返回-1。
44.表達式String(1,"I am lihua")+Replace("am hansome","nsome","PPY")&"!"的值是______。
? A."I am lihua am happy!"
? B."I am happy!"
? C."I am lihua am hansome!"
? D."I am lihua I am s am hansome lihua am happy!"
(分數:1.50)
?A.
?B.?√
?C.
?D.
解析:[考點] 字符串函數 [解析] String$(n,字符串)函數返回一個由n個字符串首字符組成的字符串。Replace(字符串1,字符串2,字符串3)函數的功能是將字符串1中與字符串2相同部分,用字符串3替換。本題函數String(1, "I am lihua")的值為“I”,Replace("am hansome","nsome","ppy")的值為“am happy”,表達式運算結果為:"I am happy!"。
45.在窗體上畫一個名稱為Command1的命令按鈕。單擊命令按鈕時執行如下事件過程:
Private Sub Command1_Click()
a$="software and hardware":b$=Right(a$,8)
c$=Mid(a$,1,8):MsgBox a$,,b$,c$,1
End Sub
則在彈出的信息框標題欄中顯示的標題是______。
? A.software and hardware
? B.hardware
? C.software
? D.1
(分數:2.00)
?A.
?B.?√
?C.
?D.
解析:[考點] MsgBox函數 [解析] MsgBox()函數用于顯示提示信息,并可返回一個代表用戶單擊了哪個按鈕的Integer類型值,注意:這個返回值是MsgBox()函數的而不是MsgBox語句的。其常用語法為:MsgBox(prompt[,buttons][,title])。 其中:prompt參數為消息框的提示信息并不能省略;buttons參數是一個整數用于控制消息框中按鈕的數目、類型及消息框圖標的樣式;title參數為消息框標題欄上顯示的內容,若省略則為默認值(也就是工程的名字)。本題中標題欄上的內容為變量b,即hardware。
46.如果執行一個語句后彈出如圖所示的窗口,則這個語句是______。
? A.InputBox("輸入框", "請輸入VB數據")
? B.x=InputBox("輸入框", "請輸入VB數據")
? C.InputBox("請輸入VB數據", "輸入框")
? D.x=InputBox("請輸入VB數據", "輸入框")
(分數:2.00)
?A.
?B.
?C.
?D.?√
解析:[考點] InputBox函數 [解析] InputBox函數可產生一個對話框,這個對話框作為輸入數據的界面,等待用戶輸入數據,并返回輸入的內容。InputBox函數其格式為: InputBox(Prompt,[title][,default][,xpos,ypos][,helpfile,context]) 該函數有7個參數,其中Prompt是必需的,作為對話框消息出現的字符串表達式。Prompt的最大長度大約是1024個字符,由所用字符的寬度決定。如果Prompt包含多個行,則可在各行之間用回車符(Chr(13))、換行符(Chr(10))或回車和換行符的組合(Chr(13)&Chr(10))來分隔;Title是可選的,顯示對話框標題欄中的字符串表達式。如果省略Title,則把應用程序名放入標題欄中。 由于InputBox是一個函數而不是語句,因此需要將其返回值保存至某個變量中。
47.下面不能在信息框中輸出“VB”的是______。
? A.MsgBox#"VB"
? B.x=MsgBox("VB")
? C.MsgBox("VB")
? D.Call MsgBox "VB"
(分數:2.00)
?A.
?B.
?C.
?D.?√
解析:[考點] MsgBox函數 [解析] MsgBox()函數用于顯示提示信息,并可返回一個代表用戶單擊了哪個按鈕的Integer類型值,當其作為函數使用時必須將參數放在括號內部,而返回值可以賦值給一個變量,也可以單獨使用此函數而不將其返回值賦值給變量;MsgBox過程也用于顯示提示信息,作為過程必須使用Call關鍵字來進行調用,其參數不能加括號。
48.用來設置文字字體是否斜體的屬性是______。
? A.FontUnderline
? B.FontBold
? C.FontSlope
? D.Fontltalic
(分數:2.00)
?A.
?B.
?C.
?D.?√
解析:[考點] 字形 [解析] 與字體有關的屬性有:字體類型屬性FontName,字體大小屬性FontSize,粗體字屬性FontBold,斜體字屬性FontItalic,加刪除線字屬性FontStrikethru,加下劃線(即底線)屬性FontUnderline。
49.下列敘述中正確的是______。
? A.MsgBox語句的返回值是一個整數
? B.執行MsgBox語句并出現信息框后,不用關閉信息框即可執行其他操作
? C.MsgBox語句的第一個參數不能省略
? D.如果省略MsgBox語句的第3個參數(Title),則信息框的標題為空
(分數:2.00)
?A.
?B.
?C.?√
?D.
解析:[考點] MsgBox函數 [解析] 本題考查的考點是有關MsgBox語句的。MsgBox()函數用于顯示提示信息,并可返回一個代表用戶單擊了哪個按鈕的Integer類型值,注意:這個返回值是MsgBox()函數的而不是MsgBox語句的。其常用語法為:MsgBox(prompt[,buttons][,title])。 其中,prompt參數為消息框的提示信息并不能省略;buttons參數是一個整數用于控制消息框中按鈕的數目、類型及消息框圖標的樣式;title參數為消息框標題欄上顯示的內容,若省略則為默認值(也就是工程的名字)。當語句被執行時顯示消息框,必須等消息框關閉后才能繼續后面的操作。
50.在窗體上畫一個名稱為Command1的命令按鈕,然后編寫如下事件過程:
Private Sub Command1_Click()
c=1234:c1=Trim(Str(c))
For i=1 To 4
Print______
Next
End Sub
程序運行后,單擊命令按鈕,要求在窗體上顯示如下內容:
1
12
123
1234
則在橫線處應填入的內容為______。
? A.Right(c1,i)
? B.Left(c1,i)
? C.Mid(c1,i,1)
? D.Mid(c1,i,i)
(分數:2.00)
?A.
?B.?√
?C.
?D.
解析:[考點] 字符串函數和Print語句 [解析] 從本題Print方法顯示出來的結果可以看出,第一行是字符串的第一個字符,第二行是字符串的前兩個字符……,每行輸出的內容正好是字符串的前i位(i為循環變量)。能實現此功能的可以是:Left(c1,i)或Mid(c1,1,i),題目中只提供了前者。
51.執行語句“a=8.8596:Print Format(a,"$00,00.00")”后,正確的輸出結果是______。
? A.0,008.86
? B.$8.86
? C.8.6
? D.$0,008.86
(分數:2.00)
?A.
?B.
?C.
?D.?√
解析:[考點] Print方法 [解析] 本題格式輸出中要求:數據位長度為6,其中整數部分4位,小數部分2位,不足部分補0;使用千位分隔符,從小數點左邊一位開始,每3位加一個“,”;使用前導符“$”。
52.有以下程序段,單擊Command1按鈕后,打印機上的輸出結果是______。
Private Sub Command1_Click()
For i=6 To 9
Printer.Print Tab(i*i),i
Next i
End Sub
? A.6 7 8 9
? B.6 7 8 9
? C.6 7 8 9
? D.6 7 8 9
(分數:2.00)
?A.
?B.
?C.
?D.?√
解析:[考點] Print方法 [解析] Tab函數的功能是將光標移至由參數n(列號)所指定的位置,并從這個位置開始輸出信息。一般情況下,每執行完一次Print方法會自動換行。
53.指令“Circle(1500,1200),1000,,,,0.5”將會繪制出的圖形為______。
? A.圓
? B.正方形
? C.橢圓
? D.圓弧
(分數:2.00)
?A.
?B.
?C.?√
?D.
解析:[考點] 作圖語句 [解析] Circle方法用于在對象上畫圓、橢圓或弧,其語法為:object.Circle[Step](x,y),radius,[color,start,end,aspect]。其中,(x,y)圓心坐標;R是圓半徑;color表示線的顏色;start、end三個參數表示圓弧的開始和結束(可省掉參數,但逗號不能省);aspect參數表示水平長度和垂直長度之比,當其值不為1時為橢圓。本題中aspect參數值為0.5,故為橢圓。 另:Line方法在對象上畫直線和矩形,其語法為:object.Line[Step](x1,y1)[Step](x2,y2),[color],[B][F]。其中,(x1,y1)、(x2,y2)分別表示直線或矩形左上至右下對角線起點和終點坐標;參數B表示畫矩形,參數BF表示畫實心矩形。
54.InputBox函數返回值的類型為______。
? A.數值
? B.字符串
? C.變體
? D.數值或字符串
(分數:2.00)
?A.
?B.?√
?C.
?D.
解析:[考點] InputBox函數 [解析] InputBox()函數用于顯示一個輸入框,提示用戶輸入一個數據,該函數返回值默認為字符串類型。
55.設有語句:x=InputBox("請輸入數值", "1", "輸入"),程序運行后,如從鍵盤輸入10并按回車鍵,則下述正確的是______。
? A.變量x的值是數值10
? B.在InputBox對話框標題欄中顯示的是“輸入”
? C.變量x的值是字符串“10”
? D.1是默認值
(分數:2.00)
?A.
?B.
?C.?√
?D.
解析:[考點] InputBox函數 [解析] InputBox函數默認返回值為字符串類型,格式為:InputBox(Prompt,[title][,default][,xpos,ypos][,helpfile,context])。其中,第一個參數是顯示信息;第二個參數是對話框標題;第三個參數是顯示在輸入框中的默認值。
56.執行語句:a=InputBox("Today","Tomorrow","Yesterday",,,"Day before yesterday",5),將顯示一個對話框,在該對話框的輸入區中顯示的信息是______。
? A.Today
? B.Tomorrow
? C.Yesterday
? D.Day before yesterday
(分數:2.00)
?A.
?B.
?C.?√
?D.
解析:[考點] InputBox函數 [解析] InputBox函數默認返回值為字符串類型,格式為:InputBox(Prompt,[title][,default][,xpos,ypos][,helpfile,context])。其中,第一個參數是顯示信息;第二個參數是對話框標題;第三個參數是顯示在輸入框中的默認值。
57.關于函數返回值,下列敘述不正確的是______。
? A.MsgBox函數返回值為所單擊按鈕的鍵值
? B.InputBox函數返回值為字符型
? C.Shell函數返回值為所執行文件的工作代碼
? D.MsgBox語句返回值為所單擊按鈕的鍵值
(分數:2.00)
?A.
?B.
?C.
?D.?√
解析:[考點] InputBox函數、MsgBox函數和Shell函數 [解析] MsgBox()函數用于顯示提示信息,并可返回一個代表用戶單擊了哪個按鈕的Integer類型值,而MsgBox語句沒有返回值;InputBox函數為用戶提供一個輸入數據的界面,其默認返回值為字符串類型:Shell函數返回值為所執行文件的工作代碼。
58.在窗體上有一個名為Command1的命令按鈕,并有如下事件過程:
Private Sub Command1_Click()
a$="Swallows Mod Genulled":b$=Right(a$,8)
c$=Mid(a$,1,8):MsgBox a$,,b$,c$,1
End Sub
程序執行時,單擊命令按鈕,則在彈出的消息框的標題欄中顯示的是______。
? A.Swallows Mod Genulled
? B.Genulled
? C.Swallows
? D.1
(分數:8.00)
?A.
?B.?√
?C.
?D.
解析:[考點] MsgBox函數 [解析] 本題中彈出消息框的標題由MsgBox函數的第三個參數,變量b$決定,而b$=Right(a$,8)="Genulled"。
二級公共基礎知識試題(7)
公共英語二級(PETS2)語法基礎知識
一、名詞
1.可數名詞
可數名詞是指能計數事物名稱的詞,包括個體名詞和集體名詞,有單、復數形式。復數名詞構成法如下:
以s,x,ch,sh結尾的名詞加-es(除stomach)。
以輔音字母加y結尾的名詞,要變y為-ies。但以元音字母加y結尾時直接加-s。
以f或fe結尾的名詞須直接加-s的,如:beliefs,roofs,proofs,gulfs,chiefs,safes,serfs。變f或fe為-ves的,如:knives,leaves,halves,wives,lives,thieves.wolves,shelves,loaves。注意handkerchief的復數可直接加-s。也可變f為-ves。
以o結尾直接加-s,如:zoos,pianos,kilos,photos,autos,radios。加-es,如:Negroes,heroes,potatoes。
復數不規則的名詞,如:man—men,woman—women,foot—feet,goose—geese,ox—oxen,child—children,tooth—teeth等。
單復數形式一樣的名詞,如:Chinese,Japanese,sheep,deer,means,works等。
2.不可數名詞
不可數名詞一般沒有單復數之分,它包括物質名詞、抽象名詞和專有名詞。
以-ics結尾的表示學科名稱的名詞一般用做單數。
某些以-s結尾的表示單一事物的專有名詞常用做單數。
3.名詞的所有格
(1) “’s”所有格。一般名詞后加“’s”。如:Tom’s brother’s bag。
以-s或-es結尾的復數名詞,在名詞右上方加“’”。如:the workers’organization。
以-s結尾的專有名詞所有格,若以讀音[Z]結尾,一般可在名詞右上方加“’”,也可加“’s”。如:Dickens’/Dickens’s cup。
如果一樣東西為兩個人共有,則只有后一個名詞加“’s”;如果不是共有的,兩個名詞后都要加“’s”。如:Tom and Mary’s room(共有);Mary’s and Tom’s cups(不共有)。
(2) 表示無生命東西的名詞,通常采用of+名詞的結構來表示所有關系,總的來講of所有格是’s所有格的一種替換形式。如:the class—room of the school。
(3) 表示時間、距離、國家、城市、團體、機構等無生命東西的名詞,也可以加“’s”來構成所有格。如:today’s newspaper。
二、冠詞
1.不定冠詞a,an
表示one或every。如:You have a mouth。
表示某一類人、事或物,相當于any。如:A spade is a tool。
用于某些固定詞組中。如:a bit,a lot of。
泛指某人或某物。如:A boy is waiting for her。
用在rather,many,what等詞之后。如:You are rather a fool。
注意:名詞以元音音素開頭時,前面若加不定冠詞,要用“an”。
2.定冠詞the
表示上文已提到過或下文將要提到的人或事物。如:I am very interested in the book。
表示獨一無二的人或事物。如:the world,the sun,the moon,the earth。
用在序數詞、形容詞最高級及對兩人或物進行比較時起特定作用的比較級前。如:the young,the second story,the largest room。
用在以-ese,-ch,-sh等結尾和表示國家、黨派等專有名詞前,以及在江、河、湖、海、山川、群島的名詞前。如:the Communist Party of China,the Changjiang River,the Great Lake。
用在方位名詞前以及某些表示時間的詞組或習慣語中。如:in the west,on the right。
用在形容詞前表示一類人。如:the young,the dead。
在姓氏復數形式前,表示全家人,或這一姓氏的夫婦倆。如:The Turners are sitting at the breakfast table。
用在單數可數名詞前,表示某一類人或事物。如:The horse is a use-ful animal。
在藝術、文娛活動名稱前通常用定冠詞。如:go to the cinema。
3.不加冠詞
(1) 一般專有名詞、物質名詞、抽象名詞、人名、地名等名詞前不加冠詞。如:America,China,Shanghai Railway Station。但是當一個抽象名詞或物質名詞被限定時,前面加the。如:The milk in the bottle has gone bad抽象名詞或物質名詞前或后加上表示其特殊性質或類別的修飾詞,指概念的“一種”、“一類”、“一次”等時,用不定冠詞。如:After a swim,he had a rest。
(2) 可數名詞前有物主代詞、指示代詞、不定代詞、名詞所有格等限制時,不加冠詞。如:This book is mine。
(3) 季節、月份、日期、一日三餐前一般不加冠詞。如:Summer is the warmest season of the year。如果月份等被一個限定性定語修飾,就要加冠詞。如:Jack joined the Army in the spring of 2002。
(4) 表示語言學科名稱、球類運動的名詞前一般不用冠詞。如:He is studying French in Paris。但是在the Chinese language,the English lan-guage等中要用定冠詞。
(5) 在以“普通名詞或形容詞最高級+as”開始的讓步狀語從句中,前面不加冠詞。如:Shortest as he is。
三、數詞
1.基數詞
(1) 21~99之間的二位數由十位數加個位數再加連字符構成。如24可寫成twenty-four。
(2) 101~999之間的三位數由hundred加and再加二位數或末位數構成。加489可寫成four hundred and eighty-nine。
(3) 表示確切數目時,基數詞hundred,thousand,million,billion不加s。如several hundred,ten million。但是表示不確定數目時,要用復數形式。如hundreds of。
(4) 表示“在幾十年代”用“in+the+逢十的數詞復數”。如in the1980s或80’s。
2.序數詞
一般由基數詞加-th構成,前面一般加定冠詞the。如the two hundredth。
以y結尾的基數詞構成序數詞時,把y改成i,再加-eth。如the fiftieth。
不規則的序數詞有first,second,third,fifth,eighth,ninth,twelfth。
3.其他幾種數詞
(1) 分數由基數詞和序數詞合成,分子用基數詞,分母用序數詞。分子大于l時,分母的序數詞要用復數形式。如
11/3讀做three and two thirds
1/3讀做one(a)third;
但1/2讀做one(a)half,1/4讀做one(a)quarter。
(2) 小數點讀做point;“零”讀做zero;帶小數點的數字從左至右依次讀出。如0.2讀做zero point two。
(3) 百分數讀做percent。如17%讀做seventeen percent。
四、代詞
1.人稱代詞
人稱代詞的主格做主語;賓格做賓語或表語。
2.物主代詞
物主代詞有兩大類,一般形容詞性物主代詞做定語;名詞性物主代詞做主語、賓語和表語。
3.反身代詞
反身代詞由形容詞性物主代詞加-self或-selves構成
如:myself,yourself,himself,herself,itself,ourselves,yourselves,themselves
反身代詞在句子中可充當賓語、表語和同位語。
4.疑問代詞
常用的疑問代詞有who,whom,whose,whoever,which,what等。疑問代詞用來構成特殊疑問句,可用做主語、賓語、表語和定語。
5.指示代詞
指示代詞表示單數的有this,that;表示復數的有these,those。用法如下:
(1) 在句中做主語、賓語和定語。
(2) this(these)一般用來指時間和空間上較近的人或物;that(those)指時間和空間上較遠的人或物。
6.不定代詞
不定代詞具有名詞和形容詞的性質,并有可數與不可數的區別。不定代詞的種類較多,用法和側重點略有不同,介紹如下。
(1) one,some與any的區別:one作為不定代詞可以泛指任何人,還可以替代名詞詞組或名詞詞組中的中心詞,其復數形式為ones;some表示肯定意義,一般用于肯定旬;any表示否定或疑問意義,多用于疑問、否定句中。
(2) each與every的區別:each通常用來指小到兩個,強調個別,可以充當定語、主語、賓語和同位語;every則通常指三個以上的人,強調整體,相當于漢語的“每個都”,在句中只做定語。
(3) none與no的區別:no(not any)在句子中做定語;none在句中做主語或賓語,代替不可數名詞做主語時,謂語動詞用單數形式;代替可數名詞做主語時,謂語動詞可用單數,也可用復數。
(4) other與another的區別:other可用于單數和復數,泛指“另外的”,做定語,常與復數名詞或單數不可數名詞連用;others是other的復數形式,泛指“別的人或物”,但不是全部;the other指“兩者中的另一個”,常與one連用,做定語修飾復數名詞時,表示另一方中的“全部其余的”;the others是the other的復數形式,特指“全部其余的人或物”;another指不確定的另一個,三個或三個以上中的“任何一個”、“再一…”、“另一個”,做代詞或形容詞。
(5) both與all的區別:both指兩個人或物;all指三個以上的人或物。兩者在句中都可做主語、賓語、表語、同位語和定語。
(6) either與neither的區別:either表示“兩個中的任何一個”;neither表示“兩個中的任何一個都不”。兩個詞都表示單數。
五、形容詞和副詞的比較等級
比較等級分為原級、比較級和最高級。
1.原級用法
① 表示被比較雙方在某一方面相等或相同時, 用as + adj / adv + as結構, 表示“…和…一樣” 。如:
a. Xiao Li is as tall as his sister.
b. It is as cold today as it was yesterday.
c. There are as many seats in this hall as in that hall.
② 表示被比較雙方在某一方面不相等或不同時, 用not as / so + adj / adv + as, 表示“…和…不一樣”
a. Xiao Li is not as / so tall as his brother.
b. It is not so / as cold today as yesterday.
c. There are not so / as many seats in this hall as in that hall.
2.比較級的用法
① 對方比較,表示一方超過另一方時,用“比較級 + than”的結構表示。如:
This picture is more beautiful than that one.
② 表示一方不及另一方時,用“less + 原級 + than”的結構表示。如:
This room is less beautiful than that one.
③ 表示一方超過另一方的程度或數量時,可在比較級前加表示程度的狀語,如even、a lot、a bit、a little、still、much、far、yet、by fay等修飾。如:
He works even harder than before.
注意:英語的比較級前如無even、still或yet等時,譯成漢語時可用“較”或“…一些”或不譯出,一般不可有“更”。如:
She is better than she was yesterday.
Please come earlier tomorrow.
另注意:by far通常用于強調最高級。用于比較級時,一般放在比較級的后面,如在前面,應在二者中間加“the”。如:
He is taller by far than his brother.
He is by far the taller of the two brothers.
④ 表示一方隨另一方的程度而變化時,用“the + 比較級(主語 + 謂語),the + 比較級(主語 + 謂語)”的結構(意為“越……越……”)。如:
The harder he works, the happier he feels.
⑤ 不與其他事物相比,表示本身程度的改變時,用“比較級 + and + 比較級”的結構。如:
The weather is getting colder and colder.
The girl becomes more and more beautiful.
⑥ 某些以-ior結尾的形容詞進行比較時,用to代替than。這些詞有inferior(劣等的,次的)、superior(較好的,優于……)、junior(資歷較淺的)、senior(資格較老的)、prior(在……之前)等。
He is superior to Mr. Zhang in chemistry.
⑦ 在比較從句中為了避免重復,我們通常用that(those)、one(ones)代替前面出現的名詞。that指物,one既可指人又可指物。that可代替可數名詞單數和不可數名詞,而one只能代替可數名詞。
The book on the table is more interesting than that(或the one)on the desk.
A box made of steel is stronger than one made of wood.
⑧ 倍數表達法。
(A)A is three(four, etc.)times the size(height, length etc.)of B.
如:The new building is four times the size(the height)of the old one.?
(B)A is three(four, etc.)times as big(high, long, etc.)as B.
如:Asia is four times as large as Europe.?
(C)A is three (four, etc.)times bigger(higher, longer, etc.)than B.
如:Your school is three times bigger than ours.?
用times 表倍數通常用于三倍以上,兩倍可以用twice或double.
3.最高級的用法
①三者或三者以上相比,表示最高程度時,用“the + 最高級”的結構表示。這種句式一般常有表示比較范圍的介詞短語。如:
Zhang Hua is the tallest of the three.
He works(the)hardest in his class.
②最高級可被序數詞以及much、by far、nearly、almost 、by no means、not quite、not really、nothing like等詞語所修飾。如:
This hat is by far / much / nearly / almost / not nearly / by no means / not quite / nothing like the biggest.
How much did the second most expensive hat cost?
③表示“最高程度”的形容詞,如excellent、extreme、perfect等,沒有最高級,也不能用比較級。
④形容詞最高級修飾作表語或介詞賓語的名詞、代詞時,被修飾的詞往往省略。如:
He is the tallest(boy)in his class.
⑤作狀語的副詞最高級前可以不加定冠詞。如:
Of all the boys he came(the)earlies
六、情態動詞
情態動詞表示的是說話人的態度,沒有人稱和數的變化,雖然其本身具有一定的詞匯意義,但不能獨立使用。它與其后邊的動詞原形構成謂語。具體用法如下:
1.can和could的用法
表示智力或體力方面的能力或表示客觀的可能性,還可以表示請求和允許。用在否定句、疑問句或感嘆句中,表示驚異、懷疑、不相信的態度。
2.may和might的用法
表示可能、允許。表示請求、允許時,might比may客氣些。否定回答時可用can’t或mustn’t,表示“不可以”、“禁止”、“阻止”之意。
用May I…征詢對方許可,在文體上比較正式,在口氣上比較客氣。在日常口語中,特別是在現代口語中,用Can I…征詢對方意見更為常見。
用于祈使句中表示祝愿。
表示推測、可能(不用于疑問句)。
3.must和have to的用法
(1) 表示“必要的”must問句,如果是否定的回答,不能用mustn’t,而要用needn’t或don’t have to。
(2) 表示“可能性很大的“推測,結構為“must be+表語”,它的否定或疑問形式用can代替must。
(3) must和have to表示“必須”時,意思很相似,但應注意下列幾點區別:
must表示的是說話人的主觀看法;而have to則往往強調客觀條件的作用。
must一般只有現在時;have to則有更多的時態形式。
must可以表示推斷;而have to則不能表示推斷。
詢問對方的意愿時應用must。
二者的否定意義大不相同。must not表示禁止,是說話人強有力的勸告,意為“絕不可以”、“不準”、“不允許”。don’t have to意為“不必”。
4.shall和should的用法
shall用于第一人稱時,表示說話人征求對方的意愿,用于第一、第三人稱疑問旬中時,表示說話人征求對方的意見或向對方請求,用于第二、第三人稱時,表示說話人給對方的命令、警告、允許或威脅。
should表示勸告、建議、命令,其同義詞是ought to。在疑問句中,通常用should 代替ought to。
5.will和would的用法
(1) 表示請求、建議時,would的語氣比will委婉。
(2) 表示意志、愿望和決心時用will。
(3) 表示過去習慣用would,比used to正式,且沒有“現已無此習慣”的含義。
(4) would表示估計或猜想。
七、動詞
動詞是表示動作或狀態的詞,有時態、語態、語氣和數等形式上的變化。
1.動詞的時態
時態是動作或情況發生于不同時間時,謂語動詞的不同形式。英語動詞常用的有8種:一般現在時、一般過去時、一般將來時、現在進行時、過去進行時、現在完成時、過去完成時、過去將來時。
(1) 一般現在時
表示現在經常性、習慣性的動作及現在的狀態、特征、普通真理或事實。
在時間、條件狀語從句中,表示將來。
表示按計劃、規定要發生的動作或要做的事。
表示狀態和感覺的動詞常用一般現在時,不用現在進行時。
書報的標題、小說等的情節介紹常用一般現在時。
(2) 一般過去時
表示過去的動作或狀態。
表示過去經常發生的動作,也可用“used to”和“would+動詞原形”。
(3) 一般將來時
表示將來要發生的動作或將要所處的狀態。其表達形式除了“will或shall+動詞原形”外,還有以下幾種:
“be going to do”表示即將發生的或最近打算做的事。
“be to do”表示按計劃進行或征求對方意見。
“be about to do”表示即將發生的動作,意同be ready to do sth.,后面一般不跟時間狀語。
go,come,move,leave,stay等可用進行時態表示按計劃即將發生的動作。
在日程計劃安排方面,也可以用某些動詞(如:go,leave,start,stay等)的一般現在時表示將來。
(4) 現在進行時
表示現在正在進行的動作,由“to be+現在分詞”構成。另外,“系動詞+介詞或副詞”也表示進行時的意義。
表示感覺、愿望和狀態的某些動詞(如:have,be,hear,see,like等)一般不用進行時。
(5) 現在完成時
由“have+過去分詞”構成。其使用有兩種情況:
表示的動作在說話之前已完成或剛完成,但對現在有影響。
表示的動作開始于過去,持續到現在。
還可用在時間和條件狀語從句中,表示將來某時完成的動作。
(6) 過去進行時
表示在過去某一時刻、某一段時間進行的動作,由“was(were)+現在分詞”構成。
(7) 過去完成時
過去完成時由“had +過去分詞”構成。表示過去某一時刻以前完成的動作或狀態。
表示過去某一時刻之前發生的動作或狀態持續到過去某個時間或持續下去。
(8) 過去將來時
表示從過去某時看將來要發生的動作或存在的狀態。過去將來時由“should或would+動詞原形”構成。第一人稱用should,其他人稱用would。
2.被動語態
(1) 當句子的主語是動作的承受者時,謂語的形式叫被動語態,由助動詞be+過去分詞構成,時態通過be表現出來。
(2) 一些特殊的被動結構如下:帶情態動詞的被動結構。如:This work can be finished in a week。
帶不定式的被動結構。如:The homework needs to be done with care。
八、介詞
介詞又叫前置詞,是一種虛詞。常用于名詞詞組和其他與之相當的結構之前,表示類似成分的關系。
1.介詞構成
(1) 簡單介詞是南一個單詞構成的介詞,可分為3類:
①普通介詞:如at,by,for,from,in,of,on,to,with等,這里列舉的9個介詞是英語中最常用的簡單介詞,它們約占介詞使用率的92%;
②合成介詞:如onto,within等;
③分詞介詞:如including等。
(2) 二重介詞是由兩個簡單介詞連用而構成。如from behind,until after等。
(3) 短語介詞是由兩個或兩個以上的詞所組成的短語構成的介詞。一般說來,這個短語的最后一個詞是簡單介詞。如in front of,because of等。
2.幾個常用介詞的區別
(1) at,in,on和by表示時間的區別在于:at表示時間的單位最小,通常表示時間的某一點、某一時刻等。如:at four o’clock。也可指某個節日或一年中發生大事的日子。如:Her grandfather died at seventy-two。
in表示某個較長的時間(如世紀、朝代、年、月、季節,以及泛指的上午、下午和傍晚等)內。如:He was born in 2002。
on表示具體的時日和一個特定的時間,如:某節日、星期幾以及在某個特定的早晨、下午或晚上,也可表示“準(時),按(時)”等。如:on New Year’s day。
by表示“不遲于,在(某時)前,在……前,在……的時候”。如:I don’t like travelling by night。
(2) near,by,beside均表示“在……附近”,但它們之間有所區別:
near表示相對的“近”,實際距離可能還很遠。如:Tianjin is near Beijing。
by和beside都表示“靠近”,實際距離不可能很遠,beside比by更具體地表示出“有……旁邊”的意思。如:He was sitting beside her。
by還可表示“尺寸、距離”。如:They escaped death by inches。
(3) at,in和on均表示地點,但它們之間有所區別:
at表示較小的地方。如:She shall wait for you at the station。
in表示較大的地方。如:She lives in Beijing。雖然是很小的地方,如果說話人住在那里,也可用in。機構的組織用at,機構所在的地方用in。如:He is at college及He is in the college today。
on表示在某個物體上面,意為“在……上”。如:She put the glass on the table and sat on the chair。
(4) in,to和on都用在方位名詞前,但它們之間有所區別:
in表示在某范圍之內。
t0表示在某范圍之外的地方。
on表示“毗鄰”、“接壤”。
(5) above,over和on均表示“在……上”但它們之間有所區別:
above表示在物體上方,不一定在正上方,其反義詞是below。如:He keeps his head above water。
over表示在物體的正上方,其反義詞是under。如:There is a lamp o-ver the desk。
on在物體之上,表示與表面接觸。如:He put a book on the desk。
二級公共基礎知識試題(8)
二級考試公共基礎知識單元:軟件工程
A005:構成計算機軟件的是()
A、程序和文檔 B、程序和數據 C、程序、數據及相關文檔 D、源代碼
參考答案:C
A006:軟件生命周期可分為定義階段、開發階段和維護階段,下面不屬于開發階段任務的是()
A、可行性研究 B、測試 C、設計 D、實現
參考答案:A
A007:下面不能作為結構化方法軟件需求分析工具的是()
A、數據字典(DD) B、判定表 C、數據流程圖(DFD圖) D、系統結構圖
參考答案:D
A052(圖):軟件詳細設計產生的圖如下:
該圖是()
A、E-R圖 B、PAD圖 C、程序流程圖 D、N-S圖
參考答案:C
A056:軟件設計中劃分模塊的一個準則是()
A、低內聚低耦合 B、高內聚高耦合 C、低內聚高耦合 D、高內聚低耦合
參考答案:D
A057:下列選項中不屬于結構化程序設計原則的是()
A、模塊化 B、可封裝 C、逐步求精 D、自頂向下
參考答案:B
A097:下列不屬于軟件開發階段任務的是()
A、實現 B、設計 C、可行性研究 D、測試
參考答案:C
A148:面向對象方法中,繼承是指()
A、各對象之間的共同性質 B、類之間共享屬性和操作的機制
C、一個對象具有另一個對象的性質 D、一組對象所具有的相似性質
參考答案:B
A149:軟件生命周期是指()
A、軟件的開發過程 B、軟件的運行維護過程
C、軟件產品從提出、實現、使用維護到停止使用退役的過程
D、軟件從需求分析、設計、實現到測試完成的過程
參考答案:C
A150:軟件測試的目的是()
A、評估軟件可靠性 B、改正程序中的錯誤 C、發現程序中的錯誤 D、發現并改正程序中的錯誤
參考答案:C
A189:下列屬于系統軟件的是()
A、財務管理系統 B、數據庫管理系統 C、殺毒軟件 D、編輯軟件word
參考答案:B
A190:程序測試的目的是()
A、執行測試用例 B、診斷和改正程序中錯誤
C、發現并改正程序中錯誤 D、發現程序中的錯誤
參考答案:D
A228:下面對軟件特點描述正確的是()
A、軟件在使用中存在磨損,老化問題 B、軟件是一種邏輯實體,具有抽象性
C、軟件復制不涉及知識產權 D、軟件具有明顯的制作過程
參考答案:B
A229:下面屬于良好程序設計風格的是()
A、隨意使用無條件轉移語句 B、程序效率第一
C、程序輸入輸出的隨意性 D、源程序文檔化
參考答案:D
A230:下面對軟件測試和軟件調試敘述錯誤的是( )
A、正確的執行測試用例 B、嚴格執行測試計劃,排除測試的隨意性
C、軟件測試不需考慮測試成本 D、軟件調試的目的是改正軟件錯誤
參考答案:C
A268:下面屬于軟件設計階段產生的文檔是()
A、詳細設計規格說明書 B、數據流程圖和數據字典
C、軟件需求規格說明書 D、軟件確認測試計劃
參考答案:A
A269:軟件工程包括的要素是()
A、算法和工具 B、技術和管理 C、算法和過程 D、方法 、工具和過程
參考答案:D
A308(圖):某系統結構圖如下圖所示,該系統結構圖中最大扇出數是( )。
A、2 B、1 C、3 D、4
參考答案:C
【扇入指該模塊在結構圖中的直接上層模塊數,扇出是該模塊在結構圖的直接下層模塊數。】
A310:面向對象方法中,實現對象的數據和操作結合于統一體中的是()
A、結合 B、抽象 C、隱藏 D、封裝
參考答案:D
A388:下列敘述中正確的是()
A、內聚度是指模塊間互相連接的緊密程度
B、耦合度是指一個模塊內部各個元素間彼此結合的緊密程度
C、耦合和內聚是不相關的
D、降低耦合度提高內聚度有利于提高模塊的獨立性
參考答案:D
A389:單元測試主要涉及的文檔是()
A、需求規格說明書 B、確認測試計劃 C、總體設計說明書 D、編碼和詳細設計說明書
參考答案:D
A429::軟件按功能可以分為:應用軟件、系統軟件和支撐軟件(或工具軟件)。下面屬于應用軟件的是()
A、編譯程序 B、操作系統 C、教務管理系統 D、匯編程序
參考答案:C
A430::下面敘述中錯誤的是_______
A、程序調試通常也稱為Debug
B、軟件測試應嚴格執行測試計劃,排除測試的隨意性
C、對被調試的程序進行“錯誤定位”是程序調試的必要步驟
D、軟件測試的目的是發現錯誤并改正錯誤
參考答案:D
A469::在軟件設計中_______
A、模塊內聚與耦合無關 B、模塊獨立性僅與內聚度相關
C、應遵循高耦合低內聚的原則 D、應遵循高內聚低耦合的原則
參考答案:D
A471::下面描述正確的是_______
A、軟件測試的目的是發現和改正錯誤 B、軟件測試可以隨機地選取測試數據
C、軟件測試是指動態測試 D、軟件測試是保證軟件質量的重要手段
參考答案:D
A550::程序調試的任務是_______
A、發現并改正程序中的錯誤 B、發現程序中的錯誤
C、設計和運行測試用例 D、診斷和改正程序中的錯誤
參考答案:D
A551:(圖):某系統結構圖如下圖所示,該系統結構圖的寬度是_______
A、3 B、5 C、1 D、2
參考答案:5
二級公共基礎知識試題(9)
第一章 數據結構與算法
1.算法
算法:是指解題方案的準確而完整的描述。
算法不等于程序,也不等于計算方法,程序的編制不可能優于算法的設計。
算法的基本特征:是一組嚴謹地定義運算順序的規則,每一個規則都是有效的,是明確的,此順序將在有限的次數下終止。特征包括:
(1)可行性;
(2)確定性,算法中每一步驟都必須有明確定義,不充許有模棱兩可的解釋,不允許有多義性;
(3)有窮性,算法必須能在有限的時間內做完,即能在執行有限個步驟后終止,包括合理的執行時間的含義;
(4)擁有足夠的情報。
算法的基本要素:一是對數據對象的運算和操作;二是算法的控制結構。
算法的三種基本控制結構:順序結構、選擇結構、循環結構。
算法復雜度包括:算法時間復雜度和算法空間復雜度。
算法時間復雜度是指執行算法所需要的計算工作量。
算法空間復雜度是指執行這個算法所需要的內存空間。
案例0.算法的有窮性是指 (D)
A.算法只能被有限的用戶使用
B.算法程序的長度是有限的
C.算法程序所處理的數據量是有限的
D.算法程序的運行時間是有限的
案例1.下列敘述中正確的是 (BG)
A.一個算法的時間復雜度大,則其空間復雜度必定小
B.算法的時間復雜度與空間復雜度沒有直接關系
C.一個算法的空間復雜度大,則其時間復雜度也必定大
D.算法的時間復雜度與空間復雜度一定相關
E.算法的效率只與問題的規模有關,而與數據的存儲結構無關
F.數據的邏輯結構與存儲結構是一一對應的
G.算法的時間復雜度是指執行算法所需要的計算工作量
2.棧及其基本運算
棧是限定在一端進行插入與刪除運算的線性表。
在棧中,允許插入與刪除的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,棧底元素總是最先被插入的元素。即棧是按照“先進后出”或“后進先出”的原則組織數據的。
棧的基本運算:
1) 插入元素稱為入棧運算;2)刪除元素稱為退棧運算;
案例2.一個棧的初始狀態為空。先將元素1,2,3,A,B,C依次入棧,然后再依次出棧,則元素出棧的順序是_ __ (C,B,A,3,2,1)
3.隊列及其基本運算
隊列是指允許在一端(隊尾)進入插入,而在另一端(隊頭)進行刪除的線性表。尾指針(Rear)指向隊尾元素,頭指針(front)指向排頭元素的前一個位置(隊頭)。
隊列是“先進先出”或“后進后出”的線性表。
隊列運算包括:
1)入隊運算:從隊尾插入一個元素;
2)退隊運算:從隊頭刪除一個元素。
案例3.下列與隊列結構有關聯的是 (A)
A.先到先服務的作業調度 B.函數的遞歸調用
C.數組元素的引用 D.多重循環的執行
4.循環隊列及其運算:
所謂循環隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環狀空間,供隊列循環使用。在循環隊列中,用隊尾指針rear指向隊列中的隊尾元素,用排頭指針front指向排頭元素的前一個位置,因此,從頭指針front指向的后一個位置直到隊尾指針rear指向的位置之間,所有的元素均為隊列中的元素。
循環隊列中元素的個數=rear-front。
案例4.下列敘述中正確的是 (B)
A.循環隊列有隊頭和隊尾兩個指針,因此循環隊列是非線性結構
B.循環隊列中元素的個數是由隊頭指針和隊尾指針共同決定
C.在循環隊列中,只需要隊尾指針就能反映隊列中元素的動態變化情況
D.在循環隊列中,只需要隊頭指針就能反映隊列中元素的動態變化情況
案例5.設循環隊列的存儲空間為Q(1:35),初始狀態為front=rear=35.現經過一系列入隊與退隊運算后, front=15, rear=15,則循環隊列中的元素個數為 (A)
A.0或35 B.15 C.20 D.16
解析:循環隊列中的元素個數的計算方法是:隊尾-隊頭
1.如果大于0,rear-front 即為元素的個數。
2.如果小于0,rear-front+空間容量 即為元素個數。
3.如果等于0,元素個數為0或空間容量。
5.二叉樹及其基本性質
二叉樹是一種非線性結構,它具有以下兩個特點:
1)非空二叉樹只有一個根結點;
2)每一個結點最多有兩棵子樹,且分別稱為該結點的左子樹與右子樹。
根據二叉樹的概念可知,二叉樹的度可以為0(葉結點)、1(只有一棵子
樹)或2(有2棵子樹)。
二叉樹考點1:
在任意一棵二叉樹中,度數為0的結點(即葉子結點)總比度為2的結點多一個。葉子數(度為0)=度為2結點數+1
二叉樹考點2:
二叉樹的深度即二叉樹的層次數
二叉樹考點3:
總結點數=度為2的結點數+度為1的結點數+度為0的結點數(葉子)
案例6.某二叉樹共有7個結點,其中葉子結點只有1個,則該二叉樹的深度為(假設根結點在第1層) _____ 。 (7)
案例7.一棵二叉樹共有25個結點,其中5個是葉子結點,則度為1的結點數為_ ___ 。 (16)_
解析:葉子結點數=度為2的結點數+1
5 = ? +1
求得度為2的結點數為4
總結點數=度為2的結點數+度為1的結點數+度為0的結點數(葉子)
25 =4 + ? +5
求得度為1的結點數為16
二叉樹考點4:二叉樹的遍歷
二叉樹的遍歷是指不重復地訪問二叉樹中的所有結點。
二叉樹的遍歷可以分為以下三種:
(1)前序遍歷:若二叉樹為空,則結束返回。否則:首先訪問根結點,然后遍歷
左子樹,最后遍歷右子樹。
(2)中序遍歷:若二叉樹為空,則結束返回。否則:首先遍歷左子樹,然后訪問
根結點,最后遍歷右子樹。
(3)后序遍歷:若二叉樹為空,則結束返回。否則:首先遍歷左子樹,然后遍歷
右子樹,最后訪問根結點。
案例8. 對下列二叉樹
進行前序遍歷的結果為__ ___ (ABDYECFXZ)
6.線性表
由一組數據元素構成,數據元素的位置只取決于自己的序號,元素之間的相對位置是線性的稱為線性表。線性表是由n(n≥0)個數據元素組成的一個有限序列,表中的每一個數據元素,除了第一個外,有且只有一個前件,除了最后一個外,有且只有一個后件。線性表中數據元素的個數稱為線性表的長度。線性表可以為空表。
線性表是一種存儲結構,它的存儲方式:順序和鏈式。
線性表的順序存儲結構具有兩個基本特點:
(1)線性表中所有元素所占的存儲空間是連續的;
(2)線性表中各數據元素在存儲空間中是按邏輯順序依次存放的。
由此可以看出,在線性表的順序存儲結構中,其前后件兩個元素在存儲空間中是緊鄰的,且前件元素一定存儲在后件元素的前面,可以通過計算機直接確定第i個結點的存儲地址。
順序表的插入、刪除運算
線性表的鏈式存儲結構(線性鏈表)
數據結構中的每一個結點對應于一個存儲單元,這種存儲單元稱為存儲結點,簡稱結點。
結點由兩部分組成:
(1)用于存儲數據元素值,稱為數據域;
(2)用于存放指針,稱為指針域,用于指向前一個或后一個結點。
在鏈式存儲結構中,存儲數據結構的存儲空間可以不連續,各數據結點的存儲順序與數據元素之間的邏輯關系可以不一致,而數據元素之間的邏輯關系是由指針域來確定的。
鏈式存儲方式既可用于表示線性結構,也可用于表示非線性結構。
線性結構條件:
(1)有且只有一個根結點;
(2)每一個結點最多有一個前件,也最多有一個后件。
非線性結構:不滿足線性結構條件的數據結構。
案例9.下列敘述中正確的是 (A)
A.循環隊列是隊列的一種順序存儲結構
B.循環隊列是非線性結構
C.循環隊列是一種邏輯結構
D.循環隊列是隊列的一種鏈式存儲結構
解析:常見的線性結構有:隊列、棧。非線性結構有:樹、二叉樹
案例10.下列敘述中正確的是 (CE)
A.線性表鏈式存儲結構與順序存儲結構所需要的存儲空間是相同的
(不相同)
B.線性表鏈式存儲結構所需要的存儲空間一般要少于順序存儲結構
(多于)
C.線性表鏈式存儲結構所需要的存儲空間一般要多于順序存儲結構
D.線性表鏈式存儲結構與順序存儲結構的存儲空間都是連續的
E.線性表鏈式存儲結構的存儲空間可以是連續的,也可以是不連續的
7.排序排序是指將一個無序序列整理成按值非遞減順序排列的有序序列,即是將無序的記錄序列調整為有序記錄序列的一種操作。
冒泡排序、快速排序、直接插入排序:
假設線性表的長度為n,則在最壞情況下,需要比較的次數為n(n-1)/2
堆排序:
在最壞情況下,需要比較的次數為nlog2n
8.順序查找和二分查找
順序查找又稱為順序搜索。順序查找一般是指在線性表中查找指定的元素
下面兩種情況
1.如果線性表為無序表(即表中元素排序是無序的),則不管是順序存儲結構還是鏈式存儲結構,都只能用順序查找
2.即使是有序線性表,如果采用鏈式存儲結構,也只能用于順序查找
二分查找只適用于順序存儲的有序表。在此所說的有序表是指線性表中的元素按值非遞減排序(即從小到大,但允許相鄰元素值相等)。
當有序線性表為順序存儲時才能采用二分查找,對于長度為n的有序線性表,在最壞情況下,二分查找只需要比較log2n次 ,而順序查找需要比較n次。
案例11.對長度為n的線性表排序,在最壞情況下,比較次數不是n(n-1)/2的排序方法是 (C)
A.快速排序 B.冒泡排序 C.堆排序 D.直接插入排序
案例12.在長度為n的有序線性表中進行二分查找,最壞情況下需要比較的次數是 (A)
A.O(log2n) B.O(nlog2n) C.O(n2) D.O(n)
案例13.對長度為10的線性表進行冒泡排序,最壞情況下需要比較的次
(B)
A.9 B.45 C.90 D.10
第二章 軟件工程基本概念
1.計算機軟件是包括程序、數據及相關文檔的完整集合。
軟件按功能分為應用軟件、系統軟件、支撐軟件(或工具軟件)。
軟件危機主要表現在成本、質量、生產率等問題。
軟件周期:軟件產品從提出、實現、使用維護到停止使用退役的過程。
軟件生命周期三個階段:軟件定義、軟件開發、運行維護,主要活動階段是:
(1)可行性研究與計劃制定;
(2)需求分析;
(3)軟件設計;
(4)軟件實現;
(5)軟件測試;
(6)運行和維護。
衡量軟件模塊獨立性使用耦合性和內聚性兩個定性的度量標準。
在程序結構中各模塊的內聚性越強,則耦合性越弱。優秀軟件應高內聚,低耦合。
內聚性是指一個模塊內部各個元素間彼此結合的緊密程度
耦合性是指模塊間相互連接的緊密程度
2.軟件測試
軟件測試的目的:發現錯誤而執行程序的過程。
軟件測試方法:靜態測試和動態測試。
靜態測試包括代碼檢查、靜態結構分析、代碼質量度量。不實際運行軟件,主要通過人工進行。
動態測試:是基本計算機的測試,主要包括白盒測試方法和黑盒測試方法。
白盒測試:在程序內部進行,主要用于完成軟件內部CAO作的驗證。主要方法有邏輯覆蓋、基本基路徑測試。
黑盒測試:在黑盒測試方法中,設計測試用例的主要根據是程序外部功能。主要方法有等價類劃分法、邊界值分析法、錯誤推測法、因果圖等。
軟件測試過程一般按4個步驟進行:單元測試、集成測試、驗收測試(確認測試)和系統測試。
3.程序的調試
程序調試的任務是診斷和改正程序中的錯誤,主要在開發階段進行。
案例14.軟件詳細設計產生的圖如下: (C)
該圖是
A.PAD圖 B.E-R圖 C.程序流程圖 D.N-S圖
第三章 數據庫設計基礎
1.數據庫系統的基本概念
數據庫管理系統:一種系統軟件,負責數據庫中的數據組織、數據操縱、數據維護、控制及保護和數據服務等,是數據庫的核心。
(1)數據定義語言:負責數據的模式定義與數據的物理存取構建;
(2)數據操縱語言:負責數據的操縱,如查詢與增、刪、改等;
(3)數據控制語言:負責數據完整性、安全性的定義與檢查以及并發控制、故障恢復等。
數據語言按其使用方式具有兩種結構形式:交互式命令(又稱自含型或自主型語言)宿主型語言(一般可嵌入某些宿主語言中)。
數據庫管理員:對數據庫進行規劃、設計、維護、監視等的專業管理人員。
數據庫系統:由數據庫(數據)、數據庫管理系統(軟件)、數據庫管理員(人員)、硬件平臺(硬件)、軟件平臺(軟件)五個部分構成的運行實體。
數據庫應用系統:由數據庫系統、應用軟件及應用界面三者組成。文件系統階段:提供了簡單的數據共享與數據管理能力,但是它無法提供完整的、統一的、管理和數據共享的能力。層次數據庫與網狀數據庫系統階段:為統一與共享數據提供了有力支撐。
關系數據庫系統階段
數據庫系統的基本特點:數據的集成性 、數據的高共享性與低冗余性 、數據獨立性(物理獨立性與邏輯獨立性)、數據統一管理與控制。
2.數據庫系統的三級模式:
(1)概念模式:數據庫系統中全局數據邏輯結構的描述,全體用戶公共數據視圖;
(2)外模式:也稱子模式與用戶模式。是用戶的數據視圖,也就是用戶所見到的數據模式;
(3)內模式:又稱物理模式,它給出了數據庫物理存儲結構與物理存取方法。
數據模型
數據模型的概念:是數據特征的抽象,從抽象層次上描述了系統的靜態特征、動態行為和約束條件,為數據庫系統的信息表與操作提供一個抽象的框架。描述了數據結構、數據操作及數據約束。
E-R模型的基本概念
(1)實體:現實世界中的事物;
(2)屬性:事物的特性;
(3)聯系:現實世界中事物間的關系。實體集的關系有一對一、一對多、多對多的聯系。
案例15.若實體A和B是一對多的聯系,實體B和C是一對一的聯系,則實體A和C的聯系是________。一間宿舍可住多個學生,則實體宿舍和學生之間的聯系是________。 (一對多) (一對多)
E-R模型三個基本概念之間的聯接關系:實體是概念世界中的基本單位,屬性有屬性域,每個實體可取屬性域內的值。一個實體的所有屬性值叫元組。
E-R模型的圖示法:(1)實體集表示法; (2)屬性表法; (3)聯系表示法。
在二維表中凡能唯一標識元組的最小屬性稱為鍵或碼。從所有侯選健中選取一個作為用戶使用的鍵稱主鍵。表A中的某屬性是某表B的鍵,則稱該屬性集為A的外鍵或外碼。
關系中的數據約束:
(1)實體完整性約束:約束關系的主鍵中屬性值不能為空值;
(2)參照完全性約束:是關系之間的基本約束;
(3)用戶定義的完整性約束:它反映了具體應用中數據的語義要求。
3.關系代數
關系數據庫系統的特點之一是它建立在數據理論的基礎之上,有很多數據理論可以表示關系模型的數據操作,其中最為著名的是關系代數與關系演算。
關系模型的基本運算:
(1) 插入 (2)刪除 (3)修改 (4)查詢(包括投影、選擇、笛卡爾積運算)
解析:
----------------------------------------------------------------------
R1 選擇 R2
A
B
A
B
C
a
1
2
b
2
1
C
a
1
2
b
2
1
c
3
1
R1 投影 R2
A
B
C
a
1
2
b
2
1
c
3
1
案例16.有三個關系R、S和T如下: (A)
則由關系R和S得到關系T的操作是
A.自然連接 B.并 C.投影 D.交
案例17.有三個關系R,S 和T如下: (A)
則由關系R和S得到關系T的操作是
A.并 B.交 C.投影 D.選擇
案例18.有三個關系R,S 和T如下: (D)
則由關系R和S得到關系T的操作是
A.選擇 B.交 C.并 D.差
案例19.有兩個關系R和S如下 (A)
則由關系R 得到關系S的操作是
A.選擇 B.并 C.自然連接 D.投影
案例20.有兩個關系R,S如下: (C)
由關系R通過運算得到關系S,則所使用的運算為
A.連接 B.插入 C.投影 D.選擇
第四章 程序設計基礎
1.面向對象的程序設計和結構化程序設計
面向對象方法的主要優點:
(1)與人類習慣的思維方法一致;
(2)穩定性好;
(3)可重用(注釋1) 性好;
(4)易于開發大型軟件產品;
(5)可維護性好。
對象是面向對象方法中最基本的概念,可以用來表示客觀世界中的任何實體,對象是實體的抽象。面向對象的程序設計方法中的對象是系統中用來描述客觀事物的一個實體,是構成系統的一個基本單位,由一組表示其靜態特征的屬性和它可執行的一組操作組成。對象是屬性和方法的封裝體。
屬性即對象所包含的信息,它在設計對象時確定,一般只能通過執行對象的操作來改變。
操作描述了對象執行的功能,操作也稱為方法或服務。操作是對象的動態屬性。
一個對象由對象名、屬性和操作三部分組成。
對象的基本特點:標識惟一性,分類性,多態性,封裝性,模塊獨立性好。
(1)標識惟一性。指對象是可區分的,并且由對象的內在本質來區分,而不是
通過描述來區分。
(2)分類性。指可以將具有相同屬性的操作的對象抽象成類。
(3)多態性。指同一個操作可以是不同對象的行為。
(4)封裝性。信息隱蔽是通過對象的封裝性來實現的。
(5)模塊獨立性好。
消息是一個實例與另一個實例之間傳遞的信息。
在面向對象方法中,一個對象請求另一個對象為其服務的方式是通過發送消息。
繼承是指能夠直接獲得已有的性質和特征,而不必重復定義他們。繼承分單繼承和多重繼承。單繼承指一個類只允許有一個父類,多重繼承指一個類允許有多個父類。
類的繼承性是類之間共享屬性和操作的機制,它提高了軟件的可重用性。
多態性是指同樣的消息被不同的對象接受時可導致完全不同的行動的現象。
結構化程序設計(面向過程的程序設計方法)
結構化程序設計方法的主要原則可以概括為:自頂向下,逐步求精,模塊化
結構化程序的基本結構:順序結構,選擇結構,重復結構。限制使用goto語句。
案例21.結構化程序設計的基本原則不包括 (BE)
A.模塊化 B.多態性 C.逐步求精 D.自頂向下 E.可封裝
案例22.在面向對象方法中,不屬于”對象”基本特點的是 (D)
A.多態性 B.分類性 C.標識唯一性 D.一致性
二級公共基礎知識試題(10)
二級公共基礎知識總結?
請認真背誦該資料,至少要看三遍,劃橫線和方框的都是重點!?
第一章?數據結構與算法?
?
1.1?算法?
算法:是指解題方案的準確而完整的描述。算法不等于程序,也不等計算機方法,程序的編制不可能優于算法的設計。?算法的特征包括:?(1)可行性;?
(2)確定性,算法中每一步驟都必須有明確定義,不充許有模棱兩可的解釋,不允許有多義性;?(3)有窮性,算法必須能在有限的時間內做完,包括合理的執行時間的含義;?(4)擁有足夠的情報。?
算法的基本要素:一是對數據對象的運算和操作;二是算法的控制結構。?指令系統:一個計算機系統能執行的所有指令的集合。?基本運算包括:算術運算、邏輯運算、關系運算、數據傳輸。?算法的控制結構:順序結構、選擇結構、循環結構。?
算法基本設計方法:列舉法、歸納法、遞推、遞歸、減斗遞推技術、回溯法。?算法復雜度:算法時間復雜度和算法空間復雜度。?兩個之間沒有聯系的。?算法時間復雜度是指執行算法所需要的計算工作量。?算法空間復雜度是指執行這個算法所需要的內存空間。
?1.2?數據結構的基本基本概念?數據結構研究的三個方面:?
(1)數據集合中各數據元素之間所固有的邏輯關系,即數據的邏輯結構;?
(2)在對數據進行處理時,各數據元素在計算機中的存儲關系,即數據的存儲結構;?(3)對各種數據結構進行的運算。?
數據結構是指相互有關聯的數據元素的集合。?數據的存儲結構有順序、鏈接、索引等。?線性結構條件:?
(1)有且只有一個根結點;?
(2)每一個結點最多有一個前件,也最多有一個后件。?非線性結構:不滿足線性結構條件的數據結構。?
1.3?線性表及其順序存儲結構?
線性表是由一組數據元素構成,數據元素的位置只取決于自己的序號,元素之間的相對位置是線性的。?
在復雜線性表中,由若干項數據元素組成的數據元素稱為記錄,?而由多個記錄構成的線性表又稱為文件。?線性表的順序存儲結構具有以下兩個基本特點:?(1)線性表中所有元素的所占的存儲空間是連續的;?
(2)線性表中各數據元素在存儲空間中是按邏輯順序依次存放的。
?1.4?棧和隊列?
棧是限定在一端進行插入與刪除的線性表。?1、先進后出?FILO;
1、支持子程序調用;?2、具有記憶功能;?
3、可以不用順序存放數據;?
4、只能夠在top首部進行操作,bottom是絕對不動的;?5、棧的存放數據的個數為?num?=?(bottom?–?top)+1;?
隊列是指允許在一端(隊尾)進入插入,而在另一端(隊頭)進行刪除的線性表。?1、Rear指針指向隊尾,front指針指向隊頭。?3、先進先出FIFO,或者是后進后出LILO?2、循環隊列里面的個數計算方法:?
A、rear?>?front?的時候,??num?=?rear?–?front;?B、rear?箭頭表示控制流,菱形表示邏輯條件。?
3.4?軟件測試?
軟件測試定義:使用人工或自動手段來運行或測定某個系統的過程,其目的在于檢驗它是否滿足規定的需求或是弄清預期結果與實際結果之間的差別。?軟件測試的目的:發現錯誤而執行程序的過程。?軟件測試方法:靜態測試和動態測試。?
靜態測試:包括代碼檢查、靜態結構分析、代碼質量度量。不實際運行軟件,主要通過人工進行。?動態測試:是基本計算機的測試,主要包括白盒測試方法和黑盒測試方法。?
白盒測試:在程序內部進行,主要用于完成軟件內部CAO作的驗證。主要方法有邏輯覆蓋、基????
本基路徑測試。?
黑盒測試:主要診斷功能不對或遺漏、界面錯誤、數據結構或外部數據庫訪問錯誤、性能錯誤、?
初始化和終止條件錯,用于軟件確認。?
白盒主要方法:1、邏輯覆蓋測試?2、基本路徑測試。?
黑盒主要方法:1等價類劃分法、2邊界值分析法、3錯誤推測法、4因果圖。?軟件測試過程一般按4個步驟進行(要背先后順序):?
單元測試、集成測試、驗收測試(確認測試)和系統測試。?3.5?程序的調試?
程序調試的任務是診斷和改正程序中的錯誤,主要在開發階段進行。?軟件調試可分表靜態調試和動態調試。?
靜態調試主要是指通過人的思維來分析源程序代碼和排錯,是主要的設計手段,?動態調試是輔助靜態調試。?
調試方法有:(1)強行排錯法;(2)回溯法;(3)原因排除法。
第四章?數據庫設計基礎?
?
4.1?數據庫系統的基本概念?
數據:實際上就是描述事物的符號記錄。?
數據的特點:有一定的結構,有型與值之分,如整型、實型、字符型等。?
數據庫:長期存儲在計算機內部的、有組織、可共享的數據的集合。數據庫存放數據是按數據
所提供的數據模式存放的具有集成與共享的特點。?
數據庫管理系統:一種系統軟件,負責數據庫中的數據組織、數據操縱、數據維護、控制及保?
護和數據服務等,是數據庫的核心。?
數據庫管理系統提供以下的數據語言:?
(1)數據定義語言:負責數據的模式定義與數據的物理存取構建;?(2)數據操縱語言:負責數據的操縱,如查詢與增、刪、改等;?
(3)數據控制語言:負責數據完整性、安全性的定義與檢查以及并發控制、故障恢復等。?數據語言按其使用方式具有兩種結構形式:交互式命令(又稱自含型或自主型語言)宿主型語言
(一般可嵌入某些宿主語言中)。?
數據庫管理員:對數據庫進行規劃、設計、維護、監視等的專業管理人員。?
數據庫系統:由數據庫(數據)、數據庫管理系統(軟件)、數據庫管理員(人員)、硬件平臺(硬???
件)、軟件平臺(軟件)五個部分構成的運行實體。DBS是最大的包括其他所有的。?
數據庫應用系統:由數據庫系統、應用軟件及應用界面三者組成。?數據庫發展的三個階段:人工管理階段、文件系統階段、數據庫管理階段。?數據庫系統階段的基本特點:?
1、數據的集成性?、?
2、數據的高共享性與低冗余性?、?
3、數據獨立性(物理獨立性與邏輯獨立性)、數據統一管理與控制。?數據庫系統的三級模式:?
(1)概念模式:數據庫系統中全局數據邏輯結構的描述,全體用戶公共數據視圖;?
(2)外模式:也稱子模式與用戶模式。是用戶的數據視圖,也就是用戶所見到的數據模式;?(3)內模式:又稱物理模式,它給出了數據庫物理存儲結構與物理存取方法。?一個數據庫只有一個內模式,可以有多個外模式。?數據庫系統的兩級映射:?(1)概念模式到內模式的映射;?(2)外模式到概念模式的映射。?4.2?數據模型?
數據模型的概念:是數據特征的抽象,從抽象層次上描述了系統的靜態特征、動態行為和約束條件,為數據庫系統的信息表與操作提供一個抽象的框架。描述了數據結構、數據操作及數據約束。?E-R模型的基本概念?
(1)實體:現實世界中的事物;?(2)屬性:事物的特性;?
(3)聯系:現實世界中事物間的關系。實體集的關系有一對一、一對多、多對多的聯系。?E-R模型的圖示法:(1)實體集表示法;?(2)屬性表法;?(3)聯系表示法。?E-R模型的:矩形表示實體;橢圓表示矩形;棱形表示聯系。?關系模型采用二維表來表示,簡稱表,由表框架及表的元組組成。?1、一個二維表就是一個關系。?
2、在二維表中凡能唯一標識元組的最小屬性稱為鍵或碼。具有唯一性。?3、元組就是二維表中一行,屬性就是二維表表中一列。?4、從所有侯選健中選取一個作為用戶使用的鍵稱主鍵。?
5、表A中的某屬性是某表B的鍵,則稱該屬性集為A的外鍵或外碼。?6、分量是不可以再分的。?以上六點非常重要。?關系中的數據約束:?
(1)實體完整性約束:約束關系的主鍵中屬性值不能為空值;?(2)參照完全性約束:是關系之間的基本約束;?
(3)用戶定義的完整性約束:它反映了具體應用中數據的語義要求。?4.3關系代數?
關系數據庫系統的特點之一是它建立在數據理論的基礎之上,有很多數據理論可以表示關系模型的數據操作,其中最為著名的是關系代數與關系演算。?關系模型的基本運算:?
(1)插入?(2)刪除?(3)修改?(4)查詢(包括投影、選擇、笛卡爾積)?
兩個表的運算一般會考到:投影、鏈接、選擇、笛卡爾積、交、并當中的一個。?4.4?數據庫設計與管理?
數據庫設計是數據應用的核心。?數據庫設計的兩種方法:?
(1)面向數據:以信息需求為主,兼顧處理需求;?(2)面向過程:以處理需求為主,兼顧信息需求。?
數據庫的生命周期:需求分析階段、概念設計階段、邏輯設計階段、物理設計階段、編碼階段、測試階段、運行階段、進一步修改階段。?
需求分析常用結構析方法和面向對象的方法。結構化分析(簡稱SA)方法用自頂向下、逐層分解的方式分析系統。用數據流圖表達數據和處理過程的關系。對數據庫設計來講,數據字典是進行詳細的數據收集和數據分析所獲得的主要結果。?
數據字典是各類數據描述的集合,包括5個部分:數據項、數據結構、數據流(可以是數據項,也可以是數據結構)、數據存儲、處理過程。?數據庫概念設計的目的是分析數據內在語義關系。?
公共基礎補充知識點?
1、?一個數據結構的邏輯結構根據需要可以有多個存儲結構。存儲結構的不同,會造成處理?的效率不同。?
2、程序設計方法和技術的發展經過了結構化程序設計和面向對象設計兩個階段。?3、當今程序設計的風格是“清晰第一,效率第二”。?4、程序可以沒有輸入,但是一定要有輸出。?
5、結構化程序設計遵循:自頂向下,逐步求精,模塊化,限制使用goto語句(常考)。?6、面向對象的基本特點:標志唯一性,分類性,多態性,封裝性,模塊獨立性。尤其重要的是多態性和封裝性。沒有類比性。?
7、多態性:統一操作可以是不同對象的行為。同樣的消息被不同的對象接收時可導致不同的動作的現象。?
8、封裝性:從外面看不到對象的內部,只能看到對象的外部特性。?
9、類:是具有共同屬性、共同方法的對象的集合。描述了屬于該對象類型的所有對象的性質,而一個對象則是對應類的一個實例。(常考)?10、消息:是指對象間的相互合作的協作機制,是一個對象與另一個對象之間的傳遞的消息。?11繼承:是指使用已有的類定義作為基礎建立新類的定義技術。繼承分為單繼承和多繼承。?12、面向對象中,類的實例叫做對象。?
13、源程序文檔化要求程序應該加上注釋。注釋一般為序言性注釋和功能性注釋。?14、面向對象方法和技術是以對象為核心。?
???????????????????????????
??????軟件工程基礎?
1、?軟件工程的核心思想是把軟件當作一個工程產品來處理。?2、?軟件開發的三個階段以及每個階段的任務:?
??定義階段???????????開發階段???????????維護階段?
??????這個表請大家抽時間背下。軟件開發的三個階段,每個階段的工程。?3、?軟件開發方法包括分析方法,設計方法,程序設計方法。?
可行性研究初步項目計劃?
需求?分析?
概要?設計?
詳細?分析?
實現?
測試?
使用?
維護?
退役?
4、?結構化方法包括結構化分析方法,結構化設計方法,結構化編程方法。?
5、?結構化分析方法在軟件需求分析階段的應用。?
6、?結構化分析常用的工具中最重要的工具是數據流圖。???表示加工,??表示數據流,???????????????
表示數據存儲(數據源)?????表示源和潭?。?
7、?軟件規格說明書(SRS)是需求分析階段的最后結果,是軟件開發文檔重要的文檔之一。?8、?軟件設計要求高耦合性和低內聚性是考試的重點,要知道什么是耦合,什么是內聚。?
9、?軟件測試和程序調試的區別。軟件測試的過程涵蓋了整個軟件生命周期。目的是為了發現錯誤而執行程序的過程。?
10、從是否要執行被測試軟件的角度,軟件測試分為靜態測試和動態測試。?11、從功能上劃分,軟件測試分為白盒測試和黑盒測試。?
12、白盒測試是檢查內部成分,方法有:邏輯覆蓋測試方法,基本路徑測試。?
13、黑盒測試是對軟件已經實現的功能是否滿足需求進行測試和驗證。方法有:等價類劃分法,邊界值劃分法,錯誤推測法。?
14、程序調試的任務:診斷和改正程序中錯誤,它和軟件測試不同,調試主要在開發階段。?15、軟件調試方法:強制排錯法,回朔法,原因排除法。?16、軟件維護不屬于軟件生命周期開發階段的任務。?
17、軟件進行了程序調試后還要進行測試。?
18、軟件工程的主要思想是:強調在軟件開發過程中需要應用工程化的原則。?19、軟件設計中,不屬于過程設計工具的是:DFD圖。?
20、結構化分析常見的工具:DFD圖,DD(數據字典),判定樹,判定表。?21、程序和軟件是不同的,軟件是程序、數據與相關文檔的集合。?
22、軟件的開發、運行對計算機系統具有依賴性。?23、軟件工程的三要素:工具、過程、方法。?
24、軟件生命周期中,能夠準確確定軟件系統必須做什么和必須具備哪些功能的階段是:
需求分析。?25、數據流圖只含有數據流,不含有控制流。數據流圖用于抽象描述一個軟件的邏輯模型。?26、數據流的類型有兩種:事務型和變換型。在很多軟件應用中,存在某種作業數據流,它可以引發一個或多個處理,這些處理能夠完成該作業要求的功能,這種數據流叫做事務型數據流。?
27、程序流程圖中的箭頭代表的是:控制流。?
28、在結構化方法中,軟件功能分解屬于總體設計階段。?29、內聚型中內聚性最強的是:功能內聚。?
30、檢查軟件產品是否符合需求定義的過程是:確認測試。?
31、軟件危機:泛指在計算機軟件的開發和維護過程中遇到的一系列嚴重的問題。?32、Jackson?方法是一種面向數據結構的結構化方法。?
33、軟件開發環境是全面支持軟件開發全過程的軟件開發工具集合。?
34、軟件需求是指用戶對目標軟件系統在功能、行為、性能設計約束等方面的期望。?35、為每一個模塊確定實現算法和局部數據結構的是詳細設計階段的任務。?
數據庫設計基礎?
1、?關系運算是考試的重點,考的多的是并和笛卡爾積。不改變屬性但減少元組個數的是并。投影也是比較喜歡考的,一般的意思是從4、5個列中選出2、3個。笛卡爾積則是會增加元組的個數。?
2、?E-R圖中,矩形、菱形、橢圓形等代表的意思是考試的重點。?
3、?數據庫系統中,數據的物理結構不一定要和邏輯結構一致。?
4、?數據庫技術的根本目標是解決數據的共享問題。?5、?數據庫系統中,用戶所見的數據模式為:外模式。?
6、?數據庫設計的四個階段是:需求分析、概念設計、邏輯設計和物理設計。?
7、?兩個實體間的關系是:一對一,多對多,一對多等,這種題目根據具體的題目分析。(常考題目)?
8、?數據庫DB,數據庫系統DBS,數據庫管理系統DBMS之間的關系:DBS包含DB和DBMS。?
9、?數據庫系統的核心:數據庫管理系統。?
10、數據獨立性:是指數據與程序的互不依賴性。他包括數據的物理獨立性和邏輯獨立性。物理獨立性是數據的物理結構(包括存儲結構、存取方式)的改變,不影響數據庫的邏輯結構。?
11、數據的邏輯獨立性是指數據庫總體邏輯結構的改變,不需要相應修改應用程序。?12、用樹形結構表示實體之間聯系的模型是:層次模型。?
13、數據庫系統中修改數據模式、增加新的數據類型、改變數據間的聯系等,不需要相應修
改應用程序這一特點是邏輯獨立性。?14、不涉及具體的硬件環境和平臺,也與具體的軟件環境無關的模式是:概念模型。?15、用戶數據是建立在外模式的框架上的。?16、給出數據的全局邏輯結構到數據的物理存儲結構間的對應關系的映射是:概念模式到內模式的映射。?
17、網狀模型:不加任何的限制的無向圖。?
18、不準關系應用不存在的元組的約束是:參照完整性約束。?
19、數據庫設計包括兩個方面的設計內容,它們是:概念設計和邏輯設計。?20、數據庫設計中的主流方法是:面向數據的設計方法。?
21、數據庫概念設計過程分三個步驟進行:首先選擇局部應用,在局部視圖設計,最后進行視圖集成。?
22、數據庫系統中,實現各種數據管理功能的核心軟件稱為數據庫管理系統。?23、一個關系表的行稱為元組。?
24、在關系模型中,數據看成是二維表,每一個二維表稱為一個關系。?25、數據管理技術經歷了三個階段:人工管理、文件系統和數據庫系統。?
26、數據庫的基本特點:數據的集成性、數據的高共享性和低冗余性(常考)、數據的獨立
性(常考)、數據統一管理和控制。?27、三級模式中反映用戶對數據的要求的模式是:數據模型。?
28、物理數據模型是數據特征的抽象,他從抽象的層次上描述了系統的靜態特征、動態行為和約束條件。?
29、E-R圖由實體、聯系、屬性三個部分組成。?
30、二維表中能夠唯一標識元組的最小屬性集稱為該表的碼。?
31、要求關系的主鍵中屬性不能為空的約束是:實體完整性約束。?
32、數據庫的設計方法有兩種,一種是面向數據的設計方法,一種是面向過程的設計方法
二級公共基礎知識試題(11)
數據結構與算法
一、基本概念:
? 數據(Data):信息的載體,能夠被計算機識別、存儲和加工處理的物理符號。包括文本類型的數據(如:字母、數字、漢字)和多媒體類型的數據(如:聲音、動畫、圖像)。
? 數據元素(Data Element):是數據的基本單位,有時也稱為元素、結點、頂點、記錄,可以有若干個數據項(字段、域、屬性)組成。
? 數據結構(Data Structure):指的是數據之間的相互關系,即數據的組織形式。其包括三個部分:
1、邏輯結構:數據元素之間的邏輯關系
2、存儲結構:數據元素及其關系在計算機存儲器內的表示。
3、數據的運算(算法):即對數據施加的操作
? 數據的邏輯結構有兩大類:
1、線性結構:
特征是:若結構是非空集,則有且僅有一個開始結點和一個終端結點,并且所有結點最多只有一個直接前趨和一個直接后繼。
例:一維數組、鏈表、棧、隊列、串
2、非線性結構:
特征是:一個結點可能有多個直接前趨和直接后繼。
例:多維數組、廣義表、樹、圖
? 數據的存儲結構有以下基本存儲方法:
1、順序存儲方法:
該方法是將邏輯上相鄰的結點存儲在物理位置上相鄰的存儲單元里,結點間的邏輯關系由存儲單元的鄰接關系來體現,一般通過數組來實現的。
2、鏈接存儲方法:
該方法不要求邏輯上相鄰的結點在物理位置上亦相鄰,結點間的邏輯關系是由附加的指針字段表示的。通過指針類型來實現的。
3、索引存儲方法:
該方法通常是在存儲結點信息的同時,還建立附加的索引表,索引表中的每一項稱為索引項,索引項的一般形式是:關鍵字,地址。
4、散列存儲方法:
該方法的基本思想是根據結點的關鍵字直接計算出該結點的存儲地址,通過散列函數實現。例:除余法散列函數、相乘取整法散列函數
? 算法的基本特征:
1、可行性(Effectiveness):針對實際問題而設計的算法,執行后能夠得到滿意的結果。
2、確定性(Definiteness):算法中的每一個步驟都必須有明確的定義,不允許出現歧義性。
3、有窮性(Finiteness):算法必須在有限時間內做完,即必須在執行有限個步驟之后終止。
? 時間復雜度:該算法執行的時間耗費,它是該算法所求解問題規模n的函數。
? 空間復雜度:該算法執行時所耗費的存儲空間,它也是問題規模n的函數。
二、線性表:
? 線性表(Linear List):是由n(n>=0)個數據元素(結點)a1,a2,a3,······,an組成的有限序列。對于非空的線性表,有且僅有一個開始結點a1,它沒有直接前趨;有且僅有一個終端結點an,它沒有直接后繼;其余的結點有且僅有一個直接前趨結點和一個直接后繼結點。
? 線性表的存儲結構:
1、順序存儲(Sequential List):將線性表的結點按邏輯次序依次存放在一組地址連續的存儲單元里,用這種方法存儲的線性表稱為順序表。
2、鏈式存儲(Linked List):邏輯上相鄰的結點,物理上也相鄰,存儲單元可以是連續的,也可以是不連續的,在存儲每個結點值的同時,還存儲指向其后繼結點的地址,用這種方法存儲的線性表稱為鏈表。
? 常見的運算有:
表的初始化、求表的長度、取表中的第i個結點、查找結點、插入新的結點、刪除結點。
? 順序表和鏈表的比較:
1、基于空間的考慮:
A、順序表的存儲空間是靜態分配的,而鏈表的存儲空間是動態分配的。
B、順序表占的存儲空間必須是連續的,而鏈表占的存儲空間可以是連續的,也可是不連續的
C、順序表存儲密度為1,而鏈表中的每個結點,除了數據域外,還要額外的設置指針域,存儲密度小于1
2、基于時間的考慮:
A、在鏈表中的任何位置上進行插入和刪除,只需要修改指針,而順序表中平均將要移動近一半的結點。
B、順序表是隨機存取結構,它的存取時間為O(1),而鏈表需從頭結點順著鏈掃描鏈表。
總之,當線性表的長度變化不大,易于事先確定其大小時,為了節約存儲空間,宜采用順序表作為存儲結構;當線性表的長度變化較大,難以估計其存儲規模時,以采用鏈表作為存儲結構為好。若線性表的操作主要是進行查找,很少做插入和刪除操作時,采用順序表做存儲結構為宜;對于頻繁進行插入和刪除的線性表,宜采用鏈表做存儲結構。
例:關于線性表的描述中,錯誤的是( )
A、線性表是線性結構 B、線性表的順序存儲結構,必須占用一片連續的存儲單元
C、線性表是單鏈表 D、線性表的鏈式存儲結構,不必占用一片連續的存儲單元
用數組表示線性表的優點是( )
A、便于插入和刪除操作 B、便于隨機存取
C、可以動態地分配存儲空間 D、不需要占用一片連續的存儲空間
三、棧:
? 棧(Stack):是限制僅在表的一端進行插入和刪除運算的線性表,通常稱插入、刪除的這一端為棧頂(Top),另一端稱為棧底(Bottom)。當表中沒有元素時稱為空棧。是一種后進先出的線性表,又稱為LIFO表。
? 棧的基本運算有:
棧的初始化、判棧空、判棧滿、進棧、出棧等
? 棧的存儲:
順序存儲、鏈式存儲
例:若進棧的輸入序列是A、B、C、D、E,并且在它們進棧的過程中可以進行出棧操作,則不可能出現的出棧序列是( )
A、EDCBA B、DECBA C、DCEAB D、ABCDE
四、隊列:
? 隊列(Queue):也是一種運算受限的線性表,它只允許在表的一端進行插入,而在另一端進行刪除。允許刪除的一段稱為隊頭(Front),允許插入的一段稱為隊尾(Rear)。(類似于生活中的購物排隊)。是一種先進先出的線性表,又稱為FIFO表。
? 隊列的基本運算:
隊列的初始化、判隊空、判隊滿、入隊、出隊
? 隊列的存儲實現:
順序存儲、鏈式存儲
例:一個隊列的入隊序列是1,2,3,4,則隊列的輸出序列是 ( )
A、4,3,2,1 B、1,2,3,4 C、1,4,3,2 D、3,2,4,1
五、串:
? 串(String):是零個或多個字符組成的有限序列。
串中所包含的字符個數稱為該串的長度。
串中任意個連續字符組成的子序列稱為該串的子串,包含子串的串相應地稱為主串
注:空串是任意串的子串,任意串是其自身的子串
? 串有串常量、串變量之分:
1、串常量在程序中只能被引用但不能改變其值,即只能讀不能寫。
2、串變量其值是可以改變的。
? 串的基本運算:
求串長、串復制、串聯接、串比較、字符定位、
六、樹(非線性結構):
? 樹(Tree):是n(n>=0)個結點的有限集T,T(n=0)為空時稱為空樹,否則它滿足如下兩個條件:
1、有且僅有一個特定的稱為根(Root)的結點
2、其余的結點可分為m(m>=0)個互不相交的子集T1,T2,…….,Tm,其中每個子集本身又是一棵樹,并稱其為根的子樹(Subtree)。
? 在樹的樹形圖表示中,結點通常是用圓圈表示的,結點的名字一般是寫在圓圈旁邊,有時亦可寫在圓圈內。
? 度(Degree):一個結點擁有的子樹數稱為該結點的度。一棵樹的度是指該樹中結點的最大度數。
? 葉子(Leaf):度為零的結點稱為葉子或終端結點
? 分支結點(Node):度不為零的結點稱為分支結點。
? 樹中某個結點的子樹之根稱為該結點的孩子(Child)結點或子結點,相應的該結點稱為孩子結點的雙親(Parents)結點或父結點。
? 同一個雙親的孩子稱為兄弟結點(Sibling)
? 結點的層數(Level)是從根起算,設根的層數為1,其余結點的層數等于其雙親結點的層數加1.
? 樹中結點的最大層數稱為樹的高度(Height)或深度(Depth).
? 森林(Forest):是m(m>=0)棵互不相交的樹的集合。刪去一棵樹的根,就得到一個森林,反之,加上一個結點作樹根,森林就變為一棵樹。
? 二叉樹(Binary Tree):是n(n>=0)個結點的有限集,它或者是空集(n=0),或者由一個根結點及兩棵互不相交的、分別稱作這個根的左子樹和右子樹的二叉樹組成。
二叉樹中,每個結點最多只能有兩棵子樹,并且有左右之分。
? 二叉樹的五種基本形態:
例:具有3個結點的二叉樹有幾種形態。
? 滿二叉樹(Full Binary Tree):一棵深度為k且有2k-1個結點的二叉樹稱為滿二叉樹
? 完全二叉樹(Complete Binary Tree):若一棵二叉樹至多只有最下面的兩層上結點的度數可以小于2,并且最下一層上的結點都集中在該層最左邊的若干位置上,則此二叉樹稱為完全二叉樹。
二叉樹的性質:
性質1:二叉樹第i層上的結點數目最多為2i-1(i>=1)
性質2:深度為k的二叉樹至多有2k-1個結點(k>=1)
性質3:在任意一棵二叉樹中,若終端結點的個數為n0,度為2的結點數為n2,則n0=n2+1
性質4:具有n個結點的完全二叉樹的深度為[lgn]+1(取下整) 或 [lg(n+1)](取上整)。
例:一棵二叉樹的結點數為18個,求它的最小高度
已知度為2的結點數為15個,求葉子結點數
二叉樹的遍歷:
? 遍歷(Traversal):是指沿著某條搜索路線,依次對樹中每個結點均做一次且僅做一次訪問。
前序遍歷:(又稱為先序遍歷、先根遍歷)
若二叉樹為空,則執行空操作。否則:
1、訪問根結點;
2、前序遍歷左子樹;
3、前序遍歷右子樹。
中序遍歷:(又稱為中根遍歷)
若二叉樹為空,則執行空操作。否則:
1、中序遍歷左子樹;
2、訪問根結點;
3、中序遍歷右子樹。
后序遍歷:(又稱為后根遍歷)
若二叉樹為空,則執行空操作。否則:
1、后序遍歷左子樹;
2、后序遍歷右子樹;
3、訪問根結點。
例:已知一棵二叉樹的中序遍歷序列是:FDGBACHE,其后序遍歷序列是:FGDBHECA
求其前序遍歷序列。
一棵二叉樹的前序遍歷序列為ABDGCFK,中序遍歷序列為DGBAFCK,則結點的后序遍歷序列是( )
A、ACFKDBG B、GDBFKCA C、KCFAGDB D、ABCDFKG
七、排序(Sort):
? 所謂排序,就是指整理文件中的記錄,使之按關鍵字遞增(或遞減)次序排列起來。
? 冒泡排序(Bubble Sorting):
通過對待排序序列從后向前或從前向后(從下標較大的元素開始),依次比較相鄰元素的排序碼,若發現逆序則交換,使排序碼較大的元素逐漸從前部移向后部或較小的元素逐漸從后部移向前部(從下標較大的單元移向下標較小的單元)。
? 直接選擇排序(Selection Sorting):
掃描整個線性表,從中選出最小的元素,將它交換到表的最前面;然后對剩下的子表采用同樣的方法,直到子表空為止。
? 直接插入排序(Insertion Sorting):
每次將一個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子文件中的適當位置,直到全部記錄插入完成為止。
? 快速排序(Quick Sorting):任取待排序序列中的某個元素作為基準(一般取第一個元素),通過一趟排序,將待排元素分為左右兩個子序列,左子序列元素的排序碼均小于或等于基準元素的排序碼,右子序列的排序碼則大于基準元素的排序碼,然后分別對兩個子序列繼續進行排序,直至整個序列有序。
各種內部排序方法的比較
排序方法
時間復雜度
空間復雜度
最好時間
平均時間
最壞時間
直接插入
O(n)
O(n2)
O(n2)
O(1)
直接選擇
O(n2)
O(n2)
O(n2)
O(1)
冒 泡
O(n)
O(n2)
O(n2)
O(1)
快 速
O(nlgn)
O(nlgn)
O(n2)
O(lgn)
堆
O(nlgn)
O(nlgn)
O(nlgn)
O(1)
例:對一個具有n個元素的序列進行冒泡排序,在最壞情況下,要進行交換的次數是( )
A、n(n+1)/2 B、n(n-1)/2 C、n*n/2 D、n(n+1)/2-1
對n個元素進行冒泡排序過程中,最好情況下的時間復雜性為( )
A、O(1) B、O(log2n) C、O(n2) D、O(n)
對n個元素進行快速排序的過程中,平均情況下的時間復雜性為( )
A、O(1) B、O(lgn) C、O(n2) D、O(nlgn)
八、查找(Searching):
? 所謂查找是指給定一個值K,在含有n個結點的表中找出關鍵字等于給定值K的結點。若找到,則查找成功,返回該結點的信息或該結點在表中的位置;否則查找失敗,返回相關的提示信息。
? 順序查找(Sequential Search)的基本思想是:從表的一端開始,順序掃描線性表,依次將掃描到的結點關鍵字和給定值K相比較,若當前掃描到的結點關鍵字與K相等,則查找成功;若掃描結束后,仍未找到關鍵字等于K的結點,則查找失敗。順序查找即適用順序存儲結構,又適用鏈式存儲結構。
查找成功的平均查找長度為:(n為結點數目)
(1+2+3+4+···+n) / n = (n+1)/2
? 二分查找(Binary Search)又稱折半查找,它是一種效率較高的查找方法,二分查找要求線性表是有序表,即表中結點按關鍵字有序,并且要用向量作為表的存儲結構。另外,二分查找只適用順序存儲結構,在鏈式存儲結構上無法實現二分查找。
查找成功時的平均查找長度:(n為結點數目)
當n很大時,可用近似公式: lg(n+1)-1 表示
軟件工程基礎
一、基本概念:
? 軟件(Software):軟件是一種產品(邏輯產品),指的是計算機中程序及其說明程序的各種文檔。“程序”是計算任務的處理對象和處理規則的描述;“文檔”是有關計算機程序功能、設計、編制、使用的文字或圖形資料。
? 軟件危機的表現:
1、軟件需求的增長得不到滿足
2、軟件開發成本和進度無法控制
3、軟件質量難以保證
4、軟件不可維護或維護程度非常低
5、軟件成本不斷提高
6、軟件開發生產效率的提高趕不上硬件的發展和應用需求的增長
? 軟件工程(Software Engineering):用工程化的方法、科學知識和技術原理來定義、開發、維護軟件的一門學科。
? 軟件工程的目標:
付出較低的開發成本;達到要求的軟件功能;取得較好的軟件性能;開發的軟件易于移植;需要較低的維護費用;能按時完成開發任務,及時交付使用;開發的軟件可靠性高。
? 軟件工程研究的主要內容是軟件開發技術和軟件開發管理兩個方面。
? 軟件生存周期:是指一個軟件從提出開發要求開始直到該軟件報廢(停止運行)為止的整個時期。
? 軟件生存周期模型:是描述軟件開發過程中各種活動如何執行的模型。
? 常用的模型有:瀑布模型、增量模型、螺旋模型、噴泉模型、變換模型和基于知識的模型
瀑布模型是將軟件生存周期各個活動規定為依線性順序連接的若干階段的模型。主要包括問題定義及可行性分析、項目開發計劃、需求分析、概要設計、詳細設計、編碼、測試和維護幾個階段。
例:下列描述中正確的是( )
A、程序就是軟件 B、軟件開發不受計算機系統的限制
C、軟件既是邏輯實體,又是物理實體 D、軟件是程序、數據與相關文檔的集合
二、軟件可行性研究與項目開發計劃:
? 軟件可行性研究的目的是用最小的代價在盡可能短的時間內確定該軟件項目是否能夠開發,是否值得去開發。
? 可行性研究的任務:
A、技術可行性
B、經濟可行性
C、社會可行性(法律可行性)
? 可行性研究的具體步驟:
1、確定項目規模和目標
2、研究正在運行的系統
3、建立新系統的高層邏輯模型
4、導出和評價各種方案
5、推薦可行的方案
6、編寫可行性研究報告
三、軟件需求分析:
? 需求分析是指開發人員要準確理解用戶的要求,進行細致的調查分析,將用戶非形式的需求陳述轉化為完整的需求定義,再由需求定義轉換到相應的形式功能規約(需求規格說明)的過程。
? 需求分析的基本任務:
1、問題識別
A、功能需求
B、性能需求
C、環境需求
D、用戶界面需求
2、分析與綜合,導出軟件的邏輯模型
3、編寫文檔(需求規格說明書)
? 需求分析的方法:
1、結構化分析(Structured Analysis):是面向數據流進行需求分析的方法。
SA方法利用圖形等半形式化的描述方式表達需求,主要描述工具:
A、數據流圖(DFD):是SA方法中用于表示系統邏輯模型的一種工具,以圖形的方式描繪數據在系統中流動和處理的過程。
B、數據字典(DD):用以定義數據流圖中的各個成分的具體含義,為系統的分析、設計及維護提供了有關元素的一致的定義和詳細的描述。
C、描述加工邏輯的結構化語言、判定表、判定樹
2、IDEF方法(是 ICAM Definition的縮寫):
是一種用于進行復雜系統分析和設計的方法,是在結構化分析和設計技術的基礎上提出來的。
3、面向對象分析方法(OOP):
將客觀世界的事物抽象為對象,通過屬性和方法描述對象的狀態和行為,具有繼承、封裝和多態性等特征。
例:軟件開發的結構化分析方法中,常用的描述軟件功能需求的工具是( )
A、業務流程圖、處理說明 B、軟件流程圖、模塊說明
C、數據流程圖、數據字典 D、系統流程圖、程序編碼
四、軟件概要設計:
將軟件需求轉換為軟件表示的過程。
? 軟件概要設計的基本任務:
1、設計軟件系統結構
2、數據結構及數據庫設計(概要設計、邏輯設計、物理設計):
3、編寫概要設計文檔:
4、評審:
? 軟件設計的方法:
模塊化:模塊在程序中是數據說明、可執行語句等程序對象的集合,或者是單獨命名和編址的元素,如高級語言中的過程、函數、子程序等。
? 模塊獨立性指每個模塊只完成系統要求的獨立的子功能,并且與其他模塊的聯系最少且接口簡單。其度量標準是:耦合性和內聚性
? 耦合性也稱塊間聯系,指軟件系統結構中各模塊間相互聯系緊密程度的一種度量。模塊之間聯系越緊密,其耦合性就越強,模塊的獨立性則越差。
? 內聚性也稱塊內聯系,指模塊功能強度的度量,即一個模塊內部各個元素(語句之間、程序段之間)彼此結合的緊密程度的度量。
? 將軟件系統劃分模塊時,盡量做到高內聚低耦合。
例:為了使模塊盡可能獨立,要求( )
A、模塊的內聚程序要盡量高,且各模塊間的耦合程序要盡量強
B、模塊的內聚程序要盡量高,且各模塊間的耦合程序要盡量弱
C、模塊的內聚程序要盡量低,且各模塊間的耦合程序要盡量弱
D、模塊的內聚程序要盡量低,且各模塊間的耦合程序要盡量強
五、軟件詳細設計:
主要確定每個模塊具體執行過程
? 軟件詳細設計的基本任務:
1、為每個模塊進行詳細的算法設計:
2、為模塊內的數據結構進行設計:
3、對數據庫進行物理設計:
4、輸入、輸出格式設計
5、編寫詳細設計說明書:
6、評審:
? 詳細設計常用三種工具:
圖形(流程圖、盒圖、問題分析圖PAD)、
表格(判定表)、
語言(過程設計語言,又稱為偽碼)
六、軟件編碼:
主要是將詳細設計得到的處理過程描述轉換為基于某種計算機語言的程序
常用的計算機語言:
Pascal 、C、C++、Java等
七、軟件測試:
軟件測試代表了需求分析、設計、編碼的最終復審。軟件測試貫穿于軟件開發的全過程。
? 軟件測試的目的:
1、軟件測試是為了盡可能多地發現程序中的錯誤而執行程序的過程。
2、一個好的測試用例能夠發現至今尚未發現的錯誤。
3、一個成功的測試是發現了至今尚未發現的錯誤的測試。
? 軟件測試的原則:
1、測試用例應由輸入數據和預期的輸出數據兩部分組成。
2、測試用例不僅選用合理的輸入數據,還要選擇不合理的輸入數據
3、除了檢查程序是否做了它應該做的事
4、應制定測試計劃并嚴格執行,排除隨意性
5、長期保留測試用例
6、對發現錯誤較多的程序段,應進行更深入的測試
7、程序員避免測試自己的程序
? 軟件測試方法:
1、靜態測試:
是指被測試程序不在機器上運行,而是采用人工檢測和計算機輔助靜態分析的手段對程序進行檢測。
2、動態測試:是指通過運行程序發現錯誤
A、黑盒測試法(功能測試):
主要對軟件的接口進行測試,依據需求規格說明書,檢查程序是否滿足功能要求。常用的技術是等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、綜合策略法
B、白盒測試法(結構測試):
主要測試程序的內部結構和處理過程。常用的技術是語句覆蓋、條件覆蓋、路徑覆蓋、判定覆蓋等
? 軟件測試的實施:
1、單元測試:
單元測試是對軟件設計的最小單位——模塊(程序單元)進行正確性檢驗測試,主要針對模塊的以下五個基本特征進行測試:
A、模塊接口
B、局部數據結構:
C、重要的執行路徑:
D、錯誤處理測試:
E、邊界條件:
2、集成測試:
集成測試是指在單元測試的基礎上,將所有模塊按照設計要求組裝成一個完整的系統進行的測試,故也稱組裝測試或聯合測試。
主要方法有兩種:
非漸增式測試:首先對每個模塊分別進行單元測試,然后再把所有的模塊按設計要求組裝在一起進行測試。
漸增式測試:逐個把未經過測試的模塊組裝到已經過測試的模塊上去,進行集成測試,每加入一個新模塊進行一次集成測試,重復此過程直至程序組裝完畢。
3、確認測試:
確認測試又稱有效性測試,它的任務是檢查軟件的功能與性能是否與需求規格說明書中確定的指標相符合,因而需求規格說明是確認測試的基礎。
4、系統測試:
系統測試是通過測試確認的軟件作為整個計算機系統的一個元素,與計算機硬件、外設、支撐軟件、數據和人員等其他系統元素組合在一起,在實際運行環境下對計算機系統進行一系列的集成測試和確認測試。
? 程序調試:
調試是在進行了成功的測試之后才開始的工作,目的是確定錯誤的原因和位置,并改正錯誤,又稱為糾錯。
例:軟件測試的目的是( )
A、證明軟件的正確性 B、找出軟件系統中存在的所有錯誤
C、盡可能多地發現軟件系統中的錯誤 D、證明軟件系統中存在錯誤
在軟件測試方法中,黑箱測試法和白箱測試法是常用的方法,其中黑箱測試法主要是
用于測試( )
A、結構合理性 B、軟件外部功能 C、程序正確性 D、程序內部邏輯
八、軟件維護:
軟件投入使用后進行的階段,是軟件生存周期中時間最長的一個階段,所花費的精力和費用也是最多的一個階段。主要是因為:隱含的錯誤要修改;新增的功能要加入進去;環境的變化對程序進行變動等。
? 軟件維護的內容有四類:
1、校正性維護:
為了識別和糾正錯誤,修改軟件性能上的缺陷,其占整個維護工作的 21%
2、適應性維護:
為了使應用軟件適應環境(硬件、系統軟件、數據)的變化而修改軟件的過程稱為適應性維護,其占整個維護工作的25%
3、完善性維護:
增加軟件功能、增強軟件性能、提高軟件運行效率而進行的維護活動稱為完善性維護,其占整個維護工作的 50%
4、預防性維護:
為了提高軟件的可維護性和可靠性而對軟件進行的修改稱為預防性維護,其占整個維護工作的 4%
例:軟件維護是指( )
A、維護軟件正常運行 B、軟件的配置更新
C、對軟件的改進、適應和完善 D、軟件開發期的一個階段
軟件生命周期中所花費用最多的階段是( )
A、詳細設計 B、軟件編碼 C、軟件測試 D、軟件維護
數據庫原理基礎
一、基本概念:
? 數據處理:是指將數據轉換成信息的過程
? 數據管理是指對數據的組織、分類、編碼、存儲、檢索和維護提供操作手段
其經歷了以下階段:
1、人工管理
2、文件系統
3、數據庫系統
4、分布式數據庫系統階段
5、面向對象的數據庫系統階段
? 數據庫(Database):是指存儲在計算機存儲設備上的結構化的相關數據的集合,不僅包括數據本身,還包括事物之間的聯系。
?
?
?
?
?
?
?
?
?
? 數據庫應用系統(DBAS):是指系統開發人員利用數據庫系統資源開發出來的,面向某一類實際應用的應用軟件系統。
?
? 數據庫管理系統(DBMS):
?
?
?
?
?
?
對數據庫的建立、使用和維護進行管理和配置的軟件系統。
是數據庫系統的核心
? 數據庫系統(DBS):由硬件系統、數據庫集合、數據庫管理系統及相關軟件、數據庫管理員和用戶組成。
? 數據庫系統的特點:
實現數據共享、減少數據冗余
采用特定的數據模型
具有較高的數據獨立性
統一的數據控制功能
? 實體: 客觀存在并且可以相互區別的事物稱為實體。
? 實體的屬性:實體所具有的物性稱為實體的屬性。
? 實體集:同類型的實體的集合稱為實體集。
? 實體型:屬性的集合表示一種實體類型,稱為實體型。
例:數據庫管理系統能實現對數據庫中數據的查詢、插入、修改和刪除,這類功能稱為( )
A、數據定義功能 B、數據管理功能 C、數據操縱功能 D、數據控制功能
? 聯系:實體之間的對應關系。
聯系的類型:
1、一對一聯系:表現為主表中的每一條記錄只與相關表中的一條記錄相關聯。
例如: 班級與班長, 學校與校長
2、一對多聯系:表現為主表中的每一條記錄與相關表中的多條記錄相關聯。
例如: 班級與學生,部門與職工
3、多對多聯系:表現為一個表中的多個記錄在相關表中同樣有多個記錄相關聯。
例如: 學生與課程, 工程項目與零件
? 數據模型:不僅反映事物本身,還用來表示實體及實體之間聯系的方法。
1、層次模型:用樹形結構表示實體及其之間聯系的模型稱為層次模型。
2、網狀模型:用網狀結構表示實體及其之間聯系的模型稱為網狀模型。
3、關系模型:用二維表結構來表示實體及實體之間的聯系的模型稱為關系模型。
一個二維表稱為一個關系,在VFP稱為數據表。一個關系不僅表示實體本身還表示實體之間的聯系。
例:用樹形結構表示實體之間聯系的模型是( )
A、關系模型 B、網狀模型 C、層次模型 D、以上三個都是
二、關系數據庫:
? 元組(Record):在一個關系中,水平方向的行稱為元組。在VFP中稱為記錄
? 屬性(Field):一個二維表中垂直方向的列稱為屬性。在VFP中稱為字段名
? 域(Domain):屬性的取值范圍。根據數據類型和寬度來決定的。
? 關鍵字(Primary Key):其值能夠惟一標識一個元組的屬性或屬性的組合。
注:關鍵字不能出現空值或重復值
? 外部關鍵字(Foreign Key):如果表中的一個字段不是本表的主關鍵字或侯選關鍵字,而是另外一個表的主關鍵字或侯選關鍵字,這個字段在本表中稱為外部關鍵字。
? 關系性質:
二維表中元組的個數是有限的——元組個數有限性
二維表中元組均不相同——元組的惟一性
二維表中元組的次序可以任意交換——元組的次序無關性
二維表中元組的分量是不可分割的基本數據項——元組分量的原子性
二維表中屬性名各不相同——屬性名惟一性
二維表中屬性與次序無關,可任意交換——屬性的次序無關性
例:關系數據模型中表示實體和實體間的聯系的結構是( )
A、樹型 B、網狀 C、二維表 D、對象
三、關系運算:
? 并(Union):是由兩個關系的元組組成的集合。(兩個關系必須具有相同的關系模式)
? 差(Difference):若有兩個相同結構的關系R和S,R差S的結果屬于R但不屬于S的元組組成的集合。
? 交(Intersection):若有兩個相同的結構關系R和S,交的結果為兩個關系共同的元組。
? 選擇(Selection):從關系中找出滿足給定條件的元組的操作稱為選擇。
? 投影(Projection):從關系模式中指定若干個屬性組成新的關系稱為投影。
? 聯接(Join):是關系的橫向結合,關系模式改變了,是多個關系的關系模式的組合。聯接的結果是多個關系中滿足條件的元組。




