第3章順序結(jié)構程序設計_第1頁
第3章順序結(jié)構程序設計_第2頁
第3章順序結(jié)構程序設計_第3頁
第3章順序結(jié)構程序設計_第4頁
第3章順序結(jié)構程序設計_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第3章章 順序結(jié)構程序設計順序結(jié)構程序設計3.1 三種基本控制結(jié)構和算法三種基本控制結(jié)構和算法(1)順序結(jié)構)順序結(jié)構 這是最簡單的結(jié)構,其特點是,每一條語句按順序執(zhí)行,每一這是最簡單的結(jié)構,其特點是,每一條語句按順序執(zhí)行,每一條語句只執(zhí)行一遍,不重復執(zhí)行,也沒有語句不執(zhí)行。條語句只執(zhí)行一遍,不重復執(zhí)行,也沒有語句不執(zhí)行。 如下圖所示,虛線框內(nèi)是一個順序結(jié)構,其中如下圖所示,虛線框內(nèi)是一個順序結(jié)構,其中A和和B兩個框是順兩個框是順序執(zhí)行的。序執(zhí)行的。 b a A B (2)選擇結(jié)構)選擇結(jié)構 這種結(jié)構也稱為分支結(jié)構,其特點是,每一條執(zhí)行了的語句都只執(zhí)行這種結(jié)構也稱為分支結(jié)構,其特點是,每一條

2、執(zhí)行了的語句都只執(zhí)行一遍,不重復執(zhí)行,但有語句不執(zhí)行。一遍,不重復執(zhí)行,但有語句不執(zhí)行。 如下圖所示,虛線框內(nèi)是一個選擇結(jié)構,其中必有一個判斷框,執(zhí)行如下圖所示,虛線框內(nèi)是一個選擇結(jié)構,其中必有一個判斷框,執(zhí)行流程根據(jù)判斷條件流程根據(jù)判斷條件c的成立與否,選擇執(zhí)行其中的一路分支。(的成立與否,選擇執(zhí)行其中的一路分支。(b)所示的)所示的是特殊的選擇結(jié)構,即一路為空的選擇結(jié)構。這種選擇結(jié)構中,當是特殊的選擇結(jié)構,即一路為空的選擇結(jié)構。這種選擇結(jié)構中,當c條件條件成立時,執(zhí)行成立時,執(zhí)行A操作,然后脫離選擇結(jié)構;如果操作,然后脫離選擇結(jié)構;如果c條件不成立,則直接脫條件不成立,則直接脫離選擇結(jié)構。

3、離選擇結(jié)構。 b 不成立 b a 不成立 成立 c A B a 成立 c A (a) (b) (3)循環(huán)結(jié)構)循環(huán)結(jié)構 這種結(jié)構也稱為重復結(jié)構,其特點是,循環(huán)體在條件滿足的情況下,可這種結(jié)構也稱為重復結(jié)構,其特點是,循環(huán)體在條件滿足的情況下,可反復執(zhí)行。如下圖所示,虛線框內(nèi)是一個循環(huán)結(jié)構。循環(huán)結(jié)構有兩種形式:反復執(zhí)行。如下圖所示,虛線框內(nèi)是一個循環(huán)結(jié)構。循環(huán)結(jié)構有兩種形式:l當型循環(huán)。如圖(當型循環(huán)。如圖(a)所示。)所示。l直到型循環(huán)。如圖(直到型循環(huán)。如圖(b)所示。)所示。3.1.2 算法算法 任何計算問題的求解中,都包含按照特定順序去執(zhí)行的一系列動作。解任何計算問題的求解中,都包含按照

4、特定順序去執(zhí)行的一系列動作。解決問題的過程稱為算法,它確定了執(zhí)行的動作和動作執(zhí)行的順序。決問題的過程稱為算法,它確定了執(zhí)行的動作和動作執(zhí)行的順序。 例如,讀入例如,讀入20個整數(shù),統(tǒng)計并輸出其中為個整數(shù),統(tǒng)計并輸出其中為0、正數(shù)和負數(shù)的個數(shù)。對應、正數(shù)和負數(shù)的個數(shù)。對應的求解算法如下:的求解算法如下: 定義若干變量定義若干變量; 重復重復20次次輸入一個整數(shù)輸入一個整數(shù)n;若為若為0,zeros增增1,若為偶數(shù),若為偶數(shù)evens增增1,若為奇數(shù),若為奇數(shù),odds增增1; 輸出輸出zeros、evens和和odds的值的值;將該算法轉(zhuǎn)換成的程序如下:將該算法轉(zhuǎn)換成的程序如下:3.2 順序執(zhí)行

5、語句順序執(zhí)行語句1. 表達式語句表達式語句 在表達式的后面跟一個分號就構成了一個表達式語句,最常見的就是賦在表達式的后面跟一個分號就構成了一個表達式語句,最常見的就是賦值語句,它是由一個賦值表達式后跟一個分號形成,程序中的很多計算都值語句,它是由一個賦值表達式后跟一個分號形成,程序中的很多計算都由賦值語句完成。例如:由賦值語句完成。例如: n=10;/*將將10賦值給賦值給n變量變量*/ x=2*x;/*將變量將變量x的值乘以的值乘以2的結(jié)果賦給變量的結(jié)果賦給變量x*/事實上,任何表達式都可以加上分號而成為語句。事實上,任何表達式都可以加上分號而成為語句。2. 函數(shù)調(diào)用語句函數(shù)調(diào)用語句 函數(shù)調(diào)

6、用語句由函數(shù)調(diào)用加上分號組成的,如:函數(shù)調(diào)用語句由函數(shù)調(diào)用加上分號組成的,如: printf(%f,a);/*輸出實型變量輸出實型變量a之值之值*/ 函數(shù)是一段程序,這段程序可能存在于函數(shù)庫中,也可能由用戶自己定函數(shù)是一段程序,這段程序可能存在于函數(shù)庫中,也可能由用戶自己定義的,當調(diào)用函數(shù)時會轉(zhuǎn)到該段程序去執(zhí)行。函數(shù)調(diào)用是以語句的形式出現(xiàn)義的,當調(diào)用函數(shù)時會轉(zhuǎn)到該段程序去執(zhí)行。函數(shù)調(diào)用是以語句的形式出現(xiàn)的,它與前后語句之間的關系是順序執(zhí)行的。的,它與前后語句之間的關系是順序執(zhí)行的。3. 空語句空語句 空語句是指只有一個分號的語句,即:空語句是指只有一個分號的語句,即: ; 空語句也是一個語句,

7、雖然它不產(chǎn)生任何動作。在程序中,如果沒有什空語句也是一個語句,雖然它不產(chǎn)生任何動作。在程序中,如果沒有什么操作需要執(zhí)行,但從語句的結(jié)構上來說,必須有一個語句時,可以書寫一么操作需要執(zhí)行,但從語句的結(jié)構上來說,必須有一個語句時,可以書寫一個空語句。個空語句。4. 復合語句復合語句 用大括號用大括號把一些語句括起來,對外看作一個語句,就構成了一個復合把一些語句括起來,對外看作一個語句,就構成了一個復合語句。例如:語句。例如: 復合語句可以出現(xiàn)在允許語句出現(xiàn)的任何地方,在選擇結(jié)構和循環(huán)結(jié)構復合語句可以出現(xiàn)在允許語句出現(xiàn)的任何地方,在選擇結(jié)構和循環(huán)結(jié)構中都會看到復合語句的用途。中都會看到復合語句的用途

8、。3.3 格式化輸出函數(shù)格式化輸出函數(shù)printf() C沒有專門的輸入輸出語句,其操作是通過調(diào)用沒有專門的輸入輸出語句,其操作是通過調(diào)用C的庫函數(shù)來實的庫函數(shù)來實現(xiàn)的。其中現(xiàn)的。其中printf()函數(shù)是最常用的輸出函數(shù),它的作用是向計算機系函數(shù)是最常用的輸出函數(shù),它的作用是向計算機系統(tǒng)默認的輸出設備(一般指顯示器)輸出一個或多個任意指定類型的統(tǒng)默認的輸出設備(一般指顯示器)輸出一個或多個任意指定類型的數(shù)據(jù)。數(shù)據(jù)。3.3.1 printf()函數(shù)的一般格式函數(shù)的一般格式printf()函數(shù)的原型如下:函數(shù)的原型如下: int printf(格式控制格式控制,輸出項表輸出項表);例如:例如:

9、printf(n=%3d,f=%5.1fn,c=%c,n,f,c);其中,其中,“格式控制格式控制”是用雙引號括起來的字符串,可以包含下列是用雙引號括起來的字符串,可以包含下列3種字符:種字符: (l)格式說明符:由)格式說明符:由“%”和格式字符組成,例如,和格式字符組成,例如,“%3d”、“%5.1f”和和“%c”等,這些字符用來控制數(shù)據(jù)的輸出格式。等,這些字符用來控制數(shù)據(jù)的輸出格式。 (2)轉(zhuǎn)義字符:這些字符通常用來控制光標的位置,例如)轉(zhuǎn)義字符:這些字符通常用來控制光標的位置,例如“t”等。等。 (3)普通字符:除格式說明符和轉(zhuǎn)義字符之外的其他字符,這些字符原)普通字符:除格式說明符和

10、轉(zhuǎn)義字符之外的其他字符,這些字符原樣輸出,例如上面例子中的樣輸出,例如上面例子中的“n=”、“f=”等。等。3.3.2 格式說明符格式說明符 格式說明符用于指定對應輸出項的輸出格式,其一般形式如下:格式說明符用于指定對應輸出項的輸出格式,其一般形式如下: %修飾符修飾符格式字符格式字符1. 格式字符格式字符格式字符格式字符說說 明明c輸出一個字符輸出一個字符d或或i輸出帶符號的十進制整數(shù)(不輸出正號)輸出帶符號的十進制整數(shù)(不輸出正號)o以八進制無符號形式輸出整數(shù)(不輸出前導符以八進制無符號形式輸出整數(shù)(不輸出前導符0)x或或X以十六進制無符號形式輸出整數(shù)(不輸出前導符以十六進制無符號形式輸出

11、整數(shù)(不輸出前導符0 x或或0X)。對于)。對于0 x用用abcdef輸輸出;對于出;對于0X,用,用ABCDEF輸出。輸出。u按無符號的十進制形式輸出整數(shù)。按無符號的十進制形式輸出整數(shù)。f以以-mmm.ddd帶小數(shù)點的形式輸出單精度和雙精度數(shù),帶小數(shù)點的形式輸出單精度和雙精度數(shù),d的個數(shù)由精度指定。的個數(shù)由精度指定。隱含的精度隱含的精度6,若指定的精度為,若指定的精度為0,小數(shù)部分(包括小數(shù)點)都不輸出。,小數(shù)部分(包括小數(shù)點)都不輸出。e或或E以以-m.ddddddexx或或-m.ddddddExx的數(shù)形式輸出單精度和雙精度數(shù)。的數(shù)形式輸出單精度和雙精度數(shù)。d的的個數(shù)由精度指定,隱含的精度

12、為個數(shù)由精度指定,隱含的精度為6,若指定的精度為,若指定的精度為0,小數(shù)部分(包括小數(shù)點),小數(shù)部分(包括小數(shù)點)都不輸出。用都不輸出。用E時,指數(shù)以大寫時,指數(shù)以大寫“E”表示。表示。g或或G由系統(tǒng)決定采用由系統(tǒng)決定采用%f格式還是采用格式還是采用%e格式,以使輸出寬度最小。不輸出無意義格式,以使輸出寬度最小。不輸出無意義的的0。用。用G時,若以指數(shù)形式輸出,則指數(shù)以大寫表示。時,若以指數(shù)形式輸出,則指數(shù)以大寫表示。s輸出字符串中的字符,直到遇到輸出字符串中的字符,直到遇到0(空字符),或者輸出由寬度指定的字符數(shù)。(空字符),或者輸出由寬度指定的字符數(shù)。2. 長整型修飾符長整型修飾符長整型修

13、飾符長整型修飾符“l(fā)”加在加在“%”和格式字符之間,用于輸出長整型數(shù)據(jù):和格式字符之間,用于輸出長整型數(shù)據(jù):l%ld:以十進制輸出長整型數(shù)據(jù):以十進制輸出長整型數(shù)據(jù)l%lo:以八進制輸出長整型數(shù)據(jù):以八進制輸出長整型數(shù)據(jù)l%lx:以十六進制輸出長整型數(shù)據(jù):以十六進制輸出長整型數(shù)據(jù)l%lu:輸出無符號長整型數(shù)據(jù):輸出無符號長整型數(shù)據(jù)例如:例如:long a=32;printf(%ld,%lo,%lxn,a,a,a);/*輸出為:輸出為:32,40,20*/3. 寬度和精度修飾寬度和精度修飾 可以在可以在“%”和格式字符之間加入形如和格式字符之間加入形如“m.n”(m、n均為整數(shù))的修飾。均為整數(shù)

14、)的修飾。其中,其中,m為寬度修飾,為寬度修飾,n為精度修飾。為精度修飾。 寬度修飾用來指定數(shù)據(jù)的輸出寬度。寬度修飾用來指定數(shù)據(jù)的輸出寬度。精度修飾對不同的格式字符,作用不同:對于格式字符精度修飾對不同的格式字符,作用不同:對于格式字符f,用來指定輸出小數(shù),用來指定輸出小數(shù)位的位數(shù);對于格式字符位的位數(shù);對于格式字符e,用來指定輸出有效數(shù)字的位數(shù);對于格式字符,用來指定輸出有效數(shù)字的位數(shù);對于格式字符d,用來指定必須輸出的數(shù)字的個數(shù)。例如:用來指定必須輸出的數(shù)字的個數(shù)。例如:4. 左對齊修飾左對齊修飾 在指定了寬度修飾時,如果指定寬度小于數(shù)據(jù)需要的實際寬度,則數(shù)據(jù)在指定了寬度修飾時,如果指定寬

15、度小于數(shù)據(jù)需要的實際寬度,則數(shù)據(jù)左邊補空格,補夠指定的寬度,這種對齊方式稱為左邊補空格,補夠指定的寬度,這種對齊方式稱為“右對齊右對齊”。 也可以在數(shù)據(jù)的右邊補空格來補夠指定的寬度,這種對齊方式稱為也可以在數(shù)據(jù)的右邊補空格來補夠指定的寬度,這種對齊方式稱為“左左對齊對齊”。指定左對齊的時候,使用左對齊修飾符。指定左對齊的時候,使用左對齊修飾符“-”,例如:,例如: 3.3.3 printf()函數(shù)的使用說明函數(shù)的使用說明 調(diào)用調(diào)用printf()函數(shù)輸出數(shù)據(jù)時,應注意以下幾點:函數(shù)輸出數(shù)據(jù)時,應注意以下幾點: (l)printf()函數(shù)可以輸出常量、變量和表達式的值。但格式控制字符串函數(shù)可以輸

16、出常量、變量和表達式的值。但格式控制字符串中的格式指示符必須按從左到右的順序,與輸出項表中的每個數(shù)據(jù)一一對中的格式指示符必須按從左到右的順序,與輸出項表中的每個數(shù)據(jù)一一對應,否則出錯。應,否則出錯。 (2)格式字符)格式字符x、e、g可以用小寫字母,也可以用大寫字母。使用大寫可以用小寫字母,也可以用大寫字母。使用大寫字母時,輸出數(shù)據(jù)中包含的字母也大寫。除了字母時,輸出數(shù)據(jù)中包含的字母也大寫。除了x、e、g格式字符外,其他格格式字符外,其他格式字符必須用小寫字母,例如,式字符必須用小寫字母,例如,“%f”不能寫成不能寫成“%F”。 (3)格式字符緊跟在)格式字符緊跟在“%”后面就作為格式字符,否

17、則將作為普通字符后面就作為格式字符,否則將作為普通字符使用(原樣輸出)。使用(原樣輸出)。3.4 格式化輸入函數(shù)格式化輸入函數(shù)scanf()3.4.1 scanf()函數(shù)的一般格式函數(shù)的一般格式 scanf()函數(shù)的的原型如下:函數(shù)的的原型如下: int scanf(格式控制格式控制,輸入項地址表輸入項地址表);例如:例如: scanf(%d%f,&i,&f); 其中,其中,“格式控制格式控制”可以包含三種類型的字符:可以包含三種類型的字符: (1)格式指示符:用來指定數(shù)據(jù)的輸入格式)格式指示符:用來指定數(shù)據(jù)的輸入格式 (2)空白字符:包括空格、跳格鍵和回車鍵,通常作為相鄰兩個

18、輸入)空白字符:包括空格、跳格鍵和回車鍵,通常作為相鄰兩個輸入數(shù)據(jù)的缺省分隔符數(shù)據(jù)的缺省分隔符 (3)非空白字符:又稱普通字符,在輸入有效數(shù)據(jù)時,必須原樣一起輸)非空白字符:又稱普通字符,在輸入有效數(shù)據(jù)時,必須原樣一起輸入入3.4.2 格式指示符格式指示符格式指示符的一般形式如下:格式指示符的一般形式如下:%修飾符修飾符格式字符格式字符格式字符格式字符說說 明明c輸入單個字符。輸入單個字符。d,i輸入有符號的十進制整數(shù)。輸入有符號的十進制整數(shù)。o輸入無符號的八進制整數(shù)。輸入無符號的八進制整數(shù)。x,X輸入無符號的十六進制整數(shù)。輸入無符號的十六進制整數(shù)。u輸入無符號的十進制整數(shù)。輸入無符號的十進制

19、整數(shù)。f輸入實數(shù),可以用小數(shù)形式或指數(shù)形式輸入。輸入實數(shù),可以用小數(shù)形式或指數(shù)形式輸入。e,E,g,G與與f的作用相同,的作用相同,e與與f,g可以互相替換。可以互相替換。s輸入字符串,將字符串送到一個字符數(shù)組中,在輸入時以輸入字符串,將字符串送到一個字符數(shù)組中,在輸入時以非空白字符開始,以第一個空白字符結(jié)束,字符串以串結(jié)非空白字符開始,以第一個空白字符結(jié)束,字符串以串結(jié)束標志束標志0作為其最后一個字符。作為其最后一個字符。1. 寬度修飾寬度修飾 寬度修飾用來指定輸入數(shù)據(jù)所占列數(shù),例如:寬度修飾用來指定輸入數(shù)據(jù)所占列數(shù),例如: scanf(%3c%3c,&ch1,&ch2);假

20、設輸入假設輸入“abcdefg ”,則系統(tǒng)將讀取的,則系統(tǒng)將讀取的“abc”(開頭(開頭3個字符)中的個字符)中的“a”賦給變量賦給變量ch1;將讀取的;將讀取的“def”(緊跟著的(緊跟著的3個字符)中的個字符)中的“d”賦給變量賦給變量ch2。2. 抑制修飾符抑制修飾符 抑制修飾符抑制修飾符“*”表示對應的數(shù)據(jù)讀入后,不賦給相應的變量,該變量表示對應的數(shù)據(jù)讀入后,不賦給相應的變量,該變量由下一個格式指示符輸入。例如:由下一個格式指示符輸入。例如: scanf(%2d%*2d%3d,&a,&b);假設輸入假設輸入“123456789 ”,則系統(tǒng)將讀取,則系統(tǒng)將讀取“12”并賦

21、值給并賦值給a;讀取;讀取“34”,但舍棄掉(但舍棄掉(“*”的作用);讀取的作用);讀取“567”并賦值給并賦值給b。3. 長數(shù)據(jù)修飾符長數(shù)據(jù)修飾符長數(shù)據(jù)修飾符長數(shù)據(jù)修飾符“l(fā)”加在加在“%”和格式字符之間。用于輸入長型數(shù)據(jù):和格式字符之間。用于輸入長型數(shù)據(jù):l%ld:以十進制輸入長整型數(shù)據(jù):以十進制輸入長整型數(shù)據(jù)l%lo:以八進制輸入長整型數(shù)據(jù):以八進制輸入長整型數(shù)據(jù)l%lx:以十六進制輸入長整型數(shù)據(jù):以十六進制輸入長整型數(shù)據(jù)l%lf:輸入:輸入double型數(shù)據(jù)型數(shù)據(jù)l%le:輸入:輸入double型數(shù)據(jù)型數(shù)據(jù)例如:例如: 【例【例3.3】 編寫一個程序,輸入弧度值,將弧度換算成角度值(度、分、編寫一個程序,輸入弧度值,將弧度換算成角度值(度、分、秒的形式)輸出。秒的形式)輸出。 解:設解:設x為弧度,則對應的角度為為弧度,則對應的角度為(180*x)/,其整數(shù)部分為度,余下的,其整數(shù)部分為度,余下的小數(shù)部分乘以小數(shù)部分乘以60取整數(shù)部分得到分,再將余下的小數(shù)部分乘以取整數(shù)部分得到分,再將余下的小數(shù)部分乘以60取整數(shù)部取整數(shù)部分得到秒。程序如下:分得到秒。程序如下:

溫馨提示

  • 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

提交評論