全國計算機二級考試C語言復習資料_第1頁
全國計算機二級考試C語言復習資料_第2頁
全國計算機二級考試C語言復習資料_第3頁
全國計算機二級考試C語言復習資料_第4頁
全國計算機二級考試C語言復習資料_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

-------可修--可修-..二級公共根底學問作為必考容消滅,出題形式為選擇題前10道,占考試總分的10%??荚嚻渌戎兀?、C語言程序的構造 占總分1%2、數(shù)據(jù)類型及其運算 占總分4%3、選擇構造程序設計 占比分的3%4、循環(huán)構造 占比分的5%5、數(shù)組的定義和引用 占比分的5%6、函數(shù) 占比分的5%7、編譯預處理 占比分1%8、指針 占比分的5%9、構造體 占比分的3%10、位運算 占比分的2%11、文件操作 占比分的2%考試方式上機考試,時長120單項選擇題40分〔含公共根底10分,操作題60分〔括程序填空題、程序修改題、程序設計題〕第一局部C第一章C〔90〕1】C用C語言編寫的程序稱為C.c“.obj”的目標文件,再把目標文件與各種庫函數(shù)連接起來,生成“.exe”可執(zhí)行文件。C語言有三種根本構造:挨次構造、選擇構造、循環(huán)構造。2】main又稱主函數(shù),是C程序的入口。mainmain函數(shù)的函數(shù)體。一個Cmainmainmain函數(shù)在整個程序中的位置如何。每一個程序有且僅有一個main函數(shù),其他函數(shù)都是為main函數(shù)效勞的。3】存儲形式計算機在電腦中保存數(shù)據(jù)是承受二進制形式,由01構成的二進制稱為位bit,八個位構成一個字節(jié)e,1個8bit二進制、八進制、十六進制轉化為十進制承受乘法,十進制轉化為二進制、八進制、十六進制承受除法。數(shù)據(jù)的存放位置就是它的地址。4】注釋何容都不會被計算機執(zhí)行,注釋不行以嵌套。5】書寫格式每條語句的后面必需有一個分號,分號是語句的一局部。一行可寫多條語句,一個語句可寫在多行上。6】標識符C標識符的命名規(guī)章是:標識符只能由字母、數(shù)字和下劃線組成,字母區(qū)分大小寫。C3類int、for、switch預定義標識符。預先定義并具有特定含義的標識符。如define、include等。用戶標識符。用戶依據(jù)需要定義的標識符,符合命名規(guī)章且不與關鍵字一樣。7】常量與變量常量是指在程序運行過程中,其值不能轉變的量。常量分為整型常量、實型常量、字符常量、字符串常量、符號常量5種。在程序運行過程中其值可以轉變的量稱為變量。C語言中沒有字符串變量。存放字符串使用字符數(shù)組。8】整型數(shù)據(jù)。八進制整型常量加前導數(shù)字0,十六進制常量加前導0X,8。整型變量可分為根本整型t、短整型t、長整型g、和無符號整型unsigned。一個根本整型占49頁。9】實型數(shù)據(jù)口訣:EE后必有數(shù),E后必需為整數(shù)。實型變量分為單精度型〔t〕和雙精度型〔double,單精度型占四個字節(jié)。算術運算符一共有+、—、*、/、%這五個。求余運算要求運算對象只能為整型,除法運算符兩邊運算對象都為整型時,運算結果也為整型即舍掉小數(shù)局部。算術運算符一共有+、—、*、/、%這五個。求余運算要求運算對象只能為整型,除法運算符兩邊運算對象都為整型時,運算結果也為整型即舍掉小數(shù)局部。11】強制類型轉換將一個運算對象轉換成指定類型,格式為〔類型名〕表達式,留意小括號位置。12】賦值為變量,賦值運算是把賦值運算符右邊表達式的值賦給左邊變量。復合賦值運算符是將算術運算符或位運算符與賦值運算符組合在一起組成的運算符,把握復合賦值表達式轉化為賦值表達式的方法。如n+=100可轉化為n=n+100。13】自加自減運算自加運算符“++”與自減運算符“--”是單目運算符,運算對象必需是變量。自增自減運算分前綴運j=i++j=i;i=i+1j=++ii=i+1;j=i;。口訣:加加在前先加后用,加加在后先用后加。14】逗號運算考試真題:1、以下表達中錯誤的選項是〔D〕——2006444A〕C語言源程序經(jīng)編譯后生成后綴為.obj的目標程序B〕CC〕用CASCIID〕C句最終都將被轉換成二進制的機器指令2、以下表達中錯誤的選項是〔B〕——2006445題A〕算確的程序最終肯定會完畢B〕算確的程序可以有零個輸出C〕算確的程序可以有零個輸入D〕算確的程序對于一樣的輸入肯定有一樣的結果3、以下表達中錯誤的選項是〔A〕——20069第11題A〕一個C語言程序只能實現(xiàn)一種算法B〕C程序可以由多個程序文件組成C〕C程序可以由一個或多個函數(shù)組成D〕一個C函數(shù)可以單獨作為一個C4、以下表達中正確的選項是〔D〕——20069第12題每個Cmain〔〕B〕C程序中main〔〕函數(shù)的位置是固定的C〕CD〕在C個函數(shù)〔C〕——2007年411題A〕正值性B〕可行性C〕確定性D〕有窮性6、以下表達中錯誤的選項是〔D〕——2007412A〕計算機不能直接執(zhí)行用C語言編寫的源程序B〕C程序經(jīng)C編譯程序編譯后,生成后綴為.obj的文件是一個二進制文件C〕后綴為.obj.exeD〕后綴為.obj和.exe的二進制文件都可以直接運行7、以下表達中錯誤的選項是〔C〕——2007414A〕C語言是一種構造化程序設計語言B〕構造化程序由挨次、分支、循環(huán)3種根本構造組成C〕3D〕構造化程序設計提倡模塊化的設計方法8C程序,以下表達中正確的選項是〔A〕—2007415A〕程序的執(zhí)行總是從mainmain程序的執(zhí)行總是從程序的第一個函數(shù)開頭,在main函數(shù)完畢C〕程序的執(zhí)行總是從main函數(shù)開頭,在程序的最終一個函數(shù)中完畢9、C語言源程序名的后綴是〔B〕——20079月選擇第11A〕.exeB〕.cC〕.objD〕.cp10、以下表達中正確的選項是〔C〕——2007914A〕C語言程序將從源程序中第一個函數(shù)開頭執(zhí)行B〕可以在程序中由用戶指定任意一個函數(shù)作為主函數(shù),程序將從今開頭執(zhí)行C〕C語言規(guī)定必需用mainD〕Main作為主函數(shù)1.以下選項中合法的標識符是〔2009年3月〕cA〕1_1B〕1-1C〕_11D〕1_2.以下選項中不合法的標識符是c〔2008年4月〕A〕printB〕FORC〕&aD〕_00可在C程序中用做用戶標識符的一組標識符是〔2007年9〕A〕and B〕Date C〕Hi D〕case_2007 y-m-d Dr.Tom Bigl依據(jù)C語言規(guī)定的用戶標識符命名規(guī)章,不能消滅在標識符中的是〔2007年4月〕A〕大寫字母 B〕連接符C〕數(shù)字字符 D〕下劃線5.以下不合法的用戶標識符是〔2006年4月〕A〕j2_KEY B〕Double C)4d D)_8_1.以下選項中不屬于字符常量的是〔2008年4月〕A〕”C” B〕“C“ C〕”\xCC0” D〕”\072”2.以下合法的字符常量的是A〕”\x13” B〕?\08? C”65” D”\n”3.大寫字母A的ASCII65,小寫字母aASCII97。以下不能將變量c中的大寫字母轉換為對應小寫字母的語句是〔2007年4月〕A〕c=(c-?A?)%26+?a?B〕c=c+32C〕c=c-?A?+?a?D〕c=(?A?+c)%26-?a?4.以下選項中,值為1的表達式 〔2006年9月〕A〕1-?0?B〕1-?\0?C〕?1?-0D〕?\0?-?0?1.以下選項中,能用作數(shù)據(jù)常量的是〔2009年3月〕o115 B〕0118C〕1.5e1.5D〕115L2.以下選項中不能作為C語言合法常量的是〔。A〕”cd” B〕0.1e+6C〕“\a“ D〕”\011”3.以下不合法的數(shù)值常量是A〕011 B〕lC〕8.0E0.5〕0xabcd4.C源程序中不能表示的數(shù)制是〔〔2008年9月〕A〕二進制八進制C〕十進制5.以下關于long、intshort〔20079月〕A〕均占4個字節(jié)依據(jù)數(shù)據(jù)的大小來打算所占存的字節(jié)數(shù)由用戶自己定義D〕由C6.以下選項中,合法的一組C〔2007年9月〕A〕028B〕12.C〕.1770x8A.5e-30xa234e1.510,000-0xf 4.5e00abc3.e5

其次章挨次構造1】運算符、表達式、語句如賦值運算符加運算對象構成賦值表達式,賦值表達式加分號又可構成賦值語句。2】運算符的優(yōu)先級和結合挨次運算符按參與運算的對象數(shù)目可分為單目運算符、雙目運算符和三目運算符。初等運算符的優(yōu)先級別〔、條件運算符、賦值運算符、逗號運算符。位運算符優(yōu)先級介于算術運算符與規(guī)律運算符之間。結合挨次大多為自左向右,而自右向左的有三個:單目運算符、條件運算符和賦值運算符。3】printf函數(shù)輸出列表包含假設干輸出項。4】printf數(shù)據(jù)所占的寬度和小數(shù)位數(shù)。5】scanf和回車符,但不包括逗號。【考點】6要使用中間變量,語句為:t=xx=yx=t;。第三章選擇構造1】關系運算10。留意a<b<c是不行以的,可用(a<b)&&(b<c)來表示。2】規(guī)律運算規(guī)律運算符共有3個:規(guī)律與&,規(guī)律或|,規(guī)律非!+,假設表達式a+b++不再執(zhí)行。3】if可以單獨消滅,也可以與else匹配消滅。if語句可以嵌套,這時else總是與離它最近的且沒有與else匹配的if4】條件運算是唯一的三目運算符,格式為:表達式1?表達式2:表達式3。表達式1值為非0時,整個表達式值為表達式2103的值??谠E:真前假后5】switch格式及執(zhí)行過程詳見教材P33,要留意每條case后有沒有break語句的區(qū)分。還要留意switch后小括號里面的表達式不能為實型,case后表達式不能有變量。口訣:switchcase第四章 循環(huán)構造1】三種循環(huán)構造三種循環(huán)構造分別為:while,do-while,for36、39、40頁。留意for循環(huán)中的小括號中必需是兩個分號;循環(huán)肯定要有完畢條件,否則成了死循環(huán);do-while循環(huán)最終while;后肯定要有分號。2】breakcontinuebreak是終止所在整個循環(huán),而continue是提前完畢本輪循環(huán)。break語句可消滅在循環(huán)構造與switch語句中,continue只消滅在循環(huán)構造中。3】循環(huán)的嵌套就是循環(huán)里面還有循環(huán),計算要一層一層分析,一般只考察兩層嵌套,循環(huán)嵌套通常是處理二維數(shù)組。4】循環(huán)構造的復習循環(huán)構造是重點,筆試所占分值一般在13重點理解并多加練習,領悟把握。第五章字符型數(shù)據(jù)位運算1】字符常量ASCII97。一個字符常量用一對單引號括起來,字符常量只能包括一個字符b表示。字符常量可用對應的I0’的I碼為48A’的I碼為65ASCII97。2】轉義字符一對單引號中以一個反斜線后跟一個特定字符或八進制、十六進制數(shù)來構成轉義字符。比方’\n’表’\101’或’\x41’I65的字符’A【考點3】字符型數(shù)據(jù)可以和整型數(shù)據(jù)相互轉換0’-0=48‘A’+32=’’r(“%d%”,a,a);結果為65A4】位運算符C語言供給6種位運算符:按位求反~,按位左移<<,按位右移>>,按位與&,按位異或|,按位或^。一般狀況下需要先轉化進制。異或運算的規(guī)章:011,000,110??捎洖椤耙粯訛?,不同為15】putchargetchar函數(shù)stdio.hprintfscanf函數(shù)的簡化。第六章函數(shù)1】函數(shù)的定義函數(shù)是具有肯定功能的一個程序塊。函數(shù)的首部為:函數(shù)類型函數(shù)名〔類型1形參1,類型2形參2,……。在函數(shù)定義中不行以再定義函數(shù),即不能嵌套定義函數(shù)。函數(shù)類型默認為t型。2】庫函數(shù)調(diào)用Ceeh”C3】函數(shù)的返回值returnreturn數(shù)體完畢后退出函數(shù)。4】函數(shù)的聲明函數(shù)的聲明肯定要有函數(shù)名、函數(shù)返回值類型、函數(shù)參數(shù)類型,但不肯定要有形參的名稱。5】函數(shù)的調(diào)用挨次往下執(zhí)行。6】函數(shù)的參數(shù)及值傳遞名后面括號中的參數(shù)。實參和形參分別占據(jù)不同的存儲單元。實參向形參單向傳遞數(shù)值。化就有可能轉變實參所對應的量。7】函數(shù)的遞歸調(diào)用函數(shù)直接或間接地調(diào)用自己稱為函數(shù)的遞歸調(diào)用。遞歸調(diào)用必需有一個明確的完畢遞歸的條件。在做遞歸題時可把遞歸的步驟一步步寫下來,不要弄顛倒了。8】要求把握的庫函數(shù)sqrt算術平方根函數(shù),fabs確定值函數(shù),pow冪函數(shù),sin正弦函數(shù)第七章指針1】指針變量【考點2】指針變量的定義指針變量是用來存儲地址的,而一般變量是存儲數(shù)值的。指針變量可指向任意一種數(shù)據(jù)類型,但不管它指向的數(shù)據(jù)占用多少字節(jié),一個指針變量占用四個字節(jié)。格式為:類型名*int**p;可以理解為基類型為(int*)類型。3】指針變量的初始化何數(shù)據(jù)就賦“空值”NULL。4】指針變量的引用是取地址符,*是間接訪問運算符,它們是互逆的兩個運算符。在指針變量名前加間接訪問運算符就等價它所指向的量。5】指針的運算*p++和(*p)++之間的差異:*p++是地址變化,(*p)++是指針變量所指的數(shù)據(jù)變化。一個指針變量加一個整數(shù)不是簡潔的數(shù)學相加,而是連續(xù)移動假設干地址。當兩個指針指向同一數(shù)組時,它們可以比較大小進展減法運算。第八章數(shù)組1】數(shù)組的定義類型名數(shù)組名[常量表達式]。數(shù)組的所占字節(jié)數(shù)為元素個數(shù)與基類型所占字節(jié)數(shù)的乘積。2】數(shù)組的初始化第一維長度可以不寫,其它維必需寫。inta[]={1,2};合法,inta[][3]={2,3,4};合法,inta[2][]={2,3,4};非法。數(shù)組初始化元素值默認為0tt中,元素a[4]值為一個不確定的隨機數(shù)。3】元素的引用01inta[5]a[4]。要把數(shù)組元素看作一個整體,可以把a[4]當作一個整型變量。4】二維數(shù)組數(shù)組a[2][3]={1,2,3,4,5,6};中含6個元素,有2行3列。第一行為a[0]行,第2行為a[1]行,a[0]、a[1]*(a[0]+1a[0][12,*(a[0]+3)是第一行第一個元素往后跳三個,即元素a[1][04。5】行指針int(*p)[2];,p只能存放含有兩(*p的集合。6】數(shù)組名數(shù)組名是數(shù)組的首地址。數(shù)組名不能單獨引用,不能通過一個數(shù)組名代表全部元素。數(shù)組名是地址常量,不能對數(shù)組名賦值,所以a++是錯誤的。但數(shù)組名可以作為地址與一個整數(shù)相加得到一個地址。7】元素形式的轉換”a[2]變成*(a+2),a[2][3]變成*(a+2)[3]再可變成*(*(a+2)+3)。第九章字符串1】字符串常量及表示字符串常量是由雙引號括起來的一串字符,如”C\0C”需要占四個字節(jié)。2】字符數(shù)組C語言沒有字符串變量,只能承受字符數(shù)組來存儲字符串。數(shù)組的大小應當比它將要實際存放的最長字符串多一個元素,從而存放’\03】字符串賦值charstr[10];str=”Hello”;由于str4】字符串的輸入與輸出scanf和printfscanf(”%s”,str)gets和puts\0getsputs函數(shù)在最終輸出一個換行。5】字符串函數(shù)要把握的四個字符串函數(shù):字符串拷貝函數(shù)〔,求字符串長度函數(shù)〔,字符串函數(shù)〔,字符串比較函數(shù)p〔。使用這些函數(shù)需在預處理局部包含頭文件”h。r;sizeof(str)的值為1〔數(shù)組長度的值為5〔字符串長度。這些函數(shù)是考試常用到的函數(shù),大家肯定要嫻熟應用這幾個函數(shù)。第十章構造體與共用體1】構造體類型的說明t類型名{類型1成員名1;類型2成一個只有幾個字母的簡短標識符。2】構造體變量的定義構造體變量是用說明的構造體類型所定義的一個變量,與構造體類型不是一回事。一個構造體變量所占字節(jié)數(shù)為其全部成員所占字節(jié)數(shù)之和。如structstu{charname[10];intage;a,b;則說明定義了兩個構造體變a,b4個字節(jié)。a,binti,j;i,j3】構造體成員的引用引用成員可用以下3種方式1構造體變量名.成員名〔2指針變量名->成員名〔3〔*指針變量名.成員名。點〔.〕稱為成員運算符,箭頭〔->〕稱為構造指向運〕4】鏈表鏈表是由一個個結點構成的,一個結點就是一個構造體變量。每個結點可以分為數(shù)據(jù)域與指針域兩個局部,數(shù)據(jù)域用來存放要存儲的數(shù)據(jù),指針域用來指向下一個結點。鏈表是考試中的難點,在C語言和公共根底局部都會考到,要領悟把握。5】共用體數(shù)最大的那個。第十一章文件1】文件類型指針義文件指針。2】文本文件與二進制文件。例如“100”假設是文本形式10I碼001100010011000000110000,假設是二進制形式就把100轉化成二進制〔01100100。3】翻開文件文件的翻開形式如下:FILE*fp;fp=fopen(“c:\\lab.c”,”rb”);。fopen127rwab二進制位的。4】文件函數(shù)feoffeof(FILE*fp);//文件指針,假設文件完畢,則函數(shù)返回1,否則返回0fseekk〔文件指針,位移量,移動起始點eg。FILE*fp=fopen(“C:\\xiaoyu.c”,”rb”);fseek(fp,12,SEEK_SET);//表示將文件fp的位置移動到文件起始位置后面的第12個字節(jié)的位置上或者fseek(fp,12,0);fseek(fp,-12,SEEK_END;//表示將文件fp的位置移動到文件末尾位置前面的第12個字節(jié)的位置上或者fseek(fp,12,2);假設是fseek(fp,12,SEEK_CUR);//表示將文件fp的位置從當前位置移動后面的第12個字節(jié)的位置上或者fseek(fp,12,1);ftellftell(FILE*fp) //給出當前聞之相對于開頭的字節(jié)數(shù),出錯時,返回-1Lrewind函數(shù)功能等價于fseek(fp,0,SEEK_SET)文件字符輸入輸出ch=fgetc(FILE*fp)函數(shù)用于從fp指定的文件中讀入一個字符并把它作為函數(shù)值返回fputc(charch,FILE*fp),將字符ch寫到文件指針fp失敗,則返回一個EOF值fscanffprintffscanf(文件指針,格式掌握字符串,輸入項表或輸入項表)文件字符串輸入輸出fgets函數(shù)〔fgets(str,n,fp),功能是從fp所指文件中讀入n-1個字符放入str為起始地址的空間〕和fputsfputs(str,fpfreadfwrite不要在考試的時候把這些文件函數(shù)搞混了。典型例題:文件中逐個讀入并顯示在終端屏幕上。請在程序的下劃線處填入正確的容并把下劃線刪除,使程序得出正確的結果。留意:源程序存放在考生文件夾下的BLANK1.C中。不得增行或刪行,也不得更改程序的構造!給定源程序:#include<stdio.h>voidfun(char*s,inta,doublef){ 1 fp;charch;fp=fopen(“file1.txt“,“w“);fprintf(fp,“%s%d%f\n“,s,a,f);fclose(fp);fp=fopen(“file1.txt“,“r“);printf(“\nTheresult:\n\n“);ch=fgetc(fp);while(!feof( 2 )){putchar( 3 );ch=fgetc(fp);}putchar(”\n”);fclose(fp);}main{chara[10]=“Hello!“;intb=12345;doublec=98.76;fun(a,b,c);}第十二章深入爭論1】編譯預處理的文本替換,如#definef(x)(x)*(x)和#definef(x)x*xf(2+2)時就有區(qū)分,前者開放為(2+2)*(2+2),后者為2+2*2+2。f2.c#include”f1.cf1.cf2.cf1.cf2.c一起成為一個C程序編譯。所以一個C程序必有主函數(shù),但一個C源文件未必有主函數(shù)。2】標識符作用域局部變量是在函數(shù)或復合語句定義的變量,作用域為定義它的函數(shù)。局部變量有三種類型:自動auto,存放器register和靜態(tài)static。自動變量隨著函數(shù)的使用與否創(chuàng)立消逝;存放器變量安排在cpu中,沒有存地址;靜態(tài)變量占用固定存儲單元,在程序執(zhí)行過程不釋放,直到程序運行完畢。運行期間。全局變量都是靜態(tài)變量。eg.#include<stdio.h>intfun{staticintx=1;x*=2;returnx;}main{inti,s=1;s*=fun;//i=1 S=2 i=2 printf(“%d\n”,s);} 643】動態(tài)存儲安排malloc(sizesizevoid*型。malloc結點,如int*p;p=(int*)malloc(sizeof(int));。calloc〔n,size〕nnmalloc。free(p)釋放動態(tài)安排的存儲單元。其次局部公共根底學問資料第一章 數(shù)據(jù)構造與算法1】算法的根本概念算法的根本特征:確定性,算法中每一步驟都必需有明確定義,不允許有多義性;可行性,算法原則上能夠準確地執(zhí)行;擁有足夠的情報。算法的根本運算和操作:算術運算,規(guī)律運算,關系運算,數(shù)據(jù)傳輸。算法的根本掌握構造:挨次,選擇,循環(huán)。算法根本設計方法:列舉法、歸納法、遞推、遞歸、減半遞推技術。2】算法的簡單度算法效率的度量——算法的簡單度:時間簡單度和空間簡單度。算法空間簡單度:指執(zhí)行這個算法所需要的存空間。包括算法程序所占的空間,輸入的初始數(shù)據(jù)所占的空間,算法執(zhí)行過程中所需的額外空間。空間簡單度和時間簡單度并不相關。3】數(shù)據(jù)構造的根本概念聲音,視頻等。數(shù)據(jù)元素:數(shù)據(jù)元素是數(shù)據(jù)的根本單位。數(shù)據(jù)對象:數(shù)據(jù)對象是性質一樣的數(shù)據(jù)元素的集合。數(shù)據(jù)構造:是指由某一數(shù)據(jù)對象中全部數(shù)據(jù)成員之間的關系組成的集合。4】規(guī)律構造和存儲構造數(shù)據(jù)構造可分為數(shù)據(jù)的規(guī)律構造和存儲構造。機的。它包括數(shù)據(jù)對象和數(shù)據(jù)對象之間的關系。元素的存儲方式和關系的存儲方式。不肯定一一對應。等。承受不同的存儲構造其數(shù)據(jù)處理的效率是不同的。5】線性構造和非線性構造線性構造的條件〔〔1〕有且只有一個根結點〔2〕多有一個后件。非線性構造:不滿足線性構造條件的數(shù)據(jù)構造。棧、隊列、雙向鏈表是線性構造,樹、二叉樹為非線性構造。6】線性表及其挨次存儲構造線性表是由一組數(shù)據(jù)元素構成,數(shù)據(jù)元素的位置只取決于自己的序號,元素之間的相對位置是線性的。非空線性表的構造特征:a1,它無前件;an,它無后件;結點個數(shù)n稱為線性表的長度,當n=0時,稱為空表。線性表的挨次存儲構造具有以下兩個根本特點:線性表中全部元素所占的存儲空間是連續(xù)的;線性表中各數(shù)據(jù)元素在存儲空間中是按規(guī)律挨次依次存放的。元素代表每個元素占的字節(jié)數(shù)。挨次表的運算:查找、插入、刪除。7】線性鏈表線性鏈表是線性表的鏈式存儲構造,數(shù)據(jù)構造中的每一個結點對應于一個存儲單元,這種存儲單元稱為存儲結點,簡稱結點。結點由兩局部組成:(1)用于存儲數(shù)據(jù)元素值,稱為數(shù)據(jù)域;(2)用于存放指針,稱為指針域,用于指向前一個或后一個結點。關系可以不全都,而數(shù)據(jù)元素之間的規(guī)律關系是由指針域來確定的。鏈式存儲方式既可用于表示線性構造,也可用于表示非線性構造。線性單鏈表中,HEADHEAD=NULL〔0〕稱為空表。數(shù)據(jù)域指針域數(shù)據(jù)域指針域數(shù)據(jù)域指針域數(shù)據(jù)域指針域數(shù)據(jù)域指針域1單鏈表的構造〔Llink〕指向前件結點,右指針〔Rlink〕指向后件結點。LD RLD RLD RLD R2雙鏈表的構造鏈表存放的是空指針。…………3循環(huán)鏈表的構造線性鏈表的根本運算:查找、插入、刪除。8】棧1、棧的根本概念棧是一種特別的線性表,只允許在表的一端進展插入和刪除的線性表;插入,刪除的一端為棧頂,另一端為棧底;當表中沒有元素時為空棧。棧是一種后進先出〔或先進后出LastInFirstOut〕的線性表。棧具有記憶功能。棧的實例:火車調(diào)度,子彈夾。2、棧的存儲構造挨次存儲構造:用一組地址連續(xù)的存儲單元即一維數(shù)組來存儲;3、棧的根本運算入棧運算,在棧頂位置插入元素;讀棧頂元素,將棧頂元素賦給一個指定的變量,此時指針無變化?!究键c9】隊列隊列的根本概念隊列是一種特別的線性表,只允許在表的一端插入,在另一端刪除,允許插入的一端是隊尾〔rear刪除的一端為隊頭〔t;當表中沒有元素是空隊列;隊列是一種先進先出的線性表。(FIFO)2、隊列的存儲構造挨次存儲:一維數(shù)組。鏈式存儲:線性鏈表。隊尾插;隊頭刪3、隊列的運算:(1)入隊運算:從隊尾插入一個元素; (2)退隊運算:從隊頭刪除一個元素。s=0s=1front=rear10】樹的根本概念樹是一種非線性構造,是n個結點的有限集。當n=0時為空樹,n>0時為非空樹。結點的度:結點所擁有的子樹的個數(shù)。葉子結點:度為0的結點。分支結點:除葉子結點以外的結點。樹的深度:所處層次最大的那個結點的層次。樹的度:樹中全部結點的度的最大值。1、二叉樹的概念種不同的形態(tài),見教材12頁。2、二叉樹的性質性質1在二叉樹的第k層上,最多有21(≥1〕性質2深度為m的二叉樹最多有2m-1個結點。3在任意一棵二叉樹中,度為0〔葉子結點〕總是比度為24具有n個結點的二叉樹,其深度不小于[logn]+1,其中[logn]表示為logn的整數(shù)局部。2 2 23、二叉樹的存儲構造:詳見教材第13-14頁。12】滿二叉樹與完全二叉樹最大值,即在滿二叉樹的第k層上有21個結點,且深度為mm-1個結點。邊的假設干結點。滿二叉樹是完全二叉樹,而完全二叉樹一般不是滿二叉樹。13】完全二叉樹的性質1具有n個結點的完全二叉樹的深度為[logn]+1。2性質2完全二叉樹中度為101。ABCABCDEFGH4二叉樹的遍歷

樹,最終遍歷右子樹。5ABCDFHEG。點,最終遍歷右子樹。5BAFHDCGE。樹,最終訪問根結點。5BHFDGECA。15】挨次查找在以下兩種狀況下也只能承受挨次查找:假設線性表為無序表,則不管是挨次存儲構造還是鏈式存儲構造,只能用挨次查找。即使是有序線性表,假設承受鏈式存儲構造,也只能用挨次查找。16】二分查找二分查找的條件〔1〕用挨次存儲構造 (2)線性表是有序表查找的步驟:詳見教材第16頁。nlogn次,而挨次查找需要比較n次。217】排序1、交換排序冒泡排序法,在最壞的狀況下,冒泡排序需要比較次數(shù)為n(n-1)/2??焖倥判蚍ǎ谧顗牡臓顩r下,快速排序需要比較次數(shù)為n(n-1)/2。2、插入類排序法:簡潔插入排序法,最壞狀況需要n(n-1)/2次比較;希爾排序法,最壞狀況需要n1.〔O是算法簡單度的表示方法3、選擇類排序法:簡潔選擇排序法,最壞狀況需要n(n-1)/2次比較;O(nlogn)次比較。2其次章 程序設計根底1】程序設計方法與風格形成良好的程序設計風格需留意:(詳見教材第19頁)。1、源程序文檔化;2、數(shù)據(jù)說明的方法;3、語句的構造; 入和輸出。注釋分序言性注釋和功能性注釋。語句構造清楚第一、效率其次。2】構造化程序設計方法的四條原則1、自頂向下;2、逐步求精;3、模塊化;4、限制使用goto語句。3】構造化程序的根本構造選擇構造:又稱為分支構造,它包括簡潔選擇和多分支選擇構造。句:先推斷后執(zhí)行的循環(huán)體稱為當型循環(huán)構造;先執(zhí)行循環(huán)體后推斷的稱為直到型循環(huán)構造?!究键c4】面對對象的程序設計及面對對象方法的優(yōu)點面對對象方法的優(yōu)點〔1〕人類習慣的思維方法全都;〔2〕穩(wěn)定性好;〔3〕可重用性好;〔4〕易于開發(fā)大型軟件產(chǎn)品; 〔5〕可維護性好。5】對象及其特點對象object對象的根本特點:〔1〕標識惟一性;〔2〕分類性;〔3〕多態(tài)性;〔4〕封裝性;〔5〕模塊獨立性好。6】屬性,類和實例屬性:即對象所包含的信息,它在設計對象時確定,一般只能通過執(zhí)行對象的操作來轉變。一個實例。7】消息及其組成答復某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和掌握流。消息的組成包括:(1)接收消息的對象的名稱;〔2〕消息標識符,也稱消息名;〔3〕零個或多個參數(shù)。8】繼承和多態(tài)必重復定義他們。繼承具有傳遞性,一個類實際上繼承了它上層的全部基類的特性。允許有多個父類。多態(tài)性:是指同樣的消息被不同的對象承受時可導致完全不同的行動的現(xiàn)象第三章 軟件工程根底1】軟件定義與軟件特點名稱 描述程序 員依據(jù)用戶需求開發(fā)的、用程序設計語言描述的、適合計算機執(zhí)行的指令序列數(shù)據(jù) 使程序能正常操縱信息的數(shù)據(jù)構造名稱 描述程序 員依據(jù)用戶需求開發(fā)的、用程序設計語言描述的、適合計算機執(zhí)行的指令序列數(shù)據(jù) 使程序能正常操縱信息的數(shù)據(jù)構造文檔 與程序的開發(fā)、維護和使用有關的圖文資料軟件的特點:軟件是一種規(guī)律實體,具有抽象性;軟件在運行、使用期間不存在磨損、老化問題;軟件的開發(fā)、運行對計算機系統(tǒng)具有依靠性,受計算機系統(tǒng)的限制,這導致了軟件移植的問題;軟件簡單性高,本錢昂貴;軟件開發(fā)涉及諸多的社會因素。依據(jù)應用目標的不同,軟件可分應用軟件、系統(tǒng)軟件和支撐軟件〔或工具軟件。名稱支撐軟件〔或工具軟件〕

描述為解決特定領域的應用而開發(fā)的軟件,如辦公自動化軟件軟件,如操作系統(tǒng)支撐軟件是介于兩者之間,幫助用戶開發(fā)軟件的工具性軟件??尚行誀幷摮醪焦こ檀蛩阈枨蠓治龈乓O計具體分析可行性爭論初步工程打算需求分析概要設計具體分析實現(xiàn)測試交付使用維護退役定義階段開發(fā)階段維護階段3】軟件危機和軟件工程的概念效率等幾個方面。名稱方法描述方法是完成軟件工程工程的技術手段名稱方法描述方法是完成軟件工程工程的技術手段4】軟件工程過程軟件工程過程是把軟件轉化為輸出的一組彼此相關的資源活動,包含4種根本活動:〔1〕P(plan)——軟件規(guī)格說明; 〔2〕D(do)——軟件開發(fā);〔3〕C(check)——軟件確認; 〔4〕A(action)——軟件演進。5】軟件開發(fā)技術和軟件工程治理軟件工程的理論和技術性爭論的容主要包括軟件開發(fā)技術和軟件工程治理。軟件開發(fā)方法包括分析方法,設計方法和程序設計方法。軟件工程治理包括軟件治理學,軟件工程經(jīng)濟學,軟件心理學等。軟件工程經(jīng)濟學是爭論軟件開發(fā)中本錢的估算,本錢效益的方法和技術。6】軟件工程的原則〔具體見教材第28-29頁。7】需求分析概述需求分析方法有:構造化需求分析方法;①面對數(shù)據(jù)構造的n方法D;②面對數(shù)據(jù)流的構造化分析方法〔A;③面對數(shù)據(jù)構造的構造化數(shù)據(jù)系統(tǒng)開發(fā)方法〔D;面對對象的分析的方法〔A。從需求分析建立的模型的特性來分:靜態(tài)分析和動態(tài)分析。8】構造化方法和構造化分析方法構造化方法中,軟件功能分解屬于總體設計階段。2、構造化分析方法的概念構造化分析方法在軟件需求分析階段的應用。3、構造化分析的常用工具數(shù)據(jù)流圖awm:是構造化分析方法中用于系統(tǒng)規(guī)律模型的一種工具。它以圖形的方式描繪在系統(tǒng)中流淌和處理的過程。數(shù)據(jù)流圖中四種根本的符號。箭頭:表示數(shù)據(jù)流,數(shù)據(jù)流是數(shù)據(jù)在系統(tǒng)中傳播的路徑。圓或橢圓:表示加工,加工又稱為數(shù)據(jù)處理,是對數(shù)據(jù)流進展某些操作或變換?!矓?shù)據(jù)源。數(shù)據(jù)存儲又稱為文件,指臨時保存的數(shù)據(jù),它可以是數(shù)據(jù)庫文件或任何形式的數(shù)據(jù)組織。方框:源、潭。表示數(shù)據(jù)的源點或終點。它是軟件系統(tǒng)外部環(huán)境中的實體,統(tǒng)稱外部實體數(shù)據(jù)字典〔DDFD中消滅的被命名的圖形元素進展精準解釋。數(shù)據(jù)字典由以下4類元素組成〔1〕數(shù)據(jù)流 〔2〕數(shù)據(jù)流重量〔3〕數(shù)據(jù)存儲 〔4〕處理判定樹〔決策樹條件有關。在不同的條件組合下執(zhí)行不同的操作,那么可以使用判定表來描述。9】軟件需求規(guī)格說明書軟件需求規(guī)格說明書〔SRS,SoftwareRequirementSpecification〕是需求分析階段得出的最主要的文檔。軟件需求規(guī)格說明書的特點:有正確性、無歧義性、完整性、可驗證性、全都性、可理解性、可修改性和可追蹤性。其中最重要的是無歧義性。10】軟件設計的根本概念從技術觀點上看,軟件設計包括軟件構造設計、數(shù)據(jù)設計、接口設計、過程設計。構造設計定義軟件系統(tǒng)各主要部件之間的關系;數(shù)據(jù)設計將分析時創(chuàng)立的模型轉化為數(shù)據(jù)構造的定義;接口設計是描述軟件部、軟件和協(xié)作系統(tǒng)之間以及軟件與人之間如何通信;過程設計則是把系統(tǒng)構造部件轉換為軟件的過程性描述。從工程治理角度來看,軟件設計分兩步完成:概要設計和具體設計。概要設計將軟件需求轉化為軟件體系構造、確定系統(tǒng)級接口、全局數(shù)據(jù)構造或數(shù)據(jù)庫模式;具體設計確立每個模塊的實現(xiàn)算法和局部數(shù)據(jù)構造,用適當方法表示算法和數(shù)據(jù)構造的細節(jié)。11】軟件設計的根本原理1、軟件設計中應當遵循的根本原理和與軟件設計有關的概念:抽象化:抽出事物的本質特性而臨時不考慮它們的細節(jié)。信息隱蔽和局部化:信息隱蔽是指在一個模塊包含的信息〔過程或數(shù)據(jù)來說是不能訪問的,實現(xiàn)信息隱蔽依靠對象的封裝??诤啙?。模塊的獨立程度是評價設計好壞的重要度量標準。12】耦合性和聚性衡量軟件的模塊獨立性是用耦合性和聚性兩個定性的度量標準。聚性:是一個模塊部各個元素間彼此結合的嚴密程度的度量。性越弱。耦合和聚的種類〔詳見教材第35頁。聚性由強到弱:功能聚,挨次聚,通信聚,過程聚,時間聚,規(guī)律聚,偶然聚。13】構造化設計方法用于變換型構造和事物型構造的目標系統(tǒng)。1〔1〕劃分出組成系統(tǒng)的物理元素〔2〕設計軟件的構造2、概要設計的工具:Chart〕也稱程序構造圖,在構造圖中,模塊用一個矩形表示,箭頭表示模塊間的調(diào)用關系。可以用帶注釋的箭頭表示模塊調(diào)用過程中來回傳遞的信息。還可用帶實心圓的箭頭表示傳遞的是掌握信息,空心圓箭心表示傳遞的是數(shù)據(jù)。構造圖的根本形式:根本形式、挨次形式、重復形式、選擇形式。程序構造圖中的專業(yè)術語:名稱 描述深度 表示掌握的層數(shù)上級模塊,附屬模塊原子模塊

上,下兩層模塊a和b,且有a調(diào)用b,則a是上級模塊,b是附屬模塊整體掌握跨度〔最大模塊的層〕的表示調(diào)用該模塊的模塊個數(shù)樹中位于葉子節(jié)點的模塊變換型系統(tǒng)構造圖由輸入、中心變換、輸出三局部組成。4、設計的準則提高模塊獨立性。模塊規(guī)模適中。說明系統(tǒng)的掌握過于集中,扇出過大說明模塊過分簡單,需要掌握和協(xié)調(diào)過多的下級模塊,應適當加中間層次,扇出過小可以把模塊進一步分解成假設干小模塊,或合并到上級模塊中,扇入越大則共享該模塊的上級數(shù)目越多。好的軟件設計構造通常頂層高扇出,中間扇出較少,底層高扇入。使模塊的作用域在該模塊的掌握域。削減模塊的接口和界面的簡單性。設計成單入口,單出口的模塊。設計功能可推測的模塊。具體設計常用的設計工具〔工程設計工具圖形工具:N-S圖:有五種根本圖形。PAD表格工具:判定表。語言工具:PDL——過程設計語言〔構造化的英語和偽碼。14】軟件測試的目標和準則軟件測試的準則:全部測試都是應追溯到需求。嚴格執(zhí)行測試打算,排解測試的隨便性。充分留意測試中的群集表現(xiàn)。程序中存在錯誤的概率與該程序中已覺察的錯誤數(shù)成正比。程序員應避開檢查自己的程序。數(shù)也相當大,不行能窮盡,說明測試只能證明程序有錯,不能證明程序中無錯。妥當保存測試打算,測試用例出錯統(tǒng)計和最終分析報告。15】軟件測試方法1、靜態(tài)測試和動態(tài)測試靜態(tài)測試包括代碼檢查、靜態(tài)構造分析、代碼質量度量。不實際運行軟件,主要通過人工進展。合理的測試用例。測試用例就是為測試設計的數(shù)據(jù),由測試輸入數(shù)據(jù)〔輸入值集〕和預期的輸出結果〔輸出值集〕兩部份組成。測試用例的設計方法一般分為兩類:黑盒測試方法和白盒測試方法。2、白盒測試和黑盒測試〔1〕白盒測試工作。白盒測試的根本原則:保證所測模塊中每一獨立路徑至少執(zhí)行一次。保證所測模塊全部推斷的每一分支至少執(zhí)行一次。保證所測模塊每一循環(huán)都在邊界條件和一般條件下至少各執(zhí)行一次。驗證全部部數(shù)據(jù)構造的有效性。白盒測試的方法:規(guī)律掩蓋,根本路經(jīng)測試。〔2〕黑盒測試黑盒測試的方法:等價劃分法,邊界值分析法,錯誤推想法。16】軟件測試的實施軟件測試過程分4個步驟,即單元測試、集成測試、驗收測試和系統(tǒng)測試。說明書,單元測試的技術可以承受靜態(tài)分析和動態(tài)測試。驅動模塊相當于被測模塊的主程序,它接收測試數(shù)據(jù),并傳給所測模塊,輸出實際測試結果樁模塊通常用于代替被測模塊調(diào)用的其他模塊,其作用僅做少量的數(shù)據(jù)操作,是一個模擬子程序。計說明書。集成測試的方法:非增量方式組裝和增量方法組裝。增量方式包括自頂而下的增量方式,自底而上的增量方式和混合增量方式。試,即驗證被測軟件是否滿足需求規(guī)格說明確認的標準。檢查軟件產(chǎn)品是否符合需求定義的過程是:確認測試。數(shù)據(jù)和人員等其他系統(tǒng)元素組合在一起,在實際運行〔使用〕環(huán)境下對計算機系統(tǒng)進展一系列的集成測試和確認測試。等。17】程序調(diào)試在對程序進展了成功的測試之后將進入程序調(diào)試〔Debug,即排錯。程序的調(diào)試任務是診斷和改正程序中的錯誤。程序調(diào)試和軟件測試的區(qū)分:工具去執(zhí)行找出軟件錯誤的具體位置。程序調(diào)試的根本步驟:緣由;修改設計和代碼,以排解錯誤;進展回歸測試,防止引進的錯誤。的設計手段,而動態(tài)調(diào)試是關心靜態(tài)調(diào)試的。主要的調(diào)試方法有:〔1〕強行排錯法;〔2〕回溯法;〔3〕緣由排解法,包括演繹法,歸納法和二分法。第四章 數(shù)據(jù)庫設計根底1】數(shù)據(jù)庫的根本概念是數(shù)據(jù)庫存儲的根本對象,是描述事物的符號記錄?!睤B〕是長期儲存在計算機、有組織的、可共享的大量數(shù)據(jù)的集合,它具有統(tǒng)一的構造形式并存放于統(tǒng)一的存儲介質,是多種應用數(shù)據(jù)的集成,并可被各個應用程序所共享,所以數(shù)據(jù)庫技術的根本目標是解決數(shù)據(jù)共享問題。數(shù)據(jù)庫治理系統(tǒng)的功能:數(shù)據(jù)模式定義:即為數(shù)據(jù)庫構建其數(shù)據(jù)框架;數(shù)據(jù)存取的物理構建:為數(shù)據(jù)模式的物理存取與構建供給有效的存取方法與手段;統(tǒng)計;數(shù)據(jù)的完整性、安全性定義與檢查;數(shù)據(jù)庫的并發(fā)掌握與故障恢復;數(shù)據(jù)的效勞:如拷貝、轉存、重組、性能監(jiān)測、分析等。數(shù)據(jù)定義語言〔L:負責數(shù)據(jù)模式定義和數(shù)據(jù)物理存取構建。數(shù)據(jù)操縱語言〔L:負責數(shù)據(jù)的操縱。數(shù)據(jù)掌握語言〔L:負責數(shù)據(jù)完整性,安全性的定義與檢查以及并發(fā)掌握,故障恢復等功能。〔自含型和自主型語言〕和宿主型語言。數(shù)據(jù)庫治理員〔DBA〕的工作:數(shù)據(jù)庫設計,數(shù)據(jù)庫維護,改善系統(tǒng)性能,提高系統(tǒng)效率。數(shù)據(jù)庫系統(tǒng)〔DBS〕是指在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng),一般由數(shù)據(jù)庫、數(shù)據(jù)庫治理系統(tǒng)、應用系統(tǒng)、數(shù)據(jù)庫治理員和用戶構成?!睤BAS〕是數(shù)據(jù)庫系統(tǒng)再加上應用軟件及應用界面這三者所組成,具體包括:數(shù)據(jù)庫、數(shù)據(jù)庫治理系統(tǒng)、數(shù)據(jù)庫治理員、硬件平臺、軟件平臺、應用軟件、應用界面。2】數(shù)據(jù)治理的進展和根本特點數(shù)據(jù)治理技術的進展經(jīng)受了三個階段:人工治理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段,數(shù)據(jù)獨立性最高的階段是數(shù)據(jù)庫系統(tǒng)階段?!?〕計算機系統(tǒng)不供給對用戶數(shù)據(jù)的治理功能〔2〕數(shù)據(jù)不能共享〔3〕據(jù)。〔1〕數(shù)據(jù)冗余〔2〕不全都性〔3〕數(shù)據(jù)聯(lián)系弱。象模型為主要特征的數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫系統(tǒng)的根本特點:〔1〕數(shù)據(jù)的高集成性〔2〕數(shù)據(jù)的高共享性和低冗余性〔3〕數(shù)據(jù)高獨立性〔4〕數(shù)據(jù)統(tǒng)一治理與掌握。數(shù)據(jù)獨立性是數(shù)據(jù)與程序間的互不依靠性,即數(shù)據(jù)庫中的數(shù)據(jù)獨立于應用程序而不依靠于應用程序。數(shù)據(jù)的獨立性一般分為物理獨立性與規(guī)律獨立性兩種?!舶ù鎯嬙臁⒋嫒》绞降取侈D變時,其規(guī)律構造,應用程序都不用轉變。戶的應用程序可以不變。1、數(shù)據(jù)統(tǒng)系統(tǒng)的三級模式:一個數(shù)據(jù)庫只有一個概念模式。一個概念模式可以有假設干個外模式。。模式處于最底層,它反映了數(shù)據(jù)在計算機物理構造中的實際存儲形式,概念模式處于中間層,它反映了設計者的數(shù)據(jù)全局規(guī)律要求,而外模式處于最外層,它反映了用戶對數(shù)據(jù)的要求。2、數(shù)據(jù)庫系統(tǒng)的兩級映射〔55頁〕兩級映射保證了數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的獨立性。概念模式到模式的映射。該映射給出了概念模式中數(shù)據(jù)的全局規(guī)律構造到數(shù)據(jù)的物理存儲構造間的對應關系;以定義多個外模式,而每個外模式是概念模式的一個根本視圖?!究键c4】數(shù)據(jù)模型的根本概念與具體的軟件環(huán)境無關的模式,它是整個數(shù)據(jù)模型的根底。物理數(shù)據(jù)模型:又稱物理模型,它是一種面對計算機物理表示的模型。5】E—R1、E-R模型的根本概念能相互區(qū)分的事物。屬性:現(xiàn)實世界中事物均有一些特性,這些特性可以用屬性來表示。碼:唯一標識實體的屬性集稱為碼。域:屬性的取值圍稱為該屬性的域。聯(lián)系:在現(xiàn)實世界中事物間的關聯(lián)稱為聯(lián)系。兩個實體集間的聯(lián)系實際上是實體集間的函數(shù)關系,這種函數(shù)關系可以有下面幾種:一對一的聯(lián)系、一對多或多對一聯(lián)系、多對多。2、E-R模型的的圖示法E-R模型用E-R圖來表示,E-R圖包含了表示實體集、屬性和聯(lián)系的方法。實體的表示:用矩形表示實體集,在矩形寫上該實體集的名字。屬性的表示:用橢圓形表示屬性,在橢圓形寫上該屬性的名稱。聯(lián)系的表示:用菱形表示聯(lián)系,菱形寫上聯(lián)系名。6】層次模型和網(wǎng)狀模型模型名稱滿足的條件層次模型模型名稱滿足的條件層次模型網(wǎng)狀模型有且只有一個結點沒有雙親結點,這個結點稱為根結點根以外的其他結點有且只有一個雙親結點允許一個以上的結點無雙親一個結點可以有多于一個的雙親7】關系模型及相關概念關系數(shù)據(jù)構造,關系操縱和關系完整性約束3用來表示實體間聯(lián)系的是關系。元組:表中的一行即為一個元組。重量:元組中的一個屬性值,是不行分割的根本數(shù)據(jù)項。域:屬性的取值圍。在二維表中惟一標識元組的最小屬性值稱為該表的鍵或碼。二維表中可能有假設干個健,它們稱為表的候選碼或候選健。從二維表的全部候選鍵選取一個作為用戶使用的鍵稱為主鍵或主碼。表A中的某屬性集是某表B的鍵,則稱該屬性值為A關系操縱:數(shù)據(jù)查詢、數(shù)據(jù)的刪除、數(shù)據(jù)插入、數(shù)據(jù)修改。關系模型允許定義三類數(shù)據(jù)約束,它們是實體完整性約束、參照完整性約束以及用戶定義的完整性約束。其中實體完整性約束、參照完整性約束必需滿足的完整性約束條件。參照完整性約束不允許關系應用不存在的元組。實體完整性約束要求關系的主鍵中屬性值不能為空,這是數(shù)據(jù)庫完整性的最根本要求。8】關系代數(shù)運算結果是運算的三大要素。集合運算符,特地的運算符,算術比較符和規(guī)律運算符。關系模型的根本運算1〕插入 〔2〕刪除 (3修改 〔〕查詢〔包括投影、選擇、笛卡爾積運算〕有擴大運算交、除、連接及自然連接運算。5設關系R和S具有一樣的關系模式1、并:R和S的并是由屬于RS的全部元組構成的集合。2、差:R和S的差是由屬于RS的元組構成的集合3、笛卡爾積:設R和S的元數(shù)分別為rs,R和S〔r+s〕元的元組集合,每個元組的前r個重量來自R的一個元組,后s個重量來自S的一個元組。運算后得到的表的元組數(shù)是R*S,屬性r+s。4、交:屬于R又屬于S的元組構成的集合。5、投影:一元運算,對一個關系進展垂直切割,消去某些列,并重按排列的挨次。6、選擇:一元運算,依據(jù)某些條件對關系進展水平分割。即選擇符合條件的元組。7、除:給定關系R〔X,Y〕和S〔Y,Z,其中X,Y,ZR中的Y和S中Y可以有不同的屬性名,但必需出自一樣的域集。θ連接運算,是一種二元運算,它的操作是從兩個關系的笛卡爾積中選取屬性間滿足肯定條件的元組,以合并成一個大關系。連接運算包括等值連接和不等值連接。連接運算后得到的表的屬性是運算前表中屬性相加。即多于原來關系中屬性的個數(shù)。9、自然連接:自然連接滿足的條件是〔1〕兩關系間有公共域〔2〕通過公共域的相等值進展連接。9】數(shù)據(jù)庫設計和治理數(shù)據(jù)庫設計中有兩種方法,面對數(shù)據(jù)的方法和面對過程的方法。由于數(shù)據(jù)在系統(tǒng)中穩(wěn)定性高,數(shù)據(jù)已成為系統(tǒng)的核心,因此面對數(shù)據(jù)的設計方法已成為主流。是:需求分析階段、概念設計階段、規(guī)律設計階段、物理設計階段?;?。的關鍵。規(guī)律構造設計的任務是將E—R常用的存取方法:索引方法,聚簇方法和HASH方法。數(shù)據(jù)庫治理的容:數(shù)據(jù)庫的建立,它是數(shù)據(jù)庫治理的核心,包括數(shù)據(jù)模式的建立和數(shù)據(jù)加載。數(shù)據(jù)庫的重組。數(shù)據(jù)庫安全性掌握。數(shù)據(jù)庫的完整性掌握,數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。數(shù)據(jù)庫的故障恢復。數(shù)據(jù)庫監(jiān)輸入輸出intj;floaty;charname[50];scanf(“%2d%f%s”,&j,&y,name);假設從鍵盤上輸入55 5667777qbc后,y的值為〔566.0〕循環(huán)#include<stdio.h>main{intx=8;for(;x>0;x--){if(x%3) 8542{printf(“%d”,x--);continue;}printf(“%d”,--x);}}函數(shù)voidf(intv,intw){intt;t=v;w=t;}main{if(x>y)f(x,y);f(y,z);elsef(x,z);printf(“%d,%d,%d\n”,x,y,z);}字符串的操作#include<stdio.h>main{}(3)

chars[]=”012xy\08s34f4w2”;inti,n=0;for(i=0;s[i]!=0;i++)&&s[i]<=’9’)n++;printf(“%d\n”,n);指針根本操作#include<stdio.h>#include<stdlib.h>main{int*a,*b,*c;a=b=c=(int*)malloc(sizeof(int));*a=1;*b=2,*c=3;a=b;printf(“%d,%d,%d\n”,*a,*b,*c);}(3,3,3)b*p++;//指針變量p會先與++結合,相當于先取指針變量pb,然后使指針變量p1指針數(shù)組:一般定義形式如下:類型名*指針數(shù)組名[常量表達式]如,int*p[3]; //由于[]的優(yōu)先級高于*號,因此,p首先與【】結合,構成p【3,說明白p是一個數(shù)組名,在它前面的*號說明數(shù)組p中的每個元素只能存放指針P[0]P[1]P[2]

a[0][1]a[1][0]數(shù)組及指針#include<stdio.h>main{intx[3][2]={0},i;for(i=0;i<3;i++)scanf(“%d”,x[i]);printf(“%3d%3d%3d\n”,x[0][0],x[0][1],x[1][0]);}假設運行時輸入:246<回車>,則輸出結果是〔204〕structstudent{charsex;intage;score;};eg.structS{inta;intb;}data[2]={10,100,20,200};main{}(21)

sturctsp=data[1];printf(“%d\n”,(++p.a));鏈表:#include“stdio.h“構造體中含有指向本構造體類型的指針成員,例如下面#include“stdio.h“#include“stdl

溫馨提示

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

評論

0/150

提交評論