C語(yǔ)言程序設(shè)計(jì) (14)_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì) (14)_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì) (14)_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì) (14)_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì) (14)_第5頁(yè)
已閱讀5頁(yè),還剩197頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、32個(gè)關(guān)鍵字:(由系統(tǒng)定義,不能重作其它定義)auto break case char constcontinue default do double elseenum extern float for gotoif int long register returnshort signed sizeof static structswitch typedef unsigned union voidvolatile while9種操縱語(yǔ)句:if( )elsefor( )while( )dowhile( )continuebreakswitchgotoreturnll重量運(yùn)算符重量運(yùn)算符:. -:

2、. -l下標(biāo)運(yùn)算符下標(biāo)運(yùn)算符:l其它其它 :( ) - :( ) -C數(shù)據(jù)類(lèi)型根基類(lèi)型組織類(lèi)型指針類(lèi)型空類(lèi)型void定義類(lèi)型typedef數(shù)值類(lèi)型字符類(lèi)型char枚舉類(lèi)型enum整 型浮點(diǎn)型單精度型float雙精度型double短整型short長(zhǎng)整型long整型int數(shù)組結(jié)構(gòu)體struct共用體union例1.2 *求兩數(shù)之和* main( ) int a , b , sum ; *定義變量*a=123 ; b=456 ;sum= a + b ; printf (“Sum is %dn”, sum) ; Sum is 579 例1.3 求兩數(shù)之最大值 main( ) int a , b , c

3、 ; scanf (”%d,%d”, &a, &b) ; c=max(a , b) ; *調(diào)用自定義函數(shù)max * printf (“max=%dn”, c) ; int max(int x , int y) *自定義函數(shù)* int z ; if (xy) z=x ; else z=y ; return(z) ; 的的.圖圖1.5 用流程圖描述算法用流程圖描述算法NYz= yz= xx y ?最先最先輸入輸入x和和y結(jié)束結(jié)束輸出輸出z輸入輸入x、y的值的值xy T F z = x z = y輸出輸出z的值的值圖圖1.7 用用N-S結(jié)構(gòu)圖描述的算法結(jié)構(gòu)圖描述的算法第一章第一章 1

4、.1 1.1 引言引言算法的特性算法的特性(1 1)有窮性)有窮性. . (2 2)確定性)確定性. . (3 3)有效性)有效性. . (4 4)輸入)輸入. . (5 5)輸出)輸出. . 結(jié)構(gòu)化程序設(shè)計(jì)的三種根基結(jié)構(gòu)結(jié)構(gòu)化程序設(shè)計(jì)的三種根基結(jié)構(gòu):1) 次序結(jié)構(gòu)次序結(jié)構(gòu) 傳統(tǒng)流程圖傳統(tǒng)流程圖 N-S流程圖流程圖 AB最先結(jié)束其中:A、B為操縱框,可由一條或多條語(yǔ)句實(shí)現(xiàn).2) 挑選結(jié)構(gòu)(分支結(jié)構(gòu))挑選結(jié)構(gòu)(分支結(jié)構(gòu)) 傳統(tǒng)流程圖傳統(tǒng)流程圖 N-S流程圖流程圖 入口入口 出口出口ABPT FT F其中:P為分支推斷前提; A、B必有一個(gè)且只有一個(gè)被履行; A、B之一但是空操縱,用 示意. 3)

5、 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)當(dāng)型循環(huán)當(dāng)型循環(huán)先推斷后循環(huán)先推斷后循環(huán),有大概一次也不循環(huán)有大概一次也不循環(huán). 入口入口 F T PA當(dāng)P為真 A出口其中:P為循環(huán)推斷前提; A為要重復(fù)履行的操縱,稱為循環(huán)體; 直到型循環(huán)直到型循環(huán)先循環(huán)后推斷先循環(huán)后推斷,到少循環(huán)一次到少循環(huán)一次. 入口入口 F T PA A直到P為真 出口其中:P為循環(huán)推斷前提; A為要重復(fù)履行的操縱,稱為循環(huán)體;算法舉例算法舉例例例:統(tǒng)計(jì)統(tǒng)計(jì)5! (12345) 當(dāng)型循環(huán) 直到型循環(huán) 一一. . 上機(jī)環(huán)節(jié)上機(jī)環(huán)節(jié): :編譯編譯精確精確精確精確精確精確有錯(cuò)誤有錯(cuò)誤有錯(cuò)誤有錯(cuò)誤編纂編纂運(yùn)行運(yùn)行裝載裝載c程序程序編纂編纂c程序程序運(yùn)行運(yùn)行

6、c程序程序(ctrl+F9)精確精確?看結(jié)論看結(jié)論(alt+F5)運(yùn)行下一程序運(yùn)行下一程序?是是是是否否退出退出否否2.上機(jī)環(huán)上機(jī)環(huán)節(jié)流程圖節(jié)流程圖:F3F3(打開(kāi)源程序)(打開(kāi)源程序)F2F2(保留當(dāng)前源程序)(保留當(dāng)前源程序) F9F9(編譯當(dāng)前源程序)(編譯當(dāng)前源程序) CTRL+F9CTRL+F9(運(yùn)行當(dāng)前源程序)(運(yùn)行當(dāng)前源程序) ALT+F5ALT+F5(查看運(yùn)行結(jié)論)(查看運(yùn)行結(jié)論)3.編寫(xiě)、編寫(xiě)、運(yùn)行運(yùn)行C程程序時(shí)常用序時(shí)常用功能鍵功能鍵三、需要記住的三、需要記住的TCTC中部分常用功能鍵中部分常用功能鍵F1:F1:扶助扶助. . F2:F2:將當(dāng)前文件存盤(pán)將當(dāng)前文件存盤(pán). .

7、 F3:F3:裝載原有文件或給新文件命名裝載原有文件或給新文件命名. . F4:F4:程序運(yùn)行到完標(biāo)所在行程序運(yùn)行到完標(biāo)所在行. . F5:F5:放大或縮小運(yùn)動(dòng)窗口切換放大或縮小運(yùn)動(dòng)窗口切換. .F6:F6:開(kāi)或關(guān)運(yùn)動(dòng)窗口切換開(kāi)或關(guān)運(yùn)動(dòng)窗口切換. .F7:F7:單步運(yùn)行程序單步運(yùn)行程序, ,跟蹤進(jìn)入函數(shù)內(nèi)部運(yùn)行跟蹤進(jìn)入函數(shù)內(nèi)部運(yùn)行. .F8:F8:單步運(yùn)行程序單步運(yùn)行程序, ,不跟蹤進(jìn)入函數(shù)內(nèi)部不跟蹤進(jìn)入函數(shù)內(nèi)部. . 第一章第一章 1.3 C 1.3 C語(yǔ)言集成開(kāi)發(fā)環(huán)境語(yǔ)言集成開(kāi)發(fā)環(huán)境 信息類(lèi)型、運(yùn)算符與表達(dá)式信息類(lèi)型、運(yùn)算符與表達(dá)式 CHAPTER 2信息類(lèi)型、運(yùn)算符與表達(dá)式信息類(lèi)型、運(yùn)算

8、符與表達(dá)式 的信息類(lèi)型的信息類(lèi)型C C語(yǔ)言提供的信息結(jié)構(gòu)是以信息類(lèi)型形式表現(xiàn)的語(yǔ)言提供的信息結(jié)構(gòu)是以信息類(lèi)型形式表現(xiàn)的信息在內(nèi)存中存放的情況有信息類(lèi)型決意信息在內(nèi)存中存放的情況有信息類(lèi)型決意 信息的操縱要依靠運(yùn)算符實(shí)現(xiàn)信息的操縱要依靠運(yùn)算符實(shí)現(xiàn), ,而信息和運(yùn)算符共同組而信息和運(yùn)算符共同組成了表達(dá)式成了表達(dá)式. .信息類(lèi)型、運(yùn)算符與表達(dá)式信息類(lèi)型、運(yùn)算符與表達(dá)式 的信息類(lèi)型的信息類(lèi)型數(shù)組類(lèi)型數(shù)組類(lèi)型信息類(lèi)型信息類(lèi)型組織類(lèi)型組織類(lèi)型空類(lèi)型空類(lèi)型指針類(lèi)型指針類(lèi)型雙精度雙精度單精度單精度實(shí)型(浮點(diǎn)型)實(shí)型(浮點(diǎn)型)字符型字符型枚舉類(lèi)型枚舉類(lèi)型根基類(lèi)型根基類(lèi)型整型整型結(jié)構(gòu)體類(lèi)型結(jié)構(gòu)體類(lèi)型共用體類(lèi)型共用

9、體類(lèi)型3.2常量與變量常量與變量 3.2.1常量和符號(hào)常量常量和符號(hào)常量常量常量:在運(yùn)行環(huán)節(jié)中在運(yùn)行環(huán)節(jié)中,其值不能被改變的量稱為常量其值不能被改變的量稱為常量. 分類(lèi)分類(lèi):整型實(shí)型字符字符串整型實(shí)型字符字符串符號(hào)常量符號(hào)常量,用一個(gè)標(biāo)識(shí)符代表的常量用一個(gè)標(biāo)識(shí)符代表的常量. 風(fēng)俗上風(fēng)俗上,符號(hào)常量名用大寫(xiě)符號(hào)常量名用大寫(xiě),變量用小寫(xiě)變量用小寫(xiě),以示區(qū)不以示區(qū)不.1,0,123為整型常量為整型常量 4.6, 1.23為實(shí)型常量為實(shí)型常量 a, d 為字符常量為字符常量 #define PRICE 255 A=PRICE*A+6 C=PRICE+C120PRICE是標(biāo)識(shí)符是標(biāo)識(shí)符,符號(hào)常量符號(hào)常量

10、3.2.2 變變 量量變量變量:在程序運(yùn)行環(huán)節(jié)中在程序運(yùn)行環(huán)節(jié)中,其值能夠改變的量稱為變量其值能夠改變的量稱為變量.標(biāo)識(shí)符標(biāo)識(shí)符:用來(lái)標(biāo)識(shí)變量名、符號(hào)常量名、函數(shù)名、類(lèi)用來(lái)標(biāo)識(shí)變量名、符號(hào)常量名、函數(shù)名、類(lèi)型名、數(shù)組名、文件名的有效字符序列稱為標(biāo)識(shí)型名、數(shù)組名、文件名的有效字符序列稱為標(biāo)識(shí)符符. 由字母、數(shù)字和下劃線三種字符組成由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字且第一個(gè)字符必須為字母或下劃線符必須為字母或下劃線.合法的變量名似合法的變量名似: average,abd, a, s2, student_name, _init不合法的變量名不合法的變量名:M.D.John, 1a, #33

11、, ab3. C 語(yǔ)言要求對(duì)變量語(yǔ)言要求對(duì)變量“先定義先定義,后使用后使用”.3.3 整型信息整型信息 3.3.1 整型常量整型常量由一系列數(shù)字組成由一系列數(shù)字組成.也可帶有減號(hào)也可帶有減號(hào),但不使用加號(hào)但不使用加號(hào).十進(jìn)制整數(shù)十進(jìn)制整數(shù):123,-456,0八進(jìn)制整數(shù)八進(jìn)制整數(shù):以以0開(kāi)頭的信息開(kāi)頭的信息,似似:-011,0123十六進(jìn)制整數(shù)十六進(jìn)制整數(shù):以以0 x開(kāi)頭的信息開(kāi)頭的信息,似似:0 x123 整型常量的分類(lèi)依照其值的范疇而決意其類(lèi)整型常量的分類(lèi)依照其值的范疇而決意其類(lèi)型型,同時(shí)能夠賦值給類(lèi)型相匹配的整型變量同時(shí)能夠賦值給類(lèi)型相匹配的整型變量.按位取反再加1 .3(1111111

12、1111111101 )22.整型變量的分類(lèi)整型變量的分類(lèi) 整型整型 int 在內(nèi)存中以二進(jìn)制形式存放在內(nèi)存中以二進(jìn)制形式存放,每一個(gè)整型變量在內(nèi)存每一個(gè)整型變量在內(nèi)存中占中占2個(gè)字節(jié)個(gè)字節(jié).短整型短整型 以以short int示意或以示意或以short示意示意, 一樣與一樣與int占有的內(nèi)存占有的內(nèi)存一樣一樣.長(zhǎng)整形長(zhǎng)整形以以long int示意或以示意或以long示意示意,一樣占有在內(nèi)存中字節(jié)為一樣占有在內(nèi)存中字節(jié)為int兩倍兩倍.無(wú)符號(hào)型無(wú)符號(hào)型只能存放正整數(shù)只能存放正整數(shù),它的示意是在上述三種類(lèi)型之前加它的示意是在上述三種類(lèi)型之前加上上unsigned3. 整型變量的定義整型變量的定義

13、對(duì)變量的定義一樣放在函數(shù)的開(kāi)頭部分對(duì)變量的定義一樣放在函數(shù)的開(kāi)頭部分.例例2.1main() int a,b,c,d; unsigned u; a = 12; b =24; u =10; c = a+u; d = b+u; printf(“a + u = %d, b + u = % dn”, c, d); a+u = 22, b+u =a+u = 22, b+u =1414差別類(lèi)型的數(shù)能夠直截了當(dāng)差別類(lèi)型的數(shù)能夠直截了當(dāng)運(yùn)算運(yùn)算4.整型信息的溢出整型信息的溢出main()int a,b; a=32767; b=a+1; printf(“%d,%d”,a,b); 運(yùn)行結(jié)論為運(yùn)行結(jié)論為 32767

14、,-327683.3.3 整型常量的類(lèi)型整型常量的類(lèi)型 一個(gè)整常量一個(gè)整常量,其值在其值在-215215-1內(nèi)可信任是內(nèi)可信任是 int 型型,同時(shí)可賦值給同時(shí)可賦值給 int 型和型和 long int 型變量型變量; 一個(gè)整常量一個(gè)整常量,其值在其值在 231 231-1 范疇內(nèi)那范疇內(nèi)那么信任它是么信任它是 long int 型型,可賦值給一個(gè)可賦值給一個(gè) long int 型變量;型變量; 常量中無(wú)常量中無(wú) unsigned 型型,但一個(gè)非負(fù)值的整常量但一個(gè)非負(fù)值的整常量能夠賦給能夠賦給 unsigned 型整變量;型整變量;小數(shù)的符號(hào)位小數(shù)的符號(hào)位指數(shù)的符號(hào)位指數(shù)的符號(hào)位u實(shí)型常量不

15、分實(shí)型常量不分float和和double,依照范疇賦值給相應(yīng)的變量依照范疇賦值給相應(yīng)的變量.u似似:float a;double b;ua=111111.111; b=111111.111ua中現(xiàn)實(shí)存儲(chǔ)的是中現(xiàn)實(shí)存儲(chǔ)的是111111.1 (7位有效位有效)ub中現(xiàn)實(shí)存儲(chǔ)的是中現(xiàn)實(shí)存儲(chǔ)的是111111.111 (全部有效全部有效)3.5 3.5 字符型信息字符型信息3.5.1字符常量字符常量1. 定義定義用一對(duì)單引號(hào)括起來(lái)的單個(gè)字符用一對(duì)單引號(hào)括起來(lái)的單個(gè)字符,稱為字符常量稱為字符常量.例似例似,A、等等.2.轉(zhuǎn)義字符轉(zhuǎn)義字符語(yǔ)言還許可使用一種特別形式的字符常量語(yǔ)言還許可使用一種特別形式的字符常

16、量,便是以便是以反歪杠反歪杠“ ”開(kāi)頭的字符序列開(kāi)頭的字符序列.h3.5.2 字符型變量字符型變量 字符變量的類(lèi)型關(guān)鍵字為字符變量的類(lèi)型關(guān)鍵字為char,一樣占用一樣占用1字節(jié)內(nèi)存單元字節(jié)內(nèi)存單元. 1.變量值的存儲(chǔ)變量值的存儲(chǔ) 將一個(gè)字符常量存儲(chǔ)到一個(gè)字符變量中將一個(gè)字符常量存儲(chǔ)到一個(gè)字符變量中,現(xiàn)實(shí)上是將該字符的現(xiàn)實(shí)上是將該字符的ASCII碼值(無(wú)符號(hào)整數(shù))存儲(chǔ)到內(nèi)存單元中碼值(無(wú)符號(hào)整數(shù))存儲(chǔ)到內(nèi)存單元中. 例似例似: char ch1, ch2; *定義兩個(gè)字符變量定義兩個(gè)字符變量:ch1,ch2* ch1=a; ch2=b; *給字符變量賦值給字符變量賦值* a、b的的ASCII碼為

17、碼為97、98 . 2.特性特性 1)字符信息在內(nèi)存中存儲(chǔ)的是字符的字符信息在內(nèi)存中存儲(chǔ)的是字符的ASCII碼;碼; 2)語(yǔ)言許可字符型信息與整型信息之間通用語(yǔ)言許可字符型信息與整型信息之間通用,能夠彼此賦值能夠彼此賦值. 3)字符信息也能夠整數(shù)形式輸出字符信息也能夠整數(shù)形式輸出. 例2 大小寫(xiě)字母的變形. main() char c1,c2; c1=a; c2=b; c1=c1-32;c2=c2-32; printf(“%c c2=%cn”,c1,c2); 程序運(yùn)行結(jié)論: A B 信息類(lèi)型、運(yùn)算符與表達(dá)式信息類(lèi)型、運(yùn)算符與表達(dá)式 字符型信息字符型信息3.5.3 字符串常量字符串常量用雙引號(hào)括

18、起來(lái)的字符序列用雙引號(hào)括起來(lái)的字符序列.似似:“How do you do”, “CHINA”, “a”, “$ 123.34” 等等.字符串能夠一次輸出字符串能夠一次輸出.似似:printf(“How do you do”);C語(yǔ)言規(guī)定語(yǔ)言規(guī)定:在存儲(chǔ)字符串常量時(shí)在存儲(chǔ)字符串常量時(shí),由系統(tǒng)在字符串的末尾自動(dòng)加一個(gè)由系統(tǒng)在字符串的末尾自動(dòng)加一個(gè)0做為字符串的結(jié)束標(biāo)記做為字符串的結(jié)束標(biāo)記.在內(nèi)存中在內(nèi)存中,對(duì)字符串常量是采納字符數(shù)組示對(duì)字符串常量是采納字符數(shù)組示意意,即用一個(gè)字符型數(shù)組來(lái)存放一個(gè)字符串即用一個(gè)字符型數(shù)組來(lái)存放一個(gè)字符串. 注重注重: a是字符常量是字符常量,“a”是字符串常量是字

19、符串常量,二者差別二者差別.綜上所述綜上所述, ,字符常量字符常量AA與字符串常量與字符串常量AA是兩回事是兩回事: :(1 1)定界符差別)定界符差別: :字符常量使用單引號(hào)字符常量使用單引號(hào), ,而字符串常量使而字符串常量使用雙引號(hào);用雙引號(hào);(2 2)長(zhǎng)度差別)長(zhǎng)度差別: :字符常量的長(zhǎng)度固定為字符常量的長(zhǎng)度固定為1, 1,而字符串常量而字符串常量的長(zhǎng)度的長(zhǎng)度, ,能夠是某個(gè)整數(shù);能夠是某個(gè)整數(shù);(3 3)存儲(chǔ)要求差別)存儲(chǔ)要求差別: :字符常量存儲(chǔ)的是字符的字符常量存儲(chǔ)的是字符的ASCIIASCII碼碼值值, ,而字符串常量而字符串常量, ,除了要存儲(chǔ)有效的字符外除了要存儲(chǔ)有效的字符外

20、, ,還要存儲(chǔ)一還要存儲(chǔ)一個(gè)結(jié)束標(biāo)記個(gè)結(jié)束標(biāo)記0.0.3.6 3.6 變量賦初值變量賦初值在變量定義的同時(shí)能夠?yàn)樽兞抠x初值在變量定義的同時(shí)能夠?yàn)樽兞抠x初值.似似:int a=3; (相當(dāng)于相當(dāng)于 int a; a=3;)float f = 3.56;char c = a;int a,b,c = 5 ; 示意只給示意只給c賦初值賦初值.(相當(dāng)于(相當(dāng)于int a,b,c; c = 5;)3.7 各類(lèi)數(shù)值型信息間的混合運(yùn)算各類(lèi)數(shù)值型信息間的混合運(yùn)算差別類(lèi)型的信息(整型、實(shí)型、字符型)可履行混合運(yùn)算差別類(lèi)型的信息(整型、實(shí)型、字符型)可履行混合運(yùn)算.似似:10 + a + 1.5 8765.1234

21、 * b 必須第一步將它們變形成同一類(lèi)型的數(shù)值必須第一步將它們變形成同一類(lèi)型的數(shù)值.變形原那么是由低向高變形變形原那么是由低向高變形,運(yùn)算結(jié)論為最高級(jí)不的類(lèi)型運(yùn)算結(jié)論為最高級(jí)不的類(lèi)型. double double floatfloatlonglongunsignedunsignedintintchar,shortchar,short示意必須要變形示意必須要變形示意由低向高示意由低向高高高低低信息類(lèi)型、運(yùn)算符與表達(dá)式信息類(lèi)型、運(yùn)算符與表達(dá)式 混合運(yùn)算混合運(yùn)算似似:10 +a + i :10 +a + i * * f - de f - deintdoubledoubledouble+double例

22、例2-5:2-5:已知已知: float a=2.0; int b =6,c =3;: float a=2.0; int b =6,c =3;求解求解: a: a* *bc-1.5+ A +abs(-5)=bc-1.5+ A +abs(-5)=?12.034.0 - 1.54.0 - 1.52.52.5+65(int)+65(int)67.567.55 572.572.5第二章第二章 2.3 2.3 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式3.8 算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符和算術(shù)表達(dá)式1.根基的算術(shù)運(yùn)算根基的算術(shù)運(yùn)算: 、*、% % 是模運(yùn)算是模運(yùn)算,即求余運(yùn)算即求余運(yùn)算,要求整數(shù)要求整數(shù). 似似:

23、7%4的結(jié)論是的結(jié)論是3.講明講明: 53的結(jié)論仍是整數(shù)的結(jié)論仍是整數(shù),小數(shù)部分被忽略小數(shù)部分被忽略. 5.33或或53.0的結(jié)論為的結(jié)論為double型型. C編譯系統(tǒng)將實(shí)型常量做為雙精度來(lái)操作編譯系統(tǒng)將實(shí)型常量做為雙精度來(lái)操作.似果介入、似果介入、*、 運(yùn)算的兩個(gè)數(shù)中有一個(gè)數(shù)為實(shí)數(shù)運(yùn)算的兩個(gè)數(shù)中有一個(gè)數(shù)為實(shí)數(shù),那么結(jié)論是那么結(jié)論是double型型.2.算術(shù)表達(dá)式算術(shù)表達(dá)式:用算術(shù)運(yùn)算符將運(yùn)算對(duì)象按用算術(shù)運(yùn)算符將運(yùn)算對(duì)象按C的語(yǔ)法法那么毗鄰起的式子的語(yǔ)法法那么毗鄰起的式子. 例似例似:a * bc1.5+a優(yōu)先級(jí)(算術(shù)運(yùn)算)優(yōu)先級(jí)(算術(shù)運(yùn)算): ()() * % + 在同一級(jí)不中在同一級(jí)不中

24、,采納由左到右的聯(lián)合方向采納由左到右的聯(lián)合方向. 似似:a-b+c 相當(dāng)于相當(dāng)于 (a-b)+c3.強(qiáng)制類(lèi)型變形運(yùn)算符可將一個(gè)表達(dá)式變形成所需類(lèi)型強(qiáng)制類(lèi)型變形運(yùn)算符可將一個(gè)表達(dá)式變形成所需類(lèi)型.其一樣形式為其一樣形式為:(類(lèi)型名)(表達(dá)式)(類(lèi)型名)(表達(dá)式) 例似例似:(double) a (int) (x+y) (float) (5%3) 在強(qiáng)制類(lèi)型變形時(shí)在強(qiáng)制類(lèi)型變形時(shí),獵取一個(gè)所需類(lèi)型的中間變量獵取一個(gè)所需類(lèi)型的中間變量,原來(lái)變量的類(lèi)型未產(chǎn)生改變?cè)瓉?lái)變量的類(lèi)型未產(chǎn)生改變.信息類(lèi)型、運(yùn)算符與表達(dá)式信息類(lèi)型、運(yùn)算符與表達(dá)式 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式4.自增、自減運(yùn)算符自增、自減運(yùn)算符使

25、變量的值加使變量的值加1或減或減1.似似:i, i 在使用在使用i之前之前,先使先使i的值加(減的值加(減)1 i, i 在使用在使用i之后之后,再使再使i的值加(的值加(減)減)1例似例似:i的值為的值為3,那么那么 j= + + i; j的值為的值為4,i的值為的值為4 j= i + +; j的值為的值為3,i的值為的值為4又似又似: printf(“%d”, +i); 輸出結(jié)論為輸出結(jié)論為4 printf(“%d”,i+); 輸出結(jié)論為輸出結(jié)論為3單獨(dú)使用時(shí)單獨(dú)使用時(shí), i , i 等價(jià)等價(jià)第二章第二章 2.3 2.3 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式聯(lián)合性聯(lián)合性: :自右向左自右向左例例:

26、 :i = 2; i = 2; j = -i+;j = -i+;對(duì)比對(duì)比: :(1 1)+、-、+ +、- -是同級(jí)運(yùn)算符是同級(jí)運(yùn)算符, ,聯(lián)合方向聯(lián)合方向: :自右向左自右向左. .(2 2) -i+ -i+等價(jià)于等價(jià)于 - -(i+i+)(3 3) 對(duì)括號(hào)內(nèi)的自增運(yùn)算對(duì)括號(hào)內(nèi)的自增運(yùn)算, ,要先使用要先使用i,i,再使再使i i增加增加1.1.運(yùn)算結(jié)論運(yùn)算結(jié)論: i: i的值為的值為3,j3,j的值為的值為-2.-2.3.9 賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符和賦值表達(dá)式1.賦值運(yùn)算符賦值運(yùn)算符:“=” .2.復(fù)合賦值運(yùn)算復(fù)合賦值運(yùn)算:在賦值符號(hào)前加上其它運(yùn)算符號(hào)在賦值符號(hào)前加上其它運(yùn)算符號(hào)

27、. +=,-=,*=,=,%=,=,&=,=,|= 例似例似: a + = 3; 等價(jià)于等價(jià)于a = a + 3; x * = y + 8; 等價(jià)于等價(jià)于x = x * ( y + 8 ); x % = 3; 等價(jià)于等價(jià)于x = x % 3;信息類(lèi)型、運(yùn)算符與表達(dá)式信息類(lèi)型、運(yùn)算符與表達(dá)式 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式4.賦值表達(dá)式賦值表達(dá)式: 由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式毗鄰起來(lái)的式子由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式毗鄰起來(lái)的式子. 一樣形式為一樣形式為:例似例似:int a=12;求下列運(yùn)算的結(jié)論求下列運(yùn)算的結(jié)論 a aa aa a * * a a a aa aa a *

28、* a=12-12 a=12-12 * * 12=-132) 12=-132)a a-132-132a aa a(-132)=(-132)+(-132)=-264(-132)=(-132)+(-132)=-264a=-264a=-264信息類(lèi)型、運(yùn)算符與表達(dá)式信息類(lèi)型、運(yùn)算符與表達(dá)式 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式3.10 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式逗號(hào)運(yùn)算符又稱為逗號(hào)運(yùn)算符又稱為“次序求值運(yùn)算符次序求值運(yùn)算符”,是全部運(yùn)是全部運(yùn)算符中級(jí)不最低的算符中級(jí)不最低的,它將兩個(gè)表達(dá)式毗鄰起來(lái)它將兩個(gè)表達(dá)式毗鄰起來(lái). 一一樣形式為樣形式為:表達(dá)式表達(dá)式1,表達(dá)式表達(dá)式2求解環(huán)節(jié)是求解環(huán)

29、節(jié)是:先求解表達(dá)式先求解表達(dá)式1,再求解表達(dá)式再求解表達(dá)式2,整個(gè)逗整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式號(hào)表達(dá)式的值是表達(dá)式2的值的值. 例似例似: a=3*5, a*4; a的值為的值為15,表達(dá)式表達(dá)式的值為的值為60 (a=3*5, a*4), a+5; a的值為的值為15, 表達(dá)式的值表達(dá)式的值為為20 又似又似: x=(a=3, 6*3); x的值為的值為18 x=a=3, 6*a x的值為的值為3, 表達(dá)表達(dá)式的值為式的值為18 4.1 C4.1 C語(yǔ)句概述語(yǔ)句概述 用用C C語(yǔ)言編寫(xiě)的程序稱為語(yǔ)言編寫(xiě)的程序稱為C C語(yǔ)言源程序語(yǔ)言源程序, ,簡(jiǎn)稱簡(jiǎn)稱C C程序程序. . C C語(yǔ)言一樣由一

30、個(gè)或如果干個(gè)函數(shù)組成語(yǔ)言一樣由一個(gè)或如果干個(gè)函數(shù)組成, ,而而這些函數(shù)能夠保留在一個(gè)這些函數(shù)能夠保留在一個(gè)或幾個(gè)源程序中或幾個(gè)源程序中, ,這些文件都以這些文件都以.C.C做為文件擴(kuò)展名做為文件擴(kuò)展名. . 例例 求園的面積求園的面積#DEFINE PI=3.1415926#DEFINE PI=3.1415926main()main() float r,s; float r,s; r = 20; r = 20; s = r s = r * * r r * * PI; PI; printf (“area=%f ”,s); printf (“area=%f ”,s); area=1256.637C

31、 C程序程序源程序文件源程序文件1 1源程序文件源程序文件i i源程序文件源程序文件n n預(yù)編譯號(hào)令預(yù)編譯號(hào)令函數(shù)函數(shù)1 1函數(shù)函數(shù)n n變量申明部分變量申明部分履行部分(語(yǔ)句)履行部分(語(yǔ)句)語(yǔ)句是統(tǒng)計(jì)語(yǔ)句是統(tǒng)計(jì)機(jī)履行的最機(jī)履行的最小單位小單位C C語(yǔ)句分類(lèi)語(yǔ)句分類(lèi) 和其他高級(jí)語(yǔ)言一樣和其他高級(jí)語(yǔ)言一樣,C,C語(yǔ)言的語(yǔ)句也是用來(lái)向統(tǒng)計(jì)機(jī)發(fā)出操縱號(hào)令的語(yǔ)言的語(yǔ)句也是用來(lái)向統(tǒng)計(jì)機(jī)發(fā)出操縱號(hào)令的. .一條語(yǔ)句通過(guò)編譯后生成如果干條機(jī)器指令一條語(yǔ)句通過(guò)編譯后生成如果干條機(jī)器指令. .在在C C語(yǔ)言中只有可履行語(yǔ)句語(yǔ)言中只有可履行語(yǔ)句, ,沒(méi)有非履行語(yǔ)句沒(méi)有非履行語(yǔ)句. . C C語(yǔ)句有以下五類(lèi)語(yǔ)句有

32、以下五類(lèi): : 操縱語(yǔ)句操縱語(yǔ)句, ,完成必然的操縱功能;完成必然的操縱功能; if( ) else ( if( ) else (前提語(yǔ)句前提語(yǔ)句) ) for( ) ( for( ) (循環(huán)語(yǔ)句循環(huán)語(yǔ)句) ) while( ) ( while( ) (循環(huán)語(yǔ)句循環(huán)語(yǔ)句) ) do while ( ) ( do while ( ) (循環(huán)語(yǔ)句循環(huán)語(yǔ)句) ) continue ( continue (結(jié)束本次循環(huán)語(yǔ)句結(jié)束本次循環(huán)語(yǔ)句) ) break ( break (中止履行中止履行switchswitch或循環(huán)語(yǔ)句或循環(huán)語(yǔ)句) ) Switch ( Switch (多分支挑選語(yǔ)句多分支挑選語(yǔ)

33、句) ) goto ( goto (轉(zhuǎn)向語(yǔ)句轉(zhuǎn)向語(yǔ)句) ) return ( return (從函數(shù)返回語(yǔ)句從函數(shù)返回語(yǔ)句) ) 函數(shù)調(diào)用語(yǔ)句函數(shù)調(diào)用語(yǔ)句,由一次函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成一個(gè)語(yǔ)句由一次函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成一個(gè)語(yǔ)句, 似似:printf (“This is a C statement.”); 表達(dá)式語(yǔ)句表達(dá)式語(yǔ)句,由一個(gè)表達(dá)式構(gòu)成一個(gè)語(yǔ)句由一個(gè)表達(dá)式構(gòu)成一個(gè)語(yǔ)句, 似似: a=3 (是表達(dá)式(是表達(dá)式,不是語(yǔ)句)不是語(yǔ)句) a=3; (是語(yǔ)句)(是語(yǔ)句) 空語(yǔ)句空語(yǔ)句,只有一個(gè)分號(hào)只有一個(gè)分號(hào),啥也不做;啥也不做; 復(fù)合語(yǔ)句復(fù)合語(yǔ)句,用用 把部分語(yǔ)句括起來(lái)成為復(fù)合語(yǔ)句把部分語(yǔ)句括

34、起來(lái)成為復(fù)合語(yǔ)句.相當(dāng)一條語(yǔ)句相當(dāng)一條語(yǔ)句,哪里哪里有語(yǔ)句有語(yǔ)句,哪里便可用復(fù)合語(yǔ)句哪里便可用復(fù)合語(yǔ)句. if (ab) max=a; min=b; 復(fù)合語(yǔ)句末了一個(gè)語(yǔ)句中末了的分號(hào)不能忽略不寫(xiě)復(fù)合語(yǔ)句末了一個(gè)語(yǔ)句中末了的分號(hào)不能忽略不寫(xiě).4.2 賦值語(yǔ)句賦值語(yǔ)句 賦值表達(dá)式背面加上分號(hào)賦值表達(dá)式背面加上分號(hào),構(gòu)成賦值語(yǔ)句構(gòu)成賦值語(yǔ)句. 功能功能:將信息賦給變量將信息賦給變量. 似似: x=3.1; a=d+ 123 + bd; 程序中根基的號(hào)令行必須是一個(gè)語(yǔ)句程序中根基的號(hào)令行必須是一個(gè)語(yǔ)句,表達(dá)式不能單表達(dá)式不能單獨(dú)構(gòu)成語(yǔ)句獨(dú)構(gòu)成語(yǔ)句. 例似例似: d+ 123 + bd 是一個(gè)表達(dá)式是一

35、個(gè)表達(dá)式 a =d+ 123 + bd;是一個(gè)賦值語(yǔ)句;是一個(gè)賦值語(yǔ)句 特點(diǎn)特點(diǎn): C語(yǔ)言中的賦值號(hào)語(yǔ)言中的賦值號(hào)“ = ”做為賦值運(yùn)算符;做為賦值運(yùn)算符; 做為賦值表達(dá)式能夠被包羅在其他表達(dá)式之中;做為賦值表達(dá)式能夠被包羅在其他表達(dá)式之中; if(ab)0) t=a; 賦值語(yǔ)句能夠毗鄰賦值;賦值語(yǔ)句能夠毗鄰賦值; a=b=c=2;4.3 信息輸入輸出的概念信息輸入輸出的概念 1. 所謂輸入輸出是以統(tǒng)計(jì)機(jī)主機(jī)為主體而所謂輸入輸出是以統(tǒng)計(jì)機(jī)主機(jī)為主體而言的言的.主機(jī)向外部設(shè)備主機(jī)向外部設(shè)備 “輸出輸出” ,外部設(shè)備向主機(jī)外部設(shè)備向主機(jī)“輸入輸入”. 2.C語(yǔ)言自已不提供輸入輸出語(yǔ)句語(yǔ)言自已不提供

36、輸入輸出語(yǔ)句,輸入和輸入和輸出操縱是由函數(shù)實(shí)現(xiàn)輸出操縱是由函數(shù)實(shí)現(xiàn). C語(yǔ)言通過(guò)調(diào)用四個(gè)系統(tǒng)函數(shù)來(lái)實(shí)現(xiàn)輸入語(yǔ)言通過(guò)調(diào)用四個(gè)系統(tǒng)函數(shù)來(lái)實(shí)現(xiàn)輸入輸出輸出. printf(),scanf(),getchar(), putchar() 3.在使用在使用C語(yǔ)言庫(kù)函數(shù)時(shí)語(yǔ)言庫(kù)函數(shù)時(shí),要用到預(yù)編譯號(hào)要用到預(yù)編譯號(hào)令令“#include”將有關(guān)的將有關(guān)的“頭文件包羅到用戶頭文件包羅到用戶源文件中源文件中. 在調(diào)用規(guī)格輸入輸出庫(kù)函數(shù)時(shí)在調(diào)用規(guī)格輸入輸出庫(kù)函數(shù)時(shí),文件開(kāi)頭文件開(kāi)頭應(yīng)有以下預(yù)編譯號(hào)令應(yīng)有以下預(yù)編譯號(hào)令: #include 或或 #include”stdio.h”4.4 字符信息的輸入輸出字符信息的輸

37、入輸出1.字符輸出函數(shù)字符輸出函數(shù)putchar() 向終端輸出一個(gè)字符向終端輸出一個(gè)字符. 似似:putchar(c);); 輸出變量輸出變量c的值的值,c能夠是字符型變量或整型變量能夠是字符型變量或整型變量. 例例3.13.1#include “stdio.h”#include “stdio.h”main()main() char a,b,c; char a,b,c; a= B; b= O;c= Y; a= B; b= O;c= Y; putchar(a);putchar(b);putchar(c); putchar(a);putchar(b);putchar(c); BOY也能夠輸出操縱

38、字符也能夠輸出操縱字符,似似putchar(n)輸出一個(gè)換行符輸出一個(gè)換行符. 輸出其它轉(zhuǎn)義字符輸出其它轉(zhuǎn)義字符 putchar(101); 輸出輸出 A; putchar(); 輸出單引號(hào)輸出單引號(hào) putchar(015); 使輸出回車(chē)使輸出回車(chē),不換行不換行 例例3.23.2#include #include main()main() char a,b,c; char a,b,c; a= B; b=O;c=Y; a= B; b=O;c=Y; putchar(a); putchar(n); putchar(b); putchar(a); putchar(n); putchar(b); pu

39、tchar(n); putchar(c); putchar(n); putchar(n); putchar(c); putchar(n); BOY2.字符輸入函數(shù)字符輸入函數(shù)getchar() 從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個(gè)字符從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個(gè)字符. 一樣形式為一樣形式為: getchar();(); 函數(shù)的值便是從輸入設(shè)備獵取的字符函數(shù)的值便是從輸入設(shè)備獵取的字符 例例 #include “stdio.h”#include “stdio.h”main()main() char c; char c; c=getchar(); c=getchar(); pu

40、tchar(c); putchar(c); aa 例例 從鍵盤(pán)上輸入一個(gè)大寫(xiě)字母從鍵盤(pán)上輸入一個(gè)大寫(xiě)字母, ,分不用大小分不用大小寫(xiě)字母形式輸出寫(xiě)字母形式輸出, ,同時(shí)輸出它們的同時(shí)輸出它們的asciiascii碼碼. .#include “stdio.h”#include “stdio.h”main()main()char c1,c2; char c1,c2; c1=getchar(); c1=getchar(); printf(“%c,%dn”,c1,c1); printf(“%c,%dn”,c1,c1); c2=c1+32; c2=c1+32; printf(“%c,%dn”,c2,c2

41、); printf(“%c,%dn”,c2,c2); AA ,65A ,65a ,97a ,974.5標(biāo)準(zhǔn)輸入與輸出函數(shù)標(biāo)準(zhǔn)輸入與輸出函數(shù)1.標(biāo)準(zhǔn)輸出函數(shù)標(biāo)準(zhǔn)輸出函數(shù)printf() 按規(guī)定標(biāo)準(zhǔn)向終端輸出如果干個(gè)隨意率性類(lèi)型的信按規(guī)定標(biāo)準(zhǔn)向終端輸出如果干個(gè)隨意率性類(lèi)型的信息息.一樣標(biāo)準(zhǔn)一樣標(biāo)準(zhǔn): printf: printf(操縱標(biāo)準(zhǔn)(操縱標(biāo)準(zhǔn), ,輸出列表)輸出列表)被輸出的信息被輸出的信息, ,能夠能夠是常量、變量、表達(dá)式是常量、變量、表達(dá)式用雙引號(hào)括起的變形操縱字用雙引號(hào)括起的變形操縱字符串符串, ,它包羅兩種信息它包羅兩種信息: :標(biāo)準(zhǔn)講明標(biāo)準(zhǔn)講明, ,由由% %最先最先. .似似:%

42、d,%f,%c:%d,%f,%c一樣字符一樣字符, ,要輸出的字符要輸出的字符printf(“%d %d”,a,b)標(biāo)準(zhǔn)講明標(biāo)準(zhǔn)講明 輸出列表輸出列表printf(“ a=%d b=%d”,a,b); 操縱標(biāo)準(zhǔn)操縱標(biāo)準(zhǔn) 輸出列表輸出列表printf()標(biāo)準(zhǔn)字符標(biāo)準(zhǔn)字符printf()附加標(biāo)準(zhǔn)講明字符附加標(biāo)準(zhǔn)講明字符例似:%ld 輸出十進(jìn)制長(zhǎng)整型數(shù) %m.nf 右對(duì)齊,m位域?qū)?n位小數(shù)或n個(gè)字符 %-m.nf 左對(duì)齊 例例1. main()1. main() int x1=123; int x1=123; long x2=123456; long x2=123456; printf(x1=%d

43、,x1=%5d,x1=%-5d,x1=%2dn, printf(x1=%d,x1=%5d,x1=%-5d,x1=%2dn, x1,x1,x1,x1);x1,x1,x1,x1); printf(x2=%ld,x2=%8ld,x2=%5ldn,x2,x2,x2); printf(x2=%ld,x2=%8ld,x2=%5ldn,x2,x2,x2); 程序運(yùn)行結(jié)論似下程序運(yùn)行結(jié)論似下: :x1=123,x1=x1=123,x1=123,x1=123123,x1=123,x1=123,x1=123x2=123456,x2=x2=123456,x2=123456,x2=123456123456,x2=12

44、3456d1+d2=3333333333333.333010對(duì)實(shí)數(shù),也可使用標(biāo)準(zhǔn)符%e,以規(guī)格指數(shù)形式輸出:尾數(shù)中的整數(shù)部分占一位,小數(shù)點(diǎn)占一位,尾數(shù)中的小數(shù)部分占5位;指數(shù)部分占4位(似e-03),共計(jì)11位.也可使用標(biāo)準(zhǔn)符%g,讓系統(tǒng)依照數(shù)值的大小,自動(dòng)挑選%f或%e標(biāo)準(zhǔn)、且不輸出無(wú)意義的零.最簡(jiǎn)單的最簡(jiǎn)單的C程序設(shè)計(jì)程序設(shè)計(jì) 信息輸出信息輸出在使用在使用printf()函數(shù)時(shí)要注重函數(shù)時(shí)要注重: 有些系統(tǒng)要求標(biāo)準(zhǔn)字符必須用小寫(xiě)字母;有些系統(tǒng)要求標(biāo)準(zhǔn)字符必須用小寫(xiě)字母;2. 標(biāo)準(zhǔn)操縱符中標(biāo)準(zhǔn)操縱符中,可見(jiàn)諒轉(zhuǎn)義字符;可見(jiàn)諒轉(zhuǎn)義字符;3. 標(biāo)準(zhǔn)講明必須以標(biāo)準(zhǔn)講明必須以“ % ”開(kāi)頭;開(kāi)頭;

45、想輸出字符想輸出字符 % 那么應(yīng)在那么應(yīng)在“標(biāo)準(zhǔn)操縱標(biāo)準(zhǔn)操縱”字符串中用接連兩個(gè)字符串中用接連兩個(gè) % 示意示意.5. 差別的系統(tǒng)在實(shí)現(xiàn)標(biāo)準(zhǔn)輸出時(shí)差別的系統(tǒng)在實(shí)現(xiàn)標(biāo)準(zhǔn)輸出時(shí),輸出結(jié)論大概會(huì)有部分小的差不輸出結(jié)論大概會(huì)有部分小的差不.2.標(biāo)準(zhǔn)輸入函數(shù)標(biāo)準(zhǔn)輸入函數(shù)scanf()把從輸入設(shè)備輸入的數(shù)值按先后次序存入在內(nèi)存的地址中去把從輸入設(shè)備輸入的數(shù)值按先后次序存入在內(nèi)存的地址中去. 一樣標(biāo)準(zhǔn)一樣標(biāo)準(zhǔn): scanf(標(biāo)準(zhǔn)操縱標(biāo)準(zhǔn)操縱,地址列表地址列表) 例例 main()main() int a,b,c; int a,b,c; scanf(“%d%d%d”,&a,&b,&c)

46、; scanf(“%d%d%d”,&a,&b,&c); printf(“%d,%d,%d”,a ,b ,c); printf(“%d,%d,%d”,a ,b ,c); 3 4 53 4 53,4,5 3,4,5 最簡(jiǎn)單的最簡(jiǎn)單的C程序設(shè)計(jì)程序設(shè)計(jì) 信息輸入信息輸入scanf()標(biāo)準(zhǔn)字符標(biāo)準(zhǔn)字符最簡(jiǎn)單的最簡(jiǎn)單的C程序設(shè)計(jì)程序設(shè)計(jì) 信息輸入信息輸入scanf()附加標(biāo)準(zhǔn)講明字符附加標(biāo)準(zhǔn)講明字符正整數(shù))在使用在使用scanf()函數(shù)時(shí)要注重函數(shù)時(shí)要注重:Scanf()函數(shù)中的函數(shù)中的“標(biāo)準(zhǔn)操縱標(biāo)準(zhǔn)操縱”背面應(yīng)當(dāng)是變量地址;背面應(yīng)當(dāng)是變量地址;似果在似果在“標(biāo)準(zhǔn)操縱標(biāo)準(zhǔn)操縱”字

47、符串中除了標(biāo)準(zhǔn)講明以外還有其他字符字符串中除了標(biāo)準(zhǔn)講明以外還有其他字符,那么在輸入信息時(shí)應(yīng)輸入與這些字符一樣的字符;那么在輸入信息時(shí)應(yīng)輸入與這些字符一樣的字符;在用在用“%c”標(biāo)準(zhǔn)輸入字符時(shí)標(biāo)準(zhǔn)輸入字符時(shí),空格字符和空格字符和“轉(zhuǎn)義字符轉(zhuǎn)義字符”都做為有效字符輸入;都做為有效字符輸入; 在輸入信息時(shí)在輸入信息時(shí),遇到以下情況時(shí)該信息信任結(jié)束遇到以下情況時(shí)該信息信任結(jié)束: 遇空格遇空格,或按回車(chē);或按回車(chē); 遇指定的寬度結(jié)束遇指定的寬度結(jié)束,似似“3d”,只取只取3列;列; 遇非法輸入遇非法輸入 例例 輸入三角形的邊長(zhǎng)輸入三角形的邊長(zhǎng), ,求三角形的面積求三角形的面積. . area = s a

48、rea = s* *(s-a)(s-a)* *(s-b)(s-b)* *(s-c) (s-c) s = (a+b+c) 2 s = (a+b+c) 2#include stdio.h#include stdio.h#include math.h#include math.hmain()main() float a,b,c,s,area; float a,b,c,s,area; scanf(%f,%f,%f, &a, &b, &c); scanf(%f,%f,%f, &a, &b, &c); s = 1.02 s = 1.02 * * (a+b+c

49、); (a+b+c); area = sqrt(s area = sqrt(s* *(s-a)(s-a)* *(s-b)(s-b)* *(s-c);(s-c); printf(a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn, a,c,b,s); printf(a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn, a,c,b,s); printf(area=%7.2fn,area); printf(area=%7.2fn,area); 3,4,6 a= 3.00, b= 4.00, c= 6.00, s= 6.50 area= 5.334.6 次序結(jié)構(gòu)程序設(shè)計(jì)舉例

50、次序結(jié)構(gòu)程序設(shè)計(jì)舉例5.1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式1.關(guān)系運(yùn)算符關(guān)系運(yùn)算現(xiàn)實(shí)上是兩個(gè)量的對(duì)比,對(duì)比的結(jié)論只有兩種大概:真(1)、假(0). 例似: a 3 ? 當(dāng)a=5時(shí),對(duì)比的結(jié)論為真; 當(dāng)a=1時(shí),結(jié)論為假.C語(yǔ)言提供6種關(guān)系運(yùn)算符 (小于) (大于) = (大于或等于) = 相等 != 不等 2.關(guān)系表達(dá)式關(guān)系表達(dá)式用關(guān)系運(yùn)算符大概等式運(yùn)算符將兩個(gè)表達(dá)式毗鄰起來(lái)用關(guān)系運(yùn)算符大概等式運(yùn)算符將兩個(gè)表達(dá)式毗鄰起來(lái),叫關(guān)系表達(dá)式叫關(guān)系表達(dá)式.合法的關(guān)系表達(dá)式合法的關(guān)系表達(dá)式: ab、 a+bb+c、 (a=3)(b=5)、 (a=3)(b=5)、 ab)(b=0的值為真(在統(tǒng)計(jì)機(jī)中記為的值為真(

51、在統(tǒng)計(jì)機(jī)中記為1). 例例:a=3, b=2, c=1, 那么那么: (1)ab的值為的值為1(2)(ab)=c的值為真(即的值為真(即1)(3)b+cb中中d的值為的值為ab的值的值,為為.(5)f=abc中中f的值為的值為c的值的值,為為.關(guān)系、等式和邏輯運(yùn)算符關(guān)系、等式和邏輯運(yùn)算符對(duì)于優(yōu)先次序?qū)τ趦?yōu)先次序,=,=為同一級(jí)不為同一級(jí)不, =, =和和!=!=為同一級(jí)不為同一級(jí)不. .在同一級(jí)不中在同一級(jí)不中, ,采納由左到右的聯(lián)合方向采納由左到右的聯(lián)合方向. . 算術(shù)運(yùn)算符算術(shù)運(yùn)算符關(guān)系運(yùn)算符關(guān)系運(yùn)算符賦值運(yùn)算符賦值運(yùn)算符高高低低 例例 ca+b c(a+b)ca+b c(a+b)ab!=

52、c (ab)!=cab!=c (ab)!=ca=bc a = = (bc)a=bc a = = (bc a = (bc) a=bc a = (bc) 等式運(yùn)算符等式運(yùn)算符5.2 邏輯運(yùn)算符邏輯運(yùn)算符邏輯運(yùn)算邏輯運(yùn)算:產(chǎn)生真假值的運(yùn)算產(chǎn)生真假值的運(yùn)算.邏輯運(yùn)算符邏輯運(yùn)算符: &邏輯與邏輯與(AND) | 邏輯或邏輯或(OR) ! 邏輯非邏輯非(NOT)“&”和和“|”是雙目運(yùn)算符是雙目運(yùn)算符. “!”是一元運(yùn)算符是一元運(yùn)算符. 似似: a & b a,b同時(shí)為真同時(shí)為真,那么表達(dá)那么表達(dá)式為真式為真 a | b a,b只要有一個(gè)為真只要有一個(gè)為真,表表達(dá)式為真達(dá)式為真 !

53、a a為真為真,那么表達(dá)式為假那么表達(dá)式為假關(guān)系、等式和邏輯運(yùn)算符關(guān)系、等式和邏輯運(yùn)算符邏輯運(yùn)算符的優(yōu)先級(jí)邏輯運(yùn)算符的優(yōu)先級(jí)! & | 邏輯運(yùn)算符邏輯運(yùn)算符 “&” 和和 “|” 低于關(guān)低于關(guān)系運(yùn)算符系運(yùn)算符,“!”高于算術(shù)運(yùn)算符高于算術(shù)運(yùn)算符 ab & xy 相當(dāng)于相當(dāng)于: (ab) & (xy) a=b|x=y 相當(dāng)于相當(dāng)于: (a=b) | (x=y) !a | ab 相當(dāng)于相當(dāng)于: (!a ) | (ab)! ! 算術(shù)算術(shù) 關(guān)系關(guān)系 邏輯邏輯 賦值賦值邏輯表達(dá)式邏輯表達(dá)式用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量毗鄰起來(lái)便是邏用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量毗鄰起

54、來(lái)便是邏輯表達(dá)式輯表達(dá)式.在在C語(yǔ)言中語(yǔ)言中,當(dāng)推斷一個(gè)量的真假時(shí)當(dāng)推斷一個(gè)量的真假時(shí),統(tǒng)統(tǒng)非數(shù)均被當(dāng)統(tǒng)統(tǒng)非數(shù)均被當(dāng)成成真真來(lái)操作來(lái)操作. 例似例似:如果如果a=4, 那么那么!a的值為的值為 如果如果a=4, b=5, 那么那么a & b的值為的值為 a | b的值為的值為 !a | b的值為的值為 4 & 0|2 的值為的值為辨識(shí)下面的表達(dá)式中算術(shù)運(yùn)算量辨識(shí)下面的表達(dá)式中算術(shù)運(yùn)算量,關(guān)系運(yùn)算量和邏輯運(yùn)關(guān)系運(yùn)算量和邏輯運(yùn)算量算量: 53 & 2| 83是兩個(gè)數(shù)值間的對(duì)比是兩個(gè)數(shù)值間的對(duì)比,結(jié)論為結(jié)論為 1& 2是兩個(gè)非值(邏輯量)間的運(yùn)算是兩個(gè)非值(邏輯量)間

55、的運(yùn)算,結(jié)論結(jié)論為為 1|84-!0,依照優(yōu)先級(jí)依照優(yōu)先級(jí),先統(tǒng)計(jì)先統(tǒng)計(jì)!,結(jié)論為結(jié)論為 例例 推斷某一年是否是閏年推斷某一年是否是閏年. .前提是前提是: : 能被能被4 4整除整除, ,但不能被但不能被100100整除;整除; 能被能被4 4整除整除, ,又能被又能被400400整除整除. . 用用yearyear示意年份示意年份, ,推斷閏年的邏輯表達(dá)式為推斷閏年的邏輯表達(dá)式為: : (year%4=0 & year%100!=0)|(year % 400=0) (year%4=0 & year%100!=0)|(year % 400=0) 似果給似果給yearyear輸

56、入一個(gè)值輸入一個(gè)值, ,使上面的表達(dá)式的值為時(shí)使上面的表達(dá)式的值為時(shí), ,那么那么yearyear所代所代表的年份便是閏年表的年份便是閏年. . 變幻一下角度變幻一下角度, ,似何推斷似何推斷yearyear不是閏年?不是閏年? !( (year%4=0 & year%100!=0)|(year % 400=0) ) !( (year%4=0 & year%100!=0)|(year % 400=0) )當(dāng)當(dāng)yearyear的值使表達(dá)式的值為時(shí)的值使表達(dá)式的值為時(shí), ,那么那么yearyear所代表的便不是閏年所代表的便不是閏年. .關(guān)系、等式和邏輯運(yùn)算符關(guān)系、等式和邏輯運(yùn)算符

57、5.3 if 語(yǔ)句語(yǔ)句if 語(yǔ)句的三種形式語(yǔ)句的三種形式if用來(lái)推斷給定的前提的真假用來(lái)推斷給定的前提的真假,同時(shí)決意履行同時(shí)決意履行哪一種操縱哪一種操縱.1. if 語(yǔ)句語(yǔ)句前提滿足時(shí)履行表達(dá)式背面的語(yǔ)句前提滿足時(shí)履行表達(dá)式背面的語(yǔ)句,接著接著接著接著履行以下的語(yǔ)句履行以下的語(yǔ)句.前提不滿足時(shí)前提不滿足時(shí),越過(guò)越過(guò)if表達(dá)表達(dá)式背面的語(yǔ)句式背面的語(yǔ)句,往下履行往下履行.表達(dá)式語(yǔ)句真(非0)假(0)例似例似:似果輸入的是正數(shù)似果輸入的是正數(shù),那那么打印出來(lái)么打印出來(lái).if (x0) printf(%d,x);挑選結(jié)構(gòu)程序設(shè)計(jì)挑選結(jié)構(gòu)程序設(shè)計(jì) if語(yǔ)句語(yǔ)句if 語(yǔ)句的三種形式語(yǔ)句的三種形式2.

58、if 語(yǔ)句語(yǔ)句1 else 語(yǔ)句語(yǔ)句2前提滿足時(shí)前提滿足時(shí),履行語(yǔ)句履行語(yǔ)句1,接著接著履行接著接著履行if以下的語(yǔ)句以下的語(yǔ)句.前提不滿足時(shí)前提不滿足時(shí),履行語(yǔ)句履行語(yǔ)句2,接著接著履行接著接著履行if以下的語(yǔ)以下的語(yǔ)句句.表達(dá)式語(yǔ)句1語(yǔ)句2真假PYNAB例似例似:輸出兩個(gè)數(shù)中較大的一個(gè)輸出兩個(gè)數(shù)中較大的一個(gè).if (xy) printf(%d,x) ;else printf(%d,y);挑選結(jié)構(gòu)程序設(shè)計(jì)挑選結(jié)構(gòu)程序設(shè)計(jì) if語(yǔ)句語(yǔ)句if 語(yǔ)句的語(yǔ)句的 第三種形式第三種形式if 語(yǔ)句語(yǔ)句1; else if 語(yǔ)句語(yǔ)句2; else if 語(yǔ)句語(yǔ)句3; else if 語(yǔ)句語(yǔ)句4; else

59、語(yǔ)句語(yǔ)句5 表達(dá)式1表達(dá)式2表達(dá)式3表達(dá)式4語(yǔ)句1語(yǔ)句2語(yǔ)句3語(yǔ)句4語(yǔ)句5 假假假假真真真真挑選結(jié)構(gòu)程序設(shè)計(jì)挑選結(jié)構(gòu)程序設(shè)計(jì) if語(yǔ)句語(yǔ)句例似例似:商場(chǎng)促銷(xiāo)商場(chǎng)促銷(xiāo),購(gòu)物購(gòu)物500元以上元以上,8折折;購(gòu)物購(gòu)物300元以上元以上,85折折;購(gòu)物購(gòu)物100元以上元以上,9折折;購(gòu)物購(gòu)物50元以上元以上,95折折;購(gòu)物購(gòu)物50元以下元以下,不打折不打折.依照消依照消費(fèi)量費(fèi)量,統(tǒng)計(jì)優(yōu)惠率統(tǒng)計(jì)優(yōu)惠率. 設(shè)設(shè):消費(fèi)量為消費(fèi)量為 money; 折扣為折扣為 cost; 現(xiàn)實(shí)破費(fèi)現(xiàn)實(shí)破費(fèi) priceif (money500) cost=0.2; else if (money300) cost=0.15; e

60、lse if (money100) cost=0.1; else if (money50) cost=0.05; else cost=0;price=money-(money*cost);挑選結(jié)構(gòu)程序設(shè)計(jì)挑選結(jié)構(gòu)程序設(shè)計(jì) if語(yǔ)句語(yǔ)句If 語(yǔ)句的嵌套語(yǔ)句的嵌套嵌套的定義嵌套的定義:在在if 語(yǔ)句中又見(jiàn)諒一個(gè)或多個(gè)語(yǔ)句中又見(jiàn)諒一個(gè)或多個(gè)if 語(yǔ)句語(yǔ)句.嵌套的一樣形式嵌套的一樣形式:If ( ) if ( ) 語(yǔ)句語(yǔ)句1 else 語(yǔ)句語(yǔ)句2Else if ( ) 語(yǔ)句語(yǔ)句3 else 語(yǔ)句語(yǔ)句4(注重?。ㄗ⒅?! If 與與else的配對(duì)關(guān)系的配對(duì)關(guān)系.) 例例 對(duì)比兩個(gè)整數(shù)的關(guān)系對(duì)比兩個(gè)整數(shù)的關(guān)系. .#include #include main( )main( ) int x, y; int x, y; printf (Enter integer X and Y:); printf (Enter integer X and Y:); scanf (%d%d, &x, &y); scanf

溫馨提示

  • 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論