版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一章 緒論,1.3 算法和算法的描述,1.1 什么是數(shù)據(jù)結(jié)構(gòu),1.2 基本概念和術(shù)語(yǔ),1.1 什么是數(shù)據(jù)結(jié)構(gòu),當(dāng)今計(jì)算機(jī)應(yīng)用的特點(diǎn):l計(jì)算機(jī)應(yīng)用領(lǐng)域從科學(xué)計(jì)算到非數(shù)值計(jì)算,更多地是需要對(duì)其進(jìn)行組織、管理和檢索; l所處理的數(shù)據(jù)量大且具有一定的關(guān)系.,下面舉幾個(gè)非數(shù)值計(jì)算的例子,例1 學(xué)生檔案管理系統(tǒng),假設(shè)一個(gè)學(xué)生檔案管理系統(tǒng)應(yīng)包含如下表所示的學(xué)生信息,特點(diǎn):,l每個(gè)學(xué)生的信息占據(jù)一行,所有學(xué)生的信息按學(xué)號(hào)順序依次排
2、列構(gòu)成一張表格; l表中每個(gè)學(xué)生的信息依據(jù)學(xué)號(hào)的大小存在著一種前后關(guān)系,這就是我們所說(shuō)的線性結(jié)構(gòu); l對(duì)它的操作通常是插入某個(gè)學(xué)生的信息,刪除某個(gè)學(xué)生的信息,更新某個(gè)學(xué)生的信息,按條件檢索某個(gè)學(xué)生的信息等等。,例2 人機(jī)對(duì)奕問(wèn)題,,,,,,,,,,例3 制定教學(xué)計(jì)劃,在制定教學(xué)計(jì)劃時(shí),需要考慮各門課程的開(kāi)設(shè)順序。有些課程需要先導(dǎo)課程,有些課程則不需要,而有些課程又是其他課程的先導(dǎo)課程。比如,計(jì)算機(jī)專業(yè)課程的開(kāi)設(shè)情況如下表
3、所示:,課程先后關(guān)系的圖形描形式:,特點(diǎn): 課程之間的先后關(guān)系用圖結(jié)構(gòu)描述; 通過(guò)實(shí)施創(chuàng)建圖結(jié)構(gòu),按要求將圖結(jié)構(gòu)中的頂點(diǎn)進(jìn)行線性排序。,結(jié)論 計(jì)算機(jī)的操作對(duì)象的關(guān)系復(fù)雜,操作形式不再是單純的數(shù)值計(jì)算,而更多地是對(duì)這些具有一定關(guān)系的數(shù)據(jù)進(jìn)行組織管理,我們將此稱為非數(shù)值性處理。要使計(jì)算機(jī)能夠更有效地進(jìn)行這些非數(shù)值性處理,就必須弄清楚這些數(shù)據(jù)之間的關(guān)系,在計(jì)算機(jī)中的存儲(chǔ)方式以及各個(gè)操作的具體實(shí)現(xiàn)。,數(shù)據(jù)結(jié)構(gòu)的研究?jī)?nèi)容為:
4、 研究非數(shù)值計(jì)算的程序設(shè)計(jì)問(wèn)題中計(jì)算機(jī)的操作對(duì)象以及它們之間的關(guān)系和操作等的學(xué)科。,課程目的能夠分析研究計(jì)算機(jī)加工的對(duì)象的特性,獲得其邏輯結(jié)構(gòu),根據(jù)需求,選擇合適存貯結(jié)構(gòu)及其相應(yīng)的算法;學(xué)習(xí)一些常用的算法;復(fù)雜程序設(shè)計(jì)的訓(xùn)練過(guò)程,要求編寫的程序結(jié)構(gòu)清楚和正確易讀;初步掌握算法的時(shí)間分析和空間分析技術(shù)。,1.2 基本概念和術(shù)語(yǔ),一、基本概念,二、數(shù)據(jù)類型,三、抽象數(shù)據(jù)類型,數(shù)據(jù):所有能被輸入到計(jì)算機(jī)中,且能被計(jì)算機(jī)
5、處理的符號(hào)的集合。不僅包括數(shù)字、字符串,還包括圖形、圖像、聲音、動(dòng)畫、視頻等數(shù)據(jù)形式。數(shù)據(jù)元素:數(shù)據(jù)的基本單位,也稱結(jié)點(diǎn)(node)或記錄(record) 。數(shù)據(jù)項(xiàng):是數(shù)據(jù)結(jié)構(gòu)中討論的最小單位。一個(gè)數(shù)據(jù)元素可由若干數(shù)據(jù)項(xiàng)組成。,,,數(shù)據(jù)元素,,,數(shù)據(jù)項(xiàng),一、基本概念,三者之間的關(guān)系:數(shù)據(jù) > 數(shù)據(jù)元素 > 數(shù)據(jù)項(xiàng),例:學(xué)生表 > 個(gè)人記錄 > 學(xué)號(hào)、姓名……,4. 數(shù)據(jù)對(duì)象:是性質(zhì)相同的數(shù)據(jù)元素的集
6、合,是數(shù)據(jù)的一個(gè)子集。,整數(shù)數(shù)據(jù)對(duì)象 N = { 0, ?1, ?2, … }學(xué)生數(shù)據(jù)對(duì)象 學(xué)生記錄的集合,5、數(shù)據(jù)結(jié)構(gòu)(Data Structure)是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。,數(shù)據(jù)結(jié)構(gòu)是帶“結(jié)構(gòu)”的數(shù)據(jù)元素的集合,“結(jié)構(gòu)”就是指數(shù)據(jù)元素之間存在的關(guān)系。,6 邏輯結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)中所說(shuō)的“關(guān)系”實(shí)際上是指數(shù)據(jù)元素之間的邏輯關(guān)系,又稱此為邏輯結(jié)構(gòu)。,集合數(shù)據(jù)元素間
7、除“同屬于一個(gè)集合”外,無(wú)其它關(guān)系線性結(jié)構(gòu) 一對(duì)一的關(guān)系, 如線性表、棧、隊(duì)列樹型結(jié)構(gòu) 一對(duì)多的關(guān)系,如樹圖狀結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu) 多對(duì)多的關(guān)系,如圖。,,數(shù)據(jù)之間的關(guān)系分為四類:,7.存儲(chǔ)結(jié)構(gòu)(物理結(jié)構(gòu)) :數(shù)據(jù)在計(jì)算機(jī)中的存儲(chǔ)表示。,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu):借助指示元素存儲(chǔ)地址的指針表示數(shù)據(jù)元素間的邏輯關(guān)系。 (可以占用不連續(xù)的存儲(chǔ)單元),,分為兩種:,順序存儲(chǔ)結(jié)構(gòu):借助元素在存儲(chǔ)器中的相對(duì)位置來(lái)表示 數(shù)據(jù)元素間的邏輯關(guān)
8、系。(占用連續(xù)的存儲(chǔ)單元),順序存儲(chǔ)結(jié)構(gòu),鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)都相同, 但運(yùn)算不同, 則數(shù)據(jù)結(jié)構(gòu)不同. 例如, 棧與隊(duì)列對(duì)于一種數(shù)據(jù)結(jié)構(gòu), 常見(jiàn)的運(yùn)算插入刪除修改查找排序,數(shù)據(jù)的運(yùn)算,,,數(shù)據(jù)的邏輯結(jié)構(gòu),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)的運(yùn)算:插入、刪除、修改、查找、排序,,,,,線性結(jié)構(gòu),非線性結(jié)構(gòu),順序存儲(chǔ),鏈?zhǔn)酱鎯?chǔ),線性表,棧、隊(duì)列,串、數(shù)組,樹形結(jié)構(gòu),圖形結(jié)構(gòu),邏輯結(jié)構(gòu)唯一存儲(chǔ)結(jié)構(gòu)不唯一運(yùn)算的實(shí)現(xiàn)依賴
9、于存儲(chǔ)結(jié)構(gòu),,二、數(shù)據(jù)類型,數(shù)據(jù)類型 是一個(gè)值的集合和定義在此集合上的一組操作的總稱。,在程序設(shè)計(jì)語(yǔ)言中,每一個(gè)數(shù)據(jù)都屬于某種數(shù)據(jù)類型。類型明顯或隱含地規(guī)定了數(shù)據(jù)的取值范圍、存儲(chǔ)方式以及允許進(jìn)行的運(yùn)算??梢哉J(rèn)為,數(shù)據(jù)類型是在程序設(shè)計(jì)中已經(jīng)實(shí)現(xiàn)了的數(shù)據(jù)結(jié)構(gòu)。,C語(yǔ)言: 基本數(shù)據(jù)類型: char int float double void 構(gòu)造數(shù)據(jù)類型:數(shù)組、結(jié)構(gòu)體、共用體、文件,三、抽象數(shù)據(jù)類型 (Abstract D
10、ata Type 簡(jiǎn)稱ADT),是指一個(gè)數(shù)學(xué)模型以及定義在此數(shù)學(xué)模型上的一組操作。,抽象數(shù)據(jù)類型實(shí)際上就是對(duì)該數(shù)據(jù)結(jié)構(gòu)的定義。因?yàn)樗x了一個(gè)數(shù)據(jù)的邏輯結(jié)構(gòu)以及在此結(jié)構(gòu)上的一組操作。,ADT 有兩個(gè)重要特征:,數(shù)據(jù)抽象,用ADT描述程序處理的實(shí)體時(shí),強(qiáng)調(diào)的是其本質(zhì)的特征、其所能完成的功能以及它和外部用戶的接口(即外界使用它的方法)。,數(shù)據(jù)封裝,將實(shí)體的外部特性和其內(nèi)部實(shí)現(xiàn)細(xì)節(jié)分離,并且對(duì)外部用戶隱藏其內(nèi)部實(shí)現(xiàn)細(xì)節(jié)。,抽象數(shù)據(jù)類型可以用以
11、下的三元組來(lái)表示: ADT = (D,S,P) 數(shù)據(jù)對(duì)象 D上的關(guān)系集 D上的操作集,ADT抽象數(shù)據(jù)類型名{ 數(shù)據(jù)對(duì)象: 數(shù)據(jù)關(guān)系: 基本操作 : } ADT抽象數(shù)據(jù)類型名,ADT常用定義格式,,,,抽象數(shù)據(jù)類型的描述方法,例如,抽象數(shù)據(jù)類型復(fù)數(shù)的定義:,數(shù)據(jù)對(duì)象: D={e1,e2|e
12、1,e2∈RealSet } 數(shù)據(jù)關(guān)系: R1={ | e1是復(fù)數(shù)的實(shí)數(shù)部分 | e2 是復(fù)數(shù)的虛數(shù)部分 },ADT Complex {,基本操作:,AssignComplex( &Z, v1, v2 )操作結(jié)果:構(gòu)造復(fù)數(shù) Z,其實(shí)部和虛部 分別被賦以參數(shù) v1 和 v2 的值。,DestroyComplex( &Z)操作結(jié)果:復(fù)數(shù)Z
13、被銷毀。,GetReal( Z, &realPart )初始條件:復(fù)數(shù)已存在。操作結(jié)果:用realPart返回復(fù)數(shù)Z的實(shí)部值。,GetImag( Z, &ImagPart )初始條件:復(fù)數(shù)已存在。操作結(jié)果:用ImagPart返回復(fù)數(shù)Z的虛部值。,Add( z1,z2, &sum )初始條件:z1, z2是復(fù)數(shù)。操作結(jié)果:用sum返回兩個(gè)復(fù)數(shù)z1, z2 的和值。,} ADT Complex,假設(shè):z1
14、和z2是上述定義的復(fù)數(shù),則 Add(z1, z2, z3) 操作的結(jié)果,z3 = z1 + z2,即為用戶企求的結(jié)果,抽象數(shù)據(jù)類型的表示與實(shí)現(xiàn),抽象數(shù)據(jù)類型可以通過(guò)固有的數(shù)據(jù)類型(如整型、實(shí)型、字符型等)來(lái)表示和實(shí)現(xiàn)。,教材中用的是類C語(yǔ)言(介于偽碼和C語(yǔ)言之間)作為描述工具,但上機(jī)時(shí)要用具體語(yǔ)言實(shí)現(xiàn),如C或C++等,例如,對(duì)前面定義的復(fù)數(shù)。,typedef struct { float realpart; float
15、 imagpart;}complex;,// -----存儲(chǔ)結(jié)構(gòu)的定義,// -----基本操作的實(shí)現(xiàn),void add( complex z1, complex z2, complex &sum ) { // 以 sum 返回兩個(gè)復(fù)數(shù) z1, z2 的和 sum.realpart = z1.realpart + z2.realpart;
16、 sum.imagpart = z1.imagpart + z2.imagpart;},{ 其它省略 },,1.3 算法和算法的衡量,一、算法,二、算法設(shè)計(jì)的原則,三、算法效率的衡量方法和準(zhǔn)則,四、算法的描述,算法是對(duì)特定問(wèn)題求解步驟的一種描述,是指令的有限序列。,一、算法,計(jì)算機(jī)對(duì)數(shù)據(jù)的操作可以分為數(shù)值性和非數(shù)值性兩種類型。在數(shù)值性操作中主要進(jìn)行的是算術(shù)運(yùn)算;而在非數(shù)值性操作中主要進(jìn)行的是檢索、排序、插入、刪除等等。,設(shè)計(jì)算
17、法的基本過(guò)程,通過(guò)對(duì)問(wèn)題進(jìn)行詳細(xì)地分析,抽象出相應(yīng)的數(shù)學(xué)模型;確定使用的數(shù)據(jù)結(jié)構(gòu),并在此基礎(chǔ)上設(shè)計(jì)對(duì)此數(shù)據(jù)結(jié)構(gòu)實(shí)施各種操作的算法;選用某種語(yǔ)言將算法轉(zhuǎn)換成程序;調(diào)試并運(yùn)行這些程序。例如:復(fù)數(shù)運(yùn)算的實(shí)現(xiàn),一個(gè)算法必須滿足以下五個(gè)重要特性:,1.有窮性: 一個(gè)算法必須總是在執(zhí)行有窮步之后結(jié)束, 且每一步都在有窮時(shí)間內(nèi)完成。2.確定性:算法的每一步必須是確切定義的, 不能產(chǎn)生二義性 3
18、.可行性:算法是能夠?qū)崿F(xiàn)的.即算法描述的操作都是可以 通過(guò)已經(jīng)實(shí)現(xiàn)的基本運(yùn)算執(zhí)行有限次來(lái)實(shí)現(xiàn)的。4.有輸入:一個(gè)算法有零個(gè)或多個(gè)輸入 5.有輸出:一個(gè)算法有零個(gè)或多個(gè)輸出,二、算法設(shè)計(jì)的原則,設(shè)計(jì)算法時(shí),通常應(yīng)考慮達(dá)到以下目標(biāo):,1.正確性:,2. 可讀性:,3.健壯性:,4.高效率與低存儲(chǔ)量需求,效率指的是算法執(zhí)行的時(shí)間;存儲(chǔ)量需求指算法執(zhí)行過(guò)程中所需要的最大存儲(chǔ)空間。,標(biāo)準(zhǔn):通常對(duì)于精心選擇的典型、苛刻而
19、帶有刁難性的幾組輸入數(shù)據(jù)程序能夠得出滿足規(guī)格說(shuō)明要求的結(jié)果。,算法應(yīng)易于閱讀和理解,以便于調(diào)試和修改。,算法應(yīng)具有容錯(cuò)處理。當(dāng)輸入數(shù)據(jù)非法時(shí),算法能做出適當(dāng)?shù)姆磻?yīng)和進(jìn)行特殊處理,而不是產(chǎn)年莫名其妙的輸出結(jié)果。,三、算法效率的衡量方法和準(zhǔn)則,通常有兩種衡量算法效率的方法:,事后統(tǒng)計(jì)法:,事前分析估算法,1.事后統(tǒng)計(jì):利用計(jì)算機(jī)內(nèi)的計(jì)時(shí)功能,不同算法的程序可以用一組或多組相同的統(tǒng)計(jì)數(shù)據(jù)區(qū)分,缺點(diǎn):?必須先運(yùn)行依據(jù)算法編制的程序?所得時(shí)間
20、統(tǒng)計(jì)量依賴于硬件、軟件等環(huán)境因素,掩蓋算法本身的優(yōu)劣,2.事前分析估計(jì):一個(gè)高級(jí)語(yǔ)言程序在計(jì)算機(jī)上運(yùn)行所消耗的時(shí)間取決于: ?依據(jù)的算法選用何種策略 ?問(wèn)題的規(guī)模 ?程序語(yǔ)言 ?編譯程序產(chǎn)生機(jī)器代碼質(zhì)量 ?機(jī)器執(zhí)行指令速度,同一個(gè)算法用不同的語(yǔ)言、不同的編譯程序、在不同的計(jì)算機(jī)上運(yùn)行,效率均不同,———使用絕對(duì)時(shí)間單位衡量算法效率不合適,算法 = 控制結(jié)構(gòu) + 基本操作,算法的執(zhí)行時(shí)間
21、 =基本操作(i)的執(zhí)行次數(shù)×基本操作(i)的執(zhí)行時(shí)間,算法的執(zhí)行時(shí)間 與 基本操作執(zhí)行次數(shù)之和 成正比,如何估算算法的時(shí)間復(fù)雜度?,從算法中選取一種對(duì)于所研究的問(wèn)題來(lái)說(shuō)是 基本操作 的原操作,以該基本操作 在算法中重復(fù)執(zhí)行的次數(shù) 作為算法運(yùn)行時(shí)間的衡量準(zhǔn)則。,算法中基本操作(循環(huán))重復(fù)執(zhí)行的次數(shù)是問(wèn)題規(guī)模n的某個(gè)函數(shù)f(n),它是一個(gè)算法運(yùn)行時(shí)間的相對(duì)量度,算法的時(shí)間量度記作: T(n)
22、=O(f(n)),時(shí)間復(fù)雜度的漸進(jìn)表示法,它表示隨著問(wèn)題規(guī)模 n 的增長(zhǎng),算法執(zhí)行時(shí)間的增長(zhǎng)率和 f(n) 的增長(zhǎng)率相同,T(n) 稱作算法的(漸近)時(shí)間復(fù)雜度。,例1:,{++x;s=0;},1,O(1),for(i=1;i<=n;++i){++x;s+=x;},n,O(n),for(j=1;j<=n;++j)for(k=1;k<=n;++k){++x;s+=x;},n*n,O(n2),例2:,例3:,頻度,時(shí)
23、間復(fù)雜度,程序,,,,,,,,時(shí)間復(fù)雜度的計(jì)算:,例4:,void mult(int a[], int b[], int& c[] ) { // 以二維數(shù)組存儲(chǔ)矩陣元素,c 為 a 和 b 的乘積 for (i=1; i<=n; ++i) for (j=1; j<=n; ++j) { c[i,j] = 0; for (k=1; k<=n; ++k)
24、 c[i,j] += a[i,k]*b[k,j];//語(yǔ)句的頻度: 重復(fù)執(zhí)行的次數(shù):n3; } //for} //mult,基本操作: 乘法操作,時(shí)間復(fù)雜度: O(n3),T( n ) = O ( n 3)即:矩陣乘法的運(yùn)算量和問(wèn)題的規(guī)模n的立方是同一個(gè)量級(jí),,,,,x = 0; y = 0;for ( int k = 0; k < n; k ++ ) x ++;for ( in
25、t i = 0; i < n; i++ ) for ( int j = 0; j < n; j++ ) y ++;,T1(n) = O(1),T2(n) = O(n),T3(n) = O(n2),T(n) = T1(n)+T2(n)+T3(n) = O( max( 1, n, n2 ) ) = O(n2),例5:,void exam ( float x[ ][ ], int m, int n
26、 ) { float sum [ ]; for ( int i = 0; i < m; i++ ) { //x中各行數(shù)據(jù)累加 sum[i] = 0.0; for ( int j = 0; j < n; j++ ) sum[i] += x[i][j]; //關(guān)鍵操作 } for ( i = 0
27、; i < m; i++ ) //打印各行數(shù)據(jù)和 cout << i << “ : ” <<sum [i] << endl; //關(guān)鍵操作 },漸進(jìn)時(shí)間復(fù)雜度為 O(max (m*n, m)),算法的時(shí)間復(fù)雜度是由嵌套最深層語(yǔ)句的頻度決定的,例6:,for( i=1; i<=n; i++) for (j=1; j<=i; j++)
28、 for (k=1; k<=j; k++) x=x+1;,語(yǔ)句頻度 =,例7:,例8:分析以下程序段的時(shí)間復(fù)雜度,i=1; ①while(i<=n) i=i*2; ②,即f(n)≤log2n,取最大值f(n)=log2n,所以該程序段的時(shí)間復(fù)雜度T(n) =O( log2n),【例9】
29、順序查找,在數(shù)組a[i]中查找值等于e的元素,返回其所在位置。 for (i=0;i< n;i++) if (a[i]==e) return i+1; return 0;,有的情況下,算法中基本操作重復(fù)執(zhí)行的次數(shù)還隨問(wèn)題的輸入數(shù)據(jù)集不同而不同,最好情況:1次 最壞情況:n平均時(shí)間復(fù)雜度為:O(n),時(shí)間復(fù)雜度T(n)按數(shù)量級(jí)遞增順序?yàn)椋?,復(fù)雜度高,復(fù)雜度低,指數(shù)時(shí)間的關(guān)系為: O(2
30、n)<O(n!)<O(nn),當(dāng)n取得很大時(shí),指數(shù)時(shí)間算法和多項(xiàng)式時(shí)間算法在所需時(shí)間上非常懸殊,空間復(fù)雜度:算法所需存儲(chǔ)空間的度量,記作: S(n)=O(g(n)) 其中n為問(wèn)題的規(guī)模(或大小),算法要占據(jù)的空間算法本身要占據(jù)的空間輸入數(shù)據(jù)所占空間算法要使用的輔助空間若輸入數(shù)據(jù)所占空間和算法無(wú)關(guān),則只需要分析除輸入和程序之外的輔助變量所占額外空間。,漸進(jìn)空間復(fù)雜度,一個(gè)算法可以用自然語(yǔ)
31、言、數(shù)字語(yǔ)言或約定的符號(hào)來(lái)描述,也可以用計(jì)算機(jī)高級(jí)程序語(yǔ)言來(lái)描述,如Pascal語(yǔ)言、C語(yǔ)言或偽代碼等。,本書選用C語(yǔ)言作為描述算法的工具。,四、算法的描述,1.預(yù)定義常量和類型:,簡(jiǎn)單說(shuō)明C語(yǔ)言的語(yǔ)法結(jié)構(gòu):,typedef int ElemType;typedef struct Lnode{ElemType data;struct Lnode *next;}Lnode,*LinkList;,//函數(shù)結(jié)果狀態(tài)代碼#defi
32、ne OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 // Status是函數(shù)返回值類型,其值是函數(shù)結(jié)果狀態(tài)代碼。 typedef int Status;,函數(shù)類型 函數(shù)名(參數(shù)表){ //算法說(shuō)明 語(yǔ)句組 }/*函數(shù)名*/,2.函數(shù)的形式,簡(jiǎn)單賦值:〈變量名〉=〈表達(dá)式〉,它表示將表達(dá)式的值賦給左邊的變量;
33、 〈變量〉++,它表示變量加1后賦值給變量; 〈變量〉--,它表示變量減1后賦值給變量;,3.賦值語(yǔ)句,成組賦值:1.(, ,…,)= (,,…,);2.[下標(biāo)1…下標(biāo)2]=[下標(biāo)1…下標(biāo)2],串聯(lián)賦值:〈變量1〉=〈變量2〉=〈變量3〉=…=〈變量k〉= 〈表達(dá)式〉;條件賦值:〈變量名〉=〈條件表達(dá)式〉?〈表達(dá)式1〉:〈表達(dá)式2〉;交換賦值:〈變量1〉←→〈變量2〉,表示變量1和變
34、量2互換;,情況語(yǔ)句: switch (表達(dá)式) { case 值1;語(yǔ)句組1;break; case 值2;語(yǔ)句組2;break; …… case 值n;語(yǔ)句組n; break; [default:語(yǔ)句組;break;] },4.條件選擇語(yǔ)句,if (〈表達(dá)式〉) 語(yǔ)句;,if (〈表達(dá)式〉)語(yǔ)句1;else 語(yǔ)句2;,⑴ for語(yǔ)句
35、 for(表達(dá)式1;表達(dá)式2;表達(dá)式3) { 循環(huán)體語(yǔ)句;},5.循環(huán)語(yǔ)句,⑵ while語(yǔ)句,while (條件表達(dá)式) { 循環(huán)體語(yǔ)句;},⑶ do-while語(yǔ)句,do { 循環(huán)體語(yǔ)句 } while(條件表達(dá)式),輸入語(yǔ)句:用函數(shù)scanf實(shí)現(xiàn),當(dāng)數(shù)據(jù)為字符時(shí),用getchar函數(shù)實(shí)現(xiàn)。輸出語(yǔ)句:用printf函數(shù)實(shí)現(xiàn),當(dāng)要輸出字符數(shù)據(jù)時(shí),用putchar函數(shù)實(shí)現(xiàn)。,6.輸入、輸出語(yǔ)句,
36、(1)return表達(dá)式或return:用于函數(shù)結(jié)束。(2)break語(yǔ)句:可用在循環(huán)語(yǔ)句或case語(yǔ)句中結(jié)束循環(huán)過(guò)程或跳出情況語(yǔ)句。(3)exit語(yǔ)句:表示出現(xiàn)異常情況時(shí),控制退出語(yǔ)句。8.注釋形式 可用 /*字符串*/ 單行注釋 或 //文字序列。,7.其他一些語(yǔ)句,如: max函數(shù),用于求一個(gè)或幾個(gè)表達(dá)式中的最大值; min函數(shù),用于求一個(gè)或幾個(gè)表達(dá)式中的最小值; abs函數(shù),用于求表
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ù)結(jié)構(gòu)c語(yǔ)言版
- 《數(shù)據(jù)結(jié)構(gòu)(c語(yǔ)言版)》復(fù)習(xí)重點(diǎn)
- 數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言版期末題庫(kù)
- 數(shù)據(jù)結(jié)構(gòu)(c語(yǔ)言版)實(shí)驗(yàn)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言版課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言版期末復(fù)習(xí)匯總
- 習(xí)題課---數(shù)據(jù)結(jié)構(gòu)(c語(yǔ)言版)
- 數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言版試題大全(含答案)
- 數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言版試題大全(含答案)
- 迷宮(c語(yǔ)言版)--數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)(c語(yǔ)言版)程海英-習(xí)題答案
- 數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言版第2版課后習(xí)題答案
- 數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言版題集答案打印版
- 數(shù)據(jù)結(jié)構(gòu)(c語(yǔ)言版)(第2版)課后習(xí)題答案
- 數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言版第2版課后習(xí)題答案
- 數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言版第八章 查找
- 數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言版嚴(yán)蔚敏課后習(xí)題答案
- 數(shù)據(jù)結(jié)構(gòu)課后習(xí)題答案_(c語(yǔ)言版_嚴(yán)蔚敏)
- 數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言版嚴(yán)蔚敏課后習(xí)題答案
- 數(shù)據(jù)結(jié)構(gòu)c語(yǔ)言版第2版習(xí)題答案—嚴(yán)蔚敏
評(píng)論
0/150
提交評(píng)論