C語(yǔ)言電子教案_第1頁(yè)
C語(yǔ)言電子教案_第2頁(yè)
C語(yǔ)言電子教案_第3頁(yè)
C語(yǔ)言電子教案_第4頁(yè)
C語(yǔ)言電子教案_第5頁(yè)
已閱讀5頁(yè),還剩98頁(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、C語(yǔ)言程序設(shè)計(jì)教 案總課時(shí)數(shù): 114 適用專業(yè):計(jì)算機(jī)應(yīng)用技術(shù)、計(jì)算機(jī)網(wǎng)絡(luò)系(部)名稱: 軟件工程系 教研室名稱: 修訂時(shí)間: 授課日期:第1周 周一58 周三12 第2周 周一58 周三12授課類型:演示、講解、練習(xí)、輔導(dǎo) 課時(shí):12教學(xué)內(nèi)容:1、C語(yǔ)言的歷史和特色2、C程序結(jié)構(gòu)3、C程序的開(kāi)發(fā)過(guò)程 教學(xué)目標(biāo):1、了解C語(yǔ)言的產(chǎn)生過(guò)程2、掌握C程序結(jié)構(gòu)3、掌握C程序開(kāi)發(fā)過(guò)程4、掌握用Turboc C運(yùn)行一個(gè)C程序教學(xué)重點(diǎn):1、掌握C程序的基本結(jié)構(gòu)構(gòu)成2、學(xué)會(huì)用Turbo C運(yùn)行一個(gè)C程序教學(xué)難點(diǎn):掌握C程序的開(kāi)發(fā)過(guò)程教學(xué)過(guò)程:內(nèi)容講授 學(xué)生實(shí)踐 作業(yè)布置 新課內(nèi)容預(yù)告教學(xué)手段:多媒體教學(xué)軟

2、件 + 個(gè)別輔導(dǎo)作 業(yè): 第1章 C語(yǔ)言概述C語(yǔ)言是國(guó)際上廣泛流行的一門(mén)高級(jí)程序設(shè)計(jì)語(yǔ)言,具有語(yǔ)言簡(jiǎn)潔、使用方便靈活、移植性好、能直接對(duì)系統(tǒng)硬件和外圍接口進(jìn)行控制等特點(diǎn)。本章將簡(jiǎn)要地介紹它的產(chǎn)生過(guò)程和特點(diǎn)、C程序結(jié)構(gòu)及C程序的上機(jī)步驟,以便對(duì)C語(yǔ)言有一個(gè)概括的認(rèn)識(shí)。1.1 C語(yǔ)言的歷史和特色一、歷史1. 1960年出現(xiàn)了ALGOL 60。2. 1963年和1967年, 在ALGOL 60的基礎(chǔ)上推出了CPL和BCPL 語(yǔ)言更接近于硬件。3. 1970年美國(guó)貝爾實(shí)驗(yàn)室對(duì)BCPL語(yǔ)言做了進(jìn)一步簡(jiǎn)化,設(shè)計(jì)了B語(yǔ)言,并用B語(yǔ)言編寫(xiě)了第一個(gè)UNIX操作系統(tǒng)。4. 在1972年至1973年間,貝爾實(shí)驗(yàn)室的

3、D.M.Ritchie在B語(yǔ)言的基礎(chǔ)上設(shè)計(jì)出C語(yǔ)言。二、特色1. 簡(jiǎn)潔緊湊,使用方便靈活C語(yǔ)言一共只有32個(gè)關(guān)鍵字、9種控制語(yǔ)句,程序書(shū)寫(xiě)自由,壓縮了一切不必要的成分,語(yǔ)言簡(jiǎn)練。2. 運(yùn)算符豐富C語(yǔ)言有34種運(yùn)算符和15個(gè)等級(jí)的運(yùn)算優(yōu)先順序,使表達(dá)式類型多樣化,可以實(shí)現(xiàn)在其它語(yǔ)言中難以實(shí)現(xiàn)的運(yùn)算。3. 數(shù)據(jù)類型豐富C語(yǔ)言的數(shù)據(jù)類型有整型、實(shí)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、聯(lián)合體類型及枚舉類型等,能用來(lái)實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的運(yùn)算。4. 模塊化結(jié)構(gòu)C語(yǔ)言用函數(shù)作為程序的模塊單位,便于實(shí)現(xiàn)程序的模塊化,而且便于模塊間相互調(diào)用及傳遞數(shù)據(jù)。5. 語(yǔ)法限制少和程序設(shè)計(jì)自由度大C語(yǔ)言允許程序編

4、寫(xiě)者有較大的自由度,放寬了以往高級(jí)語(yǔ)言嚴(yán)格的語(yǔ)法檢查,較好地處理了“限制”與“靈活”這一對(duì)矛盾。6. 比較接近硬件C語(yǔ)言允許直接訪問(wèn)物理地址,能進(jìn)行位操作,能實(shí)現(xiàn)匯編語(yǔ)言的大部分功能,可以直接對(duì)硬件進(jìn)行操作。7. 生成目標(biāo)代碼質(zhì)量高、程序執(zhí)行效率高一般只比匯編程序生成的目標(biāo)代碼效率低1020。8. 可移植性好基本上不做修改就能用于各種型號(hào)的計(jì)算機(jī)和各種操作系統(tǒng)。1.2 C程序結(jié)構(gòu)下面列出幾個(gè)簡(jiǎn)單的C程序來(lái)說(shuō)明C程序的結(jié)構(gòu)特征。例1.1 輸出一行信息。main ( )printf ("This is first C programme! n");該程序的作用是輸出一行信息:T

5、his is first C programme!main 表示“主函數(shù)”;函數(shù)體用大括號(hào)括起來(lái)。本例題中主函數(shù)僅包含一個(gè)語(yǔ)句,該語(yǔ)句由printf ()輸出函數(shù)構(gòu)成。括號(hào)內(nèi)雙引號(hào)中的字符串按原樣輸出;´n´是換行符,即在輸出" This is first C programme! "后回車(chē)換行;語(yǔ)句后面有一個(gè)分號(hào),表示該語(yǔ)句結(jié)束,這個(gè)分號(hào)必不可少。例1.2 計(jì)算兩個(gè)數(shù)之和。main ( ) /*求兩個(gè)數(shù)之和*/int a ,b,sum; /*定義3個(gè)整型變量*/a=123; /*以下3行為C語(yǔ)句*/b=321; sum=a+b;printf (&quo

6、t;sum is %dn",sum);該程序的作用是求兩個(gè)整數(shù) a 和 b之和 sum ,并在屏幕上輸出 sum。程序中,/*/表示注釋部分,對(duì)編譯和運(yùn)行不起作用。第3行是變量說(shuō)明,使用的a、b和sum為整型(int)變量。第4行是兩個(gè)賦值語(yǔ)句,使a的值為123,b為321。第5行使sum的值為a+b,第6行的%d是輸入輸出的“格式說(shuō)明”,表示“十進(jìn)制整數(shù)類型”,printf函數(shù)中括號(hào)內(nèi)最右端的sum是要輸出的變量,當(dāng)然它的值為444。例1.3 比較兩個(gè)數(shù)的大小。main ( ) /*主函數(shù),功能輸入兩個(gè)整數(shù),判斷后輸出較大的數(shù)*/int a ,b,c; /*定義3個(gè)整型變量*/sc

7、anf ("%d,%d",&a,&b); /*輸入變量a和b的值*/c=max(a,b);printf ("max= %dn",c); /*輸出c的值*/int max (int x,int y) /*定義max()函數(shù),函數(shù)值為整型,x,y為形式參數(shù)、整形變量*/int z; /*定義main ()函數(shù)內(nèi)部用到的變量z為整數(shù)*/if (x>y) z=x; /*將x,y中較大的值賦給z*/else z=y;return (z); /*將z值返回。通過(guò)max()函數(shù)帶回調(diào)用處*/該程序的作用是從鍵盤(pán)輸入兩個(gè)整數(shù),然后在屏幕上輸出它們中

8、較大值的數(shù)。程序的第5行是調(diào)用max()函數(shù),在調(diào)用過(guò)程中將實(shí)際參數(shù)a和b的值,分別傳遞給max()函數(shù)中的形式參數(shù)x和y,然后得到一個(gè)返回值(z的值),并把這個(gè)值賦給變量c。運(yùn)行情況如下:2,8 max=8從以上幾個(gè)例題,可以看到C程序的結(jié)構(gòu)特征。1. C程序是由函數(shù)構(gòu)成的。一個(gè)C程序至少有一個(gè)main ()函數(shù),也可以包含一個(gè)main ()函數(shù)和若干個(gè)其它函數(shù)。2. 一個(gè)函數(shù)有兩部分構(gòu)成。函數(shù)說(shuō)明部分,即函數(shù)的第一行,包括函數(shù)類型、函數(shù)名、形參類型、形參名。函數(shù)體,由一對(duì)大括號(hào)括起來(lái)的語(yǔ)句集合。函數(shù)體一般包括有聲明部分和執(zhí)行部分,聲明部分用于定義所用到的變量,執(zhí)行部分由若干語(yǔ)句組成。3.

9、一個(gè)C程序總是從main ()函數(shù)開(kāi)始執(zhí)行,而不管main ()在源程序中的位置,執(zhí)行完主函數(shù)中的所有語(yǔ)句后,程序就結(jié)束。4. 每個(gè)語(yǔ)句和變量定義的最后必須要有一個(gè)分號(hào),分號(hào)是C語(yǔ)句的必要組成部分。5. C語(yǔ)言本身沒(méi)有提供輸入和輸出語(yǔ)句,輸入輸出操作是通過(guò)庫(kù)函數(shù)scanf ()、printf ()等函數(shù)來(lái)實(shí)現(xiàn)的。6. C語(yǔ)言用/*/對(duì)程序進(jìn)行注釋,/和*之間不允許留有空格,/*和*/應(yīng)當(dāng)一一對(duì)應(yīng)匹配,注釋部分允許出現(xiàn)在程序中的任何位置上。程序中加一些注釋,可以增加程序的可讀性。1.3 C程序的開(kāi)發(fā)過(guò)程用C語(yǔ)句編寫(xiě)的程序稱為“源程序”。1. C程序開(kāi)發(fā)的4個(gè)基本步驟一般C程序開(kāi)發(fā)要經(jīng)歷4個(gè)基本步

10、驟:編輯編譯連接運(yùn)行(1)編輯使用字處理軟件或編輯工具將源程序以文本文件形式保存到磁盤(pán),源程序文件名由用戶自己選定,但擴(kuò)展名必須為".c"。(2)編譯編譯的功能就是調(diào)用“編譯程序”,將已編輯好的源程序翻譯成二進(jìn)制的目標(biāo)代碼。如果源程序沒(méi)有語(yǔ)法錯(cuò)誤將產(chǎn)生一個(gè)與源程序同名,以".obj"為擴(kuò)展名的目標(biāo)程序。(3)連接編譯后產(chǎn)生的目標(biāo)程序往往形成多個(gè)模塊,還要和庫(kù)函數(shù)進(jìn)行連接才能運(yùn)行,連接過(guò)程是使用系統(tǒng)提供的“連接程序”運(yùn)行的。連接后,產(chǎn)生以".exe"為擴(kuò)展名的可執(zhí)行程序。(4)運(yùn)行可執(zhí)行程序生成后,就可以在操作系統(tǒng)的支持下運(yùn)行,若執(zhí)行結(jié)

11、果達(dá)到預(yù)期的目的,則開(kāi)發(fā)工作到此完成,否則,要進(jìn)一步地經(jīng)過(guò)以上過(guò)程以取得最終的正確結(jié)果。2. 使用Turbo C開(kāi)發(fā)程序的方法現(xiàn)在,多數(shù)的C程序開(kāi)發(fā)使用一個(gè)集成Turbo C開(kāi)發(fā)工具來(lái)完成。下面簡(jiǎn)單介紹使用Turbo C開(kāi)發(fā)程序的方法。(1)Turbo C的目錄及文件Turbo C應(yīng)裝入磁盤(pán)的某一目錄下,例如,放在c盤(pán)的根目錄下一級(jí)TC子目錄下,Turbo C安裝完成后,磁盤(pán)上將增加以下目錄及文件:TC子目錄(c:tc):其中包括tc.exe、tcc.exe、make.exe等執(zhí)行文件。INCLUDE子目錄(c:tcinclude):其中包括stdio.h 、string.h、math.h等頭

12、文件。Lib子目錄(c:tclib):其中包括graphlics.lib 、math.lib 、math1.lib等庫(kù)函數(shù)文件。BGI子目錄(c:tc|bgi):其中包括tc運(yùn)行時(shí)所需的信息。通過(guò)執(zhí)行tc.exe命令就可以進(jìn)入Turbo C環(huán)境,如果用戶的當(dāng)前目錄是Turbo C 所在的子目錄tc,則只需從鍵盤(pán)輸入“tc”命令即可。C:tc>tc (2)Turbo C集成環(huán)境作簡(jiǎn)單介紹,它包括以下幾個(gè)方面的內(nèi)容:主菜單窗口編輯窗口信息窗口功能鍵提示行3. 用Turbo C運(yùn)行第一個(gè)C程序下面介紹使用Turbo C編輯和運(yùn)行一個(gè)簡(jiǎn)單的C程序的操作步驟:(1)編輯或修改源程序。在編輯窗口鍵入

13、一下源程序:main ( )printf (" This is my first C program");然后執(zhí)行“File/save”命令;或按“F2”鍵存盤(pán)。(2)編譯與連接源程序。執(zhí)行“compile/make exe file”命令或直接按下F9鍵,即可一次完成編譯與連接。(3)運(yùn)行程序。按“F10”鍵返回主菜單,用光標(biāo)移動(dòng)鍵將亮條移到“Run”菜單選項(xiàng)回車(chē)或按下“Ctrl+F9”鍵,即可運(yùn)行剛生成的可執(zhí)行文件。此時(shí)Turbo C工作窗口消失,屏幕上顯示程序運(yùn)行結(jié)果:This is my first C program若發(fā)現(xiàn)運(yùn)行結(jié)果不對(duì),可再按“F10”鍵回工作窗口

14、,重復(fù)上述步驟。(4)運(yùn)行程序后查看程序的運(yùn)行結(jié)果。(5)退出Turbo C,按“Alt+X”鍵,系統(tǒng)即退出Turbo環(huán)境。本章小結(jié)本章對(duì)C語(yǔ)言進(jìn)行了總體介紹,對(duì)學(xué)生的要求是掌握基本概念,學(xué)習(xí)的過(guò)程要緊密結(jié)合本章的知識(shí)要點(diǎn):1. 程序的構(gòu)成,main ()函數(shù)和其他函數(shù)。2. 頭文件、數(shù)據(jù)說(shuō)明、函數(shù)的開(kāi)始和結(jié)束標(biāo)志。3. 源程序的書(shū)寫(xiě)格式。4. C語(yǔ)言的風(fēng)格。授課日期:第3周 周三12 第4周 周一58 周三12第5周 周一58 周三12 授課類型:演示、講解、練習(xí)、輔導(dǎo) 課時(shí):14 教學(xué)內(nèi)容:1、常量和變量2、整型數(shù)據(jù)3、實(shí)型數(shù)據(jù)4、字符型數(shù)據(jù)5、變量的初始化6、運(yùn)算符和表達(dá)式教學(xué)目標(biāo):1、

15、掌握常量與變量的書(shū)寫(xiě)和定義2、掌握三種基本數(shù)據(jù)類型3、掌握運(yùn)算符和表達(dá)式的使用4、掌握順序結(jié)構(gòu)程序設(shè)計(jì)的方法教學(xué)重點(diǎn):1、三種基本數(shù)據(jù)類型的定義和使用2、各種運(yùn)算符的使用教學(xué)難點(diǎn):1、運(yùn)算符的使用2、使用順序結(jié)構(gòu)編程教學(xué)過(guò)程:內(nèi)容講授 學(xué)生實(shí)踐 作業(yè)布置 新課內(nèi)容預(yù)告教學(xué)手段:多媒體教學(xué)軟件 + 個(gè)別輔導(dǎo)作 業(yè):1、編程序,用getchar函數(shù)讀入兩個(gè)字符給c1、c2,然后分別用putchar函數(shù)和printf函數(shù)輸出這兩個(gè)字符。上機(jī)運(yùn)行此程序,比較putchar和printf函數(shù)輸出字符的特點(diǎn)。2、試編寫(xiě)程序,從鍵盤(pán)輸入一個(gè)大寫(xiě)字母,要求改用小寫(xiě)字母輸出。第2章 順序結(jié)構(gòu)程序設(shè)計(jì)順序結(jié)構(gòu)是一

16、組按書(shū)寫(xiě)順序執(zhí)行的語(yǔ)句。本章將主要介紹程序中用到的一些基本要素(常量、變量、運(yùn)算符、表達(dá)式和輸入輸出語(yǔ)句等),以及基本的數(shù)據(jù)類型(整型、實(shí)型和字符型)。2.1 常量和變量一、常量1. 常量:在程序運(yùn)行的過(guò)程中,其值不能被改變的量。如2、4、-1.6等。2. 分類:普通常量和符號(hào)常量。3. 符號(hào)常量:用一個(gè)標(biāo)識(shí)符代表一個(gè)常量,這樣的標(biāo)識(shí)符稱為符號(hào)常量。如用PI代表3.1415926。4. 注意:符號(hào)常量的值在其作用域內(nèi)不能改變,也不能再被賦值。如在程序中,對(duì)PI重新賦值: PI2;這樣是不允許的。二、變量1. 變量C語(yǔ)言規(guī)定在程序運(yùn)行的過(guò)程中,其值可以改變的量,稱為變量。2. 標(biāo)識(shí)符:用來(lái)標(biāo)識(shí)變

17、量名、符號(hào)常量名、函數(shù)名、數(shù)組名、類型名和文件名的有效字符序列。3. C語(yǔ)言規(guī)定:標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符必須為字母或下劃線。一般變量名的長(zhǎng)度不能超過(guò)8個(gè)字符。如下面是合法的標(biāo)識(shí)符,也是合法的變量名:sum,average,day,month,student,_above,k_1_2_3,basic;下面是不合法的標(biāo)識(shí)符和變量名:M.D.John,$123,#33,3D64,a>,-ab。在C語(yǔ)言中,要求對(duì)所有用到的變量作強(qiáng)制定義,也就是先定義,后使用。2.2 整型數(shù)據(jù)一、 整型常量C語(yǔ)言整型常數(shù)可用以下三種形式表示:1. 十進(jìn)制整數(shù):數(shù)碼直接開(kāi)頭的十進(jìn)制

18、數(shù)。2. 八進(jìn)制整數(shù):以0開(kāi)頭的常量是八進(jìn)制數(shù)。3. 十六進(jìn)制整數(shù):以0x開(kāi)頭的數(shù)是16進(jìn)制數(shù)。二、整型變量1. 整型變量的分類整型變量可分為:基本型、短整型、長(zhǎng)整型和無(wú)符號(hào)型四種,其定義的關(guān)鍵字如下:(1)基本型,以int表示。范圍為-3276832767,即-215(215-1)。(2)短整型,以short int或short表示。范圍與基本型相同。(3)長(zhǎng)整型,以long int或long表示。若一個(gè)整型常量后面加上一個(gè)字母l或L,則認(rèn)為是long int型常量。范圍為-2147483648214783647即-231(231-1)(4)無(wú)符號(hào)型,在實(shí)際應(yīng)用中變量的值常常是正的,如年齡、

19、工資、成績(jī)等,因此可以將變量定義為無(wú)符號(hào)類型。無(wú)符號(hào)型又分為: 無(wú)符號(hào)整型,以u(píng)nsigned int或unsigned表示。 范圍:065535, 即0(216-1)。 無(wú)符號(hào)短整型,以u(píng)nsigned short表示。范圍:065535即0(216-1)。 無(wú)符號(hào)長(zhǎng)整型,以u(píng)nsigned long表示。范圍:04294967295即0(232-1)。2. 整型變量的定義變量的定義格式為:數(shù)據(jù)類型 變量表列;其中若定義多個(gè)同類型的變量,則用逗號(hào)分開(kāi)。例: int a,b;(指定變量a,b為整型) unsigned short c,d;(指定變量c,d為無(wú)符號(hào)短整型) long e,f;(指

20、定變量e,f為長(zhǎng)整型)3. 整型數(shù)據(jù)的輸入整型變量鍵盤(pán)輸入,是通過(guò)scanf函數(shù)實(shí)現(xiàn)的,scanf函數(shù)是數(shù)據(jù)輸入函數(shù),格式為: scanf (格式控制,地址表列);例如:scanf (dd,&a,&b);(1)格式控制是用雙引號(hào)括起來(lái)的字符串,由和格式字符組成,作用是將輸入數(shù)據(jù)轉(zhuǎn)換為指定的格式輸入。(2)格式字符,對(duì)于不同的數(shù)據(jù)用不同的格式字符。d格式符是用來(lái)輸入十進(jìn)制整數(shù)的。因?yàn)楸竟?jié)問(wèn)題中變量a,b是整型變量,所以輸入時(shí),用了d格式符。(3)&a,&b中的&是地址運(yùn)算符,&a是指a在內(nèi)存中的地址。上面scanf函數(shù)的作用是:將a、b的值放到a,

21、b在內(nèi)存的地址單元中去。所以,在該問(wèn)題中,若輸入:3 5則輸出結(jié)果為 ab84. 整型數(shù)據(jù)的輸出整型數(shù)據(jù)的輸出用printf函數(shù)來(lái)實(shí)現(xiàn)。如printf(abd,c);printf函數(shù)的格式為: printf(格式控制,輸出表列);(1)格式控制和輸入函數(shù)scanf的格式控制基本一致。(2)輸出表列是需要輸出的數(shù)據(jù)或表達(dá)式。(3)在輸出整型數(shù)據(jù)時(shí),格式字符如下: d,按整型數(shù)據(jù)的實(shí)際長(zhǎng)度輸出。 md,m為輸出字段的寬度,如果輸出數(shù)據(jù)的位數(shù)小于m則左端補(bǔ)以空格,若大于m,則按實(shí)際位數(shù)輸出。例如:printf (4d,%4d,a,b);若a123,d12345,則輸出結(jié)果為:V123,12345(注

22、:V表示空格字符,下同) %ld,輸出長(zhǎng)整型數(shù)據(jù)。如:long a135790;printf (%8ld,a);輸出結(jié)果為:VV135790一個(gè)int型數(shù)據(jù)可以用%d或%ld格式輸出。 %u,輸出unsigned型數(shù)據(jù),即無(wú)符號(hào)類型,如unsigned u;那么u在輸出的時(shí)候,應(yīng)該用u格式控制符,那么輸出時(shí)應(yīng)使用語(yǔ)句:printf (%u,u);例2.1 從鍵盤(pán)輸入任意一個(gè)整數(shù),輸出這個(gè)數(shù)的平方的值。main( ) int a;long s;scanf(%d,&a);sa*a;printf(sldn,s); 2.3 實(shí)型數(shù)據(jù)一、實(shí)型常量實(shí)數(shù)在C語(yǔ)言中,又稱浮點(diǎn)數(shù)。實(shí)數(shù)有兩種表示形式:1

23、. 十進(jìn)制數(shù)形式。由數(shù)字和小數(shù)點(diǎn)組成(注意必須有小數(shù)點(diǎn))。2. 指數(shù)形式。但注意字母e(或E)之前必須有數(shù)字,且e后面指數(shù)必須為整數(shù),如e3、2.1e3.5、.e3、e都不是合法的指數(shù)形式。二、實(shí)型變量在本節(jié)問(wèn)題中,已知兩個(gè)數(shù)是實(shí)數(shù),那么兩數(shù)之和與積也必定為實(shí)數(shù),所以需要設(shè)四個(gè)實(shí)型變量,分別為a,b,sum,mul。定義語(yǔ)句為:float a,b,sum,mul; C實(shí)型變量分為:1. 單精度型(float型) 一個(gè)float型數(shù)據(jù)在內(nèi)存中占4個(gè)字節(jié)(32位),在TURBO C中,單精度實(shí)數(shù)的范圍約為10381038之間并提供7位有效位;小于10-38的數(shù)被處理成零值。2. 雙精度型(doub

24、le型) 一個(gè)double型數(shù)據(jù)在內(nèi)存中占8個(gè)字節(jié),雙精度實(shí)數(shù)的數(shù)值范圍約為1030810308。并提供1516位有效位,具體精確多少位與機(jī)器有關(guān);小于10-308的數(shù)被處理成零值。三、 實(shí)型數(shù)據(jù)的輸入和輸出1. 實(shí)型數(shù)據(jù)的輸入實(shí)型數(shù)據(jù)的輸入也用scanf函數(shù)實(shí)現(xiàn)的,格式符使用的是f字符,以小數(shù)的形式輸入數(shù)據(jù),也可以使用e字符,以指數(shù)的形式輸入數(shù)據(jù)。如本節(jié)問(wèn)題中的scanf(%f%f,&a,&b);2. 實(shí)型數(shù)據(jù)的輸出實(shí)型數(shù)據(jù)的輸出用printf函數(shù)實(shí)現(xiàn),格式符使用f字符,以小數(shù)的形式輸出數(shù)據(jù)。輸出時(shí)應(yīng)注意:(1)%f:不指定字段寬度,整數(shù)部分會(huì)全部輸出,并輸出6位小數(shù)。(2)

25、%m.n:指定輸出數(shù)據(jù)共占m列,其中有n位小數(shù)。如果數(shù)值長(zhǎng)度小于m,則左端補(bǔ)空格。(3)%m.n:指定輸出數(shù)據(jù)共占m列,其中有n位小數(shù)。如果數(shù)值長(zhǎng)度小于m,則右端補(bǔ)空格。(4)若是雙精度型變量輸出時(shí)應(yīng)用%lf格式控制,如 double f;輸出時(shí)應(yīng)使用語(yǔ)句: printf (%lf,f);2.4 字符型數(shù)據(jù)一、字符常量1. 字符常量C語(yǔ)言的字符常量是用一對(duì)單引號(hào)括起來(lái)的單個(gè)字符。如:´a´、´b´、´x´、´D´、´?´、´$´等都是字符常量。2. 轉(zhuǎn)義字符除了這樣的字符常量

26、外,C語(yǔ)言還允許用一種特殊形式的字符常量,就是以一個(gè)´´開(kāi)頭的字符序列.例如,前面已經(jīng)用到,在printf函數(shù)中的´n´,它表示一個(gè)換行符。例2.2 字符常量的輸出。 main ( )printf (ab cntde);運(yùn)行結(jié)果: ab c de二、字符變量在本節(jié)問(wèn)題中,設(shè)了兩個(gè)字符型變量c1和c2。定義形式如下:char c1,c2;它表示 c1和 c2為字符型變量,各可以放一個(gè)字符??梢杂孟旅嬲Z(yǔ)句對(duì) c1,c2賦值:c1´a´;c2´b´;因此在內(nèi)存中一個(gè)字符變量只占一個(gè)字節(jié)。三、字符數(shù)據(jù)的存儲(chǔ)形式 字符在內(nèi)存

27、中存儲(chǔ)的不是字符本身,而是它的ASCII碼,例如字符´a´的ASCII碼為97,´b´的ASCII碼為98。那么字符的存儲(chǔ)形式與整數(shù)的存儲(chǔ)形式是類似的。C語(yǔ)言使字符型數(shù)據(jù)和整型數(shù)據(jù)是通用的。例2.3 main ( ) char a1,a2; a197;a298; printf (%c %cn,a1,a2); printf (%d %dn,a1,a2); 程序運(yùn)行時(shí)輸出如下: a b 97 98字符型數(shù)據(jù)和整型數(shù)據(jù)是通用的,但應(yīng)該注意字符數(shù)據(jù)只占一個(gè)字節(jié),它只能存放0255范圍內(nèi)的整數(shù)。例2.4 大小寫(xiě)字母的轉(zhuǎn)換main ( ) char a1,a2;a1

28、´a´;a2´b´;a1a132;a2a232;printf (%c %cn,a1,a2);運(yùn)行結(jié)果為:A B程序的作用是將兩個(gè)小寫(xiě)字母a和b轉(zhuǎn)換成大寫(xiě)字母和。´a´的ASCII碼為97,而´A´為65,´b´為98, ´B´為66。從ASCII碼表中可以看到每一個(gè)小寫(xiě)字母比它相應(yīng)的大寫(xiě)字母的ASCII碼大32。 四、字符型數(shù)據(jù)的輸入和輸出1. getchar函數(shù)和putchar函數(shù)例2.5 #include stdio.hmain ( ) char c; cgetchar

29、( ); putchar (c);在運(yùn)行時(shí),如果從鍵盤(pán)輸入字符´a´a (輸入´a´后,按回車(chē)鍵)a (輸出變量c的值´a´)注意:getchar ( )只能接收一個(gè)字符。putchar ( )也只能向終端輸出一個(gè)字符。在使用getchar函數(shù)和putchar函數(shù)時(shí),程序的首部需使用預(yù)編譯命令#include stdio.h。2. scanf函數(shù)和printf函數(shù) 例2.6 main ( ) char c1,c2; scanf (%c%c,&c1,&c2); printf (%c%c,c1,c2); 若輸入為 ab則輸

30、出為 ab在使用scanf函數(shù)和printf函數(shù)輸入輸出字符型數(shù)據(jù)時(shí),使用%c格式控制,用來(lái)輸入輸出單個(gè)字符。注意,在用%c格式輸入字符時(shí),空格將以有效字符輸入:scanf (%c%c%c,&c1,&c2,&c3);若輸入 aVbVc則將字符´a´送給c1,字符空格´V´送給c2,因?yàn)榭崭褚彩且粋€(gè)有效字符,字符´b´送給c3。%c只需要讀入一個(gè)字符,用了空格做間隔,所以會(huì)出現(xiàn)這樣的問(wèn)題。五、字符串常量字符串常量是用雙引號(hào)括住的字符序列。如: How do you do,CHINA,a等都是字符串常量??梢暂敵鲆?/p>

31、個(gè)字符串,如 printf (How do you do.);注意: 不要將字符常量與字符串常量混淆。´a´是字符常量,a是字符串常量,二者不同。C規(guī)定:在每個(gè)字符串的結(jié)尾加一個(gè)“字符串結(jié)束標(biāo)志”以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。以´0´作為字符串結(jié)束標(biāo)志。´0´是ASCII碼為0的字符,從ASCII碼表中可以看到ASCII碼為0的字符是“空操作字符”不引起任何操作。2.5 變量的初始化變量的初始化,就是在定義變量的同時(shí)給變量賦予初值??梢圆捎谜f(shuō)明變量的類型,然后再賦值的方法,也可以對(duì)變量類型說(shuō)明的同時(shí),給變量賦初值。1. 先定義后賦值

32、 int a,b,c; a2; b5;c10;2. 定義和賦值同時(shí)進(jìn)行 int a5; short b10; char c´a´; float d7.8;3. 對(duì)幾個(gè)變量同時(shí)賦一個(gè)初值int a110,a210,a310;不可以寫(xiě)成: int a1a2a310;但是也可以寫(xiě)成: int a1,a2,a3; a1a2a310;初始化不是在編譯階段完成的,而是在程序運(yùn)行時(shí)執(zhí)行本函數(shù)時(shí)賦以初值的。相當(dāng)于一個(gè)賦值語(yǔ)句。例如:int a10; 相當(dāng)于: int a;a10;又如:int a,b,c20; 相當(dāng)于: int a,b,c;c20;2.6 運(yùn)算符和表達(dá)式一、算術(shù)運(yùn)算符和表達(dá)

33、式例2.7 已知正方形的長(zhǎng)和寬,求正方形的周長(zhǎng)。分析 正方形的周長(zhǎng)公式為:l2*(a+b),已知正方形的長(zhǎng)和寬可以計(jì)算周長(zhǎng)。main ( )int a,b,l; a3; b4; l2*(a+b); printf (l%dn,l);1. 基本的算術(shù)運(yùn)算符 (加法運(yùn)算符,或正值運(yùn)算符) (減法運(yùn)算符,或負(fù)值運(yùn)算符)* (乘法運(yùn)算符)/ (除法運(yùn)算符)% (模運(yùn)算符,或求余運(yùn)算符)注意:(1)兩個(gè)整數(shù)相除結(jié)果為整數(shù)。但是如果相除的兩個(gè)數(shù)中,至少有一個(gè)為實(shí)數(shù),則結(jié)果為帶小數(shù)的商。(2)% 模運(yùn)算符,要求操作數(shù)均為整型數(shù)據(jù),如7%4的值為3。2. 算術(shù)表達(dá)式用算術(shù)運(yùn)算符和括號(hào)將操作數(shù)連接起來(lái)的,符合C語(yǔ)

34、法規(guī)則的式子,稱C算術(shù)表達(dá)式。在表達(dá)式求值時(shí),按運(yùn)算符的優(yōu)先級(jí)別高低次序執(zhí)行。 例如: 10+´a´+1.58765.12*´b´在進(jìn)行運(yùn)算時(shí),不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算。 3. 強(qiáng)制類型轉(zhuǎn)換可以用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)式轉(zhuǎn)換成所需類型。例如:(double)a (將a轉(zhuǎn)換成double類型)(int)(x+y) (將x+y的值轉(zhuǎn)換成整型)(float)(5%3) (將5%3的值轉(zhuǎn)換成float型)一般形式為: (類型名)(表達(dá)式)注意:(1)類型名應(yīng)用括號(hào)括起來(lái)。如(int)(x+y) (2)已知float x; 對(duì)于(int

35、)x,x仍然是float類型,而整個(gè)表達(dá)式(int)x為整型。二、賦值運(yùn)算符和賦值表達(dá)式1. 賦值符號(hào)賦值符號(hào)就是賦值運(yùn)算符,將一個(gè)數(shù)據(jù)賦給一個(gè)變量。如a3。2. 類型轉(zhuǎn)換如果賦值運(yùn)算符兩側(cè)的類型不一致,要進(jìn)行類型轉(zhuǎn)換。(1)將實(shí)型數(shù)據(jù)賦給整型變量時(shí),舍棄實(shí)數(shù)的小數(shù)部分。如i為整型變量,執(zhí)行i3.56的結(jié)果是使i的值為3。(2)將整型數(shù)據(jù)賦給實(shí)型變量時(shí),數(shù)值不變,但以浮點(diǎn)數(shù)形式存儲(chǔ)到變量中。3. 復(fù)合的賦值運(yùn)算符常用的賦值運(yùn)算符有以下幾種:,*,/,%例如:a3 等價(jià)于 aa3x*y8 等價(jià)于 xx*(y8)x3 等價(jià)于 xx%34. 賦值表達(dá)式由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來(lái)的式子

36、稱為賦值表達(dá)式。例如:abc5 (賦值表達(dá)式值為5,a、b、c值均為5)a5+(c6) (表達(dá)式值為11,a值為11,c的值為6)a(b4)+(c6) (表達(dá)式值為10,a值為10,b等于4,c等于6)三、逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式逗號(hào)運(yùn)算符將兩個(gè)表達(dá)式連接起來(lái)。如: 3+5,6+8稱為逗號(hào)表達(dá)式。逗號(hào)表達(dá)式的格式為:表達(dá)式1,表達(dá)式2逗號(hào)表達(dá)式的求解過(guò)程是:先求解表達(dá)式1,再求解表達(dá)式2,整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式2的值。例如逗號(hào)表達(dá)式 a3*5,a*4,先求解a3*5,得a的值為15,然后求解a*4,得60。整個(gè)逗號(hào)表達(dá)式的值為60。課堂練習(xí)綜合實(shí)例例1 輸入三角形的三條邊長(zhǎng),求三角形面積。(

37、為了簡(jiǎn)單起見(jiàn),設(shè)輸入的三邊長(zhǎng)a,b,c能構(gòu)成三角形)#include math.hmain ( )float a,b,c,s,area;scanf (%f,%f,%f,&a,&b,&c);s1.0/2*(a+b+c);areasqrt(s*(s-a)*(s-b)*(s-c);printf (a%7.2f, b%7.2f, c%7.2f, s%7.2fn,a,b,c,s);printf (area%7.2fn,area);運(yùn)行情況如下:3,4,6a 3.00, b 4.00, c 6.00, s 6.50area 5.33例2 從鍵盤(pán)輸入一個(gè)大寫(xiě)字母,要求改用小寫(xiě)字母輸出

38、。 #include stdio.hmain ( )char c1,c2; c1getchar ( ); printf (%c,%dn,c1,c1);c2c1+32; printf (%c,%dn,c2,c2);運(yùn)行情況如下:AA, 65a,97本章小結(jié)本章在講解順序結(jié)構(gòu)程序設(shè)計(jì)方法的同時(shí),介紹了三種數(shù)據(jù)類型。1. 整型數(shù)據(jù)。主要了解整型數(shù)據(jù)的定義方法,根據(jù)使用整數(shù)的范圍選用定義整數(shù)變量的類型。掌握整型數(shù)據(jù)的輸入輸出方法,主要使用d格式控制符。2. 實(shí)型數(shù)據(jù)。主要掌握實(shí)型變量的不同定義方法,單精度數(shù)和雙精度數(shù)的表示范圍,實(shí)型數(shù)據(jù)的輸入輸出方法,主要使用f格式控制符。3. 字符型數(shù)據(jù)。是由一對(duì)單

39、引號(hào)括起來(lái)的單個(gè)字符,要注意,字符與字符串的區(qū)別。還講解了各種運(yùn)算符和表達(dá)式,主要掌握算術(shù)運(yùn)算符,在混合運(yùn)算中,要按照運(yùn)算符的優(yōu)先級(jí),結(jié)合方向運(yùn)算。作業(yè):1. 編程序,用getchar函數(shù)讀入兩個(gè)字符給c1、c2,然后分別用putchar函數(shù)和printf函數(shù)輸出這兩個(gè)字符。上機(jī)運(yùn)行此程序,比較putchar和printf函數(shù)輸出字符的特點(diǎn)。2. 試編寫(xiě)程序,從鍵盤(pán)輸入一個(gè)大寫(xiě)字母,要求改用小寫(xiě)字母輸出。 授課日期:第7周 周一58 周三12 第8周 周一58 周三12 第9周 周一58 周三12授課類型:演示、講解、練習(xí)、輔導(dǎo) 課時(shí):18教學(xué)內(nèi)容:1、關(guān)系運(yùn)算符和關(guān)系表達(dá)式2、邏輯運(yùn)算符和邏

40、輯表達(dá)式3、if語(yǔ)句4、switch語(yǔ)句教學(xué)目標(biāo):1、掌握關(guān)系運(yùn)算表達(dá)式2、掌握邏輯運(yùn)算表達(dá)式3、熟練掌握if語(yǔ)句的使用4、掌握switch語(yǔ)句教學(xué)重點(diǎn):1、關(guān)系運(yùn)算符和關(guān)系表達(dá)式2、邏輯運(yùn)算符和邏輯表達(dá)式3、if語(yǔ)句的使用教學(xué)難點(diǎn):1、掌握switch語(yǔ)句的使用2、if語(yǔ)句的嵌套使用教學(xué)過(guò)程:內(nèi)容講授 學(xué)生實(shí)踐 作業(yè)布置 新課內(nèi)容預(yù)告教學(xué)手段:多媒體教學(xué)軟件 + 個(gè)別輔導(dǎo)作 業(yè):給學(xué)生寫(xiě)評(píng)語(yǔ),若學(xué)生成績(jī)?cè)?069分,則打印“及格”,7089分打印“良好”,90100分打印“優(yōu)秀”,60分以下打印“不及格”,請(qǐng)分別用if-else語(yǔ)句和switch語(yǔ)句編程。第3章 選擇結(jié)構(gòu)程序設(shè)計(jì)選擇結(jié)構(gòu),或

41、稱分支結(jié)構(gòu),是指對(duì)所給定的條件進(jìn)行判斷,然后決定選擇執(zhí)行不同的操作。本章主要介紹如何用C語(yǔ)言實(shí)現(xiàn)選擇結(jié)構(gòu)。C語(yǔ)言的選擇語(yǔ)句有兩類,一類是if語(yǔ)句,另一類是switch語(yǔ)句,本章將分別進(jìn)行介紹。在介紹選擇結(jié)構(gòu)程序設(shè)計(jì)的同時(shí),還要介紹關(guān)系運(yùn)算符和關(guān)系表達(dá)式,邏輯運(yùn)算符和邏輯表達(dá)式等內(nèi)容。3.1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式一、關(guān)系運(yùn)算符及其優(yōu)先次序1. 關(guān)系運(yùn)算符C語(yǔ)言提供6種關(guān)系運(yùn)算符: < (小于) <= (小于或等于) > (大于) >= (大于或等于) = = (等于)!= (不等于)優(yōu)先級(jí)相同(高)優(yōu)先級(jí)相同(低)2. 關(guān)于優(yōu)先次序:(1)前4種關(guān)系運(yùn)算符(´

42、<´, ´<=´, ´>´, ´>=´)的優(yōu)先級(jí)別相同,后兩種也相同。前4種高于后2種。例如,´>´優(yōu)先于´= =´。而´>´與´<´優(yōu)先級(jí)相同。(2)關(guān)系運(yùn)算符與算術(shù)運(yùn)算符、賦值運(yùn)算符的優(yōu)先級(jí)關(guān)系如下:算術(shù)運(yùn)算符(高)關(guān)系運(yùn)算符(中)賦值運(yùn)算符(低)例如:a>b+c 等效于a>(b+c) a= =b<c 等效于a= =(b<c)a=b>=c 等效于a=(b>=c) (

43、3)關(guān)系運(yùn)算符的結(jié)合方向是“自左向右”。注意:“等于”關(guān)系的運(yùn)算符“= =”和“不等于”關(guān)系的運(yùn)算符“ !=”與數(shù)學(xué)中的表示方法不同。例如,欲判斷x是否等于0,若寫(xiě)成:x=0則表示把0賦值給變量x,正確的寫(xiě)法為:x= =0。二、關(guān)系表達(dá)式1. 關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(算術(shù)表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式、賦值表達(dá)式、字符表達(dá)式等)連接起來(lái)的式子,稱關(guān)系表達(dá)式。例:x>y,a+b<18,´a´<´b´都為合法的關(guān)系表達(dá)式。2. 關(guān)系表達(dá)式的值關(guān)系表達(dá)式的值是一個(gè)邏輯值,即“真”或“假”。在C語(yǔ)言中:常用1表示“真”,用0表示“假

44、”。例如,a=5,b=2,則:關(guān)系表達(dá)式a>b的值為“真”,表達(dá)式的值為1。關(guān)系表達(dá)式a= =b的值為“假”,表達(dá)式的值為0??梢詫㈥P(guān)系表達(dá)式的運(yùn)算結(jié)果(0或1)賦給一個(gè)整型變量或字符型變量,如a=4,b=1,下面的賦值語(yǔ)句是將1賦給變量c:c=a>b c的值為1例3.1 試求x=5>3>1的值。分析x=5>3>1 相當(dāng)于 x=(5>3)>1=1>1=0說(shuō)明根據(jù)關(guān)系運(yùn)算符的優(yōu)先級(jí)別高于賦值運(yùn)算符。 3.2 邏輯運(yùn)算符和邏輯表達(dá)式一、邏輯運(yùn)算符及其優(yōu)先次序1. 邏輯運(yùn)算符C語(yǔ)言提供了3種邏輯運(yùn)算符:! 邏輯非&& 邏輯與 邏輯

45、或其中“&&”和“”為“雙目(元)運(yùn)算符”,要求有兩個(gè)操作數(shù)(即運(yùn)算量),如(a<b)&&(x<=y),(a<b)(x<=y)?!?!”是“一目(元)運(yùn)算符”,只需一個(gè)操作數(shù),如!a或!(a<b)。2. 關(guān)于邏輯運(yùn)算符的優(yōu)先次序:(1)邏輯運(yùn)算符的優(yōu)先次序如下:!(非)&&(與)(或),即“!”為三者中最高的。(2)邏輯運(yùn)算符中的“&&”和“”低于關(guān)系運(yùn)算符,“!”高于算術(shù)運(yùn)算符。例如:(a>=b)&&(x>y) 可寫(xiě)成:a>=b&&x>y(a=

46、=b)(x= =y) 可寫(xiě)成:a= =bx= =y(3)邏輯運(yùn)算的結(jié)合方向是“自左向右”。二、 邏輯表達(dá)式1. 邏輯表達(dá)式用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來(lái)的式子就是邏輯表達(dá)式。例如: a&&b*c,(a+b)(c<0)均為邏輯表達(dá)式。2. 邏輯表達(dá)式的值C語(yǔ)言編譯系統(tǒng)在給出邏輯運(yùn)算時(shí),以數(shù)值1代表“真”,以0代表“假”,但在判斷一個(gè)量是否為“真”時(shí),以非0代表“真”,即將一個(gè)非0的數(shù)值認(rèn)為是“真”,以0代表“假”。注意:(1)參與邏輯運(yùn)算的量不但可以是0和1,或者是0和非0的整數(shù),也可以是任何類型的數(shù)據(jù),如字符型、實(shí)型或指針型。(2)如果在一個(gè)表達(dá)式中不同位置上出

47、現(xiàn)數(shù)值,應(yīng)區(qū)分哪些是作為數(shù)值運(yùn)算或關(guān)系運(yùn)算的對(duì)象,哪些作為邏輯運(yùn)算的對(duì)象。(3)在邏輯表達(dá)式的求解中,并不是所有邏輯運(yùn)算符都需要執(zhí)行,有時(shí)只需執(zhí)行一部分運(yùn)算符就可以得到邏輯表達(dá)式的最后結(jié)果。例如: x&&y&&z只有x為真時(shí),才需要判斷y的值。只要x為假,就立即得出整個(gè)表達(dá)式為假。 xyz只要x為真(非0),就不必判斷y和x;當(dāng)x為假,才判斷y;x和y都為假才判斷z。3.3 if語(yǔ)句if語(yǔ)句是選擇結(jié)構(gòu)的一種形式,又稱為條件分支語(yǔ)句。它是通過(guò)對(duì)給定條件的判斷,來(lái)決定所要執(zhí)行的操作。C語(yǔ)言中提供了3種形式的if語(yǔ)句:if語(yǔ)句、if-else語(yǔ)句和if-else-if

48、語(yǔ)句。一、 問(wèn)題的提出問(wèn)題 比較兩個(gè)數(shù)的大小,將兩個(gè)數(shù)中較大者賦給m。分析 要比較兩個(gè)數(shù)的大小就要用到關(guān)系表達(dá)式,定義兩個(gè)變量a,b,如果a>b則將a的值賦給m,若a<b則將b的值賦給m,這里我們將用到if語(yǔ)句來(lái)實(shí)現(xiàn)該項(xiàng)功能。 main ( ) int a,b,s; a=5;b=10;if (a>b) m=a;else m=b;printf ("m=%dn",m); 程序運(yùn)行結(jié)果:m=10說(shuō)明 在該問(wèn)題中我們借用了if語(yǔ)句,通過(guò)條件來(lái)判斷應(yīng)該執(zhí)行哪條語(yǔ)句,充分體現(xiàn)出選擇結(jié)構(gòu)程序設(shè)計(jì)的思想。二、if語(yǔ)句的三種形式1. if語(yǔ)句if語(yǔ)句是條件分支語(yǔ)句最基本的形

49、式。格式:if (表達(dá)式) 語(yǔ)句功能:首先計(jì)算表達(dá)式的值,若表達(dá)式的值為“真”(非0),則執(zhí)行語(yǔ)句,若表達(dá)式的值為“假”(0),不執(zhí)行語(yǔ)句。其流程圖3.1(a)所示。例如:if (x>y) printf ("%d",x); 2. if-else語(yǔ)句if-else語(yǔ)句是條件分支語(yǔ)句的標(biāo)準(zhǔn)使用形式。格式:if (表達(dá)式) 語(yǔ)句1 else 語(yǔ)句2功能:首先計(jì)算表達(dá)式的值,若表達(dá)式的值為“真”(非0),則執(zhí)行語(yǔ)句1,若表達(dá)式的值為“假”(0),則執(zhí)行語(yǔ)句2。例如:if (x>y) printf ("%d",x);else printf ("

50、;%d",y); 3. if-else-if語(yǔ)句前面兩種if語(yǔ)句一般都用于兩個(gè)分支的選擇結(jié)構(gòu)。對(duì)于多個(gè)分支選擇時(shí),可采用if-else-if語(yǔ)句。格式:if (表達(dá)式1) 語(yǔ)句1else if (表達(dá)式2) 語(yǔ)句2else if (表達(dá)式3) 語(yǔ)句3else if (表達(dá)式n-1) 語(yǔ)句n-1else 語(yǔ)句n功能:首先計(jì)算表達(dá)式1的值,若為“真”(非0),執(zhí)行語(yǔ)句1,否則進(jìn)行下一步判斷;若表達(dá)式2為真,執(zhí)行語(yǔ)句2,否則進(jìn)行下一步判斷最后所有表達(dá)式都為假時(shí),執(zhí)行語(yǔ)句n。 例如:if (score>89) grade=´A´;else if (score>

51、79) grade=´B´;else if (score>69) grade=´C´;else if (score>59) grade=´D´;else grade=´E´;關(guān)于if語(yǔ)句的說(shuō)明:(1)if后面圓括號(hào)中的表達(dá)式一般是關(guān)系表達(dá)式或邏輯表達(dá)式,用于描述選擇結(jié)構(gòu)的條件,但也可以是任意的數(shù)值類型表達(dá)式(包括整型、實(shí)型、字符型、指針型數(shù)據(jù)表達(dá)式)。 例如: if (2) printf ("OK!");是合法的,因?yàn)楸磉_(dá)式的值為2,非0,按“真”處理,執(zhí)行結(jié)果輸出“OK!”(2)第

52、二種、第三種格式的if語(yǔ)句中,在每個(gè)else前面有一個(gè)分號(hào),整個(gè)語(yǔ)句結(jié)束處也有一個(gè)分號(hào)。這是由于分號(hào)是C語(yǔ)句中不可缺少的部分,這個(gè)分號(hào)是if語(yǔ)句中的內(nèi)嵌語(yǔ)句所需要的。(3)在if和else后面可以只含有一個(gè)內(nèi)嵌的操作語(yǔ)句,也可以含有多個(gè)操作語(yǔ)句,此時(shí)應(yīng)用大括號(hào)“ ”將幾個(gè)語(yǔ)句括起來(lái),構(gòu)成一個(gè)復(fù)合語(yǔ)句,注意:復(fù)合語(yǔ)句的“”和“”之后不能加分號(hào)。例3.2 輸入兩個(gè)實(shí)數(shù),按代數(shù)值由小到大輸出這兩個(gè)數(shù)。main ( ) float a,b,c; scanf ("%f,%f",&a,&b);if (a>b) t=a;a=b;b=t; printf ("

53、%5.2f,%5.2f",a,b);程序運(yùn)行結(jié)果: 2.2,-5.7-5.70,2.20二、if語(yǔ)句的嵌套在if語(yǔ)句中有包含一個(gè)或多個(gè)if語(yǔ)句稱為if語(yǔ)句的嵌套。要處理多重分支選擇結(jié)構(gòu)問(wèn)題,除了用if-else-if語(yǔ)句外,還可以利用if語(yǔ)句的嵌套來(lái)實(shí)現(xiàn)。說(shuō)明:(1)if和else的配對(duì)規(guī)則為:else總是與它上面的最近的未配對(duì)的if配對(duì)。(2)if與else的個(gè)數(shù)最好相同,從內(nèi)層到外層一一對(duì)應(yīng),以避免出錯(cuò)。(3)在嵌套內(nèi)的if語(yǔ)句既可以是if語(yǔ)句形式,也可以是if-else語(yǔ)句形式,但最好使內(nèi)嵌if語(yǔ)句也包含else部分。如果if與else的個(gè)數(shù)不同,可以用花括號(hào)來(lái)確定配對(duì)關(guān)系。例

54、如:if ( ) if ( ) 語(yǔ)句1 else 語(yǔ)句2這時(shí)“ ”限定了內(nèi)嵌if語(yǔ)句的使用范圍,因此else與第一個(gè)if配對(duì)。例3.3 有一函數(shù): -1 (x<0) y= 0 (x=0)1 (x>0)編一程序,輸入一個(gè)x值,輸出y值。 main ( ) int x,y; scanf ("%d",&x);if (x<0) y=-1; else if (x= =0) y=0; else y=1; printf ("x=%d,y=%dn",x,y); 三、條件運(yùn)算符條件運(yùn)算符由兩個(gè)符號(hào)“?”和“:”組成,要求有3個(gè)操作對(duì)象,稱三目(元

55、)運(yùn)算符,它是C語(yǔ)言中唯一的三目運(yùn)算符。條件表達(dá)式的格式為:表達(dá)式1?表達(dá)式2:表達(dá)式3 min=(a<b)?a:b;說(shuō)明:(1)通常情況下,表達(dá)式1是關(guān)系表達(dá)式或邏輯表達(dá)式,用于描述條件表達(dá)式中的條件,表達(dá)式2和表達(dá)式3可以是常量、變量或表達(dá)式。例如:(x= =y)?´T´:´F´(a>b)?printf ("%d",a):printf ("%d",b)等均為合法的條件表達(dá)式。(2)條件表達(dá)式的執(zhí)行順序:先求解表達(dá)式1,若為非0(真)則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)條件表達(dá)式的值。若表達(dá)式1的值為0(假),則求解表達(dá)式3,表達(dá)式3的值就是整個(gè)條件表達(dá)式的值。min=(a<b)?a:b;執(zhí)行結(jié)果就是將a和b二者中較小的賦給min。(3)條件表達(dá)式的優(yōu)先級(jí)別僅高于賦值運(yùn)算符,而低于前面介紹過(guò)的所有運(yùn)算符。因此,min=(a<b)?a:b;可直接寫(xiě)成:min=a<b?a:b;如果有a>b?a:b+1等效于a>b?a:(b+1),而不等效于(a>b?a:b)+1(4) 條件運(yùn)算符的結(jié)合方向?yàn)椤白杂抑磷蟆薄@?/p>

溫馨提示

  • 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)論