版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
二級公共基礎知識總結
第一章數(shù)據(jù)構造與算法
1.1算法
算法:是一組有窮指令集,是解題方案的精確而完整的描述。通俗地說,算法就是計算
機解題的過程。算法不等十程序,也不等于計算措施,程序的編制不也許優(yōu)于算法的設
計。
算法是一組嚴謹?shù)囟x運算次序的規(guī)則,每一種規(guī)則都是有效的,且是明確的,本次序
將在有限的次數(shù)下終止。因此其四個基本特性包括:
(1)確定性,算法中每一環(huán)節(jié)都必須有明確定義,不容許有模棱兩可的解釋,不容許
有多義性;
(2)有窮性,算法必須能在有限的時間內做完,即能在執(zhí)行有限個環(huán)節(jié)后終止;
(3)可行性,算法原則上可以精確地執(zhí)行;
(4)擁有足夠的情報。
算法的基本要素:一是對數(shù)據(jù)對象的運算和操作;二是算法的控制構造。
指令系統(tǒng):一種計算機系統(tǒng)能執(zhí)行的所有指令的集合。
基本運算和操作包括:算術運算、邏輯運算、關系運算、數(shù)據(jù)傳播。
算法的三種基本控制構造:次序構造、選擇構造、循環(huán)構造。
算法基木設計措施:列舉法、歸納法、遞推、遞歸、減半遞推技術、回溯法。
算法效率的度量一算法復雜度:算法時間復雜度和算法空間復雜度。
算法時間復雜度:指執(zhí)行算法所需要的計算工作量。即算法執(zhí)行過程中所需要的基本運
算次數(shù)。一般,-一種算法所用的時間包括編譯時間和運行時間。
算法空間復雜度:指執(zhí)行這個算法所需要的內存空間。包括算法程序所占的空間,輸入
的初始數(shù)據(jù)所占的空間,算法執(zhí)行過程中所需的額外空間。
1.2數(shù)據(jù)構造的基本概念
數(shù)據(jù)構造:指互相有關聯(lián)的數(shù)據(jù)元素的集合。
數(shù)據(jù)構造研究的三個方面:
(1)數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關系,即數(shù)據(jù)的邏輯構造;
(2)在對數(shù)據(jù)進行處理時,各數(shù)據(jù)元素在計算機中的存儲關系,即數(shù)據(jù)的存儲構造;
(3)對多種數(shù)據(jù)構造進行的運算。
數(shù)據(jù)的邏輯構造應包括:
(1)表達數(shù)據(jù)元素的信息;
(2)表達各數(shù)據(jù)元素之間的前后件關系(指邏輯關系,與存儲位置無關)。
數(shù)據(jù)的邏輯構造在計算機存儲空間中的寄存形式稱為數(shù)據(jù)的存儲構造,也稱數(shù)據(jù)物理構
造。
數(shù)據(jù)的存儲構造有次序、鏈接、索引等。
線性構造的條件,(一種非空數(shù)據(jù)構造):
(1)有且只有一種根結點;(2)每一種結點最多有一種前件,也最多有一種后件。
非線性構造:不滿足線性構造條件的數(shù)據(jù)構造。
1.3線性表及另一方面序存儲構造
線性表是由一組數(shù)據(jù)元素構成,數(shù)據(jù)元素的位置只取決于自己的序號,元素之間的相對
位置是線性的。
在復雜線性表中,由若干項數(shù)據(jù)元素構成的數(shù)據(jù)元素稱為記錄;
由多種記錄構成的線性表稱為文獻。
非空線性表的構造特性:
(1)且只有一種根結點al,它無前件;
(2)有且只有一種終端結點an,它無后件;
(3)除根結點與終端結點外,其他所有結點有且只有一種前件,也有且只有一種后件。
結點個數(shù)n稱為線性表的長度,當n=0時,稱為空表。
線性表的次序存儲構造具有如下兩個基本特點:
(1)線性表中所有元素所占的存儲空間是持續(xù)的;
(2)線性表中各數(shù)據(jù)元素在存儲空間中是按邏輯次序依次寄存的。
元素ai的存儲地址為:ADR(ai)=ADR(al)+(i-l)k,
ADR(al)為第一種元素的地址,k代表每個元素占的字節(jié)數(shù)。
次序表的運算:查找、插入、刪除。
1.4線性鏈表
數(shù)據(jù)構造中的每一種結點對應于一種存儲單元,這種存儲單元稱為存儲結點,簡稱結點。
結點由兩部分構成:(1)用于存儲數(shù)據(jù)元素值,稱為數(shù)據(jù)域;
(2)用于寄存指針,稱為指針域,用于指向前一種或后一種結點。
在鏈式存儲構造中,存儲數(shù)據(jù)構造的存儲空間可以不持續(xù),各數(shù)據(jù)結點的存儲次序與數(shù)
據(jù)元素之間的邏輯關系可以不一致,而數(shù)據(jù)元素之間的邏輯關系是由指針域來確定的。
鏈式存儲方式即可用于表達線性構造,也可用于表達非線性構造。
線性單鏈表中,HEAD稱為頭指針,HEAD=NULL(或0)稱為空表。
假如是雙項鏈表的兩指針:左指針(Llink)指向前件結點,右指針(Rlink)指向后件
結點。
線性鏈表的基本運算:查找、插入、刪除。
1.5棧和隊列
樹的度。樹的最大層次稱為樹的深度。
二叉樹的特點:(1)非空二叉樹只有一種根結點;
(2)每一種結點最多有兩棵子樹,且分別稱為該結點的左子樹與右子樹。
滿二叉樹是指除最終一層外,每一層上的所有結點有兩個子結點,則k層上有2k-1個
結點深度為m的滿二義樹有2m-l個結點。
完全二叉樹是指除最終一層外,每一層上的結點數(shù)均到達最大值,在最終一層上只缺乏
右邊的若干結點。
二叉樹基本性質:(1)在二叉樹的第k層上,最多有2k.i(k2l)個結點;
(2)深度為m的二叉樹最多有2m-1個結點;
(3)度為0的結點(即葉子結點)總是比度為2的結點多一種;
(4)具有n個結點的二叉樹,其深度至少為[log2n]+l,其中[log2n]表達
取log2n的整數(shù)部分
(5)具有n個結點的完全二叉樹的深度為口og2n]+l;
(6)設完全二叉樹共有n個結點。假如從根結點開始,按層序(每一層從
左到右)用自然數(shù)1,2,…n給結點進行編號(k=l,2....n),有如下結論:
①若k=l,則該結點為根結點,它沒有父結點;若k>l,則該結點的父結點編號為INT(k/2);
②若2k〈n,則k結點的左子結點編號為2k;否則該結點無左子結點(也無右子結點);
③若2k+l〈n,則編號為k的結點的右子結點編號為2k+l;否則該結點無右子結點。
補充:增長度為1的結點不會影響二叉樹的葉子結點數(shù),每增長一種度為2的結點便會
增長
一種葉子結點,沒有度為2的結點時葉子結點數(shù)為1。
已知完全二叉樹有x個結點,求其葉子結點數(shù):
①確定層數(shù)為k;②第k層的結點數(shù)y=x-(2k-1-l);
③第k-1層的葉子結點數(shù)n=2(k-l)-l-y/2〈若y/2有余,則要加1>;④最終y+n。
二叉樹存儲構造采用鏈式存儲構造,對于滿二叉樹與完全二叉樹可以按層序進行次序存
儲。
二義樹的遍歷:
(1)前序遍歷(DLR),首先訪問根結點,然后遍歷左子樹,最終遍歷右子樹;
(樹根在第一,下走不跳結點)
(2)中序遍歷(LDR),首先遍歷左子樹,然后訪問根結點,最終遍歷右子樹;
(有左先左,再尋根,后找右。最左邊的結點最先遍歷,最右邊的結點最終遍歷)
(3)后序遍歷(LRD)首先遍歷左子樹,然后訪問遍歷右子樹,最終訪問根結點。
(有左先左,再找右,后尋根,到最右一路上行,樹根在最終)
小結:邏輯構造可分為線性表和非線性表。
線性表包括棧、隊列,其存儲方式為次序存儲、鏈式存儲均可。鏈式型有:線性
鏈表,帶鏈的棧,
帶鏈的隊列,循環(huán)鏈表等。
非線性表包括樹(二叉樹),其存儲方式為鏈式存儲。
1.7查找技術
只能使用次序查找的兩種狀況:
(1)線性表為無序表,不管是次序存儲還是鏈式存儲;
(2)表采用鏈式存儲構造,雖然是有序線性表。
二分法查找只合用于次序存儲的有序表,對于長度為n的有序線性表,最壞狀況只需比
較log2n次,而次序查找需要比較n次。
1.8排序技術
排序是指將一種無序序列整頓成按值非遞減次序排列的有序序列。
互換類排序法:(1)冒泡排序法,需要比較的次數(shù)為n(n-l)/2;
(2)迅速排序法。
插入類排序法:(1)簡樸插入排序法,最壞狀況需要n(n?l)/2次比較;
(2)希爾排序法,最壞狀況需要0(nl.5)次比較。
選擇類排序法:(1)簡樸選擇排序法,最壞狀況需要n(n.l)/2次比較;
(2)堆排序法,最壞狀況需要O(nlog2n)次比較。
相比以上幾種(除希爾排序法外),堆排序法的時間復雜度最小。
第二章程序設計基礎
2.1程序設計設計措施和風格
“清晰第一、效率第二”已成為當今主導的程序設計風格。
形成良好的程序設計風格需注意:(詳見書P27)
1、源程序文檔化;2、數(shù)聽闡明的措施;3、語句的構造;4、輸入和輸出。
注釋分序言性注釋和功能性注釋。語句構造清晰第一、效率第二。
2.2構造化程序設計
構造化程序設計措施的四條原則是:
1、自頂向下;2、逐漸求精;3、模塊化;4、限制使用goto語句。
構造化程序的基本構造及特點:
(1)次序構造:一種簡樸的程序設計,最基本、最常用的構造;
(2)選擇構造:又稱分支構造,包括簡樸選擇和多分支選擇構造,可根據(jù)條件,判斷
應當
選擇哪一條分支來執(zhí)行對應的語句序列;
(3)循環(huán)構造:又稱反復構造,可根據(jù)給定條件,判斷與否需要反復執(zhí)行某一相似或
類似
的程序段。
構造化程序設計的特點:只有一種入口和出口
2.3面向對象的程序設計
面向對象的程序設計的初次提出以60年代末挪威奧斯陸大學和挪威計算機中心研制的
SIMULA語言為標志。
面向對象措施的長處:
(1)與人類習慣的思維措施一致;(2)穩(wěn)定性好;(3)可重用性好;
(4)易于開發(fā)大型軟件產品;(5)可維護性好。
對象是面向對象措施中最基本的概念,可以用來表達客觀世界中的任何實體,對象是實
體的抽象。
面向對象的程序設計措施中,對象是由數(shù)據(jù)的容許的操作構成的封裝體,是系統(tǒng)中用來
描述客觀事物的一種實體,是構成系統(tǒng)的一種基本單位,由一組表達其靜態(tài)特性的屬性
和它可執(zhí)行的一組操作構成。
屬性即對象所包括的信息、,它在設計對象時確定,一般只能通過執(zhí)行對象的操作來變化。
操作描述了對象執(zhí)行的功能,是對象的動態(tài)屬性,操作也稱為措施或服務。
對象的基本特點:
(1)標識惟一性;(2)分類性;(3)多態(tài)性;(4)封裝性;(5)模塊獨立性
好。
類是指具有共同屬性、共同措施的對象的集合。類是有關對象性質的描述。類是對象的
抽象,對象是其對應類的一種實例。
消息是一種實例與另一種實例之間傳遞的信息、。對象間的通信靠消息傳遞。它祈求對象
執(zhí)行某一處理或回答某一規(guī)定的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。
消息的構成包括:
(1)接受消息的對象的名稱;(2)消息標識符,也稱消息名;(3)零個或多種參
數(shù)。
繼承是使用已經有的類定義作為基礎建立新類的定義技術,廣義指可以直接獲得已經有
的性質和特性,而不必反復定義他們。
繼承具有傳遞性,一種類實際上繼承了他上層的所有基類的特性。
繼承分單繼承和多重繼承。單繼承指一種類只容許有一種父類,即類等級為樹形構造;
多重繼承指一種類容許有多種父類。
多態(tài)性是指同樣的消息被不一樣的對象接受時可導致完全不一樣的行動的現(xiàn)象
第三章軟件工程基礎
3.1軟件工程基本概念
計算機軟件是包括程序、數(shù)據(jù)及有關文檔的完整集合。
軟件的特點包括:
(1)軟件是一種邏輯實體,具有抽象性;
(2)軟件的生產與硬件不一樣,它沒有明顯的制作過程:
(3)軟件在運行、有效期間不存在磨損、老化問題;
(4)軟件的開發(fā)、運行對計算機系統(tǒng)具有依賴性,受計算機系統(tǒng)的限制,這導致了軟
件移植的問題;
(5)軟件復雜性高,成本昂貴;
(6)軟件開發(fā)波及諸多的社會原因。
軟件按功能分為應用軟件、系統(tǒng)軟件、支撐軟件(或工具軟件)。
軟件危機重要表目前成本、質量、生產率等問題。
軟件工程是應用于計算機軟件的定義、開發(fā)和維護的一整套措施、工具、文檔、實踐原
則和工序。簡樸的說就是使軟件走向工程化。軟件工程的關鍵思想是把軟件產品看作是
一種工程產品來處理。
軟件工程包括3個要素:措施、工具和過程。
軟件工程過程是把軟件轉化為輸出的一組彼此有關的資源活動,包括4種基本活動:
(1)P(plan)——軟件規(guī)格闡明;(2)D(do)——軟件開發(fā);
(3)C(check)---軟件確認;(4)A(action)----軟件演進。
軟件生命周期:軟件產品從提出、實現(xiàn)、使用維護到停止使用退伍的過程,
軟件生命周期分三個階段:軟件定義、軟件開發(fā)、運行維護,
重要活動階段是:
(1)可行性研究與計劃制定;(2)需求分析;
(3)軟件設計(概要設計和詳細設計);(4)軟件實現(xiàn);(5)軟件測試;
(6)運行和維護。
軟件工程的目的:在給定成木、進度的前提下,開發(fā)出具有有效性、可靠性、可理解性、
可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性且滿足顧客需求的
產品。
基本目的:付出較低的開發(fā)成本;到達規(guī)定的軟件功能;獲得很好的軟件性能;開發(fā)軟
件易于移植;需要較低的費用;能準時完畢開發(fā),及時交付使用。
軟件工程的理論和技術性研究的內容重要包括:軟件開發(fā)技術和軟件工程管理。
軟件開發(fā)技術包括:軟件開發(fā)措施學、開發(fā)過程、開發(fā)工具和軟件工程環(huán)境。
軟件開發(fā)環(huán)境或軟件工程環(huán)境是指全面支持軟件開發(fā)全過程的軟件工具的集合。
軟件工程管理包括:軟件管理學、軟件工程經濟學、軟件心理學等內容。
軟件管理學包括人員組織、進度安排、質量保證、配置管理、項目計劃等,
軟件工程基本原則:抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可
驗證性。
3.2構造化分析措施
構造化措施的關鍵和基礎是構造化程序設計理論。
軟件定義階段中,可行性研究與計劃的制定是確定待開發(fā)目的和總的規(guī)定,給出它的功
能、性能、可靠性以及接口等方面的也許方案,制定完畢開發(fā)的實行計劃。需求分析,
看待開發(fā)軟件提出的需求分析并給出詳細的定義。
需求分析階段的工作:需求獲取,需求分析,編寫需求規(guī)格闡明書,需求評審。
需求分析措施有:(1)構造化需求分析措施;
①面向數(shù)據(jù)構造的Jackson措施(ISD);
②面向數(shù)據(jù)流的構造化分析措施(SA);
③面向數(shù)據(jù)構造的構造化數(shù)據(jù)系統(tǒng)開發(fā)措施(DSSD);
(2)面向對象的分析的措施(OOA)。
從需求分析建立的模型的特性來分:靜態(tài)分析和動態(tài)分析。
構造化分析措施的實質:著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,
以數(shù)據(jù)流圖和數(shù)據(jù)字典為重要工具,建立系統(tǒng)的邏輯模型。
構造化分析的常用工具:數(shù)據(jù)流圖;數(shù)據(jù)字典;鑒定樹;鑒定表。
(1)數(shù)據(jù)流圖(DFD圖):描述數(shù)據(jù)處理過程的工具,是需求理解的邏輯模型的圖形表
達,它直接支持系統(tǒng)功能建模。
①加工(轉換)一一圓框,輸入數(shù)據(jù)經加工變換產生的輸出。
②數(shù)據(jù)流一一箭頭,沿箭頭方向傳遞數(shù)據(jù)的通道,一般在旁邊標注數(shù)據(jù)流名。
③存儲文獻(數(shù)據(jù)源)一一雙橫線,表達處理過程中寄存多種數(shù)據(jù)的文獻,
④源、潭一一方框,表達系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實體。
(2)數(shù)據(jù)字典:對所有與系統(tǒng)有關的數(shù)據(jù)元素的一種有組織的列表,以及精確的、嚴
格的定義,使得顧客和系統(tǒng)分析員對于輸入、輸出、存儲成分和中間計算成果有共同的
理解。
數(shù)據(jù)字典是構造化分析的關鍵。
(3)鑒定樹:從問題定義的文字描述中分清哪些是鑒定的條件,哪些是鑒定的結論,
根據(jù)描述材料中的連接詞找出鑒定條件之間的附屬關系、并列關系、選擇關系,根據(jù)它
們構造鑒定樹。
(4)鑒定表:與鑒定樹相似,當數(shù)據(jù)流圖中的加工要依賴于多種邏輯條件的取值,即
完畢該加工的一組動作是由于某一組條件取值的組合而引起的,使用鑒定表描述比較合
適。
軟件需求規(guī)格闡明書的特點:①對的性;②無岐義性;③完整性;④可驗證性;
⑤一致性;⑥可理解性;⑦可修改性;⑧可追蹤性。
3.3構造化設計措施
軟件設計是確定系統(tǒng)的物理模型。
軟件設計是開發(fā)階段最重要的環(huán)節(jié),是將需求精確地轉化為完整的軟件產品或系統(tǒng)的唯
一途徑。系統(tǒng)設計人員和程序設計人員應當在反復理解軟件需求的基礎上,給出軟件構
造、模塊的劃分、功能的分派以及處理流程。
軟件設計的基本目的是用比較抽象概括的方式確定目的系統(tǒng)怎樣完畢預定的任務。
從技術觀點來看,軟件設計包括軟件構造設計、數(shù)據(jù)設計、接口設計、過程設計。
①構造設計:定義軟件系統(tǒng)各重要部件之間的關系。
②數(shù)據(jù)設計:將分析時創(chuàng)立的模型轉化為數(shù)據(jù)構造的定義。
③接口設計:描述軟件內部、軟件和協(xié)作系統(tǒng)之間以及軟件與人之間怎樣通信。
④過程設計:把系統(tǒng)構造部件轉換成軟件的過程描述。
從工程管理角度來看,軟件設計分兩步:概要設計和詳細設計。
軟件設計的一般過程:軟件設計是一種迭代的過程;先進行高層次的構造設計;后進行
低層次的過程設計;穿插進行數(shù)據(jù)設計和接口設計。
軟件設計的基本原理是:(1)抽象;(2)模塊化;(3)信息隱蔽;(4)模塊獨立
性。
衡量軟件模塊獨立性使用耦合性和內聚性兩個定性的度量原則。
耦合性是模塊見互相連接的緊密程度的度量。耦合程度取決于各個模塊之間接口的復雜
程度、調用方式以及哪些信息通過接口。
內聚性是一種模塊內部各個元素間彼此結合的緊密程度的度量。
在程序構造中各模塊的內聚性越強,則耦合性越弱,優(yōu)秀軟件應高內聚,低耦合,有助
于提高模塊的獨立性。
軟件概要設計的基本任務是:
(1)設計軟件系統(tǒng)構造;(2)數(shù)據(jù)構造及數(shù)據(jù)庫設計;(3)編寫概要設計文檔;(4)
概要設計文檔評審。
在構造圖中,模塊用一種矩形表達,箭頭表達模塊間的調用關系。
可以用帶注釋的箭頭表達模塊調用過程中來回傳遞的信息。
還可用帶實心圓的箭頭表達傳遞的是控制信息,空心圓箭心表達傳遞的是數(shù)據(jù)。
構造圖的基本形式:基本形式、次序形式、反復形式、選擇形式。
構造圖有四種模塊類型:傳入模塊、傳出模塊、變換模塊和協(xié)調模塊。
經典的數(shù)據(jù)流類型有兩種:變換型和事務型。
變換型系統(tǒng)構造圖由輸入、中心變換、輸出三部分構成。
事務型數(shù)據(jù)流的特點是:接受一項事務,根據(jù)事務處理的特點和性質,選擇分派一種合
適的處理單元,然后給出成果。
詳細設計:是為軟件構造圖中的每一種模塊確定實現(xiàn)算法和局部數(shù)據(jù)構造,用某種選定
的體現(xiàn)工具表達算法和數(shù)據(jù)構造的細節(jié)。
常見的過程設計工具有:
圖形工具(程序流程圖(PFD)、N-S圖、PAD圖、),表格工具(鑒定表),語言工具(PDL)。
程序流程圖中:箭頭為控制流、方框為加工環(huán)節(jié)、菱形為邏輯條件。
3.4軟件測試
軟件測試定義:使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其目的在于檢查它
與否滿足規(guī)定的需求或是弄清預期成果與實際成果之間的差異。
軟件測試的目的:發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。
軟件測試措施:靜態(tài)測試和動態(tài)測試。
靜態(tài)測試包括代碼檢查、靜態(tài)構造分析?、代碼質量度量。不實際運行軟件,重要通過人
工進行。
動態(tài)測試:是基本計算機的測試,重要包括白盒測試措施和黑盒測試措施,
白盒測試:也稱構造測試或邏輯測試。在程序內部進行,重要用于完畢軟件內部操作的
驗證。白盒測試重要考慮內部的邏輯構造。重要措施有邏輯覆蓋、基本途徑測試。
黑盒測試:也稱功能測試或數(shù)據(jù)驅動測試。是在軟件接口處進行,完畢功能驗證。黑盒
測試完全不考慮程序內部的邏輯構造和內部特性,只根據(jù)程序的需求和功能規(guī)格闡明,
檢查程序的功能與否符合它的設計規(guī)定。重要診斷功能不對或遺漏、界面錯誤、數(shù)據(jù)構
造或外部數(shù)據(jù)庫訪問錯誤、性能錯誤、初始化和終止條件錯,用十軟件確認測試。重要
措施有等價類劃分法、邊界值分析法、錯誤推測法、因果圖等。
驅動測試相稱于被測模塊的主程序,它接受測試數(shù)據(jù),并傳給被測模塊,輸出實際測試
成果。
軟件測試過程一般按4個環(huán)節(jié)進行:
單元測試、集成測試、驗收測試(確認測試)和系統(tǒng)測試。
單元測試是對模塊(程序單元)進行,靜態(tài)動態(tài)均有,動態(tài)時以白盒為主輔之以黑盒。
集成測試是測試、組裝軟件。
確認測試的任務是驗證軟件的功能和性能及其他特性與否滿足了需求規(guī)格闡明中的各
項需求以及軟件配置與否完全對的,先用黑盒。
3.5程序的調試
程序調試的任務是診斷和改正程序中的錯誤,重要在開發(fā)階段進行。
程序調試的基本環(huán)節(jié):
(1)錯誤定位;
(2)修改設計和代碼,以排除錯誤;
(3)進行回歸測試,防止引進新的錯誤。
軟件調試可分為靜態(tài)調試和動態(tài)調試。靜態(tài)調試重要是指通過人的思維來分析源程序代
碼和排錯,是重要的設計手段,而動態(tài)調試是輔助靜態(tài)調試。
重要調試措施有:(1)強行排錯法;(2)回溯法;(3)原因排除法。
第四章數(shù)據(jù)庫設計基礎
4.1數(shù)據(jù)庫系統(tǒng)的基本概念
數(shù)據(jù):實際上就是描述事物的符號記錄。
軟件的數(shù)據(jù)是有一定的構造,有型與值之分,如整型、實型、字符型等。而數(shù)據(jù)的值給
出了符合定型的值,如整型值15。
數(shù)據(jù)庫:是指在已經有數(shù)據(jù)庫管理系統(tǒng)的基礎上建立數(shù)據(jù)庫,是數(shù)據(jù)的集合,具有統(tǒng)一
的構造形式并寄存于統(tǒng)一的存儲介質內,是多種應用數(shù)據(jù)的集成,并可被各個應用程序
共享。
數(shù)據(jù)庫寄存數(shù)據(jù)是按數(shù)據(jù)所提供的數(shù)據(jù)模式寄存的,具有集成與共享的特點。
數(shù)據(jù)庫管理系統(tǒng):一種系統(tǒng)軟件,負責數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控
制及保護和數(shù)據(jù)服務等,數(shù)據(jù)庫系統(tǒng)中實現(xiàn)多種數(shù)據(jù)管理功能的關鍵軟件稱為數(shù)據(jù)庫管
理系統(tǒng)。
數(shù)據(jù)庫管理系統(tǒng)的六大功能:
(1)數(shù)據(jù)模式定義:即為數(shù)據(jù)庫構建其數(shù)據(jù)框架;
(2)數(shù)據(jù)存取的物理構建:為數(shù)據(jù)模式的物理存取與構建提供有效的存取措施與手段;
(3)數(shù)據(jù)操縱:為顧客使生數(shù)據(jù)庫的數(shù)據(jù)提供以便,如查詢、插入、修改、刪除等以
及簡樸的算術運算及記錄;
(4)數(shù)據(jù)的完整性、安全性定義與檢查;
(5)數(shù)據(jù)庫的并發(fā)控制與故障恢復;
(6)數(shù)據(jù)的服務:如拷貝、轉存、重組、性能監(jiān)測、分析等。
為完畢以上功能,數(shù)據(jù)庫管理系統(tǒng)提供如下的數(shù)據(jù)語言:
(I)數(shù)據(jù)定義語言(DDL):負責數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構建;
(2)數(shù)據(jù)操縱語言(DML):負責數(shù)據(jù)的操縱,如查詢與增、冊k改等;
(3)數(shù)據(jù)控制語言(DCL):負責數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、故障
恢復等。
數(shù)據(jù)語言按其使用方式具有兩種構造形式:
交互式命令(又稱自含型或自主型語言);宿主型語言(一般可嵌入某些宿主語言中)。
數(shù)據(jù)庫管理員:對數(shù)據(jù)庫進行規(guī)劃、設計、維護、監(jiān)視等的專業(yè)管理人員,
數(shù)據(jù)庫系統(tǒng):由數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)[軟件)、數(shù)據(jù)庫管理員(人員)、硬
件平臺(硬件)、軟件平臺(軟件)五個部分構成的運行實體。
對數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持.
數(shù)據(jù)庫應用系統(tǒng):由數(shù)據(jù)庫系統(tǒng)、應用軟件及應用界面三者構成。
數(shù)據(jù)管剪發(fā)展的三個階段:人工管理階段,文獻系統(tǒng)階段,數(shù)據(jù)庫系統(tǒng)階段。
而數(shù)據(jù)獨立性最高的是數(shù)據(jù)庫系統(tǒng)。
文獻系統(tǒng)階段:提供了簡樸的數(shù)據(jù)共享與數(shù)據(jù)管理能力,不過它無法提供完整的、統(tǒng)一
的、管理和數(shù)據(jù)共享的能力。
層次數(shù)據(jù)庫與網狀數(shù)據(jù)庫系統(tǒng)階段:為統(tǒng)一與共享數(shù)據(jù)提供了有力支撐。
數(shù)據(jù)庫系統(tǒng)的基木特點:數(shù)據(jù)的集成性、數(shù)據(jù)的高共享性與低冗余性、數(shù)據(jù)獨立性(物
理獨立性與邏輯獨立性)、數(shù)據(jù)統(tǒng)一管理與控制。
物理獨立性:顧客的應用程序與存儲在磁盤在磁盤等介質上的數(shù)據(jù)庫是互相獨立的。
數(shù)據(jù)庫系統(tǒng)的三級模式:
(1)概念模式:數(shù)據(jù)庫系統(tǒng)中全局數(shù)據(jù)邏輯構造的描述,全體顧客公共數(shù)據(jù)視圖;
(2)外模式:也稱子模式與顧客模式。是顧客的數(shù)據(jù)視圖,也就是顧客所見到的數(shù)據(jù)
模式;
(3)內模式:又稱物理模式,它給出了數(shù)據(jù)庫物理存儲構造與物理存取措施。
數(shù)據(jù)庫系統(tǒng)的兩級映射:
(1)概念模式到內模式的映射;
(2)外模式到概念模式的映射。
4.2數(shù)據(jù)模型
數(shù)據(jù)模型:是數(shù)據(jù)特性的抽象,從抽象層次上描述了系統(tǒng)的靜態(tài)特性、動態(tài)行為和約束
條件,為數(shù)據(jù)庫系統(tǒng)的信息表與操作提供一種抽象的框架。描述了數(shù)據(jù)構造、數(shù)據(jù)操作
及數(shù)據(jù)約束。
關系模型屬于非格式化模型,而模型和網狀模型屬于格式化模型。
E-R模型(實體聯(lián)絡模型)的基本概念
(1)實體:現(xiàn)實世界中的事物;
(2)屬性:事物的特性;
(3)聯(lián)絡:現(xiàn)實世界中事物間的關系。實體集間的聯(lián)絡有一對一、一對多、多對多的
聯(lián)絡。
E-R模型基本概念之間的聯(lián)接關系:實體是概念世界中的基本單位,屬性有屬性域,每
個實體可取屬性域內的值。一種實體的所有屬性值叫元組。
E-R模型的圖示法:
(1)實體集表達法一一矩形;(2)屬性表法一一橢圓形;(3)聯(lián)絡表達法一一菱
形。
層次模型的基本構造是樹形構造,具有如下特點:
(1)每棵樹有且僅有一種無雙親結點,稱為根;
(2)樹中除根外所有結點有且僅有一種雙親。
從圖論觀點看,網狀模型是一種不加任何條件限制的無向圖。
關系模型是數(shù)學化的模型。要用到集合論、離散數(shù)學等理論知識。
關系模型采用二維表來表達,簡稱表,由表框架及表的元組構成。一種二維表就是一種
關系。
每行數(shù)據(jù)稱為元組。在二維表中凡能唯一標識元組的最小屬性稱為鍵或碼。從所有侯選
鍵中選用一種作為顧客使用的鍵稱主鍵。表A中的某屬性是某表B的鍵,則稱該屬性
集為A的外鍵或外碼。
關系中的數(shù)據(jù)約束:
(1)實體完整性約束:約束關系的主鍵中屬性值不能為空值;
(2)參照完全性約束:是關系之間的基本約束;
(3)顧客定義的完整性約束:它反應了詳細應用中數(shù)據(jù)的語義規(guī)定。
4.3關系代數(shù)
關系數(shù)據(jù)庫系統(tǒng)的特點之一是它建立在數(shù)據(jù)理論的基礎之上,有諸多數(shù)據(jù)理論可以表達
關系模型的數(shù)據(jù)操作,其中最為著名的是關系代數(shù)與關系演算。
關系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關系運算包括:選擇、投影、連接。
關系模型的基木運算:
(1)插入(2)刪除⑶修改(4)查詢(包括投影、選擇、笛卡爾積運算)
尚有擴充運算交、除、連接及自然連接運算。在關系運算中,連接運算后得到的新表的
屬性是運算前表中屬性相加。即多于本來關系中屬性的個數(shù)。
4.4數(shù)據(jù)庫設計與管理
數(shù)據(jù)庫設計是數(shù)據(jù)應用的關鍵。數(shù)據(jù)庫設計的主線目的是處理數(shù)據(jù)共享問題.
數(shù)據(jù)庫設計的兩種措施:
(1)面向數(shù)據(jù):以信息需求為主,兼顧處理需求;
(2)面向過程:以處理需求為主,兼顧信息需求。
數(shù)據(jù)庫的生命周期:需求分析階段、概念設計階段、邏輯設計階段、物理設計階段、編
碼階段、測試階段、運行階段、深入修改階段。
數(shù)據(jù)庫設計分為四個階段:需求分析階段,概念設計階段,邏輯設計階段,物理設計階
段。
需求分析常用構造析措施和面向對象的措施。構造化分析(簡稱SA)措施用自頂向下、
逐層分解的方式分析系統(tǒng)。用數(shù)據(jù)流圖體現(xiàn)數(shù)據(jù)和公理過程的關系。對數(shù)據(jù)庫設計來講,
數(shù)據(jù)字典是進行詳細的數(shù)據(jù)搜集和數(shù)據(jù)分析所獲得的重要成果。
數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,包括5個部分:數(shù)據(jù)項、數(shù)據(jù)構造、數(shù)據(jù)流(可以是
數(shù)據(jù)項,也可以是數(shù)據(jù)構造)、數(shù)據(jù)存儲、處理過程。
數(shù)據(jù)庫概念設計的目的是分析數(shù)據(jù)內在語義關系。設計的措施有兩種
(1)集中式模式設計法(合用于小型或并不復雜的單位或部門);
(2)視圖集成設計法。
使用E-R模型與視圖集成進行設計。
視圖設計一般有三種設計次序:自頂向下、由底向上、由內向外。
視圖集成的幾種沖突:命名沖突、概念沖突、域沖突、約束沖突。
關系視圖設計又稱外模式設計。
關系視圖的重要作用:
(1)提供數(shù)據(jù)邏輯獨立性;(2)能適應顧客對數(shù)據(jù)的不一樣需求;(3)有一定數(shù)
據(jù)保密功能。
數(shù)據(jù)庫的物理設計重要目的是對數(shù)據(jù)內部物理構造作調整并選擇合理的存取途徑,以提
高數(shù)據(jù)庫訪問速度有效運用存儲空間。一般RDBMS中留給顧客參與物理設計的內容大
體有索引設計、集成簇設計和分區(qū)設計。
數(shù)據(jù)庫管理的內容:
(1)數(shù)據(jù)庫的建立;(2)數(shù)據(jù)庫的調整;(3)數(shù)據(jù)庫的重組;
(4)數(shù)據(jù)庫安全性與完整性控制;(5)數(shù)據(jù)庫的故障恢復;(6)數(shù)據(jù)庫監(jiān)控。
使用闡明:
公共基礎的復習沒有技巧,就是背誦、背誦、再背誦!劃線字體是至關重要的部分,框
起來的字體為填空題的??荚~匯,一定要背熟牢記,這里面有100分里30分的原題。
提醒:
考前需要常常訪問的兩個網站:
360.com
C語言最重要的知識點復習資料
總體上必須清晰的:
1)程序構造是三種:次序構造,循環(huán)構造(三個循環(huán)構造),選擇構造(if和switch)
2)讀程序都要從main。入口,然后從最上面次序往下讀(碰到循環(huán)做循環(huán),碰到選擇做選
擇)。
3)計算機的數(shù)據(jù)在電腦中保留是以二進制的形式.數(shù)據(jù)寄存的位置就是他的地址.
4)bit是位是指為0或者1。byte是指字節(jié),一種字節(jié)=八個位.
5)一定要記住二進制怎樣劃成十進制。
概念??嫉降模?/p>
編譯預處理不是C語言的一部分,不占運行時間,不要加分號。C語言編譯的程序稱為
源程序,它以ASCII數(shù)值寄存在文本文獻中。
每個C語言程序中main函數(shù)是有且只有一種。
在函數(shù)中不可以再定義函數(shù)。
算法的是一定要有輸出的,他可以沒有輸入。
break可用于循環(huán)構造和switch語句。
逗號運算符的級別最低。
第一章
1)合法的顧客標識符考察:
合法的規(guī)定是由字母,數(shù)字,下劃線構成。有其他元素就錯了。
并且第一種必須為字母或則是下劃線。第一種為數(shù)字就錯了。
關鍵字不可以作為顧客標識符號。maindefinescanfprintf都不是關鍵字。困惑你
的地方If是可以做為顧客標識符。由于If中的第一種字母大寫了,因此不是關鍵字。
2)實型數(shù)據(jù)的合法形式:
2.333e-l就是合法的,且數(shù)據(jù)是2.333X10-1。
考試口訣:e前e后必有數(shù),e后必為整數(shù)。.
3)字符數(shù)據(jù)的合法形式::
T是字符占一種字節(jié),是字符串占兩個字節(jié)(具有一種結束符號)。
O的ASCII數(shù)值表達為48,.的ASCII數(shù)值是97,A的ASCII數(shù)值是65。
一般考試表達單個字符錯誤的形式:'65'
字符是可以進行算術運算的,記?。?-0=48
大寫字母和小寫字母轉換的措施:入432=宜互用之間一般是相差32o
4)整型一般是兩個字節(jié),字符型是一種字節(jié),雙精度一般是4個字節(jié):
考試時候一般會說,在16位編譯系統(tǒng),或者是32位系統(tǒng)。碰到這種狀況,不要去
管,同樣做題。掌握整型一般是兩個字節(jié),字符型是一種字節(jié),雙精度一般是4個字節(jié)
就可以了。
5)轉義字符的考察:
在程序中inta=0x6d,是把一種十六進制的數(shù)給變量a注意這里的Ox必須存在。
在程序中inta=06d,是一種八進制的形式。
在轉義字符中,’\x6cT才是合法的,0不能寫,并且x是小寫。
是合法的,0是不能寫的。
'\108,是非法的,由于不可以出現(xiàn)8。
6)算術運算符號的優(yōu)先級別:
同級別的有的是從左到右,有的是從右到左。
7)強制類型轉換:
一定是(int)a不是im(a),注意類型上一定有括號的。
注意(int)(a+b)和(int)a+b的區(qū)別。前是把a+b轉型,后是把a轉型再加b。
8)體現(xiàn)式的考察:
是體現(xiàn)式就一定有數(shù)值。
賦值體現(xiàn)式:體現(xiàn)式數(shù)值是最左邊的數(shù)值,a=b=5;該體現(xiàn)式為5,常量不可以賦值。
自加、自減體現(xiàn)式:假設a=5,++a(是為6),a++(為5);
運行的機理:++a是先把變量的數(shù)值加上1,然后把得到的數(shù)值放到變量a中,然后再
用這
個++a體現(xiàn)式的數(shù)值為6,而a++是先用該體現(xiàn)式的數(shù)值為5,然后再把a的數(shù)值加上1
為6,
再放到變量a中。進行了++a和a++后在下面的程序中再用到a的話都是變量a中的6
了。
考試口訣:++在前先加后用,++在后先用后加。
逗號體現(xiàn)式:優(yōu)先級別最低;體現(xiàn)式的數(shù)值逗號最右邊的那個體現(xiàn)式的數(shù)值。
(2,3,4)的體現(xiàn)式的數(shù)值就是4。
9)位運算的考察:
會有一到二題考試題目。
總的處理措施:幾乎所有的位運算的題目都要按這個流程來處理(先把十進制變成二進
制再變成十進制)。
例1:chara=6,b;
b=a?2;這種題目的計算是先要把a的十進制6化成二進制,再做位運算。
例2:一定要記住,異或的位運算符號。0異或1得到1。
0異或0得到0。兩個女的生不出來。
1異或1得到0。兩個男的生不出來。
考試記憶措施:一男(1)一女⑼才可以生個小孩(1)。
例3:在沒有舍去數(shù)據(jù)的時候,<<左移一位表達乘以2;>>右移一位表達除以2。
10)()18的數(shù)值是非法的,八進制是沒有8的,逢8進1。
11)%符號兩邊規(guī)定是整數(shù)。不是整數(shù)就錯了。
12)三種取整丟小數(shù)的狀況:
1>inta=1.6;
2、(int)a;
3、1/2;3/2;
13)字符型和整數(shù)是近親:
chara=65;
printf(“%c”,a);得到的輸出成果:a
printfC€%d,;a);得到的輸出成果:65
第二章
1)printf函數(shù)的格式考察:
%d對應整型;%c對應字符;%f對應單精度等等。寬度的,左對齊等修飾。
%ld對應longint;%lf對應double。
2)scanf函數(shù)的格式考察:
注意該函數(shù)的第二個部分是&a這樣的地址,不是a;
scanf("%d%d%*d%d”,&a,&b,&c);跳過輸入的第三個數(shù)據(jù)。
3)putchar,getchar函數(shù)的考察:
chara=getchar()是沒有參數(shù)的,從鍵盤得到你輸入的一種字符給變量a。
putchar(y)把字符y輸出到屏幕中。
4)怎樣實現(xiàn)兩個變量x,y中數(shù)值的互換(規(guī)定背下來)
不可以把x=y,y=x;要用中間變量t=x;x=y;y=to
5)怎樣實現(xiàn)保留三位小數(shù),第四位四舍五入的程序,(規(guī)定背下來)
這個有推廣的意義,注意x=(int)x這樣是把小數(shù)部分去掉。
第三章
尤其要注意:c語言中是用非。表達邏輯真的,用0表達邏輯假的。
1)關系體現(xiàn)式:
體現(xiàn)式的數(shù)值只能為1(表達為真),或0(表達假)
當關系的體現(xiàn)是為真的時候得到1。如9>8這個是真的,因此體現(xiàn)式的數(shù)值就是1;
2)邏輯體現(xiàn)式:
只能為1(表達為真),或0(表達假)
共有&&||!三種邏輯運算符號。
1>&&>||優(yōu)先的級別。
注意短路現(xiàn)象??荚嚤容^喜歡考到。
要表達x是比()大,比10小的措施。0<x<10是不可以的(一定記?。?。是先計算()<x得
到的成果為1或則0;再用0,或1與10比較得到的總是真(為1)。因此一定要用
(0<x)&&(x<10)表達比0大比10小。
3)if語句
else是與最靠近的if且沒有else的相組合的。
4)條件體現(xiàn)式:
體現(xiàn)式1?體現(xiàn)式2:體現(xiàn)式3
注意是當非0時候是體現(xiàn)式2的數(shù)值,當為0是就是體現(xiàn)式2的數(shù)值。
考試口訣:真前假后。
5)switch語句:
a)一定要注意有break和沒有break的差異,書二(34頁)的兩個例子,沒有break
時候,只要有一種case匹配了,剩余的都要執(zhí)行,有break則是直接跳出了swiche語句。
b)switch只可以和break一起用,不可以和continue用。
c)switch(x)x:是整型常量,字符型常量,枚舉型數(shù)據(jù)。
{case1:....不可以是變量。
case2:....
)
第四章
1)三種循環(huán)構造:
a)for();while();do-while。三種。
b)for循環(huán)當中必須是兩個分號,千萬不要忘掉。
c)寫程序的時候一定要注意,循環(huán)一定要有結束的條件,否則成了死循環(huán)。
d)do-while()循環(huán)的最終一種while。;的分號一定不可以丟。(當心上機改錯),do—
while循環(huán)是至少執(zhí)行一次循環(huán)。
2)break和continue的差異
記憶措施:
break:是打破的意思、,(破了整個循環(huán))因此看見break就退出真?zhèn)€一層循環(huán)。
continue:是繼續(xù)的意思,(繼續(xù)循環(huán)運算),不過要結束本次循環(huán),就是循環(huán)體內剩余
的語句不再執(zhí)行,跳到循環(huán)開始,然后判斷循環(huán)條件,進行新一輪的循環(huán),
3)嵌套循環(huán)
就是有循環(huán)里面尚有循環(huán),這種比較復雜,要一層一層一步一步耐心的計算,一般
記住兩層是處理二維數(shù)組的。
4)while((c=getchar())!=,\n,)和while(c=getchar()!=,\n,)的差異
先看a=3!=2和(a=3)!=2的區(qū)別:
(1二號的級別高十二號因此第一種先計算3!=2)第一種a的數(shù)值是得到的1;第二
個a的數(shù)值是3。
考試注意點:括號在這里的重要性。
第五章
函數(shù):是具有一定功能的一種程序塊;是C語言的基本構成單位。
1)函數(shù)的參數(shù),返回數(shù)值(示意圖):
main()ilitadd(intK,inty)___?被調用函數(shù)
y是形式參數(shù)
nta=5,b=6,c;
intz;、+函數(shù)返回數(shù)值是整型
*-add^國工r調用函數(shù)z=x+y;
)rintf(々河是實參
return乙______________y就是這個add函數(shù)計
整個函數(shù)得到一種數(shù)值就是}算后得到的成果,就
Add函數(shù)的返回數(shù)值。是函數(shù)返回給主程序
的返回數(shù)值。
程序是在從上往下次序執(zhí)
行I,當碰到了函數(shù)add后,
把a,b的數(shù)值穿給調用函
數(shù),程序臨時中斷等待返
回教侑。當?shù)玫搅朔祷財?shù)
值后,再次序的往下執(zhí)行
2)一定要注意參數(shù)之間的傳遞
實參和形參之間傳數(shù)值,和傳地址的差異。(考試的重點)
傳數(shù)值的話,形參的變化不會變化實參的變化。
傳地址的話,形參的變化就會有也許變化實參的變化。
3)函數(shù)申明的考察:
一定要有:函數(shù)名,函數(shù)的返回類型,函數(shù)的參數(shù)類型。
不一定要有:形參的名稱。
4)規(guī)定掌握的庫函數(shù):
sqrt()fabs()pow()sin()其中pow(a,b)是重點。23是由pow(2,3)表達的。
第六章
指針變量的本質是用來放地址,而一般的變量是放數(shù)值的。
int*p中*p和p的差異:
*p可以當做變量來用;*的作用是取背面地址p里面的數(shù)值
p是當作地址來使用。
*p++和(*p)++的之間的差異:改錯題目中很重要
*p++是地址會變化。
(*p)++是數(shù)值會要變化。
三名主義:(考試的重點)
數(shù)組名:表達第一種元素的地址。數(shù)組名不可以自加,他是地址常量名。(考了諸多
次)
函數(shù)名:表達該函數(shù)的入口地址。
字符串常量名:表達第一種字符的地址。
考試重要的話語:
指針變量是寄存地址的。并且指向哪個就等價哪個,所有出現(xiàn)*p的地方都可以用它等價
的替代。
例如:inta=2,*p=&a;
*p=*p+2;
(由于*p指向變量a,因此指向哪個就等價哪個,這里*p等價于a,可以相稱于是a=a+2)
指針變量兩種初始化
措施一:inta=2,*p=&a;(定義的同步初始化)
措施二:inta=2,*p;(定義之后初始化)
p=&a;
第七章
1)一維數(shù)組的重要概念:
對如⑼這個數(shù)組的討論。
1、a表達數(shù)組名,是第一種元素的地址,也就是元素a[10]的地址。
2、a是地址常量,因此只要出現(xiàn)a++,或者是a=a+2賦值的都是錯誤的。
3、a是一維數(shù)組名,因此它是列指針,也就是說a+1是跳一列。
對a[3][3]的討論。
1、a表達數(shù)組名,是第一種元素的地址,也就是元素a[10]的地址。
2、a是地址常量,因此只要出現(xiàn)a++,或者是a=a+2賦值的都是錯誤的。
3、a是二維數(shù)組名,因此它是行指針,也就是說a+1是跳一行。
4、a[0].a[l].a[2]也都是地址常量,不可以對它進行賦值操作,同步它僅都是列指針,
a[O]+La[l]+l,a⑵+1都是跳一列。
5、注意a和a[0]、a[l].a[2]是不一樣的,它們的基類型是不一樣的。前者是一行元
素,后三者是一列元素。
2)二維數(shù)組做題目的技巧:
假如有2[3][3]={1,2,3,4,5,678,9}這樣的題目。
環(huán)節(jié)一:把他們寫成:第一列第二列第三列
a[0]9123第一行
a[l]^456—>第二行
a[2-789一>第三行
環(huán)節(jié)二:這樣作題目間很簡樸:
*(a[O]+l)我們就懂得是第一行的第一種元素往背面跳一列,那么這里就是元素,
因此是1。
*(a[l]+2)我們就懂得是第二行的第一種元素往背面跳二列。那么這里就是a⑴[2]元素,
因此是6c
一定記?。褐灰嵌S數(shù)組的題目,一定是寫成如上的格式,再去做題目,這樣會比較
簡樸。
3)數(shù)組的初始化,一維和二維的,一維可以不寫,二維第二個一定要寫
inta[]={1,2}合法。inta口[4]={2,3,4}合法。但inta[4]口={2,3,4}非
法。
4)二維數(shù)組中的行指針
inta[l][2];
其中a目前就是一種行指針,a+1跳一行數(shù)組元素。搭配(*)p[2]指針
a[0],a[l]目前就是一種列指針。a[O]+l跳一種數(shù)組元素。搭配*p[2]指針數(shù)組使用
5)尚有記住脫衣服法則:
a[2]變成*(a+2)a⑵[3]變成*(a+2)[3]再可以變成*(*(a+2)+3)
這個思想很重要!
其他考試重點
文獻的復習措施:
把上課時候講的文獻這一章的題目要做一遍,一定要做,基本上考試的都會在練習當中。
1)字符串的strlen()和strcat()和strcmp()和strcpy()的使用措施一定要記住。
他們的參數(shù)都是地址。其中strcat()和strcmp()有兩個參數(shù)。
2)strlen和sizeof的區(qū)別也是考試的重點;
3)definef(x)(x*x)和definef(x)x*x之間的差異。一定要好好的注意這
寫輕易錯的地方,替代的時候有括號和沒有括號是很大的區(qū)別。
4)int*p;
p=(int*)malloc(2);
p=(int*)malloc(sizeof(int));以上兩個等價
當心填空題目,malloc的返回類型是void*
5)尚有main(intargc,char**argv){)這種具有參數(shù)的題目,是很呆板的題目。第
一種參數(shù)是表達輸入的字符串的數(shù)目,第二個參數(shù)是指向寄存的字符串o
6)函數(shù)的遞歸調用一定要記得有結束的條件,并且要會算簡樸的遞歸題目。要會作遞
歸的題目
7)構造體和共用體以及鏈表要掌握最簡樸的。typedef考的諸多,并且一定要懂得怎樣
引用構造體中的各個變量,鏈表中怎樣填加和刪除千點,以及何如構成一種簡樸的鏈表,
一定記住鏈表中的節(jié)點是有兩個域,一種放數(shù)值,一種放指針。
8)函數(shù)指針的使用方法(*f)()記住一種例子:
intadd(intx,inty)
main()
{int(*f)();
f=add;
)
賦值之后:合法的調用形式為1、add(2,3);
2、f(2,3);
3、(*f)(2,3)
9)兩種重要的數(shù)組長度:
chara[]={4a,;b,,,c,};數(shù)組長度為3,字符串長度不定。sizeof(a)為3。
chara[5]={‘a'Jb'Jc'}數(shù)組長度為5,字符串長度3°sizeof(a)為5。
10)scanf和gets的數(shù)據(jù):
假如輸入的是goodgoodstudy!
那么scanf(“%s”,a);只會接受good.考點:不可以接受空格。
gets(a);會接受goodgoodstudy!考點:可以接受空格。
11)共用體的考察:
unionTT
{inta;
charch[2];}
考點一:sizeof(structTT)=2;
考點二:TTtl;11=0x1234;
那么ch[0]=0x34;ch[l]=0xl2
12)“文獻包括”的考察點:
nol.cno2.c
intadd(inta,intb)
#include''no2.c”
main()
returna+b;
{add(29,33);
這里一種C語言程序是有兩個文獻構成,分別是nol.c,no2.Co那么nol.c中最開始有
j#include”no2.c”他表達把第二個文獻的內容給包括過來,那么nol.c中調用add()函數(shù)
的時候就可以了把數(shù)值傳到no2.c中的被調用函數(shù)add()了。
一種文獻必須要有main函數(shù)。這句話錯了。例如:no2.c就沒有。
頭文獻一定是以.h結束的。這句話錯了。例如:nol.c中就是#include”n02.c”以.c結尾
的。
上機考試注意事項
上機前的準備
考試時間:大家一定要記住上機考試時間、大家的考試時間是不一樣的。我們考試的是
二級的C語言,不是C++。
考試軟件:我們考試碰到的是VC軟件,因此大家一定要熟悉VC,怎樣打開、保留。
尤其要注意:邏輯與是怎么打出來的,“||”。諸多人在考試前還不懂得打這個符號。
考試的區(qū)別:我們平時練習編寫程序的時候是用的VC軟件,不過在考試的時候我們采
用的是上機模擬環(huán)境,是將VC軟件集成到了我們的考試系統(tǒng)上,因此考試前期一定要
用模擬環(huán)境,尤其是在填空和改錯的時候要注意和平時上課不一樣。
考試的題目和題型:三道題目,填空(30)、改錯(30)、編程(40)o
考試需要記住的幾句話:重點在前兩題型,編程難度較大。
上機考試監(jiān)考人性化,切勿緊張。
做完題目一定要保留,不要得意忘形。
要完畢的任務:在企業(yè)網站360.com章陸后,依次進行“網站首頁”一>“內部資料”
->“VC版二級C上機模擬系統(tǒng)”將該系統(tǒng)下載,然后進行安裝。安裝后了要進行練習。
安裝、使用措施:
第一步:打開桌面的圖表彈出下面窗口:
我們一般采用練習模式,在練習模式中,我們可以自己選擇5()套題目中的任意一套。
考試模式:正式考試的模式和該模式同樣,會自動抽取一套題目來進行考試,因此大家
不要認為考試的時候可以自己詵題目,正常模式是隨機抽取的。
第二步:抽取題目
全國,,系統(tǒng)
確定9)|取消?|
一很jg丁
正在才酶題庫.??
m.E0L360.COM各地分支機構電話號碼請上網查詢
版權所有:武漢新視野教苜咨詢有限公司
我們輸入“1”,然后點擊確定,進行第一套題目的編寫。
第三步:看到有個紅色的“請按任意鍵繼續(xù)”,然后隨便點擊鍵盤上的一種按鍵,一般
是空格。
新視野教育教學研究組研發(fā)嚴禁私自復制、拷貝和傳播
全國計算機等級考試上機考試模擬系統(tǒng)
V5.0題庫版本:3.26
二級C語言
請按任意鍵繼續(xù)???
m.E0L360,COM各地分支機構電話號碼請上網查詢
版權所有:武漢新視野教育咨詢有限公司
第四步:進入考試的界面
RI—:□
答題(5)幫助(由
考生文件夾朝整艇|程序修改題|程序編寫題
D:\ExaB\24010001
函數(shù)fun的功能是:統(tǒng)計所有小于等于n(n>2)的素數(shù)的個數(shù),素數(shù)的個數(shù)作
為函數(shù)值返回。
請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結
果。
'注意:源程序存放在考生文件夾下的BLANKLC中。
不得增行或刪行,也不得更改程序的結構!
可以看到:
該界面的右上角有三個按鈕”程序填空題”、“程序修改題”、“程序編寫題",你選擇哪
個按鈕,就會有對應的題目出現(xiàn)。如該圖是顯示的填空題目?!昂瘮?shù)fun的功能是:記
錄所有不不小于等于n(n>2)的素數(shù)的個數(shù),素數(shù)的個數(shù)作為函數(shù)值返回J這是就
是你抽取的題目中的填空題。你要做的就是根據(jù)題目寫代碼。
該界面的左上角有“答題”的選項,目前我們可以點擊該項來作填空題目。點擊“答題”
出現(xiàn)“啟動MicrosoftVisualc++”進入考試題目。
第五步:選擇題目
打開?X
在該圖可以看到有三個文獻"blankl.c\"modil.c\"progl.c"分別代表了三個題型,
分別是“填空”、"修改”、“編程”三個題型。目前選擇“blank?”來做填空題目。
ttmclude<stdio.h>
intFun(intn)
<inti,j,count=O;
printf(,,\nTheprimenumberbetween3to%d\n",n);
For(i=3;i<=n;i++)<
/**********found******.***/
For(1;j<i;j*+)
ound**********/
if(2==0)
break;
/呆呆.關w9.關關found.w關關頭.關關/
iF(___3___>=i)
<count**;printF(count%15?"%5d"z"Xn%Sd1',i);>
>
returncount;
>
main()
<intn=20,r;
r=Fun(n);
printF("\nThenumberofprimeis:2d'n",r);
從該圖片:可以看到有三個***********found************因此要添三個空,每個空
是10分。在做題目的時候,要注意一一1一一,首先要把這個去掉,然后寫上代碼。
第六步:寫代碼
國色綱酬我:儂蜂也蹴概賴睡喀W孽
ttincluce<stdio.h>R
intfun(intn)
{inti,j,count=0;考生文件夾
pri<itf("\nTheprinenumberbetween3to^d\n",n);程序填空題程序修改題程
For(i=3;i<=n;i++)<D:\Exai\24010001
for(-1—;j<i;"?)
/N??aa>?MNafound????""????/
if(_2_%j--B)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026河南永錦能源招聘210人考試備考題庫及答案解析
- 2026內蒙古包頭鐵道職業(yè)技術學院赴鐵路院校招聘急需專業(yè)教師16人考試備考試題及答案解析
- 2026年淮南經濟技術開發(fā)區(qū)公益性崗位征集考試備考題庫及答案解析
- 2026廣東深圳市眼科醫(yī)院招聘工作人員招聘11人考試參考試題及答案解析
- 2026天津市津南創(chuàng)騰經濟開發(fā)有限公司招聘8人考試備考試題及答案解析
- 文庫發(fā)布:exo介紹教學
- 2026日照銀行見習人員招聘10人考試參考題庫及答案解析
- 2026安徽亳州市蒙城縣商業(yè)綜合體招聘勞務派遣人員(四次)考試參考題庫及答案解析
- 2026年西安市鄠邑區(qū)就業(yè)見習基地見習招聘(163人)考試參考試題及答案解析
- 2026年合肥幼教集團光明之家幼兒園門衛(wèi)招聘考試參考題庫及答案解析
- 2026年共青團中央所屬單位高校畢業(yè)生公開招聘66人備考題庫及參考答案詳解
- 2026年6級英語模擬真題及答案
- 2025內蒙古鄂爾多斯市委政法委所屬事業(yè)單位引進高層次人才3人考試題庫含答案解析(奪冠)
- 2025年全國單獨招生考試綜合試卷(附答案) 完整版2025
- 2025-2026學年外研版八年級上冊英語期末模擬考試題(含答案)
- 2024年包頭輕工職業(yè)技術學院單招職業(yè)技能測試題庫附答案解析
- 洗衣液宣傳課件
- “五個帶頭”方面對照發(fā)言材料二
- TTAF 241.1-2024 支持衛(wèi)星通信的移動智能終端技術要求和測試方法 第1部分:多模天通衛(wèi)星終端
- 奶茶品牌2026年新品研發(fā)上市流程
- 國際物流海外倉直發(fā)合同
評論
0/150
提交評論