版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、(1)算法的時(shí)間復(fù)雜度是指算法在計(jì)算機(jī)內(nèi)執(zhí)行時(shí)所需時(shí)間的度量;與時(shí)間復(fù)雜度類似,空間復(fù)雜度是指算法在計(jì)算機(jī)內(nèi)執(zhí)行時(shí)所需存儲(chǔ)空間的度量。(2)時(shí)間復(fù)雜度是指一個(gè)算法執(zhí)行時(shí)間的相對(duì)度量;空間復(fù)雜度是指算法在運(yùn)行過程中臨時(shí)占用所需存儲(chǔ)空間大小的度量。人們都希望選擇一個(gè)既省存儲(chǔ)空間、又省執(zhí)行時(shí)間的算法。然而,有時(shí)為了加快算法的運(yùn)行速度,不得不增加空間開銷;有時(shí)為了能有效地存儲(chǔ)算法和數(shù)據(jù),又不得不犧牲運(yùn)行時(shí)間。時(shí)間和空間的效率往往是一對(duì)矛盾體,很難做到兩全。但是,這不適用于所有的情況,也就是說時(shí)間復(fù)雜度和空間復(fù)雜度之間雖然經(jīng)常矛盾,但是二者不存在必然的聯(lián)系。(3)數(shù)據(jù)處理的最小單位是數(shù)據(jù)項(xiàng);由若干數(shù)據(jù)項(xiàng)
2、組成數(shù)據(jù)元素;數(shù)據(jù)是指能夠被計(jì)算機(jī)識(shí)別、存儲(chǔ)和加工處理的信息載體;數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)之間的相互關(guān)系和數(shù)據(jù)運(yùn)算。(4)一般來說,一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲(chǔ)結(jié)構(gòu),常用的存儲(chǔ)結(jié)構(gòu)有順序、鏈接、索引等。而采用不同的存儲(chǔ)結(jié)構(gòu),其數(shù)據(jù)處理的效率是不同的。(5)數(shù)據(jù)結(jié)構(gòu)概念一般包括數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)及數(shù)據(jù)上的運(yùn)算集合等。數(shù)據(jù)的邏輯結(jié)構(gòu)只抽象地反映數(shù)據(jù)元素之間的邏輯關(guān)系,而不管它在計(jì)算機(jī)中的存儲(chǔ)形式。(6)數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)的一門學(xué)科,主要研究和討論以下三個(gè)方面的問題: 數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系,即數(shù)據(jù)的邏輯結(jié)構(gòu); 在對(duì)數(shù)據(jù)進(jìn)行處理時(shí),各數(shù)據(jù)元素在計(jì)算機(jī)中的存儲(chǔ)關(guān)系,即數(shù)
3、據(jù)的存儲(chǔ)結(jié)構(gòu); 對(duì)各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算。(7)根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后件關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。如果一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個(gè)條件: 有且只有一個(gè)根結(jié)點(diǎn); 每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件。則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu),又稱線性表。所以線性表、棧與隊(duì)列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。(8)線性表可以為空表;第一個(gè)元素沒有直接前件,最后一個(gè)元素沒有直接后件;線性表的定義中,元素的排列并沒有規(guī)定大小順序。(9)如果一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個(gè)條件:第一,有且只有一個(gè)根結(jié)點(diǎn);第二,每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件
4、,則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu)。線性結(jié)構(gòu)又稱線性表。(10)順序存儲(chǔ)結(jié)構(gòu)中,數(shù)據(jù)元素存放在一組地址連續(xù)的存儲(chǔ)單元中,每個(gè)數(shù)據(jù)元素地址可通過公式LOC(ai)=LOC(a1)+(i-1)L計(jì)算得到,從而實(shí)現(xiàn)了隨機(jī)存取。對(duì)于鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),要對(duì)某結(jié)點(diǎn)進(jìn)行存取,都得從鏈的頭指針指向的結(jié)點(diǎn)開始,這是一種順序存取的存儲(chǔ)結(jié)構(gòu)。(11)棧是限定在一端進(jìn)行插入與刪除的線性表。棧是按照“先進(jìn)后出”的或“后進(jìn)先出”的原則組織數(shù)據(jù)的,因此,棧也被稱為“先進(jìn)后出”表或“后進(jìn)先出”表。(12)本題考查的是棧。棧是一種特殊的線性表,線性表可以順序存儲(chǔ),也可以鏈?zhǔn)酱鎯?chǔ),而棧是一種線性表,也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。(13)本題主要考
5、查對(duì)于棧的理解。棧是限定在一端進(jìn)行插入與刪除的線性表。在棧中,允許插入與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素,即棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。(14)和線性表類似,棧也有兩種存儲(chǔ)方法,一是順序棧,二是鏈?zhǔn)綏?。棧的順序存?chǔ)結(jié)構(gòu)是利用一組地址連續(xù)的存儲(chǔ)單元一次存儲(chǔ)自棧底到棧頂?shù)臄?shù)據(jù)元素,同時(shí)附設(shè)指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對(duì)而言,鏈?zhǔn)綏5牟僮鞲子趯?shí)現(xiàn)。(16)棧操作原則上“后進(jìn)先出”,棧底至棧頂依次存放元
6、素A、B、C、D,則表明這4個(gè)元素中D是最后進(jìn)棧,B、C處于中間,A最早進(jìn)棧,所以出棧時(shí)一定是先出D,再出C,最后出A。(17)隊(duì)列是一種操作受限的線性表。它只允許在線性表的一端進(jìn)行插入操作,另一端進(jìn)行刪除操作。其中,允許插入的一端稱為隊(duì)尾(rear),允許刪除的一端稱為隊(duì)首(front)。隊(duì)列具有先進(jìn)先出的特點(diǎn),它是按“先進(jìn)先出”的原則組織數(shù)據(jù)的。(18)考查棧和隊(duì)列概念的掌握。棧和隊(duì)列都是一種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種“后進(jìn)先出”的線性表;而隊(duì)列只允許在表的一端進(jìn)行插入操作,在另一端進(jìn)行刪除操作,是一種“
7、先進(jìn)先出”的線性表。(19)本題考查的是線性單鏈表、雙向鏈表與循環(huán)鏈表的結(jié)構(gòu)及其基本運(yùn)算。在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)空間可以不連續(xù),各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,而數(shù)據(jù)元素之間的邏輯關(guān)系是由指針域來確定的。 (20)鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)克服了順序存儲(chǔ)結(jié)構(gòu)的缺點(diǎn):它的結(jié)點(diǎn)空間可以動(dòng)態(tài)申請(qǐng)和釋放;它的數(shù)據(jù)元素的邏輯次序靠結(jié)點(diǎn)的指針來指示,不需要移動(dòng)數(shù)據(jù)元素。故鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)下的線性表便于插入和刪除操作。(21)將題中所述的樹用圖形表示即可得到葉子結(jié)點(diǎn)的數(shù)目,另外還可用公式n0<=1n2+2n3+3n4+1來計(jì)算,其中n0表示葉子結(jié)點(diǎn);1n2中的n2表示度為2的結(jié)點(diǎn)。
8、此題中度為1的結(jié)點(diǎn)有4個(gè);度為2的結(jié)點(diǎn)有2個(gè);度為3的結(jié)點(diǎn)有1個(gè);度為4的結(jié)點(diǎn)有1個(gè),計(jì)算過程如下:n0=1n2+2n3+3n4+1n0=1×2+2×1+3×1+1n0=8(23)本題考查了二叉樹的基本概念。在二叉樹中,葉子節(jié)點(diǎn)的度是1;當(dāng)該二叉樹為空樹時(shí),根節(jié)點(diǎn)的度為0;為非空樹時(shí),根節(jié)點(diǎn)的度最大為2。(24)本題考查二叉樹的遍歷。所謂二叉樹的前序遍歷(DLR)是指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這3者中,首先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹,并且,在遍歷左右子樹時(shí),上述規(guī)則同樣適用,即“根左右”,故該二叉樹的前序遍歷結(jié)果為“ATBZXCYP”。(
9、25)前序遍歷的第一個(gè)結(jié)點(diǎn)a為樹的根結(jié)點(diǎn);中序遍歷中a的左邊的結(jié)點(diǎn)為a的左子樹,a右邊的結(jié)點(diǎn)為a的右子樹;再分別對(duì)a的左右子樹進(jìn)行上述兩步處理,直到每個(gè)結(jié)點(diǎn)都找到正確的位置。(26)對(duì)有序線性表進(jìn)行順序查找,首先用被查找的數(shù)據(jù)和線性表的第一個(gè)數(shù)據(jù)元素進(jìn)行比較,若相等,則查找成功;否則,繼續(xù)進(jìn)行比較,即和線性表的第二個(gè)數(shù)據(jù)元素進(jìn)行比較。同樣,若相等,則查找成功;否則,繼續(xù)進(jìn)行比較。依次類推,直到在線性表中查找到該數(shù)據(jù)或查找到線性表的最后一個(gè)元素,算法才結(jié)束。因此,在長度為64的有序線性表中進(jìn)行順序查找,最壞的情況下需要比較64次。(27)二分法查找只適用于順序存儲(chǔ)的有序表。在此所說的有序表是指線
10、性表中的元素按值非遞減排列(即從小到大,但允許相鄰元素值相等)的。 (28)從平均時(shí)間性能而言,快速排序最佳,其所需時(shí)間最少,但快速排序在最壞情況下的時(shí)間性能不如堆排序和歸并排序。當(dāng)序列中的記錄基本有序或元素個(gè)數(shù)較少時(shí),冒泡排序和簡單選擇排序?yàn)樽罴雅判蚍椒ā?程序設(shè)計(jì)基礎(chǔ)(1)結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則是:自頂向下,逐步求精,模塊化,限制使用goto語句??蓮?fù)用性是指軟件元素不加修改和稍加修改可在不同的軟件開發(fā)過程中重復(fù)使用的性質(zhì)。軟件可復(fù)用性是軟件工程追求的目標(biāo)之一,是提高軟件生產(chǎn)效率的最主要方法。面向?qū)ο蟮某绦蛟O(shè)計(jì)具有可復(fù)用性的優(yōu)點(diǎn)。(2)濫用goto 語句將使程序流程無規(guī)律,可讀性差,
11、;注解行有利于對(duì)程序的理解,不應(yīng)減少或取消,;程序的長短要依照實(shí)際情況而論,而不是越短越好。(3)本題考查了程序的基本結(jié)構(gòu)。程序由一些基本結(jié)構(gòu)組成。任何一個(gè)大型的程序都由3種基本結(jié)構(gòu)組成,由這些基本結(jié)構(gòu)構(gòu)成一個(gè)結(jié)構(gòu)化的程序。這3種基本結(jié)構(gòu)為:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。(4)結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為自頂向下、逐步求精、模塊化及限制使用goto語句,總的來說可使程序結(jié)構(gòu)良好、易讀、易理解、易維護(hù)。(5)面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是,使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題。它強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的概念而不強(qiáng)調(diào)算法,它鼓勵(lì)開發(fā)者在軟件開
12、發(fā)的絕大部分中都用應(yīng)用領(lǐng)域的概念去思考。(6)面向?qū)ο蟮氖澜缡峭ㄟ^對(duì)象與對(duì)象間彼此的相互合作來推動(dòng)的,對(duì)象間的這種相互合作需要一個(gè)機(jī)制協(xié)助進(jìn)行,這樣的機(jī)制稱為消息。消息是一個(gè)實(shí)例與另一個(gè)實(shí)例之間傳遞的信息,它請(qǐng)求對(duì)象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。(7)面向?qū)ο蟪绦蛟O(shè)計(jì)方法并不強(qiáng)調(diào)自頂向下的構(gòu)造程序,而常常是自底向上的,而自頂向下、逐步求精是結(jié)構(gòu)化程序設(shè)計(jì)的特點(diǎn)。(8)面向?qū)ο笏枷胫械娜齻€(gè)主要特征是:封裝性、繼承性和多態(tài)性。(9)面向?qū)ο蟪绦蛴扇舾蓚€(gè)對(duì)象構(gòu)成;結(jié)構(gòu)化程序由數(shù)據(jù)和相應(yīng)算法構(gòu)成。(10)對(duì)象是由數(shù)據(jù)和容許的操作組成的封裝體,與客觀實(shí)體有直接的對(duì)應(yīng)關(guān)系,對(duì)象
13、之間通過傳遞消息互相聯(lián)系,從而模擬現(xiàn)實(shí)世界中不同事物彼此之間的聯(lián)系, (11)對(duì)象的基本特點(diǎn):標(biāo)識(shí)唯一性、分類性、多態(tài)性、封裝性和模塊獨(dú)立性。(12)在面向?qū)ο蟪绦蛟O(shè)計(jì)中所使用的對(duì)象,其數(shù)據(jù)和操作是作為平等伙伴出現(xiàn)的。因此,對(duì)象具有很強(qiáng)的自含性,此外,對(duì)象所固有的封裝性,使得對(duì)象之間不相互影響。(13)面向?qū)ο蠓椒ㄊ且环N運(yùn)用對(duì)象、類、封裝、繼承、多態(tài)和消息等概念來構(gòu)造、測試、重構(gòu)軟件的方法。面向?qū)ο蠓椒◤膶?duì)象出發(fā),發(fā)展出對(duì)象、類、消息、繼承等概念。軟件工程基礎(chǔ)(1)本題考查軟件的定義。軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它包括程序、相關(guān)數(shù)據(jù)及其說明文檔的總和。(2)軟件工程學(xué)是研究軟件
14、開發(fā)和維護(hù)的普遍原理與技術(shù)的一門工程學(xué)科。所謂軟件工程是指采用工程的概念、原理、技術(shù)和方法指導(dǎo)軟件的開發(fā)與維護(hù)。軟件工程學(xué)的主要研究對(duì)象包括軟件開發(fā)與維護(hù)的技術(shù)、方法、工具和管理等方面。(3)軟件工程包括3個(gè)要素,即方法、工具和過程。(4)軟件工程概念的出現(xiàn)源自于軟件危機(jī)。為了消除軟件危機(jī),通過認(rèn)真研究解決軟件危機(jī)的方法,認(rèn)識(shí)到軟件工程是使計(jì)算機(jī)軟件走向工程科學(xué)的途徑,逐步形成了軟件工程的概念。(5)本題考核軟件維護(hù)的概念。維護(hù)是軟件生命周期的最后一個(gè)階段,也是持續(xù)時(shí)間最長、付出代價(jià)最大的階段。在軟件交付使用后,還需要進(jìn)行維護(hù)。軟件維護(hù)通常有以下四類:為糾正使用中出現(xiàn)的錯(cuò)誤而進(jìn)行的改正性維護(hù);
15、為適應(yīng)環(huán)境變化而進(jìn)行的適應(yīng)性維護(hù);為改進(jìn)原有軟件而進(jìn)行的完善性維護(hù);為將來的可維護(hù)和可靠而進(jìn)行的預(yù)防性維護(hù)。軟件維護(hù)不僅包括程序代碼的維護(hù),還包括文檔的維護(hù)。(6)軟件生命周期分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個(gè)階段。本題中,詳細(xì)設(shè)計(jì)、軟件編碼和軟件測試都屬于軟件開發(fā)階段;維護(hù)是軟件生命周期的最后一個(gè)階段,也是持續(xù)時(shí)間最長、花費(fèi)代價(jià)最大的一個(gè)階段,軟件工程學(xué)的一個(gè)目的就是提高軟件的可維護(hù)性,降低維護(hù)的代價(jià)。(7)通常將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用的過程稱為軟件生命周期。它可以分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個(gè)階段。(8)軟件生命周期由軟件定義、軟件開發(fā)和軟件維護(hù)3個(gè)時(shí)期組
16、成。軟件開發(fā)時(shí)期是具體設(shè)計(jì)和實(shí)現(xiàn)在前一時(shí)期定義的軟件,它通常由下面五個(gè)階段組成:概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編寫代碼、組裝測試和確認(rèn)測試。(9)通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。軟件生命周期的主要活動(dòng)階段為: 可行性研究和計(jì)劃制定。確定待開發(fā)軟件系統(tǒng)的開發(fā)目標(biāo)和總的要求,給出它的功能、性能、可靠性以及接口等方面的可能方案,制定完成開發(fā)任務(wù)的實(shí)施計(jì)劃。 需求分析。對(duì)待開發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)定義,即準(zhǔn)確地確定軟件系統(tǒng)的功能。編寫軟件規(guī)格說明書及初步的用戶手冊(cè),提
17、交評(píng)審。 軟件設(shè)計(jì)。系統(tǒng)設(shè)計(jì)人員和程序設(shè)計(jì)人員應(yīng)該在反復(fù)理解軟件需求的基礎(chǔ)上,給出軟件的結(jié)構(gòu)、模塊的劃分、功能的分配以及處理流程。 軟件實(shí)現(xiàn)。把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼。即完成源程序的編碼,編寫用戶手冊(cè)、操作手冊(cè)等面向用戶的文檔,編寫單元測試計(jì)劃。 軟件測試。在設(shè)計(jì)測試用例的基礎(chǔ)上,檢驗(yàn)軟件的各個(gè)組成部分。編寫測試分析報(bào)告。 運(yùn)行和維護(hù)。將已交付的軟件投入運(yùn)行,并在運(yùn)行使用中不斷地維護(hù),根據(jù)新提出的需求進(jìn)行必要而且可能的擴(kuò)充和刪改。(10)需求分析是軟件定義時(shí)期的最后一個(gè)階段,它的基本任務(wù)就是詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象(組織、部門、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶的
18、各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能。(11)常見的需求分析方法有:結(jié)構(gòu)化分析方法和面向?qū)ο蟮姆治龇椒?。結(jié)構(gòu)化分析就是使用數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、結(jié)構(gòu)化語言、判定表和判定樹等工具,來建立一種新的、稱為結(jié)構(gòu)化規(guī)格說明的目標(biāo)文檔。(12)軟件開發(fā)階段包括需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測試5個(gè)階段。其中需求分析階段常用的工具是數(shù)據(jù)流圖和數(shù)據(jù)字典。(13)數(shù)據(jù)流圖中的主要圖形元素有加工、數(shù)據(jù)流、存儲(chǔ)文件、源和潭。(14)軟件需求規(guī)格說明書(Software Requirement Specification,SRS)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它具有以
19、下幾個(gè)方面的作用: 便于用戶、開發(fā)人員進(jìn)行理解和交流; 反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù); 作為確認(rèn)測試和驗(yàn)收的依據(jù)。(15)軟件設(shè)計(jì)包括軟件結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、接口設(shè)計(jì)和過程設(shè)計(jì)。其中,結(jié)構(gòu)設(shè)計(jì)是定義軟件系統(tǒng)各主要部件之間的關(guān)系;數(shù)據(jù)設(shè)計(jì)是將分析時(shí)創(chuàng)建的模型轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)的定義;接口設(shè)計(jì)是描述軟件內(nèi)部、軟件和操作系統(tǒng)之間及軟件與人之間如何通信;過程設(shè)計(jì)則是把系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程性描述。(16)在結(jié)構(gòu)化程序設(shè)計(jì)中,一般較優(yōu)秀的軟件設(shè)計(jì)盡量做到高內(nèi)聚、低耦合,這樣有利于提高軟件模塊的獨(dú)立性,也是模塊劃分的原則。(17)軟件設(shè)計(jì)遵循軟件工程的基本目標(biāo)和原則,建立了適用
20、于在軟件設(shè)計(jì)中應(yīng)該遵循的基本原理和與軟件設(shè)計(jì)有關(guān)的概念,它們具有抽象、模塊化、信息隱蔽和數(shù)據(jù)獨(dú)立性。自底向上是集成測試中增量測試的一種。(18)模塊的獨(dú)立程序是評(píng)價(jià)設(shè)計(jì)好壞的重要度量標(biāo)準(zhǔn)。衡量軟件的模塊獨(dú)立性使用耦合性和內(nèi)聚性兩個(gè)定性的度量標(biāo)準(zhǔn)。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合。(19)系統(tǒng)設(shè)計(jì)的質(zhì)量主要反映在模塊的獨(dú)立性上。評(píng)價(jià)模塊獨(dú)立性的主要標(biāo)準(zhǔn)有兩個(gè):一是模塊之間的耦合,它表明兩個(gè)模塊之間互相獨(dú)立的程度;二是模塊內(nèi)部之間的關(guān)系是否緊密,稱為內(nèi)聚。一般來說,要求模塊之間的耦合盡可能地弱,即模塊盡可能獨(dú)立,而要求模塊的內(nèi)聚程度盡量地高。綜上所述,選項(xiàng)B)的答案正確。(20)利用
21、信息隱蔽,可以確保每一個(gè)模塊的獨(dú)立性。(21)模塊之間的耦合程度反映了模塊的獨(dú)立性,也反映了系統(tǒng)分解后的復(fù)雜程度。按照耦合程度從強(qiáng)到弱分別是:內(nèi)容耦合、公共耦合、外部耦合、控制耦合、標(biāo)記耦合、數(shù)據(jù)耦合和非直接耦合,沒有異構(gòu)耦合這種方式。(22)總體設(shè)計(jì)過程通常由兩個(gè)主要階段組成:系統(tǒng)設(shè)計(jì),確定系統(tǒng)的具體實(shí)現(xiàn)方案;結(jié)構(gòu)設(shè)計(jì),確定軟件結(jié)構(gòu)。為確定軟件結(jié)構(gòu),首先需要從實(shí)現(xiàn)角度把復(fù)雜的功能進(jìn)一步分解。分析員結(jié)合算法描述仔細(xì)分析數(shù)據(jù)流圖中的每個(gè)處理,如果一個(gè)處理的功能過分復(fù)雜,必須把它的功能適當(dāng)?shù)胤纸獬梢幌盗斜容^簡單的功能。(23)程序流程圖是人們對(duì)解決問題的方法、思路或算法的一種圖形方式的描述。其中,
22、圖框表示各種操作的類型,圖框中的文字和符號(hào)表示操作的內(nèi)容;流程線表示操作的先后次序。帶箭頭的線段在數(shù)據(jù)流程圖中表示數(shù)據(jù)流;帶箭頭的線段在程序流程圖中表示控制流。題中給出的選項(xiàng)中,在圖元之間用帶有箭頭的線段表示圖元關(guān)系。在模塊之間用帶有箭頭的線段表示調(diào)用關(guān)系。(24)N-S圖是由Nassi 和 Shneiderman 提出的一種符合程序化結(jié)構(gòu)設(shè)計(jì)原則的圖形描述工具。它的提出是為了改進(jìn)流程圖在描述程序邏輯時(shí)的不靈活性。(25)數(shù)據(jù)流圖DFD是結(jié)構(gòu)化分析方法最主要的一種圖形工具,不屬于過程設(shè)計(jì)工具。(26)軟件測試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程,且為了達(dá)到好的測試效果,應(yīng)該由獨(dú)立的第三方來構(gòu)造測試,
23、程序員應(yīng)盡量避免檢查自己的程序。(27)使用人工或自動(dòng)手段來運(yùn)行或測定某個(gè)系統(tǒng)的過程,目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。軟件測試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。測試以查找錯(cuò)誤為目的,而不是為了演示軟件的正確功能。(28)軟件測試過程中,輔助資源包括測試用例(測試數(shù)據(jù))、測試計(jì)劃、出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告等。(29)確認(rèn)測試的任務(wù)是驗(yàn)證軟件的功能和性能,以及其他特性是否滿足需求規(guī)格說明中確定的各種需求;集成測試的主要目的是發(fā)現(xiàn)與接口有關(guān)的錯(cuò)誤。(30)因?yàn)闇y試的目的在于發(fā)現(xiàn)錯(cuò)誤,從心理學(xué)角度講,由程序的編寫者自己進(jìn)行測試是不合適的,為了達(dá)到最好的測試效果,應(yīng)該由
24、獨(dú)立的第三方進(jìn)行測試工作,程序調(diào)試,修改一個(gè)錯(cuò)誤的同時(shí)可能引入了新的錯(cuò)誤,解決的辦法是在修改了錯(cuò)誤之后,必須進(jìn)行回歸測試,;所謂軟件維護(hù),就是在軟件已經(jīng)交付使用之后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過程。(31)本題考查軟件工程調(diào)試。調(diào)試與測試是兩個(gè)不同的過程,有著根本的區(qū)別:調(diào)試是一個(gè)隨機(jī)的、不可重復(fù)的過程,它用于隔離和確認(rèn)問題發(fā)生的原因,然后修改軟件來糾正問題;測試是一個(gè)有計(jì)劃的、可以重復(fù)的過程,它的目的是為了發(fā)現(xiàn)軟件中的問題。因此,軟件調(diào)試的目的是為了改正軟件中的錯(cuò)誤。數(shù)據(jù)庫設(shè)計(jì)基礎(chǔ)(1)數(shù)據(jù)庫(DataBase,DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲(chǔ)介質(zhì)內(nèi),是
25、多種應(yīng)用數(shù)據(jù)的集成,可以被各個(gè)應(yīng)用程序所共享。數(shù)據(jù)庫中的數(shù)據(jù)具有“集成”、“共享”的特點(diǎn)。(2)由于數(shù)據(jù)的集成性使得數(shù)據(jù)可被多個(gè)應(yīng)用程序共享,特別是在網(wǎng)絡(luò)發(fā)達(dá)的今天,數(shù)據(jù)庫與網(wǎng)絡(luò)的結(jié)合擴(kuò)大了數(shù)據(jù)庫的應(yīng)用范圍,所以數(shù)據(jù)庫技術(shù)的根本問題是解決數(shù)據(jù)的共享問題。(3)數(shù)據(jù)庫管理系統(tǒng)(Database Management System,DBMS)是數(shù)據(jù)庫的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等,數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心。(4)數(shù)據(jù)庫管理系統(tǒng)DBMS是數(shù)據(jù)庫系統(tǒng)中實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件。它負(fù)責(zé)數(shù)據(jù)庫中所有數(shù)據(jù)的存儲(chǔ)、檢索、修改以及安全保
26、護(hù)等,數(shù)據(jù)庫內(nèi)的所有活動(dòng)都是在其控制下進(jìn)行的。所以,DBMS包含數(shù)據(jù)庫DB。操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)與應(yīng)用程序在一定的硬件支持下就構(gòu)成了數(shù)據(jù)庫系統(tǒng)。所以,DBS包含DBMS,也就包含DB。綜上所述,選項(xiàng)C)正確。(5)文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散的、相互獨(dú)立的,因此相對(duì)于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)數(shù)據(jù)處理存在3個(gè)缺點(diǎn),即數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡稱為數(shù)據(jù)依賴)。(6)數(shù)據(jù)庫技術(shù)的主要目的是有效地管理和存取數(shù)據(jù)資源,包括提供數(shù)據(jù)的共享性,使多個(gè)用戶能夠同時(shí)訪問數(shù)據(jù)庫中的數(shù)據(jù);減少數(shù)據(jù)的冗余度,以提高數(shù)據(jù)的一致性和完整性;提供數(shù)據(jù)與應(yīng)用程序的獨(dú)立性,從而減少應(yīng)用程序的開
27、發(fā)和維護(hù)代價(jià)。(7)數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)具有高共享性和低冗余性,但不能完全避免數(shù)據(jù)冗余;數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應(yīng)保持相同的值。(8)數(shù)據(jù)具有兩方面的獨(dú)立性:一是物理獨(dú)立性,即由于數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與邏輯結(jié)構(gòu)之間由系統(tǒng)提供映象,使得當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改;二是邏輯獨(dú)立性,即由于數(shù)據(jù)的局部邏輯結(jié)構(gòu)(它是總體邏輯結(jié)構(gòu)的一個(gè)子集,由具體的應(yīng)用程序所確定,并且根據(jù)具體的需要可以作一定的修改)與總體邏輯結(jié)構(gòu)之間也由系統(tǒng)提供映象,使得當(dāng)總體邏輯結(jié)構(gòu)改變時(shí),其局部邏輯結(jié)構(gòu)可以不變,從而根據(jù)局部邏輯結(jié)構(gòu)編寫的應(yīng)用程序也可以不必修改。綜上所述,
28、本題的正確答案是D)。(9)外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式;全局?jǐn)?shù)據(jù)視圖的描述稱為概念模式,即數(shù)據(jù)庫中全部數(shù)據(jù)的整體邏輯結(jié)構(gòu)的描述;物理存儲(chǔ)數(shù)據(jù)視圖的描述稱為內(nèi)模式,即數(shù)據(jù)庫在物理存儲(chǔ)方面的描述;存儲(chǔ)模式即為內(nèi)模式。(10)數(shù)據(jù)模型所描述的內(nèi)容有3個(gè)部分,它們是數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)約束。其中,數(shù)據(jù)模型中的數(shù)據(jù)結(jié)構(gòu)主要描述數(shù)據(jù)的類型、內(nèi)容、性質(zhì),以及數(shù)據(jù)庫的聯(lián)系等;數(shù)據(jù)操作主要是描述在相應(yīng)數(shù)據(jù)結(jié)構(gòu)上的操作類型與操作方式。(11)兩個(gè)實(shí)體之間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有下面幾種,即一對(duì)一的聯(lián)系、一對(duì)多(或多對(duì)一)的聯(lián)系和多對(duì)多的聯(lián)系;概念模型便于向各
29、種模型轉(zhuǎn)換。由于概念模型不依賴于具體的數(shù)據(jù)庫管理系統(tǒng),因此,容易向關(guān)系模型、網(wǎng)狀模型和層次模型等各種模型轉(zhuǎn)換。(12)屬性(Attribute):實(shí)體所具有的某一特性稱為屬性。一個(gè)實(shí)體可以由若干個(gè)屬性來刻畫。(13)兩個(gè)實(shí)體間的聯(lián)系可以歸納為3種類型:一對(duì)一聯(lián)系:一對(duì)一的聯(lián)系表現(xiàn)為主表中的每一條記錄只與相關(guān)表中的一條記錄相關(guān)聯(lián)。一對(duì)多聯(lián)系或多對(duì)一聯(lián)系:一對(duì)多的聯(lián)系表現(xiàn)為主表中的每一條記錄與相關(guān)表中的多條記錄相關(guān)聯(lián)。多對(duì)多聯(lián)系:多對(duì)多的聯(lián)系表現(xiàn)為一個(gè)表中的多個(gè)記錄在相關(guān)表中同樣有多個(gè)記錄與其匹配。一個(gè)教師可講授多門課程,一門課程可由多個(gè)教師講授,所以實(shí)體教師和課程間的聯(lián)系是多對(duì)多的聯(lián)系。(14)
30、實(shí)體之間的聯(lián)系類型主要有一對(duì)一、一對(duì)多、多對(duì)多,按題意可知部門與職員之間的聯(lián)系類型是一對(duì)多(1:m), (15)在E-R圖中,用矩形框表示實(shí)體,框內(nèi)標(biāo)明實(shí)體名;用橢圓框表示實(shí)體的屬性,框內(nèi)標(biāo)明屬性名;用菱形框表示實(shí)體間的聯(lián)系,框內(nèi)標(biāo)明聯(lián)系名。(16)層次模型是最早發(fā)展出來的數(shù)據(jù)庫模型。它的基本結(jié)構(gòu)是樹形結(jié)構(gòu),這種結(jié)構(gòu)方式在現(xiàn)實(shí)世界中很普遍,如家族結(jié)構(gòu)、行政組織機(jī)構(gòu),它們自頂向下、層次分明。(17)關(guān)系模型較之格式化模型(網(wǎng)狀模型和層次模型)有以下幾方面的優(yōu)點(diǎn),即數(shù)據(jù)結(jié)構(gòu)比較簡單、具有很高的數(shù)據(jù)獨(dú)立性、可以直接處理多對(duì)多的聯(lián)系,以及有堅(jiān)實(shí)的理論基礎(chǔ)。(18)在關(guān)系模型數(shù)據(jù)庫中,基本結(jié)構(gòu)是二維表,
31、這種二維表稱為關(guān)系。關(guān)系的列稱為屬性,一個(gè)具有N個(gè)屬性的關(guān)系稱為N元關(guān)系。(19)關(guān)系表中,每一行稱為一個(gè)元組,對(duì)應(yīng)表中的一條記錄;每一列稱為一個(gè)屬性,對(duì)應(yīng)表中的一個(gè)字段;在二維表中能唯一標(biāo)識(shí)元組的最小屬性集稱為該表的鍵或碼。(20在關(guān)系數(shù)據(jù)庫中,一個(gè)表就是一個(gè)關(guān)系,關(guān)系數(shù)據(jù)庫管理系統(tǒng)管理的關(guān)系就是多個(gè)二維表。(21)數(shù)據(jù)模型用來表示實(shí)體間的聯(lián)系,但不同的數(shù)據(jù)庫管理系統(tǒng)支持不同的數(shù)據(jù)模型。常用的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和關(guān)系模型,層次模型不能表示多對(duì)多聯(lián)系,網(wǎng)狀模型和關(guān)系模型都能表示任意一種聯(lián)系。(22)軟件開發(fā)模型包括瀑布模型、快速原型法模型和螺旋模型。(23)關(guān)系運(yùn)算中的選擇運(yùn)算是從關(guān)
32、系中找出滿足給定條件的元組的操作;投影運(yùn)算是從關(guān)系中選擇若干個(gè)屬性組成新的關(guān)系的操作;連接運(yùn)算是關(guān)系的橫向結(jié)合。(24)兩個(gè)相同結(jié)構(gòu)關(guān)系的“并”是由屬于這兩個(gè)關(guān)系的元組組成的集合。(25)選擇運(yùn)算是一個(gè)一元運(yùn)算,關(guān)系R通過選擇運(yùn)算(并由該運(yùn)算給出所選擇的邏輯條件)后仍為一個(gè)關(guān)系。這個(gè)關(guān)系是由R中那些滿足邏輯條件的元組所組成。如果關(guān)系的邏輯條件為f,則R滿足f的選擇運(yùn)算可以寫成:f(R)。(26)關(guān)系運(yùn)算分為: 傳統(tǒng)的關(guān)系運(yùn)算(集合運(yùn)算)進(jìn)行并、差、交集合運(yùn)算的兩個(gè)關(guān)系必須具有相同的關(guān)系模式,即相同結(jié)構(gòu)。在Access中沒有提供傳統(tǒng)的集合運(yùn)算,可以通過其他操作或編寫程序來實(shí)現(xiàn)。 專門的關(guān)系運(yùn)算選
33、擇:從關(guān)系中找出滿足給定條件的元組的操作稱為選擇。投影:從關(guān)系模式中指定若干個(gè)屬性組成新的關(guān)系稱為投影。連接:連接是關(guān)系的橫向結(jié)合。連接運(yùn)算將兩個(gè)關(guān)系模式拼接成一個(gè)更寬的關(guān)系模式,生成的新關(guān)系中包含滿足連接條件的元組。(27)本題考查集合運(yùn)算。在關(guān)系數(shù)據(jù)庫理論中,兩個(gè)關(guān)系的并是由屬于這兩個(gè)關(guān)系的元組組成的集合,。兩個(gè)關(guān)系的交是由既屬于一個(gè)關(guān)系又屬于另一個(gè)關(guān)系的元素組成的集合,兩個(gè)集合的差運(yùn)算是由從一個(gè)集合中去掉另一個(gè)集合中有的元素組成。兩個(gè)集合的交運(yùn)算是由既屬于前一個(gè)集合又屬于后一個(gè)集合的元素組成。(28)本題考查數(shù)據(jù)庫的關(guān)系運(yùn)算。兩個(gè)關(guān)系的并運(yùn)算是指將第一個(gè)關(guān)系的元組加到第二個(gè)關(guān)系中,生成新
34、的關(guān)系。因此,并運(yùn)算不改變關(guān)系表中的屬性個(gè)數(shù),也不能減少元組個(gè)數(shù)。兩個(gè)關(guān)系的交運(yùn)算是包含同時(shí)出現(xiàn)在第一個(gè)和第二個(gè)關(guān)系中的元組的新關(guān)系。因此,交運(yùn)算不改變關(guān)系表中的屬性個(gè)數(shù),但能減少元組個(gè)數(shù)。投影是一元關(guān)系操作。投影操作選取關(guān)系的某些屬性,這個(gè)操作是對(duì)一個(gè)關(guān)系進(jìn)行垂直分割,消去某些屬性,并重新安排屬性的順序,再刪除重復(fù)的元組。因此,投影運(yùn)算既可以減少關(guān)系表中的屬性個(gè)數(shù),也可以減少元組個(gè)數(shù)。兩個(gè)關(guān)系的笛卡兒積會(huì)增加屬性個(gè)數(shù)。(29)關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算,包括選擇運(yùn)算、投影運(yùn)算、連接運(yùn)算。(30)R-S表示屬于R但不屬于S,R-(R-S)表示既屬于R又屬于S,即相當(dāng)于RS。(31)
35、關(guān)系R與S經(jīng)交運(yùn)算后所得到的關(guān)系T是由那些既在R內(nèi)又在S內(nèi)的有序元組所組成。(32)對(duì)于兩個(gè)關(guān)系的合并操作可以用笛卡兒積表示。設(shè)有n元關(guān)系R和m元關(guān)系S,它們分別有p和q個(gè)元組,則R與S的笛卡兒積記為R×S,它是一個(gè)m+n元關(guān)系,元組個(gè)數(shù)是p×q,由題意可得,關(guān)系T是由關(guān)系R與關(guān)系S進(jìn)行笛卡兒積運(yùn)算得到的。(33)數(shù)據(jù)庫的生命周期可以分為兩個(gè)階段:一是數(shù)據(jù)庫設(shè)計(jì)階段;二是數(shù)據(jù)庫實(shí)現(xiàn)階段。數(shù)據(jù)庫的設(shè)計(jì)階段又分為4個(gè)子階段:即需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)。(34)本題考查數(shù)據(jù)庫系統(tǒng)的基本概念和知識(shí)。數(shù)據(jù)的邏輯結(jié)構(gòu),是數(shù)據(jù)間關(guān)系的描述,它只抽象地反映數(shù)據(jù)元素之間的邏輯關(guān)
36、系,而不管其在計(jì)算機(jī)中的存儲(chǔ)方式。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),又叫物理結(jié)構(gòu),是邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)器里的實(shí)現(xiàn)。這兩者之間沒有必然的聯(lián)系。數(shù)據(jù)庫可以看成是長期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。因此,數(shù)據(jù)庫具有為各種用戶所共享的特點(diǎn)。不同的用戶可以使用同一個(gè)數(shù)據(jù)庫,可以取出它們所需要的子集,而且容許子集任意重疊。數(shù)據(jù)庫的根本目標(biāo)是要解決數(shù)據(jù)的共享問題。(35)E-R圖向關(guān)系模型的轉(zhuǎn)換原則: 一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模型,實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的鍵就是關(guān)系的鍵; 一個(gè)聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式,與該聯(lián)系相連的每個(gè)實(shí)體型的鍵以及聯(lián)系的屬性都轉(zhuǎn)換為關(guān)系的屬性。這個(gè)關(guān)系的鍵分為以下三種不同的情
37、況:若聯(lián)系為1:1,則相連的每個(gè)實(shí)體型的鍵均是該關(guān)系模式的候選鍵。若聯(lián)系為1:n,則聯(lián)系對(duì)應(yīng)的關(guān)系模式的鍵取n端實(shí)體型的鍵。若聯(lián)系為m:n,則聯(lián)系對(duì)應(yīng)的關(guān)系模式的鍵為參加聯(lián)系的諸實(shí)體型的鍵的組合。程序設(shè)計(jì)基本概念(1)本題考核的知識(shí)點(diǎn)是C程序的基本概念。C語言一種高級(jí)語言,C語言源程序經(jīng)過C語言編譯程序編譯之后,生成一個(gè)后綴為.obj的二進(jìn)制文件(稱為目標(biāo)文件),最后還要由稱為“連接程序”(Link)的軟件,把此.obj文件與C語言提供的各種庫函數(shù)連接在一起,生成一個(gè)后綴.exe的可執(zhí)行文件。顯然C語言不能立即執(zhí)行。 (2)本題考查的是C程序的基本概念。C語言是一種高級(jí)語言,C語言源程序經(jīng)過C
38、語言編譯程序編譯之后,生成一個(gè)后綴為.obj的二進(jìn)制文件(稱為目標(biāo)程序),最后還要由稱為“連接程序”(Link)的軟件,把此.obj文件與C語言提供的各種庫函數(shù)連接在一起,生成一個(gè)后綴.exe的可執(zhí)行程序。顯然C語言源程序不能立即執(zhí)行, (3)一個(gè)C 語言的源程序(后綴名為. c)在經(jīng)過編譯器編譯后,先生成一個(gè)匯編語言程序,然后由編譯程序再將匯編語言程序翻譯成機(jī)器指令程序,即目標(biāo)程序(后綴為.obj),目標(biāo)程序不可以直接運(yùn)行,它要和庫函數(shù)或其他目標(biāo)程序連接成可執(zhí)行文件(后綴名為. exe)后方可運(yùn)行。(4)本題考查的是算法的特性。一個(gè)算法應(yīng)當(dāng)具有以下5個(gè)特性:有窮性;確定性;可行性;有零個(gè)或多
39、個(gè)輸入;有一個(gè)或多個(gè)輸出。簡潔性不屬于這5個(gè)特性, (5)本題考核的知識(shí)點(diǎn)是算法的性質(zhì)。算法是為解決某個(gè)特定問題而采取的確定的且有限的步驟,一個(gè)算法應(yīng)當(dāng)具有以下5個(gè)基本特性: 有窮性,就是指一個(gè)算法應(yīng)當(dāng)包含有限個(gè)操作步驟。 確定性,就是說算法中每一條指令必須有確切的含義,不能有二義性,對(duì)于相同的輸入必能得出相同的執(zhí)行結(jié)果。 有零個(gè)或多個(gè)輸入。 可行性,就是說算法中指定的操作,都可以通過已經(jīng)實(shí)現(xiàn)的基本運(yùn)算執(zhí)行有限次實(shí)現(xiàn),有一個(gè)或多個(gè)輸出。(6)一個(gè)算法應(yīng)當(dāng)具有5個(gè)特性,即有窮性、確定性、可行性、有零個(gè)或多個(gè)輸入以及有一個(gè)或多個(gè)輸出。算法的確定性是指:算法中每一條指令必須有確切的含義,讀者理解時(shí)不
40、會(huì)產(chǎn)生二義性。并且在任何條件下,算法只有唯一的一條執(zhí)行路徑,即對(duì)于相同的輸入只能得出相同的執(zhí)行結(jié)果。(7算法具有的5個(gè)特性是:有窮性;確定性;可行性;有0個(gè)或多個(gè)輸入;有一個(gè)或多個(gè)輸出。所以說,用C 程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出。(8)本題考核的知識(shí)點(diǎn)是C程序的3種基本結(jié)構(gòu)。C程序由3種基本的結(jié)構(gòu)組成,分別為順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),這3種結(jié)構(gòu)可以組成任何復(fù)雜的C程序,即可以完成任何復(fù)雜的任務(wù),故選項(xiàng)B)、選項(xiàng)C)和選項(xiàng)D)都不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)A)符合題意。C程序設(shè)計(jì)的初步知識(shí)(1)在C 語言所有的運(yùn)算符中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低。C 語言中區(qū)分大小寫,所以APH 和
41、aph 是兩個(gè)不同的變量。賦值表達(dá)式a=b表示將b的值賦給a,而b 本身的值保持不變,通過鍵盤可以向計(jì)算機(jī)輸入允許的任何類型的數(shù)據(jù)。選項(xiàng)D)中當(dāng)從鍵盤輸入數(shù)據(jù)時(shí),對(duì)于整型變量可以輸入整型數(shù)值和字符,對(duì)于實(shí)型變量可以輸入實(shí)型數(shù)值和整型數(shù)值等。(2)C)【解析】本題主要考查的知識(shí)點(diǎn)是運(yùn)算符的優(yōu)先級(jí)和結(jié)合性。解本題的關(guān)鍵在于表達(dá)式z = x+、y+、+y的計(jì)算,其中有三種運(yùn)算符“=”、“,”和“+”,它們的優(yōu)先級(jí)從高到低依次是“+”、“=”和“,”,所以原表達(dá)式就相當(dāng)于(z = (x+), (y+), (+y)。自增運(yùn)算符“+”是單目運(yùn)算符,即它只對(duì)一個(gè)運(yùn)算分量起作用,根據(jù)其在運(yùn)算分量的前面或后面分
42、為前綴和后綴兩種形式。兩種形式的作用效果是一樣的,都是使運(yùn)算分量的值加1,但是它們的表達(dá)式的值不一樣,前綴形式表達(dá)式的值為運(yùn)算分量加1之后的值,后綴形式表達(dá)式的值為運(yùn)算分量加1之前的值。(3)C)【解析】求余運(yùn)算符“%”兩邊的運(yùn)算對(duì)象必須是整型,而選項(xiàng)B)和D)中“%”兩邊的運(yùn)算對(duì)象有浮點(diǎn)數(shù)據(jù),所以選項(xiàng)B)和D)是錯(cuò)誤的表達(dá)式。在選項(xiàng)A)中賦值表達(dá)式左側(cè)要為“左值”,也是錯(cuò)誤的。選項(xiàng)C)是一個(gè)逗號(hào)表達(dá)式,所以正確答案為C)。(4)D)【解析】考查printf 函數(shù)的相關(guān)知識(shí)。輸出格式控制符%c 表示將變量以字符的形式輸出;輸出格式控制符%d 表示將變量以帶符號(hào)的十進(jìn)制整型數(shù)輸出,所以第一個(gè)輸出
43、語句輸出的結(jié)果為a,97;第二個(gè)輸出語句輸出的結(jié)果為k=12。所以選項(xiàng)D)為正確答案。(5)D)【解析】本題主要考查的是標(biāo)準(zhǔn)輸出函數(shù)printf。printf函數(shù)在進(jìn)行參數(shù)匹配時(shí),并不會(huì)檢查參數(shù)類型是否一一匹配,也不會(huì)檢查參數(shù)個(gè)數(shù)是否一致,而是從它認(rèn)為應(yīng)該是第1個(gè)參數(shù)地址的內(nèi)存位置開始,依次將內(nèi)存中的內(nèi)容逐個(gè)匹配給格式化字符串內(nèi)所給定的各個(gè)類型。因此,前一個(gè)printf調(diào)用,兩個(gè)ch分別匹配給%c和%d,而參數(shù)k多余,被拋棄。所以會(huì)輸出“a,97,”(字符a的ASCII值為97)。后一個(gè)printf很正常,這里就不解釋了。故應(yīng)該選擇D)。(6)B)【解析】本題主要考查的知識(shí)點(diǎn)是:整型常量。整型
44、常量有十進(jìn)制、八進(jìn)制和十六進(jìn)制3種表示:十進(jìn)制整數(shù)以正號(hào)(+)或負(fù)號(hào)(-)開頭,由首位非0的一串十進(jìn)制數(shù)字組成,正負(fù)號(hào)也可省略,表示正整數(shù);八進(jìn)制整數(shù)以數(shù)字0開頭,后面接若干個(gè)八進(jìn)制數(shù)字(07);十六進(jìn)制整數(shù)以數(shù)字0和字母x(大、小寫均可)開頭,后面接若干個(gè)十六進(jìn)制數(shù)字(數(shù)字09和字母AF,大、小寫均可)。故本題是以無符號(hào)整數(shù)形式輸出一個(gè)十六進(jìn)制整數(shù)FFFF,將其轉(zhuǎn)換為十進(jìn)制就是65535,故本題應(yīng)該選擇B)。(7)C)【解析】本題考核的知識(shí)點(diǎn)是輸出函數(shù)printf()的應(yīng)用。本題中,printf("%2d,%2dn",x,y)表示輸出形式是十進(jìn)制整數(shù),域?qū)捠?,而在C語言
45、中規(guī)定:當(dāng)域?qū)捫∮趯?shí)際寬度時(shí)域?qū)挷黄鹱饔?,按?shí)際寬度輸出,因此最后的輸出值為102和10,所以選項(xiàng)C)符合題意。(8)B)【解析】本題考核的知識(shí)點(diǎn)是printf()函數(shù)的簡單應(yīng)用。程序中的printf()函數(shù)的輸出格式部分只說明了一個(gè)%d,而輸出成員列表卻有a和b兩個(gè)成員,在這里將只輸出第一個(gè)成員a值為666,所以,4個(gè)選項(xiàng)中選項(xiàng)B)符合題意。(9)C)【解析】本題考查的知識(shí)點(diǎn)是:格式化輸出的應(yīng)用。printf函數(shù)的調(diào)用形式:printf(格式控制,輸出項(xiàng)1,輸出項(xiàng)2,),該題的輸出項(xiàng)為一個(gè)逗號(hào)表達(dá)式,該表達(dá)式的值為b的值,因此輸出結(jié)果為888,故本題選C)。(10)C)【解析】本題考查的知識(shí)
46、點(diǎn)是:標(biāo)準(zhǔn)輸入函數(shù)scanf()。scanf()函數(shù)要求,除了第1個(gè)參數(shù)為格式化字符串以外,其余參數(shù)均為相應(yīng)變量的地址值。本題中,只有p是地址值,故應(yīng)該選擇C)。(11)B)【解析】考查格式輸入函數(shù)scanf 的使用。scanf 函數(shù)的一般格式是:scanf( 格式控制,地址表列),該格式中,地址表列中應(yīng)是變量地址,而不是變量名。(12)A)【解析】本題的考查點(diǎn)是格式輸入函數(shù)。格式輸入函數(shù)的一般形式:scanf( 格式控制,地址表列) 。需要注意的是:如果在“格式控制”字符串中除了格式說明以外還有其他字符,則在輸入數(shù)據(jù)時(shí)應(yīng)輸入與這些字符相同的字符。所以輸入的兩個(gè)數(shù)字之間的逗號(hào)是不可少的。故本題
47、答案為A)。(13)B)【解析】本題考查的是輸入函數(shù)scanf()基本用法。使用該語句時(shí),要求除格式控制符以外的字符都要原樣輸入,“,”為非格式符,要原樣輸入。選項(xiàng)B)中沒有輸入非格式符“,”,所以是不正確的。(14)B)【解析】本題考查了格式輸入函數(shù)scanf()的運(yùn)用。scanf()函數(shù)的一般形式為: scanf(格式控制,地址表列)。其中,“格式控制”是用雙引號(hào)括起來的字符串,也稱“轉(zhuǎn)換控制字符串”,它包括兩種信息: 格式說明,由“%”和格式字符組成; 普通字符,即需要原樣輸入的字符?!暗刂繁砹小笔切枰邮蛰斎霐?shù)據(jù)的一系列變量的地址。本題中的“格式控制”是“%2d%f”,其中%2d的意思
48、是要輸入一個(gè)整數(shù),但該整數(shù)最寬只占2個(gè)字符,而%f是要輸入一個(gè)浮點(diǎn)數(shù)。而題目要求輸入的是876 543.0,所以scanf()函數(shù)將87賦給a,6賦給b。(15)B)【解析】本題考查通過scanf 函數(shù)輸入數(shù)據(jù)時(shí)的格式控制問題。變量j 的格式控制為“%2d”,即只接收輸入數(shù)據(jù)的前兩位,從第三位開始直到空格之間的輸入都會(huì)被保存到變量y 中,因?yàn)閥 為浮點(diǎn)型數(shù)據(jù),所以輸出結(jié)果為選項(xiàng)B)。(16)D)【解析】若在scanf 的格式化控制串中插入了其他字符,則在輸入時(shí)要求按一一對(duì)應(yīng)的位置原樣輸入這些字符。格式化輸入函數(shù)必須嚴(yán)格按照雙引號(hào)里面的格式進(jìn)行輸入。在格式化輸出函數(shù)中,格式控制串中除了合法的格式
49、說明外,可以包含任意的合法字符。(17)D)【解析】選項(xiàng)D)為兩條語句??键c(diǎn)7答案:選擇結(jié)構(gòu)(1)D)【解析】因?yàn)閤 的值為大于1 的奇數(shù),所以x 除以2 的余數(shù)等于1,因此,選項(xiàng)A)、C)中表達(dá)式的結(jié)果為真,不為0;對(duì)于選項(xiàng)B)來說,x 除以2 的商不會(huì)等于0;選項(xiàng)D)中表達(dá)式的結(jié)果為假,即等于0。(2)D)【解析】本題考查的是判斷奇偶數(shù)。選項(xiàng)A)、B)和C)中都是當(dāng)k是奇數(shù)時(shí)表達(dá)式的值為1,否則為0。而選項(xiàng)D)中因?yàn)檫壿嫹?運(yùn)算符的優(yōu)先級(jí)最高,所以當(dāng)k為0的時(shí)候!k的值為1,整個(gè)表達(dá)式的值也就是1,而當(dāng)k為非0的時(shí)候!k的值為0,整個(gè)表達(dá)式的值為0。所以本題應(yīng)該選擇D)。(3)B)【解析】
50、本題主要考查的是C語言中的整除、求余以及邏輯值的概念。在C語言中,/號(hào)的兩邊如果都是整數(shù)的話,返回的結(jié)果也是整數(shù),如果除不凈則舍去小數(shù)部分。%是求余運(yùn)算,它的運(yùn)算對(duì)象只能是整型,運(yùn)算結(jié)果是兩數(shù)相除后所得的余數(shù),當(dāng)運(yùn)算量為負(fù)數(shù)時(shí),結(jié)果的符號(hào)與被除數(shù)相同。因此,執(zhí)行語句“a=d/10%9;”后,a=25/10%9=2%9=2。C語言中沒有專門的邏輯值,而是用整型值來代替。當(dāng)整型值作邏輯值使用時(shí),非零即表示“真”,零表示“假”,而邏輯值當(dāng)整型值使用時(shí),“真”等于1,“假”等于0。因此,執(zhí)行語句“b=a&&(-1);”后輸出結(jié)果為2,1。(4)C)【解析】本題考查的知識(shí)點(diǎn)是邏輯表達(dá)式。
51、C語言編譯系統(tǒng)在給出邏輯運(yùn)算結(jié)果時(shí),以數(shù)值1代表“真”,以0代表“假”,但在判斷一個(gè)量是否為“真”時(shí),以0代表“假”,以非0代表“真”。即將一個(gè)非零的數(shù)值認(rèn)作為“真”。要讓本題中的條件表達(dá)式(x-y)的結(jié)果為真,也就是要使(x-y)的值非零,即大于0或者小于0,故等價(jià)的表達(dá)式應(yīng)該是選項(xiàng)C)。(5)D)【解析】本題考查的是邏輯運(yùn)算符。C語言中,邏輯運(yùn)算符的兩個(gè)運(yùn)算分量可以是任意合法的表達(dá)式。故本題應(yīng)該選擇D)。(6)B)【解析】本題主要考查的是邏輯表達(dá)式。選項(xiàng)A)中的表達(dá)式的意思是kk大于等于'A'且小于等于' Z' ,因此只有當(dāng)kk是一個(gè)大寫字母的時(shí)候,該表達(dá)式
52、才能被滿足,所以選項(xiàng)A)能夠判斷出kk中的值為大寫字母。我們知道(kk+32)>=' a' 等價(jià)于kk>='a'-32,又因?yàn)橄嗤拇笮懽帜傅腁SCII值,小寫字母的要比大寫字母大32。所以'a'-32等于'A'。故選項(xiàng)C)和選項(xiàng)A)是等價(jià)的。isalpha()函數(shù)的功能是判斷一個(gè)參數(shù)是否為字母。又因?yàn)樾懽帜傅腁SCII值范圍是97122,大寫字母的ASCII值范圍是6590,當(dāng)判斷是字母且值小于91時(shí)一定是大寫字母,所以選項(xiàng)D)能夠判斷出kk中的值為大寫字母。(7)C)【解析】本題考查的是邏輯表達(dá)式。在C語言中,
53、整型值可以轉(zhuǎn)換為邏輯值,規(guī)則是當(dāng)整型值為0時(shí),它表示邏輯假;當(dāng)整型值不為0時(shí),它表示邏輯真。所以題目中的while(E)循環(huán)是當(dāng)E等于0時(shí),循環(huán)結(jié)束,E不等于0時(shí),繼續(xù)循環(huán)。選項(xiàng)C)中,當(dāng)E等于0時(shí),表達(dá)式“E=0”為真繼續(xù)循環(huán),而E不等于0時(shí),表達(dá)式為假則循環(huán)結(jié)束,這與題目中的條件不等價(jià),故應(yīng)該選擇C)。(8)B)【解析】本題主要考查的是邏輯表達(dá)式。選項(xiàng)A)中表達(dá)式的意思是:當(dāng)c等于2或4或6時(shí),表達(dá)式的值為真,否則為假。所以不滿足題意。選項(xiàng)C)中表達(dá)式的意思是:當(dāng)c大于等于2且小于等于6,并且c不是奇數(shù)時(shí),表達(dá)式的值為真,否則為假。這樣,滿足該表達(dá)式的c,只能取值為2、4、6了,所以也不滿
54、足題意。選項(xiàng)D)中后面一個(gè)子表達(dá)式(c%2!=1)和選項(xiàng)C)中的!(c%2)是等價(jià)的。都是判斷c不是奇數(shù)。因此也不滿足題意。故本題正確答案為B)。(9)B)【解析】本題中a 的值為6,b 的值為8,最后s 的值為8,s*=s 等價(jià)于s=s*s。(10)A)【解析】本題考查的是if語句。本題是一道陷阱題,語句if (a>b) a=b, b=c; c=a;看上去好像a=b,b=c; c=a;都是if的子句,其實(shí)只有第1個(gè)分號(hào)及其之前的語句a=b, b=c;是if的子句,c=a;是緊接著的語句,跟if的條件無關(guān),始終會(huì)被運(yùn)行的。題目中,a=10,b=50,所以a>b條件為假,那么a=b,
55、 b=c;不會(huì)被執(zhí)行,而c=a;會(huì)被執(zhí)行。所以最終輸出結(jié)果是a=10 b=50 c=10,應(yīng)該選擇A)。(11)B)【解析】本題是一個(gè)陷阱題,以書寫格式來考查考生對(duì)if語句的理解。if語句只對(duì)緊跟其后的一條語句或語句塊產(chǎn)生作用。因此,題目中兩條if語句只有a=b;和c=b;是if的子句。第1條if語句中a>b為假,所以跳過語句a=b;,執(zhí)行c=a;后,a=3、b=5、c=3。第2條if語句的判斷條件c!=a為假,所以跳過語句c=b;。故最終輸出的結(jié)果是:3,5,3,應(yīng)該選擇B)。(12)C)【解析】本題考查簡單的ifelse 語句。先執(zhí)行條件if(a<b),顯然不成立,再執(zhí)行els
56、e 語句。(13)C)【解析】考查if 語句的使用。整個(gè)語句都是以a<b 為假設(shè)的,在a<b 的情況下,如果c=d,則y=0;否則y=1。所以答案為選項(xiàng)C)。(14)D)【解析】本題考核的知識(shí)點(diǎn)是if語句的用法。選項(xiàng)A)、選項(xiàng)B)和選項(xiàng)C)都是在a的值為0的時(shí)候輸出y,a不為0的時(shí)候輸出x,而選項(xiàng)D)是在a為0的時(shí)候輸出x,a不為0的時(shí)候輸出y。所以,4個(gè)選項(xiàng)中選項(xiàng)D)符合題意。(15)C)【解析】本題考查的知識(shí)點(diǎn)是:if與else的配對(duì)原則。else語句總是與前面最近的不帶else的if相結(jié)合,故本題選C)。(16)D)【解析】ifelse 語句的執(zhí)行過程如下,首先計(jì)算if 后面
57、一對(duì)圓括號(hào)內(nèi)表達(dá)式的值,若表達(dá)式的值為非0,執(zhí)行if 子句,然后跳過else 子句,去執(zhí)行if 語句后的下一條語句;若表達(dá)式的值為0,跳過if 子句,去執(zhí)行else 子句,接著去執(zhí)行if 語句后的下一條語句。C 語言的語法規(guī)定,else子句總是與前面最近的不帶else 的if 匹配,與書寫格式無關(guān),本題目的后一個(gè)ifelse 相當(dāng)于嵌套在第一個(gè)if 子句里,相當(dāng)于x<y&&y<0 時(shí),z=0;當(dāng)x<y&&y>=0 時(shí),z=z+1。(17)D)【解析】本題考查的是ifelse語句。C語言規(guī)定else總是與最近的if搭配,因此程序中else與
58、第二個(gè)if搭配。程序首先判斷(x>y),為假,所以跳過后面的整個(gè)ifelse語句。執(zhí)行到輸出語句時(shí),x的值仍為1,x+返回x增1之前的結(jié)果1,故應(yīng)該選擇D)。(18)C)【解析】本題考查了if語句的嵌套。在嵌套的if語句中,else總是與它上面最近的且不帶else的if配對(duì)。因此本題的正確答案為選項(xiàng)C)。(19)C)【解析】該題目測驗(yàn)考生對(duì)ifelse if 結(jié)構(gòu)的理解,比較簡單。x 的值滿足x<10.0 的關(guān)系,所以程序?qū)?zhí)行y=1.0/ x;語句,y 的值應(yīng)該等于0.5。最后,用printf 函數(shù)輸出時(shí),%f 的輸出格式為小數(shù)點(diǎn)后保留6 位。(20)A)【解析】本題考查的是條件表達(dá)式的嵌套。因?yàn)闂l件運(yùn)算符的結(jié)合方向?yàn)椤白杂抑磷蟆?,所以表達(dá)式a<b?a:c<d?c:d相當(dāng)于a<b?a:(c<d?c:d)。由于a=1,b=4,所以a<b的結(jié)果為“真”,所以整個(gè)表達(dá)式的值為a的值1。所以,4個(gè)選項(xiàng)中選項(xiàng)A)符合題意。(21)B)【解析】本題考查的知識(shí)點(diǎn)是條件表達(dá)式。條件運(yùn)算符?:是C語言中唯一的三目
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 洗滌劑的課程設(shè)計(jì)
- 家居建材行業(yè)銷售員培訓(xùn)心得
- 班級(jí)心理健康活動(dòng)的設(shè)計(jì)計(jì)劃
- 【八年級(jí)下冊(cè)歷史】第1課 中華人民共和國成立 同步練習(xí)
- 農(nóng)業(yè)行業(yè)話務(wù)員工作心得
- 化工行業(yè)銷售工作總結(jié)
- 2024年秋季開學(xué)第一課教案
- 2024年萍鄉(xiāng)衛(wèi)生職業(yè)學(xué)院單招職業(yè)技能測試題庫標(biāo)準(zhǔn)卷
- 2024年牛郎織女教案 (一)
- 2025屆武威市高三語文(上)期末聯(lián)考試卷及答案解析
- 廣東海洋大學(xué)大數(shù)據(jù)庫課程設(shè)計(jì)
- 商業(yè)發(fā)票INVOICE模板
- (完整版)食堂管理制度及流程
- 超聲波焊接作業(yè)指導(dǎo)書(共8頁)
- 某醫(yī)院后備人才梯隊(duì)建設(shè)方案
- 二年級(jí)上冊(cè)英語教案Unit6 Lesson22︱北京課改版
- 桂枝加龍骨牡蠣湯_金匱要略卷上_方劑加減變化匯總
- 電機(jī)與電氣控制技術(shù)PPT課件
- 廢棄鉆井泥漿和壓裂返排液無害化處理研究報(bào)告
- 論文-基于單片機(jī)的搶答器.doc
- 《AFM簡介實(shí)驗(yàn)》ppt課件
評(píng)論
0/150
提交評(píng)論