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

下載本文檔

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

文檔簡介

1、32個關鍵字:(由系統(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種操縱語句:if( )elsefor( )while( )dowhile( )continuebreakswitchgotoreturnll重量運算符重量運算符:. -:

2、. -l下標運算符下標運算符:l其它其它 :( ) - :( ) -C數(shù)據(jù)類型根基類型組織類型指針類型空類型void定義類型typedef數(shù)值類型字符類型char枚舉類型enum整 型浮點型單精度型float雙精度型double短整型short長整型long整型int數(shù)組結構體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結束結束輸出輸出z輸入輸入x、y的值的值xy T F z = x z = y輸出輸出z的值的值圖圖1.7 用用N-S結構圖描述的算法結構圖描述的算法第一章第一章 1

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

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

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

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

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

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

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

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

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

13、對變量的定義一樣放在函數(shù)的開頭部分對變量的定義一樣放在函數(shù)的開頭部分.例例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差別類型的數(shù)能夠直截了當差別類型的數(shù)能夠直截了當運算運算4.整型信息的溢出整型信息的溢出main()int a,b; a=32767; b=a+1; printf(“%d,%d”,a,b); 運行結論為運行結論為 32767

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

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

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

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

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

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

20、, ,還要存儲一還要存儲一個結束標記個結束標記0.0.3.6 3.6 變量賦初值變量賦初值在變量定義的同時能夠為變量賦初值在變量定義的同時能夠為變量賦初值.似似:int a=3; (相當于相當于 int a; a=3;)float f = 3.56;char c = a;int a,b,c = 5 ; 示意只給示意只給c賦初值賦初值.(相當于(相當于int a,b,c; c = 5;)3.7 各類數(shù)值型信息間的混合運算各類數(shù)值型信息間的混合運算差別類型的信息(整型、實型、字符型)可履行混合運算差別類型的信息(整型、實型、字符型)可履行混合運算.似似:10 + a + 1.5 8765.1234

21、 * b 必須第一步將它們變形成同一類型的數(shù)值必須第一步將它們變形成同一類型的數(shù)值.變形原那么是由低向高變形變形原那么是由低向高變形,運算結論為最高級不的類型運算結論為最高級不的類型. double double floatfloatlonglongunsignedunsignedintintchar,shortchar,short示意必須要變形示意必須要變形示意由低向高示意由低向高高高低低信息類型、運算符與表達式信息類型、運算符與表達式 混合運算混合運算似似: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 運算符和表達式運算符和表達式3.8 算術運算符和算術表達式算術運算符和算術表達式1.根基的算術運算根基的算術運算: 、*、% % 是模運算是模運算,即求余運算即求余運算,要求整數(shù)要求整數(shù). 似似:

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

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

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); 輸出結論為輸出結論為4 printf(“%d”,i+); 輸出結論為輸出結論為3單獨使用時單獨使用時, i , i 等價等價第二章第二章 2.3 2.3 運算符和表達式運算符和表達式聯(lián)合性聯(lián)合性: :自右向左自右向左例例:

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

27、. +=,-=,*=,=,%=,=,&=,=,|= 例似例似: a + = 3; 等價于等價于a = a + 3; x * = y + 8; 等價于等價于x = x * ( y + 8 ); x % = 3; 等價于等價于x = x % 3;信息類型、運算符與表達式信息類型、運算符與表達式 運算符和表達式運算符和表達式4.賦值表達式賦值表達式: 由賦值運算符將一個變量和一個表達式毗鄰起來的式子由賦值運算符將一個變量和一個表達式毗鄰起來的式子. 一樣形式為一樣形式為:例似例似:int a=12;求下列運算的結論求下列運算的結論 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信息類型、運算符與表達式信息類型、運算符與表達式 運算符和表達式運算符和表達式3.10 逗號運算符和逗號表達式逗號運算符和逗號表達式逗號運算符又稱為逗號運算符又稱為“次序求值運算符次序求值運算符”,是全部運是全部運算符中級不最低的算符中級不最低的,它將兩個表達式毗鄰起來它將兩個表達式毗鄰起來. 一一樣形式為樣形式為:表達式表達式1,表達式表達式2求解環(huán)節(jié)是求解環(huán)

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

30、個或如果干個函數(shù)組成語言一樣由一個或如果干個函數(shù)組成, ,而而這些函數(shù)能夠保留在一個這些函數(shù)能夠保留在一個或幾個源程序中或幾個源程序中, ,這些文件都以這些文件都以.C.C做為文件擴展名做為文件擴展名. . 例例 求園的面積求園的面積#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預編譯號令預編譯號令函數(shù)函數(shù)1 1函數(shù)函數(shù)n n變量申明部分變量申明部分履行部分(語句)履行部分(語句)語句是統(tǒng)計語句是統(tǒng)計機履行的最機履行的最小單位小單位C C語句分類語句分類 和其他高級語言一樣和其他高級語言一樣,C,C語言的語句也是用來向統(tǒng)計機發(fā)出操縱號令的語言的語句也是用來向統(tǒng)計機發(fā)出操縱號令的. .一條語句通過編譯后生成如果干條機器指令一條語句通過編譯后生成如果干條機器指令. .在在C C語言中只有可履行語句語言中只有可履行語句, ,沒有非履行語句沒有非履行語句. . C C語句有以下五類語句有

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

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

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

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

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

37、入輸出1.字符輸出函數(shù)字符輸出函數(shù)putchar() 向終端輸出一個字符向終端輸出一個字符. 似似: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)輸出一個換行符輸出一個換行符. 輸出其它轉(zhuǎn)義字符輸出其它轉(zhuǎn)義字符 putchar(101); 輸出輸出 A; putchar(); 輸出單引號輸出單引號 putchar(015); 使輸出回車使輸出回車,不換行不換行 例例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)隱含指定的輸入設備)輸入一個字符從終端(或系統(tǒng)隱含指定的輸入設備)輸入一個字符. 一樣形式為一樣形式為: getchar();(); 函數(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 例例 從鍵盤上輸入一個大寫字母從鍵盤上輸入一個大寫字母, ,分不用大小分不用大小寫字母形式輸出寫字母形式輸出, ,同時輸出它們的同時輸出它們的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標準輸入與輸出函數(shù)標準輸入與輸出函數(shù)1.標準輸出函數(shù)標準輸出函數(shù)printf() 按規(guī)定標準向終端輸出如果干個隨意率性類型的信按規(guī)定標準向終端輸出如果干個隨意率性類型的信息息.一樣標準一樣標準: printf: printf(操縱標準(操縱標準, ,輸出列表)輸出列表)被輸出的信息被輸出的信息, ,能夠能夠是常量、變量、表達式是常量、變量、表達式用雙引號括起的變形操縱字用雙引號括起的變形操縱字符串符串, ,它包羅兩種信息它包羅兩種信息: :標準講明標準講明, ,由由% %最先最先. .似似:%

42、d,%f,%c:%d,%f,%c一樣字符一樣字符, ,要輸出的字符要輸出的字符printf(“%d %d”,a,b)標準講明標準講明 輸出列表輸出列表printf(“ a=%d b=%d”,a,b); 操縱標準操縱標準 輸出列表輸出列表printf()標準字符標準字符printf()附加標準講明字符附加標準講明字符例似:%ld 輸出十進制長整型數(shù) %m.nf 右對齊,m位域?qū)?n位小數(shù)或n個字符 %-m.nf 左對齊 例例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); 程序運行結論似下程序運行結論似下: :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對實數(shù),也可使用標準符%e,以規(guī)格指數(shù)形式輸出:尾數(shù)中的整數(shù)部分占一位,小數(shù)點占一位,尾數(shù)中的小數(shù)部分占5位;指數(shù)部分占4位(似e-03),共計11位.也可使用標準符%g,讓系統(tǒng)依照數(shù)值的大小,自動挑選%f或%e標準、且不輸出無意義的零.最簡單的最簡單的C程序設計程序設計 信息輸出信息輸出在使用在使用printf()函數(shù)時要注重函數(shù)時要注重: 有些系統(tǒng)要求標準字符必須用小寫字母;有些系統(tǒng)要求標準字符必須用小寫字母;2. 標準操縱符中標準操縱符中,可見諒轉(zhuǎn)義字符;可見諒轉(zhuǎn)義字符;3. 標準講明必須以標準講明必須以“ % ”開頭;開頭;

45、想輸出字符想輸出字符 % 那么應在那么應在“標準操縱標準操縱”字符串中用接連兩個字符串中用接連兩個 % 示意示意.5. 差別的系統(tǒng)在實現(xiàn)標準輸出時差別的系統(tǒng)在實現(xiàn)標準輸出時,輸出結論大概會有部分小的差不輸出結論大概會有部分小的差不.2.標準輸入函數(shù)標準輸入函數(shù)scanf()把從輸入設備輸入的數(shù)值按先后次序存入在內(nèi)存的地址中去把從輸入設備輸入的數(shù)值按先后次序存入在內(nèi)存的地址中去. 一樣標準一樣標準: scanf(標準操縱標準操縱,地址列表地址列表) 例例 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 最簡單的最簡單的C程序設計程序設計 信息輸入信息輸入scanf()標準字符標準字符最簡單的最簡單的C程序設計程序設計 信息輸入信息輸入scanf()附加標準講明字符附加標準講明字符正整數(shù))在使用在使用scanf()函數(shù)時要注重函數(shù)時要注重:Scanf()函數(shù)中的函數(shù)中的“標準操縱標準操縱”背面應當是變量地址;背面應當是變量地址;似果在似果在“標準操縱標準操縱”字

47、符串中除了標準講明以外還有其他字符字符串中除了標準講明以外還有其他字符,那么在輸入信息時應輸入與這些字符一樣的字符;那么在輸入信息時應輸入與這些字符一樣的字符;在用在用“%c”標準輸入字符時標準輸入字符時,空格字符和空格字符和“轉(zhuǎn)義字符轉(zhuǎn)義字符”都做為有效字符輸入;都做為有效字符輸入; 在輸入信息時在輸入信息時,遇到以下情況時該信息信任結束遇到以下情況時該信息信任結束: 遇空格遇空格,或按回車;或按回車; 遇指定的寬度結束遇指定的寬度結束,似似“3d”,只取只取3列;列; 遇非法輸入遇非法輸入 例例 輸入三角形的邊長輸入三角形的邊長, ,求三角形的面積求三角形的面積. . 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 次序結構程序設計舉例

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

51、在統(tǒng)計機中記為1). 例例:a=3, b=2, c=1, 那么那么: (1)ab的值為的值為1(2)(ab)=c的值為真(即的值為真(即1)(3)b+cb中中d的值為的值為ab的值的值,為為.(5)f=abc中中f的值為的值為c的值的值,為為.關系、等式和邏輯運算符關系、等式和邏輯運算符對于優(yōu)先次序?qū)τ趦?yōu)先次序,=,=為同一級不為同一級不, =, =和和!=!=為同一級不為同一級不. .在同一級不中在同一級不中, ,采納由左到右的聯(lián)合方向采納由左到右的聯(liá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) 等式運算符等式運算符5.2 邏輯運算符邏輯運算符邏輯運算邏輯運算:產(chǎn)生真假值的運算產(chǎn)生真假值的運算.邏輯運算符邏輯運算符: &邏輯與邏輯與(AND) | 邏輯或邏輯或(OR) ! 邏輯非邏輯非(NOT)“&”和和“|”是雙目運算符是雙目運算符. “!”是一元運算符是一元運算符. 似似: a & b a,b同時為真同時為真,那么表達那么表達式為真式為真 a | b a,b只要有一個為真只要有一個為真,表表達式為真達式為真 !

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

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

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

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

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

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

59、語句語句5 表達式1表達式2表達式3表達式4語句1語句2語句3語句4語句5 假假假假真真真真挑選結構程序設計挑選結構程序設計 if語句語句例似例似:商場促銷商場促銷,購物購物500元以上元以上,8折折;購物購物300元以上元以上,85折折;購物購物100元以上元以上,9折折;購物購物50元以上元以上,95折折;購物購物50元以下元以下,不打折不打折.依照消依照消費量費量,統(tǒng)計優(yōu)惠率統(tǒng)計優(yōu)惠率. 設設:消費量為消費量為 money; 折扣為折扣為 cost; 現(xiàn)實破費現(xiàn)實破費 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);挑選結構程序設計挑選結構程序設計 if語句語句If 語句的嵌套語句的嵌套嵌套的定義嵌套的定義:在在if 語句中又見諒一個或多個語句中又見諒一個或多個if 語句語句.嵌套的一樣形式嵌套的一樣形式:If ( ) if ( ) 語句語句1 else 語句語句2Else if ( ) 語句語句3 else 語句語句4(注重?。ㄗ⒅兀?If 與與else的配對關系的配對關系.) 例例 對比兩個整數(shù)的關系對比兩個整數(shù)的關系. .#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. 本站所有資源如無特殊說明,都需要本地電腦安裝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

提交評論