二級C語言知識總結(jié)及錯(cuò)題筆記(適合查缺補(bǔ)漏)_第1頁
二級C語言知識總結(jié)及錯(cuò)題筆記(適合查缺補(bǔ)漏)_第2頁
二級C語言知識總結(jié)及錯(cuò)題筆記(適合查缺補(bǔ)漏)_第3頁
二級C語言知識總結(jié)及錯(cuò)題筆記(適合查缺補(bǔ)漏)_第4頁
二級C語言知識總結(jié)及錯(cuò)題筆記(適合查缺補(bǔ)漏)_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、公共基礎(chǔ)部分 HYPERLINK l _top top(1)鏈表不具有的特點(diǎn)是相關(guān)知識: HYPERLINK l randomaccess 隨機(jī)訪問與順序訪問的區(qū)別A)不必事先估計(jì)存儲空間B)可隨機(jī)訪問任一元素C)插入刪除不需要移動元素D)所需空間與線性表長度成正比解析: 鏈表采用的是鏈?zhǔn)酱鎯Y(jié)構(gòu),它克服了順序存儲結(jié)構(gòu)的缺點(diǎn):它的結(jié)點(diǎn)空間可以動態(tài)申請和釋放;它的數(shù)據(jù)元素的邏輯次序靠結(jié)點(diǎn)的指針來指示,不需要移動數(shù)據(jù)元素。但是鏈?zhǔn)酱鎯Y(jié)構(gòu)也有不足之處: 每個(gè)結(jié)點(diǎn)中的指針域需額外占用存儲空間; 鏈?zhǔn)酱鎯Y(jié)構(gòu)是一種非隨機(jī)存儲結(jié)構(gòu)。C(2)已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它

2、的前序遍歷序列是EA)acbedB)decabBDC)deabcAD)cedba解析: 依據(jù)后序遍歷序列可確定根結(jié)點(diǎn)為c;再依據(jù)中序遍歷序列可知其左子樹由deba構(gòu)成,右子樹為空;又由左子樹的后序遍歷序列可知其根結(jié)點(diǎn)為e,由中序遍歷序列可知其左子樹為d,右子樹由ba構(gòu)成,如上圖所示。求得該二叉樹的前序遍歷序列為選項(xiàng)D)。 (3)下列有關(guān)數(shù)據(jù)庫的描述,正確的是A)數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過程B)數(shù)據(jù)的物理獨(dú)立性是指當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時(shí),數(shù)據(jù)的存儲結(jié)構(gòu)不變C)關(guān)系中的每一列稱為 HYPERLINK l tuple 元組,一個(gè)元組就是一個(gè)字段D)如果一個(gè)關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,

3、但它是另一個(gè)關(guān)系的關(guān)鍵字,則稱其為本關(guān)系的外關(guān)鍵字解析: 數(shù)據(jù)處理是指將數(shù)據(jù)轉(zhuǎn)換成信息的過程,故選項(xiàng)A)敘述錯(cuò)誤;數(shù)據(jù)的物理獨(dú)立性是指數(shù)據(jù)的物理結(jié)構(gòu)的改變,不會影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),故選項(xiàng)B)敘述錯(cuò)誤;關(guān)系中的行稱為元組,對應(yīng)存儲文件中的記錄,關(guān)系中的列稱為屬性,對應(yīng)存儲文件中的字段,故選項(xiàng)C)敘述錯(cuò)誤。(4)軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計(jì),其中軟件的過程設(shè)計(jì)是指A)模塊間的關(guān)系B)系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述C)軟件層次結(jié)構(gòu)D)軟件開發(fā)過程解析: 軟件設(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)建的模

4、型轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)的定義;接口設(shè)計(jì)是描述軟件內(nèi)部、軟件和操作系統(tǒng)之間及軟件與人之間如何通信;過程設(shè)計(jì)則是把系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程性描述。(5)檢查軟件產(chǎn)品是否符合需求定義的過程稱為A)確認(rèn)測試B)集成測試C)驗(yàn)證測試D)驗(yàn)收測試解析: 確認(rèn)測試的任務(wù)是驗(yàn)證軟件的功能和性能,以及其他特性是否滿足需求規(guī)格說明定的各種需求;集成測試的主要目的是發(fā)現(xiàn)與接口有關(guān)的錯(cuò)誤。(6)數(shù)據(jù)流圖用于抽象描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法圖符的是A)控制流B)加工C)數(shù)據(jù)存儲D)源和潭解析: 數(shù)據(jù)流圖包括4個(gè)方面,即加工(轉(zhuǎn)換)(輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出

5、)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名)、存儲文件(數(shù)據(jù)源)(表示處理過程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實(shí)體)。不包括選項(xiàng)中的控制流。邏輯設(shè)計(jì)階段(7)在數(shù)據(jù)庫設(shè)計(jì)中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于邏輯模式規(guī)范化及調(diào)整E-R圖向關(guān)系模式轉(zhuǎn)換A)需求分析階段B)邏輯設(shè)計(jì)階段實(shí)現(xiàn)規(guī)范化和RDBMS,以及關(guān)系視圖設(shè)計(jì)C)概念設(shè)計(jì)階段D)物理設(shè)計(jì)階段解析: E-R模型即實(shí)體-聯(lián)系模型,是將現(xiàn)實(shí)世界的要求轉(zhuǎn)化成實(shí)體、聯(lián)系、屬性等幾個(gè)基本概念,以及它們之間的兩種聯(lián)接關(guān)系。數(shù)據(jù)庫邏輯設(shè)計(jì)階段包括以下幾個(gè)過程:從E-R圖向關(guān)系模式轉(zhuǎn)換,邏輯模式

6、規(guī)范化及調(diào)整、實(shí)現(xiàn)規(guī)范化和RDBMS,以及關(guān)系視圖設(shè)計(jì)。(8)一個(gè)類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的可重用性 。解析: 本題考查了繼承的優(yōu)點(diǎn):相似的對象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。(9)軟件工程研究的內(nèi)容主要包括: 軟件開發(fā)技術(shù)和軟件工程管理。解析: 基于軟件工程的目標(biāo),軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括:軟件開發(fā)技術(shù)和軟件工程管理。軟件開發(fā)技術(shù)包括:軟件開發(fā)方法學(xué)、開發(fā)過程、開發(fā)工具和軟件工程環(huán)境,其主體內(nèi)容是軟件開發(fā)方法學(xué)。軟件工程管理包括:軟件管理學(xué)、軟件工程經(jīng)濟(jì)學(xué),以及軟件心理學(xué)等內(nèi)容。(10)關(guān)

7、系操作的特點(diǎn)是集合操作。解析: 在關(guān)系操作中,所有操作對象與操作結(jié)果都是關(guān)系。而關(guān)系定義為元數(shù)相同的元組的集合。因此,關(guān)系操作的特點(diǎn)是集合操作。(11)在樹形結(jié)構(gòu)中,樹根結(jié)點(diǎn)沒有 前件 。解析: 在樹形結(jié)構(gòu)中,每一個(gè)結(jié)點(diǎn)只有一個(gè)前件,稱為父結(jié)點(diǎn),沒有前件的結(jié)點(diǎn)只有一個(gè),稱為樹的根結(jié)點(diǎn);每一個(gè)結(jié)點(diǎn)可以有多個(gè)后件,它們都稱為該結(jié)點(diǎn)的子結(jié)點(diǎn)。沒有后件的結(jié)點(diǎn)稱為葉子結(jié)點(diǎn)。(12)Jackson結(jié)構(gòu)化程序設(shè)計(jì)方法是英國的M.Jackson提出的,它是一種面向數(shù)據(jù)結(jié)構(gòu) 的設(shè)計(jì)方法。解析: 結(jié)構(gòu)化分析方法主要包括:面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(SA-Structured analysis),面向數(shù)據(jù)結(jié)構(gòu)的Ja

8、ckson方法(JSD-Jackson system development method)和面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法(DSSD-Data structured system development method)。(13)軟件設(shè)計(jì)模塊化的目的是 降低復(fù)雜性。解析: 模塊化是指解決一個(gè)復(fù)雜問題時(shí)自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程,由此分解來降低復(fù)雜性。(14)數(shù)據(jù)模型按不同應(yīng)用層次分成3種類型,它們是概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。解析:數(shù)據(jù)模型按不同的應(yīng)用層次分成3種類型,它們是概念數(shù)據(jù)模型(conceptual data model)、邏輯數(shù)據(jù)模型(logic

9、 data model)、物理數(shù)據(jù)模型(physical data model)。(15)以下不屬于對象的基本特點(diǎn)的是A)分類性B)多態(tài)性C)繼承性D)封裝性解析: 對象有如下一些基本特點(diǎn),即標(biāo)識惟一性、分類性、多態(tài)性、封裝性和模塊獨(dú)立性。而類具有繼承性。(16)下面不屬于軟件設(shè)計(jì)原則的是A)抽象B)模塊化C)自底向上D)信息隱蔽解析: 軟件設(shè)計(jì)遵循軟件工程的基本目標(biāo)和原則,建立了適用于在軟件設(shè)計(jì)中應(yīng)該遵循的基本原理和與軟件設(shè)計(jì)有關(guān)的概念,它們是抽象、模塊化、信息隱蔽和數(shù)據(jù)獨(dú)立性。自底向上是集成測試中增量測試的一種。(17)開發(fā)大型軟件時(shí),產(chǎn)生困難的根本原因是A)大系統(tǒng)的復(fù)雜性B)人員知識不足

10、C)客觀世界千變?nèi)f化D)時(shí)間緊、任務(wù)重解析: 軟件的顯著特點(diǎn)是規(guī)模龐大,復(fù)雜度超線性增長,在開發(fā)大型軟件時(shí),要保證高質(zhì)量,極端復(fù)雜困難,不僅涉及技術(shù)問題,更重要的是必須要有嚴(yán)格而科學(xué)的管理。(18)下列SQL語句中,用于修改表結(jié)構(gòu)的是 (相關(guān)知識:SQL(Structured Query Language)結(jié)構(gòu)化查詢語言)A)ALTERB)CREATEC)UPDATED)INSERT解析: SQL語句中凡創(chuàng)建都用CREATE,刪除都用DROP,改變用ALTER,再跟類型和名字,附加子句。(19)關(guān)系模型允許定義3類數(shù)據(jù)約束,下列不屬于數(shù)據(jù)約束的是A)實(shí)體完整性約束B)參照完整性約束C)域完整性

11、約束D)用戶自定義的完整性約束解析: 關(guān)系模型允許定義3類數(shù)據(jù)約束,它們是實(shí)體完整性約束、參照完整性約束及用戶自定義的完整性約束。其中前兩種完整性約束由關(guān)系數(shù)據(jù)庫系統(tǒng)支持,對于用戶自定義的完整性約束,則由關(guān)系數(shù)據(jù)庫系統(tǒng)提供完整性約束語言,用戶利用該語言給出約束條件,運(yùn)行時(shí)由系統(tǒng)自動檢查。(20)長度為n的順序存儲線性表中,當(dāng)在任何位置上插入一個(gè)元素概率都相等時(shí),插入一個(gè)元素所需移動元素的平均個(gè)數(shù)為 n/2 。解析: 在線性表的任何位置插入一個(gè)元素的概率相等,即概率為p=1/(n+1),則插入一個(gè)元素時(shí)所需移動元素的平均次數(shù)為E=1/(n+1)*(n+1)*n/2=n/2.(21)用樹型結(jié)構(gòu)表示

12、實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為 層次模型。解析: 用樹型結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為層次模型,用有向圖結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為網(wǎng)狀模型,用二維表格結(jié)構(gòu)表示實(shí)體及其聯(lián)系的數(shù)據(jù)模型稱為關(guān)系模型。(22)數(shù)據(jù)流圖的類型有 變換型和事務(wù)型。解析: 典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個(gè)或多個(gè)處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。(23)當(dāng)數(shù)據(jù)的物

13、理結(jié)構(gòu)(存儲結(jié)構(gòu)、存取方式等)改變時(shí),不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的 物理獨(dú)立性 。解析: 數(shù)據(jù)獨(dú)立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨(dú)立于應(yīng)用程序而不依賴于應(yīng)用程序。也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)與存取方式的改變不會影響應(yīng)用程序。數(shù)據(jù)獨(dú)立性一般分為物理獨(dú)立性與邏輯獨(dú)立性兩級。(24)在下列幾種排序方法中,要求內(nèi)存量最大的是A)插入排序B)選擇排序 C)快速排序 D)歸并排序數(shù)據(jù)庫系統(tǒng)【解題要點(diǎn)】快速排序的基本思想是,通過一趟排序?qū)⒋判蛴涗浄指畛瑟?dú)立的兩部分,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,再分別對這兩部分記錄繼續(xù)進(jìn)行排序,以

14、達(dá)到整個(gè)序列有序;插入排序的基本操作是指將無序序列中的各元素依次插入到已經(jīng)有序的線性表中,從而得到一個(gè)新的序列;選擇排序的基本思想是:掃描整個(gè)線性表,從中選出最小的元素,將它交換到表的最前面(這是它應(yīng)有的位置),然后對剩下的子表采用同樣的方法,直到表空為止;歸并排序是將兩個(gè)或兩個(gè)以上的有序表組合成一個(gè)新的有序表。數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫(25)下列敘述中,不屬于數(shù)據(jù)庫系統(tǒng)的是硬件和軟件數(shù)據(jù)庫管理員A)數(shù)據(jù)庫B)數(shù)據(jù)庫管理系統(tǒng)C)數(shù)據(jù)庫管理員D)數(shù)據(jù)庫應(yīng)用系統(tǒng)【解題要點(diǎn)】數(shù)據(jù)庫系統(tǒng)(Database System,簡稱DBS)由如下幾部分組成,即數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員、硬件和軟件。(2

15、6)視圖設(shè)計(jì)一般有3種設(shè)計(jì)次序,下列不屬于視圖設(shè)計(jì)的是A)自頂向下B)由外向內(nèi)C)由內(nèi)向外D)自底向上【解題要點(diǎn)】視圖設(shè)計(jì)一般有3種設(shè)計(jì)次序,它們分別是自頂向下、自底向上和由內(nèi)向外,它們又為視圖設(shè)計(jì)提供了具體的操作方法,設(shè)計(jì)者可根據(jù)實(shí)際情況靈活掌握,可以單獨(dú)使用也可混合使用。(27)有字符串如下,n407as1xabc,則字符串的長度為A)6B)7C)8D)9 解析: 正確區(qū)分轉(zhuǎn)義符號,n為換行符,為反斜杠字符,ddd三位八進(jìn)制數(shù)代表的一個(gè)ASCII字符,代表雙引號,xhh為兩位十六進(jìn)制數(shù)代表的一個(gè)ASCII字符。“n407as1xabc”中的n, , 407, , xab都只占有一個(gè)字符。(

16、28)可以把具有相同屬性的一些不同對象歸類,稱為對象類?!窘忸}要點(diǎn)】類描述的是具有相似性質(zhì)的一組對象;把具有相同屬性的一些不同對象歸為類,我們稱之為對象類。(29)由關(guān)系數(shù)據(jù)庫系統(tǒng)支持的完整性約束是指實(shí)體完整性 和參照完整性?!窘忸}要點(diǎn)】關(guān)系的完整性約束指關(guān)系的某種約束條件,包括實(shí)體完整性、參照完整性和用戶定義的完整性。其中,前兩種完整性約束由關(guān)系數(shù)據(jù)庫系統(tǒng)自動支持。(30)下列關(guān)系模型中,能使經(jīng)運(yùn)算后得到的新關(guān)系中屬性個(gè)數(shù)多于原來關(guān)系中屬性個(gè)數(shù)的是A)選擇B)連接C)投影D)并【解題要點(diǎn)】關(guān)系代數(shù)中包括傳統(tǒng)的集合運(yùn)算和專門的關(guān)系運(yùn)算。經(jīng)過選擇或投影運(yùn)算得到的新關(guān)系的屬性個(gè)數(shù)最多不會超過原關(guān)系

17、中的屬性個(gè)數(shù)。經(jīng)過連接運(yùn)算得到的新關(guān)系最多不少于原關(guān)系中屬性的個(gè)數(shù)。(31)下列敘述中,正確的是 A)用E-R圖能夠表示實(shí)體集間一對一的聯(lián)系、一對多的聯(lián)系和多對多的聯(lián)系B)用E-R圖只能表示實(shí)體集之間一對一的聯(lián)系C)用E-R圖只能表示實(shí)體集之間一對多的聯(lián)系D)用E-R圖表示的概念數(shù)據(jù)模型只能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型【解題要點(diǎn)】兩個(gè)實(shí)體之間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有下面幾種,即一對一的聯(lián)系、一對多(或多對一)的聯(lián)系和多對多的聯(lián)系;概念模型便于向各種模型轉(zhuǎn)換。由于概念模型不依賴于具體的數(shù)據(jù)庫管理系統(tǒng),因此,容易向關(guān)系模型、網(wǎng)狀模型和層次模型等各種模型轉(zhuǎn)換。(32)“年齡在182

18、5之間”這種約束是屬于數(shù)據(jù)庫當(dāng)中的A)原子性措施B)一致性措施C)完整性措施D)安全性措施【解題要點(diǎn)】數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性(如學(xué)生的學(xué)號必須惟一,性別只能是女或男等),數(shù)據(jù)庫是否具備完整性關(guān)系到數(shù)據(jù)庫系統(tǒng)能否真實(shí)反映現(xiàn)實(shí)世界,因此維護(hù)數(shù)據(jù)庫的完整性是非常重要的。(33)已知int a,b;double c;則以下語句中錯(cuò)誤的函數(shù)調(diào)用是A)scanf(%d,%x,%lf,&a,&b,&c);B)scanf(%d,%d,%le,&a,&b,&c);C)scanf(%o,%x,%o,&a,&b);D)scanf(%d,%o,%e,&a,&b,&c);解析: 格式字符“f”以帶小數(shù)點(diǎn)

19、的形式或指數(shù)形式輸入單精度數(shù),格式字符“l(fā)f”以帶小數(shù)點(diǎn)的形式或指數(shù)形式輸入雙精度數(shù),格式字符“e”和“l(fā)e”與格式字符“f”和“l(fā)f”所表示的含義相同。選項(xiàng)D)是雙精度型,輸入應(yīng)該用格式字符“l(fā)e”。若格式說明的個(gè)數(shù)少于輸入項(xiàng)的個(gè)數(shù)時(shí),scanf函數(shù)結(jié)束輸入,多余的數(shù)據(jù)項(xiàng)并沒有從終端接受數(shù)據(jù);若格式說明的個(gè)數(shù)多于輸入項(xiàng)的個(gè)數(shù)時(shí),scanf函數(shù)也同樣結(jié)束,沒有接受輸入的數(shù)據(jù)。(34)下列關(guān)于指針變量賦空值的說法錯(cuò)誤的是A)當(dāng)賦空值的時(shí)候,變量指向地址為0的存儲單元B)賦值語句可以表達(dá)為變量名=0;C)賦值語句可以表達(dá)為變量名=0;D)一個(gè)指針變量可以被賦空值解析: 除了給指針變量賦地址值外,還

20、可以給指針變量賦NULL值,由于NULL的代碼值為0,所以,指針變量名=NULL;等同于變量名=0;或變量名=0;,指針變量并不是指向一個(gè)地址為0的存儲單元,而是具有一個(gè)空值。注意:指針變量賦地址值的方式可以是通過求地址運(yùn)算獲得地址值、通過指針變量獲得和通過標(biāo)準(zhǔn)函數(shù)獲得地址值。(35)已知#define M 2;的宏定義,執(zhí)行語句k=M*5;后,k的值是A)10B)5C)2D)以上答案都不對解析: 預(yù)處理命令在每一行的末尾不能加分號(;),用來區(qū)分C語句、定義和說明語句。本題加了分號,這樣當(dāng)宏替換的時(shí)候就會把2和分號一起替換到表達(dá)式中,這個(gè)時(shí)候就會產(chǎn)生錯(cuò)誤。注意:C語言的預(yù)處理命令的語法與C語

21、言中其他部分的語法無關(guān);它們可以根據(jù)需要出現(xiàn)在程序的任何一行的開始部位,其作用一直持續(xù)到源文件的尾部。(36)封裝是一種信息隱蔽技術(shù),目的在于將對象的使用者和對象的設(shè)計(jì)者分開?!窘忸}要點(diǎn)】面向?qū)ο蠹夹g(shù)中包括以下幾個(gè)基本概念,即對象、類、方法、消息、繼承和封裝,其中封裝是一種信息隱蔽技術(shù),目的在于將對象的使用者對象的和設(shè)計(jì)者分開。(37)關(guān)系運(yùn)算是從二維表列的方向進(jìn)行的運(yùn)算?!窘忸}要點(diǎn)】在關(guān)系模型的數(shù)據(jù)語言中,一般除了運(yùn)用常規(guī)的集合運(yùn)算,(并、交、差、笛卡爾積等)外,還定義了一些專門的關(guān)系運(yùn)算,如投影、選擇、連接等。前者是將關(guān)系(即二維表)看成是元組的集合,這些運(yùn)算主要是從二維表的行的方向來進(jìn)行

22、的;后者主要是從二維表的列的方向來進(jìn)行的運(yùn)算。兩者統(tǒng)稱為關(guān)系代數(shù)。(38)閱讀下面程序,則在執(zhí)行時(shí)候的輸出為 2,2 。 #include stdio.hmain()int x=1,y=2,z=0;if(x=2)z=x,x=y,y=z;/注意這里是賦值號printf(%d,%dn,x,y);解析: if語句的執(zhí)行過程為:首先計(jì)算緊跟在if后面一對圓括號中的表達(dá)式,如果表達(dá)式的值為非零,則執(zhí)行其后的if子句,然后去執(zhí)行if語句后的下一個(gè)語句,如果表達(dá)式為零,則跳過if子句直接執(zhí)行if語句后的下一個(gè)語句,if(x=2)的值為真,即x的值為2。(39)語句printf(%dn,H-0+64);的執(zhí)行

23、結(jié)果為88。解析:由下面ASCII碼得出:H=72 0=48 所以結(jié)果為:72-48+64=88。常用的幾個(gè)字符ASCII碼:0=48A=65a=97(40)棧通常采用的兩種存儲結(jié)構(gòu)是A)線性存儲結(jié)構(gòu)和鏈表存儲結(jié)構(gòu)B)散列方式和索引方式C)鏈表存儲結(jié)構(gòu)和數(shù)組D)線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu) 【解題要點(diǎn)】和線性表類似,棧也有兩種存儲方法,一是順序棧,二是鏈?zhǔn)綏?。棧的順序存儲結(jié)構(gòu)是利用一組地址連續(xù)的存儲單元一次存儲自棧底到棧頂?shù)臄?shù)據(jù)元素,同時(shí)附設(shè)指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對而言,鏈?zhǔn)綏5牟僮鞲子趯?shí)現(xiàn)。(41)在結(jié)構(gòu)化設(shè)計(jì)方法中,生成的結(jié)構(gòu)圖(SC)中,帶有箭

24、頭的連線表示A)模塊之間的調(diào)用關(guān)系B)程序的組成成分C)控制程序的執(zhí)行順序D)數(shù)據(jù)的流向【解題要點(diǎn)】常用的軟件結(jié)構(gòu)設(shè)計(jì)工具是結(jié)構(gòu)圖(SCStructure Chart),也稱程序結(jié)構(gòu)圖。其中,矩形內(nèi)用于注明模塊的功能和名字;箭頭表示模塊間的調(diào)用關(guān)系,帶實(shí)心圓的箭頭表示傳遞的是控制信息,帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。(42)下列選項(xiàng)中,不屬于模塊間耦合的是A)數(shù)據(jù)耦合B)同構(gòu)耦合C)異構(gòu)耦合D)公用耦合【解題要點(diǎn)】模塊之間的耦合程度反映了模塊的獨(dú)立性,也反映了系統(tǒng)分解后的復(fù)雜程度。按照耦合程度從弱到強(qiáng),可以將其分成5級,分別是:數(shù)據(jù)耦合、同構(gòu)耦合、控制耦合、公用耦合和內(nèi)容耦合。選項(xiàng)C),沒有這

25、種耦合方式。(43)一個(gè)關(guān)系中屬性個(gè)數(shù)為1時(shí),稱此關(guān)系為A)對應(yīng)關(guān)系B)單一關(guān)系C)一元關(guān)系D)二元關(guān)系【解題要點(diǎn)】在關(guān)系模型數(shù)據(jù)庫中,基本結(jié)構(gòu)是二維表,這種二維表稱為關(guān)系。關(guān)系的列稱為屬性,一個(gè)具有N個(gè)屬性的關(guān)系稱為N元關(guān)系。(44)相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和A)可重用性差B)安全性差C)非持久性D)冗余性 【解題要點(diǎn)】文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散的、相互獨(dú)立的,因此相對于數(shù)據(jù)庫系統(tǒng),以此為基礎(chǔ)的數(shù)據(jù)處理存在3個(gè)缺點(diǎn),數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡稱為數(shù)據(jù)依賴)。(45)關(guān)于printf()函數(shù)的返回值敘述正確的是A)通常是

26、本次調(diào)用中輸出字符的個(gè)數(shù)B)通常是輸出的第一個(gè)數(shù)值C)通常返回布爾值真D)通常返回非零值【解題要點(diǎn)】printf函數(shù)的返回值通常是本次調(diào)用中輸出字符的個(gè)數(shù)。(46)棧和隊(duì)列通常采用的存儲結(jié)構(gòu)是順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu) ?!窘忸}要點(diǎn)】棧和隊(duì)列都屬于線性表,它們一般采用順序存儲結(jié)構(gòu),也可以對它們采用鏈?zhǔn)酱鎯Y(jié)構(gòu)。(3)軟件結(jié)構(gòu)是以模塊為基礎(chǔ)而組成的一種控制層次結(jié)構(gòu)?!窘忸}要點(diǎn)】采用模塊化原理可以使軟件結(jié)構(gòu)清晰,不僅容易設(shè)計(jì)也容易閱讀和理解,模塊化使得軟件容易測試和調(diào)試,因而有利于提高軟件的可靠性,也有利于軟件的組織管理,大型程序可由不同的程序員編寫不同的模塊,并且可以進(jìn)一步分配技術(shù)熟練的程序員編

27、寫困難的部分。(5)數(shù)據(jù)庫保護(hù)分為:安全性控制、完整性控制、并發(fā)性控制和數(shù)據(jù)的恢復(fù)?!窘忸}要點(diǎn)】安全性控制:防止未經(jīng)授權(quán)的用戶有意或無意存取數(shù)據(jù)庫中的數(shù)據(jù),以免數(shù)據(jù)被泄露、更改或破壞;完整性控制:保證數(shù)據(jù)庫中數(shù)據(jù)及語義的正確性和有效性,防止任何對數(shù)據(jù)造成錯(cuò)誤的操作;并發(fā)控制:正確處理好多用戶、多任務(wù)環(huán)境下的并發(fā)操作,防止錯(cuò)誤發(fā)生;恢復(fù):當(dāng)數(shù)據(jù)庫被破壞或數(shù)據(jù)不正確時(shí),使數(shù)據(jù)庫能恢復(fù)到正確的狀態(tài)。END HYPERLINK l _top top HYPERLINK l basic frontC編程部分 HYPERLINK l _top top(1)有以下程序float fun(int x,int

28、y)return(x+y);main()int a=2,b=5,c=8;printf(%3.0fn,fun(int)fun(a+c,b),a-c);程序運(yùn)行后的輸出結(jié)果是A)編譯出錯(cuò)B)9C)21D)9.0解析: 本題考查函數(shù)的綜合知識。首先,我們可以利用強(qiáng)制轉(zhuǎn)換類型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)式轉(zhuǎn)換成所需類型。如:(double)a是將a轉(zhuǎn)換成double類型;(int)(x+y)是將x+y的值轉(zhuǎn)換成整型。本題可按部就班地逐步運(yùn)算:fun(int)fun(a+c,b),a-c)fun(int)fun(10,5),2-8)fun(int)15.000000,-6)fun(15,-6)9(2)若fp是指

29、向某文件的指針,且已讀到文件末尾,則函數(shù)feof(fp)的返回值是A)EOFB)-1C)1D)NULL解析: EOF是指向文本文件的結(jié)束標(biāo)志,NULL是打開文件錯(cuò)誤時(shí)的返回值。feof(fp)用來判斷文件是否在文件末尾,文本文件和二進(jìn)制文件均可以使用此函數(shù),如果遇到文件結(jié)束就返回1,否則返回0。(3)若有說明語句:char c=72;則變量cA)包含1個(gè)字符B)包含2個(gè)字符C)包含3個(gè)字符D)說明不合法,c的值不確定解析: C語言的字符型常量中,允許用一種特殊形式的字符常量,就是以一個(gè)“”開頭的字符。其中“ddd”表示用ASCII碼(八進(jìn)制數(shù))表示一個(gè)字符,本題中的char c=72即表示占一

30、個(gè)字符的變量c的ASCII碼值。(4)在C語言中,引用數(shù)組元素時(shí),其數(shù)組下標(biāo)的數(shù)據(jù)類型允許是A)整型常量B)整型表達(dá)式C)整型常量或整型表達(dá)式D)任何類型的表達(dá)式解析: 在C語言中,對于數(shù)組元素下標(biāo)的定義只能是整型常量或整型表達(dá)式。(5)下列程序的輸出結(jié)果是Hello。maim ()char b =Hello you;b5=0;printf (%sn,b);解析: 語句b5=0;相當(dāng)于語句b5=0,且0為字符串結(jié)束標(biāo)志,輸出時(shí)遇到0就停止輸出。(6)請選出以下語句的輸出結(jié)果printf(%dn,strlen(t065xffn);A)5B)14C)8D)輸出項(xiàng)不合法,無正常輸出解析: 本題考查用

31、strlen函數(shù)計(jì)算字符串長度的方法。該字符串中包含的字符是:t(跳格符)、(雙引號)、065(ASCII值為八進(jìn)制065,也即十進(jìn)制為51的字符)、xff(ASCII值為十六進(jìn)制ff,也即十進(jìn)制為255的字符)、n(換行符)。(7)在16位IBM-PC機(jī)上使用C語言,若有如下定義struct data int i;char ch;double f; b;則結(jié)構(gòu)變量b占用內(nèi)存的字節(jié)數(shù)是A)1B)2C)7D)11解析: 結(jié)構(gòu)體變量所占用內(nèi)存的字節(jié)數(shù)是其所有成員所占用內(nèi)存字節(jié)數(shù)之和。本題中整型變量i所占用的內(nèi)存是2字節(jié),字符型變量ch所占用的內(nèi)存是1字節(jié),雙精度型變量f所占用的內(nèi)存是8字節(jié),三者相

32、加即可。(8)假定以下程序經(jīng)編譯和連接后生成可執(zhí)行文件PROG.EXE,如果在此可執(zhí)行文件所在目錄的DOS提示符下鍵入:PROG ABCDEFGH IJKL,則輸出結(jié)果為main( int argc, char *argv) while(-argc0)printf(%s,argvargc);printf(n);A)ABCDEFGB)IJHL C)ABCDEFGHIJKLD)IJKLABCDEFGH解析: 本題中,argc表示參數(shù)的個(gè)數(shù),應(yīng)為3,argv是一個(gè)指向字符串的指針數(shù)組,指針數(shù)組argv中的元素argv0指向字符串“PROG”, 元素argv1指向字符串“ABCDEFGH”,argv2

33、指向字符串“IJKL”。在while循環(huán)條件中,先進(jìn)行自減運(yùn)算,再執(zhí)行相應(yīng)的printf語句。(9)設(shè)有以下語句:char x=3,y=6,z;z=xy2;則z的二進(jìn)制值是A)00010100B)00011011C)00011100D)00011000解析:按位異或運(yùn)算符“”是雙目運(yùn)算符。其功能是參與運(yùn)算的兩數(shù)各對應(yīng)的二進(jìn)位相異或,當(dāng)兩對應(yīng)的二進(jìn)位相異時(shí),結(jié)果為1。0000001100001010=00000101左移運(yùn)算符“”是雙目運(yùn)算符。其功能把“ ”左邊的運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由“”右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補(bǔ)0。000001012=00010100并且“”運(yùn)算符的

34、優(yōu)先級高干“”。(10)C語言規(guī)定,在一個(gè)源程序中,main函數(shù)的位置A)必須在最開始B)必須在系統(tǒng)調(diào)用的庫函數(shù)的后面C)可以任意D)必須在最后解析: 一個(gè)C程序總是從main函數(shù)開始執(zhí)行的,不論main函數(shù)在整個(gè)過程中的位置如何。(11)有如下程序main() int a=2,b=-1,c=2;if(ab)if(b0)c=0;else c+;printf(%dn,c);該程序的輸出結(jié)果是A)0B)1C)2D)3解析: if語句嵌套使用時(shí),應(yīng)當(dāng)注意if 與else的配對關(guān)系,else總是與它上面的最近的if配對。因此,本題中先判斷(a(y)?(x):(y)main() int a=5,b=2,

35、c=3,d=3,t;t=MAX(a+b,c+d)*10;printf(%dn,t);解析: 本題綜合考查帶參數(shù)的宏以及三目運(yùn)算符的計(jì)算方法,“?”運(yùn)算符是一個(gè)三目運(yùn)算符,其一般形式是:?:?!?” 運(yùn)算符的含義是:先求表達(dá)式1的值,如果為真,則求表達(dá)式2的值并把它作為整個(gè)表達(dá)式的值;如果表達(dá)式1的值為假,則求表達(dá)式3的值并把它作為整個(gè)表達(dá)式的值。注意,在本題中宏替換時(shí)可采用逐步求解,最終為76?7:6*10,即t=76?7:60,其值為t=7。(17)若有下面的說明和定義,則sizeof(struct aa)的值是struct aa int r1; double r2; float r3;un

36、ion uuchar u15;long u22;ua; mya;A)30B)29C)24D)22解析: 本題主要考查結(jié)構(gòu)體變量和共用體變量所占存儲空間大小的計(jì)算方法。結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和,每個(gè)成員分別占有自己的內(nèi)存單元;共用體變量所占的內(nèi)存長度等于最長的成員的長度。結(jié)構(gòu)體變量aa中,成員r1占2個(gè)字節(jié),r2占8個(gè)字節(jié),r3占4個(gè)字節(jié),共用體ua占8個(gè)字節(jié),所以共占用2+8+4+8=22個(gè)字節(jié)。(18)使用結(jié)構(gòu)體處理數(shù)據(jù)的場合是。 正確答案: 把不同類型的數(shù)據(jù)作為整體處理。(19)設(shè)x和y均為int型變量,且x=1,y=2,則表達(dá)式double(1+x/y)的值為1.0

37、00000。解析: 本題考查兩個(gè)知識點(diǎn)一是x/y的值為整型即為0,二是數(shù)字1存放在double中是double類型(20)下面函數(shù)要求計(jì)算兩個(gè)整數(shù)x,y之和,并通過形參返回該值,請?zhí)羁?。add(int x, int y,int *z)*z= x+y; 解析: 函數(shù)希望通過形參z帶回結(jié)果,形參z必須是指針類型的,由于返回整型結(jié)果,所以z的說明是int * z。函數(shù)返回前必須先把結(jié)果通過形參z間接引用(寫成*z)傳回。(21)有如下定義,則函數(shù)fun的首部可以是#define N 5#define M 6main()doublecMN;fun(c); A)fun(double a)B)fun(do

38、uble aM)C)fun(double *a)D)fun(double (*a)N)解析: 本題目的函數(shù)首部可以是以下三種形式之一:fun(double (*a)N),fun(double aN),fun(double aMN)。(22)下面關(guān)于字符串的說明中,錯(cuò)誤的是A)char a15= jft;B)char a=jft;C)char *a=:jft;D)char a=j,f,t;解析: 若是正確的賦值字符串,系統(tǒng)按照C語言對字符串處理規(guī)定,在字符串的末尾自動加上串結(jié)束標(biāo)記0。選項(xiàng)D)是數(shù)組的字符賦值,并不是字符串的賦值,末尾不會被系統(tǒng)自動加上結(jié)束標(biāo)記,所以是錯(cuò)誤的。(23)C語言結(jié)構(gòu)體

39、類型變量在程序運(yùn)行期間A)TC環(huán)境在內(nèi)存中僅僅開辟一個(gè)存放結(jié)構(gòu)體變量地址的單元B)所有的成員一直駐留在內(nèi)存中C)只有最開始的成員駐留在內(nèi)存中D)部分成員駐留在內(nèi)存中【解題要點(diǎn)】結(jié)構(gòu)體類型的變量在程序運(yùn)行期間要做為一個(gè)整體占用連續(xù)的內(nèi)存單元(49)有下列運(yùn)算符:,&, |,則運(yùn)算的優(yōu)先順序是A),&, |,B),&, |,C), &,|D),&, |【解題要點(diǎn)】位運(yùn)算符由高到低的優(yōu)先級順序依次為:,&,|。優(yōu)先級運(yùn)算符(1) () - .(2) + - & * ! sizeof (type) - (3)* / %(4)+ -(5)(6) =(7)= !=(8)&(9)(10)|(11)&(12)

40、|(13)? ;(14)Op=(15),(11)下列程序的輸出結(jié)果是1.300000,1.300000。 #include main() float a=-1.3;b=1.3; printf(%f,%f,fabs(a),fabs(b);【解題要點(diǎn)】本題是求浮點(diǎn)數(shù)的絕對值,double、float都是精度為小數(shù)點(diǎn)后六位。(14)現(xiàn)有如下程序段,則程序段的輸出結(jié)果為 0 。#include stdio.hint fun()static int k;return k;main()int m;m=fun();printf(%dn,m);【解題要點(diǎn)】在整個(gè)程序運(yùn)行期間,靜態(tài)局部變量在內(nèi)存的靜態(tài)存儲區(qū)中占

41、據(jù)著永久性的存儲單元。即使退出函數(shù)以后,下次再進(jìn)入函數(shù)時(shí),靜態(tài)局部變量仍使用原來的存儲單元,如未賦初值,則系統(tǒng)會自動賦值為0。(15)現(xiàn)有如下定義:struct aaint a;float b;char c;*p;現(xiàn)需用malloc函數(shù)動態(tài)的申請一個(gè)struct aa類型大小的空間(由p指向),則定義的語句為:p=(struct aa *)malloc(sizeof(struct aa); 。【解題要點(diǎn)】ANSI C標(biāo)準(zhǔn)規(guī)定malloc函數(shù)的返回值類型為void *,函數(shù)的調(diào)用形式為:malloc(size)要求size的類型為unsigned int。由于返回類型為void *,所以在調(diào)用函

42、數(shù)時(shí),必須利用強(qiáng)制轉(zhuǎn)換將其轉(zhuǎn)換為所需要的類型。(17)當(dāng)調(diào)函數(shù)frend從磁盤文件中讀取數(shù)據(jù)時(shí),若函數(shù)數(shù)的返回時(shí)為5,則表明讀取的數(shù)據(jù)項(xiàng)為5;若函數(shù)的返回值為0,則表明文件結(jié)束或出錯(cuò)?!窘忸}要點(diǎn)】fread函數(shù)的調(diào)用形式為fread(buffer,size,cout,fp);其中buffer是數(shù)據(jù)塊的指針,size表示每個(gè)數(shù)據(jù)塊的字節(jié)數(shù)。count用來指定每讀、寫一次,輸入輸出數(shù)據(jù)塊的個(gè)數(shù)(每個(gè)數(shù)據(jù)塊有size個(gè)字節(jié))。fp是文件的指針。END HYPERLINK l _top top HYPERLINK l cprogram front上機(jī)部分 HYPERLINK l _top top(1)

43、以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。例如,若一維數(shù)組中的數(shù)據(jù)是:2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10刪除后,數(shù)組中的內(nèi)容應(yīng)該是:2 3 4 5 6 7 8 9 10。請?zhí)羁铡?include #define N 80int fun(int a, int n) int i,j=1;for(i=1;in;i+)if(aj-1!=ai)aj+=ai;return j;main() int aN= 2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,1

44、0,10, i, n=19;printf(The original data :n);for(i=0; in; i+)printf(%3d,ai);n=fun(a,n);printf(nThe data after deleted :n);for(i=0; in; i+)printf(%3d,ai); printf(nn);解析: 本題程序的流程是:讓i,j都從1開始其中j用于控制刪除后剩下的數(shù)中的下標(biāo),i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個(gè)元素的下一個(gè)元素的下標(biāo),所以if()中的條件是aj-1!=ai,其中aj-1就是新數(shù)組中的最后一個(gè)元素,若條件成立則表示出現(xiàn)了不同的值

45、,所以ai要留下到新數(shù)組中。注本題中i,j的初值都要從1開始。該算法只能用于數(shù)組已排序的題目中。(2).填空題請補(bǔ)充函數(shù)fun(),該函數(shù)的功能是:把從主函數(shù)中輸入的字符串str2倒置后接在字符串str1后面。例如:str1=“How do”,str2=“?od uoy”,結(jié)果輸出:“How do you do?”。注意:部分源程序給出如下。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的橫線上填入所編寫的若干表達(dá)式或語句。試題程序:#include #include #define N 40void fun(char *str1,char *str2) int i=0,j=

46、0,k=0,n; char ch; char *p1=str1; char *p2=str2; while(*(p1+i)i+; while(*(p2+j)j+; n=j-; for(;k=j/2;k+,j-)ch=*(p2+k);*(p2+k)=*(p2+j);*(p2+j)=ch; *(p2+n)=0; for(;*p2;i+)*(p1+i)=*p2+; *(p1+i)=0;main() char str1N,str2N; int m,n,k; clrscr(); printf(*Input the string str1 & str2 *n); printf(nstr1:); gets(

47、str1); printf(nstr2:); gets(str2); printf(* The string str1 & str2 *n); puts(str1); puts(str2); fun(str1,str2); printf(* The new string *n); puts(str1);【解析】填空1:while循環(huán)執(zhí)行后,變量j中保存了字符串str2的長度,而后面的for循環(huán)是將字符串str2倒置,即將第一個(gè)字符與最后一個(gè)字符對調(diào),第二個(gè)字符與倒數(shù)第二個(gè)字符對調(diào),如此循環(huán)直到中間的字符。第一次執(zhí)行循環(huán)時(shí),*(p2+j)指向最后一個(gè)字符,所以j要減1,變?yōu)橄鄳?yīng)的下標(biāo),并將未減1

48、之前的數(shù)賦給n。填空2:將字符串str2倒置后,在字符串的最后要加上結(jié)束標(biāo)記符0。填空3:當(dāng)*p2所指的字符為0時(shí),說明已經(jīng)將倒置后的字符串str2都接在字符串str1后面了,for循環(huán)應(yīng)該結(jié)束。當(dāng)*p2所指的為其他字符時(shí),for循環(huán)要繼續(xù)執(zhí)行。2. 改錯(cuò)題下列給定程序中,函數(shù)fun()的功能是:先從鍵盤上輸入一個(gè)3行3列的矩陣的各個(gè)元素的值,然后輸出主對角線元素之積。請改正函數(shù)fun()中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include int fun() int a33,mul; int i,j; mul=1; fo

49、r (i=0;i3;i+) /*found*/ for (i=0;j3;j+) /注意這里的i 不是J scanf(%d,&aij); for(i=0;i3;i+)/*found*/ mul=mul*aij; printf(Mul=%dn,mul);main() fun();4. 編程題請編寫函數(shù)fun(),該函數(shù)的功能是:移動一維數(shù)組中的內(nèi)容,若數(shù)組中有n個(gè)整數(shù),要求把下標(biāo)從p到n-1(pn-1)的數(shù)組元素平移到數(shù)組的前面。例如,一維數(shù)組中的原始內(nèi)容為1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,p的值為6。移動后,一維數(shù)組中的內(nèi)容應(yīng)為7,8,9,10,10,11,

50、12,13,14,15,1,2,3,4,5,6。注意:部分源程序給出如下。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。試題程序:#include #define N 80void fun(int *w, int p, int n) int i,j,t; for(i=p;i=0;j-) /*實(shí)現(xiàn)循環(huán)右移*/ wj+1=wj; w0=t; main() int aN=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15; int i, p, n=15; printf(The original data:n); for(i=0;in;

51、i+) printf(%3d,ai); printf(nnEnter p: ); scanf(%d,&p); fun(a,p,n); printf(nThe data after moving:n); for(i=0;in;i+) printf(%3d,ai); printf(nn);經(jīng)典(4)下面程序段的功能是:從鍵盤上輸入兩個(gè)字符串,對兩個(gè)字符串分別排序;然后將它們合并,合并后的字符串按ASCII碼值從小到大排序,并刪去相同的字符。請?zhí)羁铡?include stdio.hfun(char *x,char *y,char *z)char t,*p;p=z;while(*x!=0&*y!=0)

52、 t=*x*y?*x+:*y*x?*y+:(*x+,*y+);if(*p=0)*p=t;else if(t!=*p)*+p=t;if(*x!=0)while(*x!=0)if(*x!=*p)*+p=*x+;else x+;if(*y!=0)while(*y!=0)if(*y!=*p)*+p=*y+;else y+;*+p= 0 ;sort(char *s) int i,j,k;char t,*p;p=s;for(k=0;*p!=0;k+)p+;for(i=0;ik-1;i+)for(j=i+1;jsj) t=si;si=sj;sj=t;main() char s1100,s2100,s3200

53、;scanf(%s,s1);scanf(%s,s2);sort(s1);sort(s2);s30=0;fun(s1,s2,s3);printf(%sn,s3);END HYPERLINK l _top top HYPERLINK l computer front知識歸納 HYPERLINK l _top topfseek函數(shù)的調(diào)用形式為:fseek(文件指針,位移量,起始點(diǎn))“起始點(diǎn)”用0,1或2代替,0代表“文件開始”,1為“當(dāng)前位置”,2為“文件末尾”?!拔灰屏俊敝敢浴捌鹗键c(diǎn)”為基點(diǎn),向前移動的字節(jié)數(shù)。ANSI C和大多數(shù)C版本要求位移量是long型數(shù)據(jù)。這樣當(dāng)文件的長度大于64k時(shí)不致出

54、現(xiàn)問題。ANSI C標(biāo)準(zhǔn)規(guī)定在數(shù)字的末尾加一個(gè)字母L,就表示long型。fscanf的格式為(文件指針,格式控制字符串,輸入項(xiàng)表)。調(diào)用函數(shù)時(shí),必須要注意以下語法:函數(shù)名必須與所調(diào)用的函數(shù)名字完全一致;實(shí)參的個(gè)數(shù)與形參的個(gè)數(shù)一致;函數(shù)必須先定義,后調(diào)用。如果被調(diào)用的函數(shù)的返回值為int型或char型,則被調(diào)用函數(shù)的定義也可以放在調(diào)用的位置之后。如果在函數(shù)調(diào)用之前沒有對函數(shù)作聲明,則編譯系統(tǒng)會把第一次遇到的該函數(shù)形式作為函數(shù)的聲明,并將函數(shù)類型默認(rèn)為int型。C語言把文件看成是一個(gè)字符(字節(jié))的序列,即由一個(gè)一個(gè)字符(字節(jié))的數(shù)據(jù)順序組成。根據(jù)數(shù)據(jù)的組織形式,可分為ASCII文件和二進(jìn)制文件。A

55、SCII文件又稱文本文件,它的每一個(gè)字節(jié)放一個(gè)ASCII代碼,代表一個(gè)字符。二進(jìn)制文件是把內(nèi)存中的數(shù)據(jù)按其在內(nèi)存中的存儲形式原樣輸出到磁盤上存放。算法是指解題方案的準(zhǔn)確而完整的描述。它有4個(gè)基本特征,分別是可行性、確定性、有窮性和擁有足夠的情報(bào)。 對于長度為n的有序線性表,在最壞情況下,二分查找只需要比較log2n次,而順序查找需要比較n次。 將屬性、操作相似的對象歸為類,也就是說,類是具有共同屬性、共同方法的對象的集合。 數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫之間的一個(gè)標(biāo)準(zhǔn)接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。其

56、實(shí)隨機(jī)訪問與順序訪問的起源是設(shè)備的分類. 在以前的系統(tǒng)中, 外部存儲設(shè)備主要是磁帶,磁盤,光盤三種. 當(dāng)然, 現(xiàn)在隨著存儲技術(shù)的發(fā)展, 出現(xiàn)像Flash, MMC卡芯片存儲設(shè)備. 磁帶是順序存儲設(shè)備. 也就是意味讀取數(shù)據(jù)時(shí), 總是從前開始讀起, 直到找到該數(shù)據(jù)為止, 如: 一個(gè)磁帶有100個(gè)文件, 我找第50個(gè)文件, 那么磁帶機(jī)就會從第磁帶的第一個(gè)數(shù)據(jù)塊開始找, 直到找到第50個(gè)文件為止. 磁盤,光盤都屬于隨機(jī)存儲設(shè)備. 他們找文件時(shí),是通過文件系統(tǒng)記住的文件所在磁盤或光盤的物理位置來讀取, 所以, 磁盤和光盤檢索文件很快, 而磁帶通常會比較慢.元組(Tuple) 笛卡爾積中每一個(gè)元素(d1,

57、d2,dn)叫作一個(gè)n元組(n-tuple)或簡稱元組。 元組是關(guān)系數(shù)據(jù)庫中的基本概念,關(guān)系是一張表,表中的每行就是一個(gè)元組,每列就是一個(gè)屬性。軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計(jì).視圖設(shè)計(jì)是數(shù)據(jù)庫設(shè)計(jì)的一個(gè)階段,在數(shù)據(jù)庫的概念設(shè)計(jì)過程中,先選擇局部應(yīng)用,獲得一分e-r圖;再進(jìn)行視圖設(shè)計(jì),其主要有三種設(shè)計(jì)次序,一、自頂向下。即從抽象級別高的且普遍的對象開始逐步細(xì)化、具體化與特殊化。二、由底向上。即由具體的對象開始,逐步抽象,普遍化與一般化,最后形成一個(gè)完整的視圖設(shè)計(jì)。三、由內(nèi)向外。即從最基本的與最明顯的對象入手,逐步擴(kuò)充至非基本、不明顯的其他對象。fread函數(shù)的調(diào)用形式為fread(b

58、uffer,size,cout,fp);其中buffer是數(shù)據(jù)塊的指針,size表示每個(gè)數(shù)據(jù)塊的字節(jié)數(shù)。count用來指定每讀、寫一次,輸入輸出數(shù)據(jù)塊的個(gè)數(shù)(每個(gè)數(shù)據(jù)塊有size個(gè)字節(jié))。fp是文件的指針。#include int fun(int n)int a10000, i,j, count=0; for (i=2; i=n; i+) ai = i; i = 2; while (in) /*found*/ for (j=ai*2; j=n; j+=ai) aj = 0; i+;/*found*/ while (ai=0) i+; printf(nThe prime number betwe

59、en 2 to %dn, n); for (i=2; i=n; i+)/*found*/ if (ai!=0) count+; printf(count%15?%5d: n%5d,ai); return count;main()int n=20, r; r = fun(n); printf(nThe number of prime is : %dn, r);#include #include void fun(int a,int *b,int *c)int i,j,d,y; for(i=3;i=a/2;i=i+2) /*found*/ y=1; for(j=2;j=sqrt(double)i)

60、;j+) if(i%j=0) y=0; if(y=1) /*found*/ d=a-i; for(j=2;j=sqrt(double)d);j+) if(d%j=0) y=0; if(y=1) *b=i; *c=d; main()int a,b,c; do printf(nInput a: ); scanf(%d,&a); while(a%2); fun(a,&b,&c); printf(nn%d = %d + %dn,a,b,c);#include double fun(int n)int i;double sum=0.0;for(i=1; i=n; i+) if(i%5=0|i%9=0)

溫馨提示

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

最新文檔

評論

0/150

提交評論