二級(jí)公共基礎(chǔ)知識(shí)(填空題40道)(1) 算法的復(fù)雜度主要包括______復(fù)雜度和空間復(fù)雜度。
時(shí)間(2) 數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的______。(3) 若按功能劃分,軟件測(cè)試的方法通常分為白盒測(cè)試方法和______測(cè)試方法。
答:黑盒(4) 如果一個(gè)工人可管理多個(gè)設(shè)施,而一個(gè)設(shè)施只被一個(gè)工人管理,則實(shí)體"工人"與實(shí)體"設(shè)備"之間存在______聯(lián)系。答:一對(duì)多#1:n#1:n(5) 關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括選擇、連接和______。
答:投影(6) 在先左后右的原則下,根據(jù)訪問(wèn)根結(jié)點(diǎn)的次序,二叉樹的遍歷可以分為三種:前序遍歷、______遍歷和后序遍歷。答:中序(7) 結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為自頂向下、逐步求精、______和限制使用goto語(yǔ)句。
答:模塊化(8) 軟件的調(diào)試方法主要有:強(qiáng)行排錯(cuò)法、______和原因排除法。答:回溯法(9) 數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式分別為_(kāi)_____模式、內(nèi)部級(jí)模式與外部級(jí)模式。
答:概念#概念級(jí)(10) 數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個(gè)部分,即數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過(guò)程。答:數(shù)據(jù)存儲(chǔ)(11) 設(shè)一棵完全二叉樹共有500個(gè)結(jié)點(diǎn),則在該二叉樹中有______個(gè)葉子結(jié)點(diǎn)。
答:250(12) 在最壞情況下,冒泡排序的時(shí)間復(fù)雜度為_(kāi)_____。答:n(n-1)/2#n*(n-1)/2#o(n(n-1)/2)#o(n*(n-1)/2)(13) 面向?qū)ο蟮某绦蛟O(shè)計(jì)方法中涉及的對(duì)象是系統(tǒng)中用來(lái)描述客觀事物的一個(gè)______。
答:實(shí)體(14) 軟件的需求分析階段的工作,可以概括為四個(gè)方面:______、需求分析、編寫需求規(guī)格說(shuō)明書和需求評(píng)審。答:需求獲取(15) ______是數(shù)據(jù)庫(kù)應(yīng)用的核心。
答:數(shù)據(jù)庫(kù)設(shè)計(jì)(16) 數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的______結(jié)構(gòu)和數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)。答:邏輯(17) 軟件工程研究的內(nèi)容主要包括:______技術(shù)和軟件工程管理。
答:軟件開(kāi)發(fā)(18) 與結(jié)構(gòu)化需求分析方法相對(duì)應(yīng)的是______方法。答:結(jié)構(gòu)化設(shè)計(jì)(19) 關(guān)系模型的完整性規(guī)則是對(duì)關(guān)系的某種約束條件,包括實(shí)體完整性、______和自定義完整性。
答:參照完整性(20) 數(shù)據(jù)模型按不同的應(yīng)用層次分為三種類型,它們是______數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。答:概念(21) 棧的基本運(yùn)算有三種:入棧、退棧和______。
答:讀棧頂元素#讀棧頂?shù)脑?讀出棧頂元素(22) 在面向?qū)ο蠓椒ㄖ校畔㈦[蔽是通過(guò)對(duì)象的______性來(lái)實(shí)現(xiàn)的。答:封裝(23) 數(shù)據(jù)流的類型有______和事務(wù)型。
答:變換型(24) 數(shù)據(jù)庫(kù)系統(tǒng)中實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為_(kāi)_____。答:數(shù)據(jù)庫(kù)管理系統(tǒng)#dbms(25) 關(guān)系模型的數(shù)據(jù)cao縱即是建立在關(guān)系上的數(shù)據(jù)cao縱,一般有______、增加、刪除和修改四種cao作。
答:查詢(26) 實(shí)現(xiàn)算法所需的存儲(chǔ)單元多少和算法的工作量大小分別稱為算法的 ______。答:空間復(fù)雜度和時(shí)間復(fù)雜度(27) 數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的 ______以及對(duì)數(shù)據(jù)的cao作運(yùn)算。
答:存儲(chǔ)結(jié)構(gòu)(28) 一個(gè)類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的______。
答可重用性(29) 面向?qū)ο蟮哪P椭校罨镜母拍钍菍?duì)象和 ______。答:類(30) 軟件維護(hù)活動(dòng)包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、______維護(hù)和預(yù)防性維護(hù)。
答:完善性(31) 算法的基本特征是可行性、確定性、______和擁有足夠的情報(bào)。答:有窮性(32) 順序存儲(chǔ)方法是把邏輯上相鄰的結(jié)點(diǎn)存儲(chǔ)在物理位置______的存儲(chǔ)單元中。
答:相鄰(33) jackson結(jié)構(gòu)化程序設(shè)計(jì)方法是英國(guó)的m.jackson提出的,它是一種面向______的設(shè)計(jì)方法。答:數(shù)據(jù)結(jié)構(gòu)(34) 數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。
答:概念設(shè)計(jì)階段#數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段(35) 數(shù)據(jù)庫(kù)保護(hù)分為:安全性控制 、______、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。答:完整性控制(36) 測(cè)試的目的是暴露錯(cuò)誤,評(píng)價(jià)程序的可靠性;而______的目的是發(fā)現(xiàn)錯(cuò)誤的位置并改正錯(cuò)誤。
答:調(diào)試(37) 在最壞情況下,堆排序需要比較的次數(shù)為_(kāi)_____。答:o(nlog2n)(38) 若串s="program",則其子串的數(shù)目是______。
答:29(39) 一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體"項(xiàng)目主管"與實(shí)體"項(xiàng)目"的聯(lián)系屬于______的聯(lián)系。答:1對(duì)多#1:n(40) 數(shù)據(jù)庫(kù)管理系統(tǒng)常見(jiàn)的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和______三種。
答:關(guān)系模型。
1.棧的基本概念 棧是限定只在一端進(jìn)行插入與刪除的線性表,通常稱插入、刪除的這一端為棧頂,另一端為棧底。
當(dāng)表中沒(méi)有元素時(shí)稱為空棧。棧頂元素總是后被插入的元素,從而也是最先被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。
棧是按照"先進(jìn)后出"或"后進(jìn)先出"的原則組織數(shù)據(jù)的。 2.棧的順序存儲(chǔ)及其運(yùn)算 用一維數(shù)組S(1∶m)作為棧的順序存儲(chǔ)空間,其中m為最大容量。
在棧的順序存儲(chǔ)空間S(1∶m)中,S(bottom)為棧底元素,S(top)為棧頂元素。top=0表示???;top=m表示棧滿。
棧的基本運(yùn)算有三種:入棧、退棧與讀棧頂元素。 (1)入棧運(yùn)算:入棧運(yùn)算是指在棧頂位置插入一個(gè)新元素。
首先將棧頂指針加一(即top加1),然后將新元素插入到棧頂指針指向的位置。當(dāng)棧頂指針已經(jīng)指向存儲(chǔ)空間的最后一個(gè)位置時(shí),說(shuō)明??臻g已滿,不可能再進(jìn)行入棧操作。
這種情況稱為棧"上溢"錯(cuò)誤。 (2)退棧運(yùn)算:退棧是指取出棧頂元素并賦給一個(gè)指定的變量。
首先將棧頂元素(棧頂指針指向的元素)賦給一個(gè)指定的變量,然后將棧頂指針減一(即top減1)。當(dāng)棧頂指針為0時(shí),說(shuō)明棧空,不可進(jìn)行退棧操作。
這種情況稱為棧的"下溢"錯(cuò)誤。 (3)讀棧頂元素:讀棧頂元素是指將棧頂元素賦給一個(gè)指定的變量。
這個(gè)運(yùn)算不刪除棧頂元素,只是將它賦給一個(gè)變量,因此棧頂指針不會(huì)改變。當(dāng)棧頂指針為0時(shí),說(shuō)明???,讀不到棧頂元素。
麻煩采納,謝謝。
棧,是硬件。
主要作用表現(xiàn)為一種數(shù)據(jù)結(jié)構(gòu),是只能在某一端插入和刪除的特殊線性表。它按照后進(jìn)先出的原則存儲(chǔ)數(shù)據(jù),先進(jìn)入的數(shù)據(jù)被壓入棧底,最后的數(shù)據(jù)在棧頂,需要讀數(shù)據(jù)的時(shí)候從棧頂開(kāi)始彈出數(shù)據(jù)(最后一個(gè)數(shù)據(jù)被第一個(gè)讀出來(lái))。
棧是允許在同一端進(jìn)行插入和刪除操作的特殊線性表。允許進(jìn)行插入和刪除操作的一端稱為棧頂(top),另一端為棧底(bottom);棧底固定,而棧頂浮動(dòng);棧中元素個(gè)數(shù)為零時(shí)稱為空棧。
插入一般稱為進(jìn)棧(PUSH),刪除則稱為退棧(POP)。 棧也稱為先進(jìn)后出表。
??梢杂脕?lái)在函數(shù)調(diào)用的時(shí)候存儲(chǔ)斷點(diǎn),做遞歸時(shí)要用到棧! 以上定義是在經(jīng)典計(jì)算機(jī)科學(xué)中的解釋。 在計(jì)算機(jī)系統(tǒng)中,棧則是一個(gè)具有以上屬性的動(dòng)態(tài)內(nèi)存區(qū)域。
程序可以將數(shù)據(jù)壓入棧中,也可以將數(shù)據(jù)從棧頂彈出。在i386機(jī)器中,棧頂由稱為esp的寄存器進(jìn)行定位。
壓棧的操作使得棧頂?shù)牡刂窚p小,彈出的操作使得棧頂?shù)牡刂吩龃蟆?棧在程序的運(yùn)行中有著舉足輕重的作用。
最重要的是棧保存了一個(gè)函數(shù)調(diào)用時(shí)所需要的維護(hù)信息,這常常稱之為堆棧幀或者活動(dòng)記錄。堆棧幀一般包含如下幾方面的信息: 1. 函數(shù)的返回地址和參數(shù) 2. 臨時(shí)變量:包括函數(shù)的非靜態(tài)局部變量以及編譯器自動(dòng)生成的其他臨時(shí)變量。
二、基本算法 1、進(jìn)棧(PUSH)算法 ①若TOP≥n時(shí),則給出溢出信息,作出錯(cuò)處理(進(jìn)棧前首先檢查棧是否已滿,滿則溢出;不滿則作②); ②置TOP=TOP+1(棧指針加1,指向進(jìn)棧地址); ③S(TOP)=X,結(jié)束(X為新進(jìn)棧的元素); 2、退棧(POP)算法 ①若TOP≤0,則給出下溢信息,作出錯(cuò)處理(退棧前先檢查是否已為空棧, 空則下溢;不空則作②); ②X=S(TOP),(退棧后的元素賦給X): ③TOP=TOP-1,結(jié)束(棧指針減1,指向棧頂)。三、棧的實(shí)現(xiàn) 棧分順序棧和鏈?zhǔn)綏?,下面程序介紹了順序棧的實(shí)現(xiàn)。
#include #include #define DataType int #define MAXSIZE 1024 typedef struct { DataType data[MAXSIZE]; int top; }SeqStack; SeqStack *Init_SeqStack()//棧初始化 { SeqStack *s; s=(SeqStack *)malloc(sizeof(SeqStack)); if(!s) { printf("空間不足\n"); return NULL; } else { s->top=-1; return s; } } int Empty_SeqStack(SeqStack *s)//判???{ if(s->top==-1) return 1; else return 0; } int Push_SeqStack(SeqStack *s,DataType x)//入棧 { if(s->top==MAXSIZE-1) return 0;//棧滿不能入棧 else { s->top++; s->data[s->top]=x; return 1; } } int Pop_SeqStack(SeqStack *s,DataType *x)//出棧 { if(Empty_SeqStack(s)) return 0;//棧空不能出棧 else { *x=s->data[s->top]; s->top--; return 1; }//棧頂元素存入*x,返回 } DataType Top_SeqStack(SeqStack *s)//取棧頂元素 { if(Empty_SeqStack(s)) return 0;//???else return s->data[s->top]; } int Print_SeqStack(SeqStack *s) { int i; printf("當(dāng)前棧中的元素:\n"); for(i=s->top;i>=0;i--) printf("%3d",s->data[i]); printf("\n"); return 0; } int main() { SeqStack *L; int n,num,m; int i; L=Init_SeqStack(); printf("初始化完成\n"); printf("??眨?d\n",Empty_SeqStack(L)); printf("請(qǐng)輸入入棧元素個(gè)數(shù):\n"); scanf("%d",&n); printf("請(qǐng)輸入要入棧的%d個(gè)元素:\n",n); for(i=0;i<n;i++) { scanf("%d",&num); Push_SeqStack(L,num); } Print_SeqStack(L); printf("棧頂元素:%d\n",Top_SeqStack(L)); printf("請(qǐng)輸入要出棧的元素個(gè)數(shù)(不能超過(guò)%d個(gè)):\n",n); scanf("%d",&n); printf("依次出棧的%d個(gè)元素:\n",n); for(i=0;i<n;i++) { Pop_SeqStack(L,&m); printf("%3d",m); } printf("\n"); Print_SeqStack(L); printf("棧頂元素:%d\n",Top_SeqStack(L)); return 0; }。
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁(yè)面生成時(shí)間:3.916秒