c語(yǔ)言程序設(shè)計(jì)案例教程_圖文_第1頁(yè)
c語(yǔ)言程序設(shè)計(jì)案例教程_圖文_第2頁(yè)
c語(yǔ)言程序設(shè)計(jì)案例教程_圖文_第3頁(yè)
c語(yǔ)言程序設(shè)計(jì)案例教程_圖文_第4頁(yè)
c語(yǔ)言程序設(shè)計(jì)案例教程_圖文_第5頁(yè)
已閱讀5頁(yè),還剩225頁(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、語(yǔ)言程序設(shè)計(jì)實(shí)例教程語(yǔ)言程序設(shè)計(jì)實(shí)例教程中國(guó)高等職業(yè)技術(shù)教育研究會(huì)推薦中國(guó)高等職業(yè)技術(shù)教育研究會(huì)推薦高高 職職 系系 列列 教教 材材 西安電子科技大學(xué)出版社出版h t t p : / / w w w . x d u p h . c o m 第1章 程序設(shè)計(jì)與C語(yǔ)言 第2章 C語(yǔ)言程序設(shè)計(jì)初步知識(shí) 第3章 簡(jiǎn)單程序設(shè)計(jì) 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì) 第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 第6章 數(shù) 組 第7章 函 數(shù) 第8章 指 針 第9章 編譯預(yù)處理 第10章 結(jié)構(gòu)體和共用體 第11章 位運(yùn)算 第12章 文 件 第13章 程序調(diào)試與常見(jiàn)錯(cuò)誤分析目錄退出退出第1章 程序設(shè)計(jì)與C語(yǔ)言 1.1 程序設(shè)計(jì)的基本概念

2、 1.2 算法 1.3 結(jié)構(gòu)化程序及設(shè)計(jì)步驟 1.4 C語(yǔ)言的特點(diǎn) 1.5 C語(yǔ)言程序的基本結(jié)構(gòu) 1.6 C程序的上機(jī)操作 返回主目錄 1.1 程序設(shè)計(jì)的基本概念 電子計(jì)算機(jī)只是一種以二進(jìn)制數(shù)據(jù)形式在內(nèi)部存儲(chǔ)信息、以程序存儲(chǔ)為基礎(chǔ)、由程序自動(dòng)控制的電子設(shè)備。 程序是一條條有序指令的集合。第1章 程序設(shè)計(jì)與C語(yǔ)言 程序設(shè)計(jì)語(yǔ)言是實(shí)現(xiàn)程序設(shè)計(jì)、以便人與計(jì)算機(jī)進(jìn)行信息交流的必備工具,又稱計(jì)算機(jī)語(yǔ)言。目前,社會(huì)上廣泛使用的是高級(jí)語(yǔ)言,是一種接近人們習(xí)慣的程序設(shè)計(jì)語(yǔ)言,它使用人們所熟悉的文字、符號(hào)及數(shù)學(xué)表達(dá)式來(lái)編寫(xiě)程序,使程序的編寫(xiě)和操作都顯得十分方便。第1章 程序設(shè)計(jì)與C語(yǔ)言 由高級(jí)語(yǔ)言編寫(xiě)的程序稱為

3、“源程序”。在計(jì)算機(jī)內(nèi)部,源程序必須翻譯為機(jī)器能夠接受的二進(jìn)制代碼所表示的“目標(biāo)程序”(也稱機(jī)器語(yǔ)言)。其中,具有這種翻譯功能的程序稱為“編譯程序”,如圖1.1所示。 源程序編譯程序目標(biāo)程序圖1.1 源程序編譯過(guò)程第1章 程序設(shè)計(jì)與C語(yǔ)言 程序設(shè)計(jì)的一般步驟: 1. 確定數(shù)據(jù)結(jié)構(gòu)。 2. 確定算法。 3. 編程。 4. 調(diào)試。 5 整理源程序并總結(jié)資料。第1章 程序設(shè)計(jì)與C語(yǔ)言 返回章目錄 1.2 算法算法 所謂算法,是為解決某一特定的問(wèn)題,所給出的一系列確切的、有限的操作步驟。 程序?qū)嶋H上是用計(jì)算機(jī)語(yǔ)言所描述的算法。也就是說(shuō),依據(jù)算法所給定的步驟,用計(jì)算機(jī)語(yǔ)言所規(guī)定的表達(dá)形式去實(shí)現(xiàn)這些步驟,

4、即為源程序。 在算法設(shè)計(jì)中應(yīng)遵循的準(zhǔn)則: (1) 可執(zhí)行性。 (2) 確定性。 (3) 有窮性。 (4) 輸入。 (5) 輸出。第1章 程序設(shè)計(jì)與C語(yǔ)言 目前,對(duì)算法的描述,一般采用自然語(yǔ)言、一般流程圖或N-S結(jié)構(gòu)流程圖。 常用一般流程圖符號(hào)如圖1.2所示。 處理框 輸入輸出框 判斷框 流程線圖1.2 常用流程圖符號(hào)第1章 程序設(shè)計(jì)與C語(yǔ)言 返回章目錄 1.3 結(jié)構(gòu)化程序及設(shè)計(jì)步驟結(jié)構(gòu)化程序及設(shè)計(jì)步驟 結(jié)構(gòu)化程序由3種基本結(jié)構(gòu)組成:順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。使用這基本結(jié)構(gòu)編寫(xiě)的程序,稱為結(jié)構(gòu)化程序。第1章 程序設(shè)計(jì)與C語(yǔ)言 1. 順序結(jié)構(gòu) 程序中的語(yǔ)句按先后順序逐條執(zhí)行。s=a+b輸出輸出

5、b=4a=3a=3b=4s=a+b輸出輸出s圖1.4 順序結(jié)構(gòu)流程圖(a)一般流程圖;(b)N-S結(jié)構(gòu)流程圖 (a) (b)第1章 程序設(shè)計(jì)與C語(yǔ)言 2. 選擇結(jié)構(gòu) 在執(zhí)行程序中的選擇結(jié)構(gòu)語(yǔ)句時(shí),該語(yǔ)句的執(zhí)行將根據(jù)不同的條件執(zhí)行不同分支的語(yǔ)句。 圖1.5 選擇結(jié)構(gòu)流程圖 (a) 一般流程圖;(b) N-S結(jié)構(gòu)流程圖 abmax=amax=b輸出輸出maxnoyesab yes no max=a max=b(a) (b) 第1章 程序設(shè)計(jì)與C語(yǔ)言 3. 循環(huán)結(jié)構(gòu) 在執(zhí)行程序中的循環(huán)結(jié)構(gòu)語(yǔ)句時(shí),該語(yǔ)句將根據(jù)各自的條件,對(duì)循環(huán)結(jié)構(gòu)所限定的語(yǔ)句(即循環(huán)體)重復(fù)執(zhí)行多次或零次。 循環(huán)結(jié)構(gòu)又分為當(dāng)型循環(huán)和

6、直到型循環(huán)兩種情況。 1)當(dāng)型循環(huán) 該循環(huán)的特點(diǎn)是:當(dāng)條件滿足時(shí),就執(zhí)行循環(huán)體,否則就退出循環(huán)結(jié)構(gòu)。 第1章 程序設(shè)計(jì)與C語(yǔ)言 圖1.6 當(dāng)型循環(huán)流程圖 (a)一般流程圖;(b)N-S結(jié)構(gòu)流程圖 i=1, t=1第1章 程序設(shè)計(jì)與C語(yǔ)言 (a)i=n?輸出輸出ti=1, t=1輸入輸入n循環(huán)體循環(huán)體t=t* *ii=i+1noyes循環(huán)條件循環(huán)條件i=n 循環(huán)體循環(huán)體t=t*i i=i+1 輸出輸出t(b) 2) 直到型循環(huán)直到型循環(huán) 該循環(huán)的特點(diǎn)是:先執(zhí)行循環(huán)體,再判斷循環(huán)條件,條件不滿足時(shí),就退出循環(huán)結(jié)構(gòu)。 圖1.7 直到型循環(huán)流程圖 (a)一般流程圖; (b) N-S結(jié)構(gòu)流程圖 i=1,

7、t=1輸入輸入n循環(huán)體循環(huán)體t=t* *ii=i+1i=n?輸出輸出tyesnoi=1,t=1循環(huán)體循環(huán)體t=t* *ii=i+1循環(huán)條件循環(huán)條件 i CDTC 回車 C:TC TC 回車 啟動(dòng)成功后,屏幕上將顯示Turbo C的主菜單窗口。 2. 選擇用戶文件的存放目錄 選擇“File”菜單中的“Change dir”項(xiàng)后回車,彈出子目錄提示框。在該提示框中輸入用戶文件的存放目錄,輸入完后按回車鍵即可。 第1章 程序設(shè)計(jì)與C語(yǔ)言 3. 建立工作環(huán)境 操作步驟如下: (1) 按F10鍵,選擇“Option”菜單并按回車鍵。 (2) 在“Option”子菜單中選擇“Directories”選項(xiàng)并

8、按回車鍵,將彈出子菜單。 “Include directories”選項(xiàng):說(shuō)明標(biāo)準(zhǔn)包含文件的目錄。 “Library directory”選項(xiàng):說(shuō)明Turbo C運(yùn)行時(shí)庫(kù)文件所在的目錄。 “Output directory”選項(xiàng):即編譯、連接后的可執(zhí)行文件所存放的目錄。 “Turbro C directory”選項(xiàng):即Turbo C文件所在的目錄。第1章 程序設(shè)計(jì)與C語(yǔ)言 4. 編寫(xiě)源程序 操作步驟如下: (1) 在主菜單中選擇“File”選項(xiàng)并按回車鍵。 (2) 在“File”的下拉菜單中,選擇“Load”選項(xiàng),屏幕將出現(xiàn)一個(gè)提示框。 用戶輸入要編輯的文件名并按回即可,將進(jìn)入全屏幕編輯狀態(tài)。

9、第1章 程序設(shè)計(jì)與C語(yǔ)言 5. 常用編輯鍵 Insert鍵:控制工作狀態(tài)是否為“插入狀態(tài)”。 Delete鍵:刪除光標(biāo)所在的字符。 Ctrl+Y鍵:刪除光標(biāo)所在的一行。 Ctrl+N鍵:插入一行。第1章 程序設(shè)計(jì)與C語(yǔ)言 6. 編譯、連接、運(yùn)行 (1) 對(duì)單一源程序文件進(jìn)行編譯、連接、運(yùn)行。 操作步驟如下: a. 按F10鍵選擇“Compile”選項(xiàng)。 b. 選中“Make exe File”項(xiàng),回車。 c. 按Esc鍵回到主菜單,選擇“Run”菜單中的“Run”項(xiàng),運(yùn)行已生成的可執(zhí)行文件。第1章 程序設(shè)計(jì)與C語(yǔ)言 (2) 對(duì)兩個(gè)以上源程序文件進(jìn)行編譯、連接、運(yùn)行。 利用Turbo C提供的“

10、Project”菜單項(xiàng),其功能可直接將兩個(gè)以上的文件編譯連接后生成一個(gè)完整的運(yùn)行程序。 操作步驟如下: b. 構(gòu)造Project文件。 c. 選擇“Project”菜單中的“Project name”項(xiàng),回車,輸入Project文件名,按F9鍵產(chǎn)生相應(yīng)的可執(zhí)行文件。 d. 停止編譯的方式。 e. 運(yùn)行。第1章 程序設(shè)計(jì)與C語(yǔ)言 返回章目錄第第2章章 C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 2.1 標(biāo)識(shí)符、常量和變量 2.2 簡(jiǎn)單數(shù)據(jù)類型 2.3 基本運(yùn)算表達(dá)式 返回主目錄 2.1 標(biāo)識(shí)符、常量和變量標(biāo)識(shí)符、常量和變量 標(biāo)識(shí)符是用來(lái)標(biāo)識(shí)變量名、符號(hào)常量名、函數(shù)名、文件名以及一些具有專門含義的

11、有效字符序列。 C語(yǔ)言規(guī)定:合法的標(biāo)識(shí)符只能由字母、數(shù)字和下劃線組成,第一個(gè)字符必須為字母或下劃線。大寫(xiě)字母和小寫(xiě)字母被視為兩個(gè)不同的字符。標(biāo)識(shí)符的長(zhǎng)度規(guī)定取前8個(gè)字符為有效字符。例如:sum、area、aver.PI、_above、L_1_2_3、S12 合法的標(biāo)識(shí)符第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 1. 關(guān)鍵字標(biāo)識(shí)符 關(guān)鍵字又稱為命令符,在程序中具有特定的含義,不能另作它用,其他字符又無(wú)法直接替代。 2. 預(yù)定義標(biāo)識(shí)符 預(yù)定義標(biāo)識(shí)符是指C語(yǔ)言提供的庫(kù)函數(shù)名和預(yù)編譯處理命令(如printf、scanf、define)等。第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步

12、知識(shí) 3. 用戶標(biāo)識(shí)符 由用戶根據(jù)需要自定義的標(biāo)識(shí)符稱為用戶標(biāo)識(shí)符。使用用戶自定義標(biāo)識(shí)符時(shí),應(yīng)注意: (1) 最好根據(jù)其含義選用英文縮寫(xiě)及漢語(yǔ)拼音作標(biāo)識(shí)符,這樣便于閱讀程序。 (2) 不能與關(guān)鍵字相同。 (3) 如果與預(yù)定義標(biāo)識(shí)符相同系統(tǒng)并不報(bào)錯(cuò),程序仍能運(yùn)行,只是預(yù)定義標(biāo)識(shí)符失去原來(lái)的含義,代之以用戶確認(rèn)的含義。 第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 1. 常量 在程序運(yùn)行過(guò)程中,其值不能被修改的固定量稱為常量,C語(yǔ)言中有3種常量: (1) 算術(shù)型運(yùn)算常量(如整型常量、實(shí)型常量等); (2) 字符型常量(如字符常量、字符串常量); (3) 標(biāo)識(shí)符所定義的常量。第2章 C C

13、語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 2. 變量 程序運(yùn)行過(guò)程中,其值可以改變的量叫變量;程序中使用的變量,屬于用戶自定義標(biāo)識(shí)符,任何一個(gè)變量名必須先定義(即確定變量名和變量的類型)后使用。 變量也有類型之分,常用的有整型變量、實(shí)型變量、字符型變量等。 第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 返回章目錄2.2 簡(jiǎn)單數(shù)據(jù)類型簡(jiǎn)單數(shù)據(jù)類型 C語(yǔ)言中的數(shù)據(jù)類型,如圖2.1所示。 圖2.1 C語(yǔ)言中的數(shù)據(jù)類型 無(wú)符號(hào)型(無(wú)符號(hào)型(unsigned)長(zhǎng)整型(長(zhǎng)整型(long)短整型(短整型(short)整型(整型(int)單精度型(單精度型(float)雙精度型(雙精度型(doubl

14、e)整型整型文件類型(文件類型(file)字符串類型字符串類型數(shù)據(jù)類型數(shù)據(jù)類型指針類型指針類型空類型空類型基本類型基本類型(簡(jiǎn)單類型)(簡(jiǎn)單類型)數(shù)值類型數(shù)值類型字符型(字符型(char)構(gòu)造類型構(gòu)造類型數(shù)組類型數(shù)組類型結(jié)構(gòu)體類型(結(jié)構(gòu)體類型(struct)共用體類型(共用體類型(union)實(shí)型實(shí)型枚舉類型(枚舉類型(enum)第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 1. 整型常量 整型常量,即整型常數(shù)。C語(yǔ)言整型常量可用以下3種形式表示: (1) 十進(jìn)制整型常數(shù)。 (2) 八進(jìn)制數(shù)。以0開(kāi)頭的數(shù)。 (3) 十六進(jìn)制整數(shù)。以0 x開(kāi)頭的數(shù)為十六進(jìn)制數(shù)。 第2章 C C語(yǔ)言程序

15、設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 2. 整型變量 1) 整型變量的分類 整型變量可分為以下4種整型類型: a. 基本型,以int表示; b. 短整型,以short表示; c. 長(zhǎng)整型,以long表示; d. 無(wú)符號(hào)整型,以u(píng)nsigned表示。 第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 2) 整型變量的定義、使用 變量必須先定義,后使用。定義整型變量的格式為: int i , j ; /* 定義i , j為整型變量 */ long e , f ; /* 定義e , f為長(zhǎng)整型變量 */ int a=3 , b=4 ; /* 定義a , b為整型變量同 時(shí)將3和4分別賦予a和b *

16、/ 3. 整型數(shù)據(jù)在內(nèi)存中的存放形式 在C語(yǔ)言中,一個(gè)整型數(shù)通常占用2個(gè)字節(jié),低位在前一個(gè)字節(jié),高位在后一個(gè)字節(jié)。 第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 1. 實(shí)型常量 在C語(yǔ)言中實(shí)型表示實(shí)數(shù)的集合,實(shí)型常量又稱實(shí)數(shù)。實(shí)型常量有兩種表現(xiàn)形式。 1) 十進(jìn)制數(shù)形式 十進(jìn)制數(shù)形式和數(shù)學(xué)中的實(shí)數(shù)形式類同,由數(shù)字和小數(shù)點(diǎn)組成,小數(shù)點(diǎn)是實(shí)數(shù)的標(biāo)志。 2) 指數(shù)形式 實(shí)數(shù)的指數(shù)形式類似于數(shù)學(xué)中的指數(shù)形式。組成格式如下: 數(shù)字小數(shù)E整數(shù) ( 內(nèi)為可省項(xiàng))項(xiàng))第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 2. 實(shí)型變量 在C語(yǔ)言中實(shí)型變量分為單精度(float)和雙精度(doubl

17、e)兩類。 實(shí)型變量的定義: float a , b ; /* 定義a , b為單精度實(shí)型變量 */ double x , y ; /* 定義x , y為雙精度實(shí)型變量 */第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 1. 字符型常量 字符型常量(簡(jiǎn)稱字符常量)是一個(gè)字符,在表示時(shí)由兩個(gè)單引號(hào)括起來(lái)。例如A、a、+、2等。 字符型常量在內(nèi)存中占用一個(gè)字節(jié),存放的是字符的ASCII碼值,如字符A的值為65;B的值為66。所有字符常量還可作為整型量進(jìn)行運(yùn)算,以及參與相應(yīng)的各種操作。 第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 2. 轉(zhuǎn)義字符 C語(yǔ)言中有一種特殊的字符常量轉(zhuǎn)義

18、字符,這類字符常量是以反斜杠字符“”開(kāi)頭的字符序列,它表示某個(gè)特定的ASCII碼字符。在程序中,轉(zhuǎn)義字符要放在一對(duì)單引號(hào)內(nèi)。 常用的轉(zhuǎn)義字符及其含義: n回車換行至下一行開(kāi)頭 r 回車至本行開(kāi)頭 b 退格符 反斜杠字符 單引號(hào)字符第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 3. 字符變量 字符變量用于存放一個(gè)字符常量。字符變量的定義格式為: char c1 , c2; 其中c1和c2分別被定義為字符型變量。 一個(gè)字符型變量在內(nèi)存中占一個(gè)字節(jié),字符型變量可以參加任何整型運(yùn)算。 第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 返回章目錄2.3 基本運(yùn)算表達(dá)式基本運(yùn)算表達(dá)式 1.

19、 基本算術(shù)運(yùn)算符 基本算術(shù)運(yùn)算符及特性,見(jiàn)表2-4。 第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 表2-4 基本運(yùn)算符列表 運(yùn)算符運(yùn)算符功能功能操作數(shù)個(gè)數(shù)操作數(shù)個(gè)數(shù)結(jié)合方向結(jié)合方向優(yōu)先級(jí)優(yōu)先級(jí)+-求正求正求負(fù)求負(fù)單目單目單目單目自右至左自右至左自右至左自右至左高高 低低*/%乘法乘法除法除法求余求余雙目雙目雙目雙目雙目雙目自左至右自左至右自左至右自左至右自左至右自左至右+-加法加法減法減法雙目雙目雙目雙目自左至右自左至右自左至右自左至右第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 2. 算術(shù)表達(dá)式 由算術(shù)運(yùn)算符將操作數(shù)連接起來(lái)的有意義的式子稱為算術(shù)表達(dá)式。例如2+a*b。

20、 使用運(yùn)算符時(shí),應(yīng)注意: (1) 表達(dá)式本身的功能。 (2) 操作數(shù)的個(gè)數(shù)。 (3) 操作數(shù)的類型。 (4) 運(yùn)算符的優(yōu)先級(jí)。 (5) 結(jié)合性。 (6) 任何一個(gè)表達(dá)式除了有其所實(shí)現(xiàn)的功能外,還有表達(dá)式其自身的值。第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 1. 賦值運(yùn)算符 “=”符就是賦值運(yùn)算符,賦值運(yùn)算符構(gòu)成的表達(dá)式格式如下: 變量名變量名=表達(dá)式表達(dá)式 2. 復(fù)合賦值運(yùn)算符 在“=”前面加上雙目運(yùn)算符,如“+”、“-”、“*”、“%”、“/”即構(gòu)成復(fù)合賦值運(yùn)算符。 例如:a+=3 等價(jià)于a=a+3 所有復(fù)合賦值運(yùn)算符級(jí)別相同,且與賦值運(yùn)算符同一優(yōu)先級(jí),都具有右結(jié)合性。 例如,

21、設(shè)a的初值為10,則表達(dá)式a+=a-=a*=a等價(jià)于:a+=(a-=a*=a)第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 1. 數(shù)據(jù)類型自動(dòng)轉(zhuǎn)換數(shù)據(jù)類型自動(dòng)轉(zhuǎn)換 數(shù)據(jù)類型的自動(dòng)轉(zhuǎn)換常發(fā)生在以下情況中: (1) 進(jìn)行運(yùn)算時(shí)轉(zhuǎn)換。 (2) 賦值轉(zhuǎn)換。 (3) 輸出轉(zhuǎn)換。 (4) 函數(shù)調(diào)用轉(zhuǎn)換。 2. 不同類型數(shù)據(jù)間的混合運(yùn)算不同類型數(shù)據(jù)間的混合運(yùn)算 整型、實(shí)型、字符型數(shù)據(jù)可以進(jìn)行混合運(yùn)算。在進(jìn)行運(yùn)算時(shí),應(yīng)先把不同類型的數(shù)據(jù)轉(zhuǎn)換為同一類型,然后進(jìn)行運(yùn)算,轉(zhuǎn)換規(guī)則,參見(jiàn)圖2.2所示。 第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 圖2.2 混合運(yùn)算時(shí)不同類型數(shù)據(jù)間的轉(zhuǎn)換 doub

22、lelongunsignedintchar,shortfloat高高低低第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 3. 賦值轉(zhuǎn)換賦值轉(zhuǎn)換 (1) 將整型數(shù)據(jù)賦給實(shí)型變量,這時(shí)數(shù)值不變,但以實(shí)型數(shù)據(jù)形式存到變量中。 (2) 將實(shí)型數(shù)據(jù)賦給整型變量,這時(shí)舍棄小數(shù)部分,取整數(shù)部分賦給整型變量中。 (3) 將int型整型數(shù)據(jù)賦給無(wú)符號(hào)型整型變量,int型數(shù)據(jù)按存儲(chǔ)單元中實(shí)際二進(jìn)制位的內(nèi)容直接賦給unsigned型變量。 若int型數(shù)據(jù)為正數(shù),即存儲(chǔ)單元中最高位為0,賦值后,則int型數(shù)據(jù)與unsigned型數(shù)據(jù)的數(shù)值相同。 若int型數(shù)據(jù)為負(fù)數(shù),即存儲(chǔ)單元中最高位為1,賦值后,unsig

23、ned型數(shù)據(jù)在使用時(shí),最高位將代表一定的數(shù)值。第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) (4) 字符型數(shù)據(jù)賦給整型變量。 字符型數(shù)據(jù)占1個(gè)字節(jié),而整型變量占2個(gè)字節(jié),因此賦值轉(zhuǎn)換過(guò)程中,存在位的擴(kuò)展。 a. 對(duì)于unsigned型變量,字符型數(shù)據(jù)(8位)傳送給unsigned變量的低8位,而unsigned變量的高8位只須補(bǔ)0; b. 對(duì)于int型變量,若字符型數(shù)據(jù)最高位為0,則int型變量高8位補(bǔ)0。若字符型數(shù)據(jù)最高位為1,則int型變量的高8位補(bǔ)1。這樣可以保持?jǐn)?shù)值不變。 第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 4. 強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換 在C語(yǔ)言中,可以

24、利用強(qiáng)制類型轉(zhuǎn)換符,將表達(dá)式的類型轉(zhuǎn)換為所需類型。 一般形式: (類型名類型名)表達(dá)式表達(dá)式 例如: (int)a表示將a轉(zhuǎn)換成int類型; 第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 1. 格式與功能格式與功能 格式: i+ i- 功能:先使用i的值,然后,變量i的值增加(減少)1,即i=i1。 格式: +i -i 功能:變量i先增加(減少)1,即i=i1,然后,再使用i的值。 第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 2. 自增、自減運(yùn)算符的運(yùn)算自增、自減運(yùn)算符的運(yùn)算 自增、自減運(yùn)算為單目運(yùn)算,其運(yùn)算數(shù)據(jù)為單操作數(shù),且操作數(shù)只能是變量,不能是常量或表達(dá)式。 3.

25、自增、自減運(yùn)算符的結(jié)合性自增、自減運(yùn)算符的結(jié)合性 自增、自減運(yùn)算符屬右結(jié)合性。 注意: (1) 使用+i或i+單獨(dú)構(gòu)成語(yǔ)句時(shí),其作用是等價(jià)的,均為i=i+1。 (2) 運(yùn)算對(duì)象只能是整型變量和實(shí)型變量。 (3) 對(duì)于表達(dá)式(i+)+(i+)+(i+),不同的編程環(huán)境,其結(jié)果不同。第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 用逗號(hào)將表達(dá)式連接起來(lái)的式子稱為逗號(hào)表達(dá)式。 1. 逗號(hào)表達(dá)式的一般形式逗號(hào)表達(dá)式的一般形式 表達(dá)式表達(dá)式1 , 表達(dá)式表達(dá)式2 , 表達(dá)式表達(dá)式3 , 表達(dá)式表達(dá)式n 2. 逗號(hào)表達(dá)式的功能逗號(hào)表達(dá)式的功能 先計(jì)算表達(dá)式1,再計(jì)算表達(dá)式2,最后計(jì)算表達(dá)式n。最后

26、一個(gè)表達(dá)式的值即為此逗號(hào)表達(dá)式的值。 第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 3. 逗號(hào)運(yùn)算符的優(yōu)先級(jí)逗號(hào)運(yùn)算符的優(yōu)先級(jí) 在所有運(yùn)算符中,逗號(hào)運(yùn)算符級(jí)別是最低的。 利用逗號(hào)表達(dá)式可實(shí)現(xiàn)在一條C語(yǔ)言中對(duì)多個(gè)變量賦予不同的值。第2章 C C語(yǔ)言程序設(shè)計(jì)初步知識(shí)語(yǔ)言程序設(shè)計(jì)初步知識(shí) 返回章目錄第第3章章 簡(jiǎn)單程序設(shè)計(jì)簡(jiǎn)單程序設(shè)計(jì) 3.1 順序結(jié)構(gòu)程序設(shè)計(jì)的概念 3.2 賦值語(yǔ)句 3.3 數(shù)據(jù)輸出 3.4 數(shù)據(jù)輸入 3.5 復(fù)合語(yǔ)句和空語(yǔ)句返回主目錄 3.1 順序結(jié)構(gòu)程序設(shè)計(jì)的概念順序結(jié)構(gòu)程序設(shè)計(jì)的概念 順序結(jié)構(gòu)是一種線性結(jié)構(gòu),其特點(diǎn)是:在該結(jié)構(gòu)中,各操作塊(簡(jiǎn)稱塊,它所對(duì)應(yīng)的計(jì)算機(jī)語(yǔ)

27、言表述形式是程序段)按照各自出現(xiàn)的先后順序,依次逐塊執(zhí)行。 3.2 賦值語(yǔ)句賦值語(yǔ)句 賦值語(yǔ)句由賦值表達(dá)式加上一個(gè)分號(hào)構(gòu)成。格式為: 變量變量 =表達(dá)式表達(dá)式;第3章 簡(jiǎn)單程序設(shè)計(jì)簡(jiǎn)單程序設(shè)計(jì)返回章目錄3.3 數(shù)據(jù)輸出數(shù)據(jù)輸出 在使用庫(kù)函數(shù)中的輸入輸出函數(shù)時(shí),要用編譯預(yù)處理命令“#include”將有關(guān)的“頭文件”包含到用戶源程序中。例如,在使用標(biāo)準(zhǔn)輸入輸出庫(kù)函數(shù)時(shí),要用到“stdio.h”文件,因此要將此文件包含進(jìn)來(lái),文件開(kāi)頭應(yīng)使用下面的編譯預(yù)處理命令: # include 或 # include stdio.h第3章 簡(jiǎn)單程序設(shè)計(jì)簡(jiǎn)單程序設(shè)計(jì)返回章目錄 1. printf函數(shù)的一般格式 p

28、rintf函數(shù)的一般格式為: printf ( 格式控制格式控制 , 輸出項(xiàng)輸出項(xiàng)1 , 輸出項(xiàng)輸出項(xiàng)2 , ) 該函數(shù)按照指定的格式,將輸出項(xiàng)列表中的各項(xiàng)輸出到標(biāo)準(zhǔn)輸出文件中。 第3章 簡(jiǎn)單程序設(shè)計(jì)簡(jiǎn)單程序設(shè)計(jì) 2. printf函數(shù)中格式控制說(shuō)明函數(shù)中格式控制說(shuō)明 每個(gè)格式控制說(shuō)明必須用“%”開(kāi)頭,以一個(gè)格式控制字符結(jié)束,在格式控制字符的前面還可以插入“寬度說(shuō)明”、左對(duì)齊符號(hào)“-”、前導(dǎo)零符號(hào)“0”等附加字符。 1) 格式控制字符格式控制字符 常用的格式控制字符和它們的功能,見(jiàn)表3-1。使用時(shí)要注意區(qū)分大小寫(xiě)。 第3章 簡(jiǎn)單程序設(shè)計(jì)簡(jiǎn)單程序設(shè)計(jì)表3-1 printf函數(shù)的格式控制字符 格

29、式 控 制 字格 式 控 制 字符符 說(shuō)說(shuō) 明明d , i輸出帶符號(hào)的十進(jìn)制整型數(shù)(正數(shù)不輸出符號(hào))輸出帶符號(hào)的十進(jìn)制整型數(shù)(正數(shù)不輸出符號(hào))o輸出無(wú)符號(hào)八進(jìn)制整型數(shù)輸出無(wú)符號(hào)八進(jìn)制整型數(shù)x 或或 X輸出無(wú)符號(hào)十六進(jìn)制整型數(shù)(用輸出無(wú)符號(hào)十六進(jìn)制整型數(shù)(用x時(shí)輸出時(shí)輸出af,用,用X時(shí)輸出時(shí)輸出AF)u輸出無(wú)符號(hào)十進(jìn)制整型數(shù)輸出無(wú)符號(hào)十進(jìn)制整型數(shù)c輸出一個(gè)字符輸出一個(gè)字符s輸出字符串輸出字符串f以小數(shù)形式輸出浮點(diǎn)數(shù)(隱含輸出以小數(shù)形式輸出浮點(diǎn)數(shù)(隱含輸出6位小數(shù))位小數(shù))e 或或 E以指數(shù)形式輸出浮點(diǎn)數(shù),數(shù)字部分小數(shù)位數(shù)隱含輸出以指數(shù)形式輸出浮點(diǎn)數(shù),數(shù)字部分小數(shù)位數(shù)隱含輸出6位。位。g 或或

30、G選用選用%f和和%e格式中輸出寬度較短的一種格式格式中輸出寬度較短的一種格式p輸出變量或數(shù)組的地址輸出變量或數(shù)組的地址第3章 簡(jiǎn)單程序設(shè)計(jì)簡(jiǎn)單程序設(shè)計(jì) 2) 附加格式說(shuō)明字符附加格式說(shuō)明字符 為了使程序的輸出結(jié)果更加整齊美觀,可以在控制字符的前面加上附加格式說(shuō)明字符,見(jiàn)表3-2。 表3-2 printf函數(shù)的附加格式說(shuō)明符 字字 符符 說(shuō)說(shuō) 明明字母字母l用于長(zhǎng)整型數(shù)據(jù),可加在格式控制符用于長(zhǎng)整型數(shù)據(jù),可加在格式控制符d、o、x、u的前面的前面m(正整數(shù))(正整數(shù))數(shù)據(jù)最小寬度數(shù)據(jù)最小寬度n(正整數(shù))(正整數(shù))對(duì)于浮點(diǎn)數(shù),表示輸出對(duì)于浮點(diǎn)數(shù),表示輸出n位小數(shù);對(duì)于字符串,表示截取的位小數(shù);對(duì)

31、于字符串,表示截取的字符個(gè)數(shù);對(duì)于整數(shù),指定必須輸出的數(shù)字個(gè)數(shù),若輸出的字符個(gè)數(shù);對(duì)于整數(shù),指定必須輸出的數(shù)字個(gè)數(shù),若輸出的數(shù)字少于指定的個(gè)數(shù),則前面補(bǔ)數(shù)字少于指定的個(gè)數(shù),則前面補(bǔ)0,否則按原樣輸出,否則按原樣輸出-輸出的數(shù)字或字符向左對(duì)齊輸出的數(shù)字或字符向左對(duì)齊+輸出的結(jié)果總是帶有輸出的結(jié)果總是帶有+號(hào)或號(hào)或-號(hào)號(hào)0 在輸出數(shù)據(jù)前加在輸出數(shù)據(jù)前加0第3章 簡(jiǎn)單程序設(shè)計(jì)簡(jiǎn)單程序設(shè)計(jì) putchar函數(shù)的作用是向屏幕終端輸出一個(gè)字符。格式為: putchar(ch) ; 其中ch可以是字符型常量、變量或整型變量。 第3章 簡(jiǎn)單程序設(shè)計(jì)簡(jiǎn)單程序設(shè)計(jì)返回章目錄3.4 數(shù)據(jù)輸入 scanf函數(shù)的格式為

32、: scanf(格式控制格式控制 , 地址地址1 , 地址地址2 , ); 此函數(shù)的作用是從屏幕終端輸入一個(gè)字符。getchar函數(shù)沒(méi)有參數(shù),其一般格式為: getchar( ) 當(dāng)執(zhí)行此函數(shù)調(diào)用語(yǔ)句時(shí),變量將獲得一個(gè)從標(biāo)準(zhǔn)設(shè)備上讀取的字符代碼值。 第3章 簡(jiǎn)單程序設(shè)計(jì)簡(jiǎn)單程序設(shè)計(jì)返回章目錄3.5 復(fù)合語(yǔ)句和空語(yǔ)句 在C語(yǔ)言中,一對(duì)花括號(hào)“ ”不僅可用作函數(shù)體的開(kāi)頭和結(jié)尾的標(biāo)志,也可用作復(fù)合語(yǔ)句的開(kāi)頭和結(jié)尾的標(biāo)志;復(fù)合語(yǔ)句也可稱為“語(yǔ)句塊”,復(fù)合語(yǔ)句的語(yǔ)句格式為: 語(yǔ)句語(yǔ)句1 ; 語(yǔ)句語(yǔ)句2 ; ; 語(yǔ)句語(yǔ)句n ; 一個(gè)復(fù)合語(yǔ)句在語(yǔ)法上視為一條語(yǔ)句,在一對(duì)花括號(hào)中的語(yǔ)句數(shù)量不限。 C程序中的所

33、有語(yǔ)句必須由一個(gè)分號(hào)“;”作為結(jié)束。如 果語(yǔ)句只有一個(gè)分號(hào),就是空語(yǔ)句。程序執(zhí)行空語(yǔ)句時(shí)不產(chǎn)生任何動(dòng)作。第3章 簡(jiǎn)單程序設(shè)計(jì)簡(jiǎn)單程序設(shè)計(jì)返回章目錄第4章 選擇結(jié)構(gòu)程序設(shè)計(jì) 選擇結(jié)構(gòu)是計(jì)算機(jī)科學(xué)用來(lái)描述自然界和社會(huì)生活中分支現(xiàn)象的手段。其特點(diǎn)是:根據(jù)所給定選擇條件為真(即分支條件成立)與否,而決定從各實(shí)際可能的不同操作分支中執(zhí)行某一分支的相應(yīng)操作,并且任何情況下恒有“無(wú)論分支多寡,必?fù)衿湟唬豢v然分支眾多,僅選其一”的特性。 4.1 關(guān)系運(yùn)算符及表達(dá)式 4.2 邏輯運(yùn)算符及表達(dá)式 4.3 條件運(yùn)算符 4.4 單條件選擇 if 語(yǔ)句 4.5 開(kāi)關(guān)分支 switch 語(yǔ)句 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)返回

34、主目錄 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)4.1 關(guān)系運(yùn)算符及表達(dá)式 關(guān)系表達(dá)式是由關(guān)系運(yùn)算符連接表達(dá)式構(gòu)成的。 1. 關(guān)系運(yùn)算符關(guān)系運(yùn)算符 關(guān)系運(yùn)算符都是雙目運(yùn)算符,共有如下6種: ,=,y、(x=5)=y等。 關(guān)系表達(dá)式的值是整數(shù)0或1,其中0代表邏輯假;1代表邏輯真。第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)返回章目錄4.2 邏輯運(yùn)算符及表達(dá)式 邏輯表達(dá)式是由邏輯運(yùn)算符連接表達(dá)式構(gòu)成的。 1. 邏輯運(yùn)算符邏輯運(yùn)算符 C語(yǔ)言中提供了3種邏輯運(yùn)算符: (1) 單目邏輯運(yùn)算符:!(邏輯“非”)。 (2) 雙目邏輯運(yùn)算符:&(邏輯“與”)。 (3) 雙目邏輯運(yùn)算符:|(邏輯“或”)。 其中邏輯“與”&的優(yōu)先

35、級(jí)大于邏輯“或”|,它們的優(yōu)先級(jí)都小于邏輯“非”!。邏輯運(yùn)算符具有自左至右的結(jié)合性。 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì) 2. 邏輯表達(dá)式邏輯表達(dá)式 由邏輯運(yùn)算符組成的表達(dá)式稱為邏輯表達(dá)式。 邏輯表達(dá)式的結(jié)果為1(結(jié)果為“真”時(shí))或0(結(jié)果為“假“時(shí))。 表達(dá)式a和表達(dá)式b進(jìn)行邏輯運(yùn)算時(shí),其運(yùn)算規(guī)則,見(jiàn)表4-1。 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)表4-1 邏輯運(yùn)算的真值表 ab!a!ba & ba | b非0非00011非0001010非01001001100第4章 選擇結(jié)構(gòu)程序設(shè)計(jì) 3. 短路表達(dá)式短路表達(dá)式 在由 & 和 | 運(yùn)算符組成的邏輯表達(dá)式中,只對(duì)能確定整個(gè)表達(dá)式值所需要的最少數(shù)目的

36、子表達(dá)式進(jìn)行計(jì)算。也就是說(shuō),當(dāng)計(jì)算出一個(gè)子表達(dá)式的值之后便可確定整個(gè)邏輯表達(dá)式的值時(shí),后面的子表達(dá)式就不需要再計(jì)算了,整個(gè)表達(dá)式的值就是該子表達(dá)式的值。這種表達(dá)式也稱為短路表達(dá)式。 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)返回章目錄4.3 條件運(yùn)算符 條件運(yùn)算符是C語(yǔ)言中唯一的三目運(yùn)算符,條件表達(dá)式的一般格式為: 表達(dá)式表達(dá)式1 ? 表達(dá)式表達(dá)式2 : 表達(dá)式表達(dá)式3 條件運(yùn)算符的執(zhí)行過(guò)程是:先求解表達(dá)式1,當(dāng)值為非0(真),則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)條件表達(dá)式的值;否則求解表達(dá)式3,此時(shí)表達(dá)式3的值就作為整個(gè)條件表達(dá)式的值。 條件運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符,但是低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符。

37、條件運(yùn)算符的結(jié)合性為自右至左。 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)返回章目錄4.4 單條件選擇 if 語(yǔ)句 單條件選擇結(jié)構(gòu)的特點(diǎn)是:所給定的選擇條件(它可以是邏輯表達(dá)式也可以是關(guān)系表達(dá)式)的值如果為真,則執(zhí)行為真時(shí)的分支;如果為假則執(zhí)行為假時(shí)的分支。 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì) if 語(yǔ)句是根據(jù)所給定的條件決定執(zhí)行的操作,是“二選一”的分支結(jié)構(gòu)。If 語(yǔ)句的一般格式為: if (表達(dá)式表達(dá)式) 語(yǔ)句序列語(yǔ)句序列1; else 語(yǔ)句序列語(yǔ)句序列2; 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì) 條件分支嵌套就是在一個(gè)分支中可以嵌套另一個(gè)分支。 單條件選擇 if 語(yǔ)句完整的嵌套格式為: if(表達(dá)式表達(dá)式1) if(表達(dá)式表達(dá)式

38、2) 語(yǔ)句序列語(yǔ)句序列1 ; else 語(yǔ)句序列語(yǔ)句序列2 ; else if(表達(dá)式表達(dá)式3) 語(yǔ)句序列語(yǔ)句序列3 ; else 語(yǔ)句序列語(yǔ)句序列4 ;第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)返回章目錄4.5 開(kāi)關(guān)分支switch語(yǔ)句 C語(yǔ)言提供了switch多路選擇語(yǔ)句。格式如下: switch(表達(dá)式表達(dá)式) case 常量表達(dá)式常量表達(dá)式1 : 語(yǔ)句組語(yǔ)句組1 ; case 常量表達(dá)式常量表達(dá)式2 : 語(yǔ)句組語(yǔ)句組2 ; case 常量表達(dá)式常量表達(dá)式n : 語(yǔ)句組語(yǔ)句組n ; default : 語(yǔ)句組語(yǔ)句組n+1 ; 第4章 選擇結(jié)構(gòu)程序設(shè)計(jì)返回章目錄第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 5.1 循環(huán)結(jié)構(gòu)程序

39、設(shè)計(jì)的概念 5.2 while 語(yǔ)句 5.3 do while 語(yǔ)句 5.4 for 語(yǔ)句 5.5 循環(huán)結(jié)構(gòu)嵌套 5.6 break 語(yǔ)句和 continue 語(yǔ)句 5.7 語(yǔ)句標(biāo)號(hào)和 goto 語(yǔ)句 返回主目錄 5.1 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)的概念 實(shí)現(xiàn)循環(huán)的程序結(jié)構(gòu)稱為循環(huán)結(jié)構(gòu),是計(jì)算機(jī)科學(xué)中用以描述客觀世界循環(huán)現(xiàn)象的重要手段。 程序設(shè)計(jì)中的循環(huán)(簡(jiǎn)稱循環(huán))是指在程序設(shè)計(jì)中,從某處開(kāi)始有規(guī)律地反復(fù)執(zhí)行某一操作塊(或程序塊)。如果循環(huán)永遠(yuǎn)不會(huì)終止,這樣的循環(huán)就稱為死循環(huán)。 第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 返回章目錄5.2 while語(yǔ)句 while語(yǔ)句用來(lái)實(shí)現(xiàn)“當(dāng)型”循環(huán)結(jié)構(gòu)。 while語(yǔ)句是一個(gè)循環(huán)

40、控制語(yǔ)句,用來(lái)控制程序段的重復(fù)執(zhí)行。其一般格式為: while(表達(dá)式表達(dá)式) 循環(huán)體循環(huán)體 ; 格式中的循環(huán)體,可以是單個(gè)語(yǔ)句、空語(yǔ)句,也可以是復(fù)合語(yǔ)句。 第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 當(dāng)表達(dá)式為非0時(shí),執(zhí)行while語(yǔ)句中的循環(huán)體,然后繼續(xù)進(jìn)行表達(dá)式的判斷,如此循環(huán)。當(dāng)表達(dá)式為0時(shí),則退出循環(huán)。 說(shuō)明:如果循環(huán)體包含一個(gè)以上的語(yǔ)句,就構(gòu)成塊語(yǔ)句,應(yīng)該用花括號(hào) 括起來(lái)。 第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 返回章目錄5.3 do while語(yǔ)句 C語(yǔ)言中,用do while語(yǔ)句構(gòu)成直到型循環(huán)結(jié)構(gòu)。 do while語(yǔ)句也是一個(gè)循環(huán)控制語(yǔ)句。其特點(diǎn)是先執(zhí)行循環(huán)體,然后判斷條件是否成立。其一般格式為: do

41、循環(huán)體循環(huán)體 while(表達(dá)式表達(dá)式) ; 說(shuō)明:循環(huán)體至少執(zhí)行一次。當(dāng)循環(huán)體有多個(gè)語(yǔ)句時(shí)必須加花括號(hào) 。 第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 先執(zhí)行一次指定的循環(huán)體語(yǔ)句,然后判斷表達(dá)式。當(dāng)表達(dá)式的值為非0的數(shù)據(jù)時(shí),返回重新執(zhí)行循環(huán)體,如此反復(fù)直到表達(dá)式的值為0為止,此時(shí)循環(huán)結(jié)束。第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 返回章目錄5.4 for 語(yǔ)句 for語(yǔ)句可以用于循環(huán)次數(shù)已經(jīng)確定的情況,還可用于循環(huán)次數(shù)不確定而只給出循環(huán)結(jié)束條件的情況。 for語(yǔ)句的一般格式為: for (表達(dá)式表達(dá)式1 ; 表達(dá)式表達(dá)式2 ; 表達(dá)式表達(dá)式3) 循環(huán)體循環(huán)體 第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) for語(yǔ)句的執(zhí)行過(guò)程為: (1) 先求解

42、表達(dá)式1,表達(dá)式1只執(zhí)行一次,一般是賦值語(yǔ)句,用于初始化變量。 (2) 求解表達(dá)式2,若為假(0),則結(jié)束循環(huán)。 (3) 當(dāng)表達(dá)式2為真(非0)時(shí),執(zhí)行循環(huán)體。 (4) 執(zhí)行表達(dá)式3。 (5) 轉(zhuǎn)回(2)。第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 返回章目錄5.5 循環(huán)結(jié)構(gòu)嵌套 一個(gè)循環(huán)體內(nèi)包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。循環(huán)之中還可以套循環(huán),稱為多層循環(huán)。三種循環(huán)(while循環(huán)、do while循環(huán)和for循環(huán))可以互相嵌套。例如: while( ) for ( ) 第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 返回章目錄5.6 break語(yǔ)句和continue語(yǔ)句 break語(yǔ)句可以用在循環(huán)語(yǔ)句和switch語(yǔ)句

43、中。在循環(huán)語(yǔ)句中用來(lái)結(jié)束內(nèi)部循環(huán);在switch語(yǔ)句中用來(lái)跳出switch語(yǔ)句。 continue語(yǔ)句的作用是結(jié)束本次循環(huán),忽略continue后面的語(yǔ)句,進(jìn)行下一次循環(huán)判定。 第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 返回章目錄 5.7 語(yǔ)句標(biāo)號(hào)和goto語(yǔ)句 goto語(yǔ)句為無(wú)條件轉(zhuǎn)向語(yǔ)句,它的一般格式為: goto 語(yǔ)句標(biāo)號(hào)語(yǔ)句標(biāo)號(hào) ;第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 返回章目錄第6章 數(shù) 組 6.1 數(shù)組和數(shù)組單元的基本概念 6.2 一維數(shù)組 6.3 二維數(shù)組 6.4 字符數(shù)組返回主目錄 6.1 數(shù)組和數(shù)組單元的基本概念 1. 數(shù)組數(shù)組 將一組排列有序的、個(gè)數(shù)有限的變量作為一個(gè)整體,用一個(gè)統(tǒng)一的名字來(lái)表示,則這

44、些有序變量的全體稱為數(shù)組;或者說(shuō),數(shù)組是用一個(gè)名字代表順序排列的一組數(shù),順序號(hào)就是下標(biāo)變量的值。第6章 數(shù) 組 2. 數(shù)組單元數(shù)組單元 在同一數(shù)組中,構(gòu)成該數(shù)組的成員稱為數(shù)組單元(或數(shù)組元素、下標(biāo)變量)。C語(yǔ)言中,引用數(shù)組中的某一單元,要指出數(shù)組名和用括號(hào)括起來(lái)的數(shù)組單元在數(shù)組中的位置(順序號(hào))的下標(biāo)。例如: a3 代表a數(shù)組中順序號(hào)為3的那個(gè)單元。 第6章 數(shù) 組 3. 數(shù)組的維數(shù)數(shù)組的維數(shù) 下標(biāo)變量中下標(biāo)的個(gè)數(shù)稱為數(shù)組的維數(shù)。 具有一個(gè)下標(biāo)的下標(biāo)變量,構(gòu)成一維數(shù)組。 具有兩個(gè)下標(biāo)的下標(biāo)變量,構(gòu)成二維數(shù)組。 依次類推,三個(gè)下標(biāo)的下標(biāo)變量,構(gòu)成三維數(shù)組。有多少個(gè)下標(biāo)的下標(biāo)變量,就構(gòu)成多少維的數(shù)

45、組。通常把二維以上的數(shù)組稱為多維數(shù)組。 第6章 數(shù) 組 返回章目錄6.2 一維數(shù)組 用一個(gè)統(tǒng)一的標(biāo)識(shí)符,即數(shù)組名來(lái)標(biāo)識(shí)一組變量(也稱元素),用下標(biāo)來(lái)指示數(shù)組中元素的序號(hào)。當(dāng)數(shù)組中每個(gè)元素只帶有一個(gè)下標(biāo)時(shí),此數(shù)組稱為一維數(shù)組。 1. 一維數(shù)組的定義一維數(shù)組的定義 定義一維數(shù)組的格式為: 類型標(biāo)識(shí)符類型標(biāo)識(shí)符 數(shù)組名數(shù)組名常量表達(dá)式常量表達(dá)式 , ;第6章 數(shù) 組 2. 一維數(shù)組的引用一維數(shù)組的引用 使用數(shù)組必須先定義,后引用。 引用時(shí)只能對(duì)數(shù)組元素引用,如a0,ai,ai+1等,而不能引用整個(gè)數(shù)組。 在引用時(shí)應(yīng)注意以下幾點(diǎn): (1) 由于數(shù)組元素本身等價(jià)于同一類型的一個(gè)變量,因此,對(duì)變量的任何操

46、作都適用于數(shù)組元素。 (2) 在引用數(shù)組元素時(shí),下標(biāo)可以是整型常數(shù)或表達(dá)式,表達(dá)式內(nèi)允許變量存在。在定義數(shù)組時(shí)下標(biāo)不能使用變量。 (3) 引用數(shù)組元素時(shí)下標(biāo)最大值不能出界。 第6章 數(shù) 組 3. 一維數(shù)組的初始化一維數(shù)組的初始化 前已述及,可利用賦值語(yǔ)句或輸入語(yǔ)句給數(shù)組元素賦值。C語(yǔ)言還允許在定義數(shù)組時(shí)對(duì)各數(shù)組元素指定初始值稱為數(shù)組初始化。 (1) 數(shù)組初始化形式數(shù)組初始化形式1 例如:將括號(hào)內(nèi)整型數(shù)據(jù)0,1,2,3,4分別賦給整型數(shù)組元素a0,a1,a2,a3,a4??梢詫?xiě)為下面的形式: int a5=0, 1, 2, 3, 4 ; 第6章 數(shù) 組 2) 數(shù)組初始化形式數(shù)組初始化形式2 例如

47、:對(duì)a數(shù)組中所有元素賦初值0??梢詫?xiě)作下面的形式: int a 10=0 ; 3) 通過(guò)賦初值定義數(shù)組大小通過(guò)賦初值定義數(shù)組大小 例如: int a =1, 2, 3, 4, 5 ; 等價(jià)于:int a5=1, 2, 3, 4, 5 ;第6章 數(shù) 組 【例6-3】 從鍵盤(pán)輸入20個(gè)整數(shù),檢查整數(shù)10是否包含在這些數(shù)據(jù)中,若是的話,它是第幾個(gè)被輸入的。 程序如下:第6章 數(shù) 組 # include stdio.hmain() int data20 , i ; for(i=0 ; i20 ; i+) scanf(%d , &datai) ; for(i=0 ; i20 ; i+) if(d

48、atai=10) printf(10 is input the postion %d n , i+1) ; break ; 第6章 數(shù) 組 程序運(yùn)行結(jié)果為: 輸入:20 30 40 50 60 10 70 80 90 100 110 120 130 140 150 160 170 180 190 200 輸出:10 is input the position 6第6章 數(shù) 組 【例6-4】輸出字符串welcome。 程序如下: main() int i ; char str =w , e , l , c , o , m , e ; for(i=0 ; i7 ; i+) printf(%c ,

49、stri) ; 運(yùn)行結(jié)果:welcome 第6章 數(shù) 組 返回章目錄6.3 二維數(shù)組 1. 二維數(shù)組的定義 定義二維數(shù)組的一般格式為: 類型說(shuō)明符類型說(shuō)明符 數(shù)組名數(shù)組名 常量表達(dá)式常量表達(dá)式1常量表達(dá)式常量表達(dá)式2 2. 二維數(shù)組元素的引用 二維數(shù)組中各個(gè)元素可看作具有相同數(shù)據(jù)類型的一組變量。因此,對(duì)變量的引用及一切操作,同樣適用于二維數(shù)元素。 二維數(shù)組元素引用的格式為: 數(shù)組名數(shù)組名下標(biāo)下標(biāo)下標(biāo)下標(biāo)第6章 數(shù) 組 3. 二維數(shù)組的初始化 在定義二維數(shù)組的同時(shí),可使用以下幾種方法對(duì)二維數(shù)組初始化。 (1) 將所有數(shù)據(jù)寫(xiě)在一個(gè)大括號(hào)內(nèi),以逗號(hào)分隔,按數(shù)組元素在內(nèi)存中的排列順序?qū)ζ滟x值。 例如:

50、int a23=0 , 1 , 2 , 3 , 4 , 5 ; (2) 分行對(duì)數(shù)組元素賦值。 例如:int a23=0 , 1 , 2 , 4 , 5 , 6 ; 第6章 數(shù) 組 (3) 對(duì)部分元素賦值。 例如:int a23=1 , 4 ; (4) 若對(duì)全部元素賦初值,則定義時(shí)第一維長(zhǎng)度可缺省??捎傻诙S長(zhǎng)度,即列的數(shù)據(jù)的個(gè)數(shù)自動(dòng)確定第一維長(zhǎng)度(即行的個(gè)數(shù))。 例如:int a 3=0 , 1 , 2 , 3 , 4 , 5 ;第6章 數(shù) 組 【例6-7】 有一個(gè)34矩陣,要求編寫(xiě)程序求出矩陣中所有元素中的最大值,并找出其所在的位置,即行號(hào)和列號(hào)。 程序如下: # include stdio

51、.h main() int i , j , r , c , max ; int a34=1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 ; max=a00 ; 第6章 數(shù) 組 for(i=0 ; i3 ; i+) for(j=0 ; jmax) max=aij , r=i , c=j ; /* 用逗號(hào)表達(dá)式實(shí)現(xiàn)對(duì)max , r , c賦值 */ printf(max=%d,r=%d,c=%d,max,r,c); 運(yùn)行結(jié)果為: max = 12 r = 3 c = 4 第6章 數(shù) 組 【例6-8】 某班有40個(gè)學(xué)生考5門課程,求每個(gè)學(xué)生的平均成績(jī)

52、并輸出。 程序如下: # define M 40 # define N 5 main() int i , j ; float sMN , averM , sum ; for(i=0 ; iM ; i+) for(j=0 ; jN ; j+)第6章 數(shù) 組 scanf(%f , &sij) ; /* 由鍵盤(pán)輸入40個(gè)學(xué)生5門課的成績(jī) */ for(i=0 ; iM ; i+) sum=0.0 ; for(j=0 ; jN ; j+) sum+=sij ; averi=sum/N ; for(i=0 ; iM ; i+) printf (aver%d=%fn , i ,averi) ; 第

53、6章 數(shù) 組 返回章目錄6.4 字符數(shù)組 字符數(shù)組是用來(lái)存放字符的數(shù)組,字符數(shù)組中的一個(gè)元素存放一個(gè)字符。 對(duì)字符數(shù)組賦值或數(shù)組初始化時(shí),數(shù)據(jù)使用字符型數(shù)據(jù)或相應(yīng)的ASCII碼值。 字符串(也稱字符串常量)是用雙引號(hào)括起來(lái)的若干有效字符序列。在C語(yǔ)言中,字符串可以包含字母、數(shù)字、轉(zhuǎn)義字符等。 第6章 數(shù) 組 1. 使用字符串時(shí)的注意事項(xiàng)使用字符串時(shí)的注意事項(xiàng) (1) C語(yǔ)言沒(méi)有專門存放字符串的變量。 (2) C語(yǔ)言中,系統(tǒng)自動(dòng)地在每一個(gè)字符串的最后加入一個(gè)字符 0,作為字符串的結(jié)束標(biāo)志。 (3) C語(yǔ)言中,字符型數(shù)據(jù)是指單個(gè)字符(包含轉(zhuǎn)義字符),在使用時(shí)用單引號(hào)括起來(lái)。而字符串是用雙引號(hào)括起來(lái)

54、的字符序列。第6章 數(shù) 組 2. 字符數(shù)組的初始化字符數(shù)組的初始化 (1) 可以在定義數(shù)組的同時(shí)對(duì)數(shù)組中的各個(gè)元素賦初值,例如: char c5=h , e , l , l , o ; (2) 可以在定義數(shù)組的同時(shí)將字符串賦給一個(gè)一維字符型數(shù)組。 例如: char c6=hello ;第6章 數(shù) 組 可以利用字符數(shù)組對(duì)單個(gè)字符和字符串進(jìn)行輸入輸出操作。 1. 逐個(gè)字符輸入輸出 用格式符%c輸入或輸出一個(gè)字符。 2. 字符串整串輸入和輸出 用%s格式符可輸入、輸出字符串。由于C語(yǔ)言中沒(méi)有專門存放字符串的變量,字符串存放在一個(gè)字符型數(shù)組中,數(shù)組名表示第一個(gè)字符的首地址,故在輸入或輸出字符串時(shí)可直接

55、使用數(shù)組名。第6章 數(shù) 組 1. 字符串輸入、輸出函數(shù) 1) 輸入一個(gè)字符串函數(shù)gets( ) gets函數(shù)一般調(diào)用格式為: gets(str) ; gets函數(shù)的作用是從終端鍵盤(pán)輸入字符串(字符串可以包括空格),直到遇到回車符為止,回車符讀入后,不作為字符串的內(nèi)容,系統(tǒng)將自動(dòng)用0代替,作為字符串的結(jié)束標(biāo)志。 第6章 數(shù) 組 2) 輸出一個(gè)字符串函數(shù)輸出一個(gè)字符串函數(shù)puts( ) puts( )函數(shù)的一般調(diào)用格式為: puts(str) ; 該函數(shù)的作用是從str指定的地址開(kāi)始,依次輸出存儲(chǔ)單元中的字符,直到遇到字符串結(jié)束標(biāo)志第1個(gè) 0 字符為止。第6章 數(shù) 組 2. 字符串處理函數(shù) 1)

56、字符串復(fù)制函數(shù)字符串復(fù)制函數(shù)strcpy( ) strcpy( )函數(shù)一般調(diào)用格式為: strcpy(str1 , str2) 功能:把str2所指向的字符串復(fù)制到str1所指的字符數(shù)組中。 2) 字符串連接函數(shù)字符串連接函數(shù)strcat( ) strcat( )函數(shù)一般調(diào)用格式為: strcat(str1 , str2) ; 功能:將str2所指的字符串連接到str1所指的字符串的后面,并自動(dòng)覆蓋str1所指的字符串的尾部字符 0。第6章 數(shù) 組 3) 求字符串長(zhǎng)度函數(shù)求字符串長(zhǎng)度函數(shù)strlen( ) strlen( )函數(shù)一般調(diào)用格式為: strlen(str) ; 功能:計(jì)算str為起

57、始地址的字符串的長(zhǎng)度(不包含字符串結(jié)束標(biāo)志0),并作為函數(shù)值返回。第6章 數(shù) 組 4) 字符串比較函數(shù)字符串比較函數(shù)strcmp( ) strcmp( )函數(shù)一般調(diào)用格式為: strcmp(str1 , str2) ; 功能:比較str1和str2所指向的兩個(gè)字符串,并產(chǎn)生以下結(jié)果: str1與str2相等時(shí),函數(shù)值為0。 str1str2時(shí),函數(shù)值大于0。 str1str2時(shí),函數(shù)值小于0。 字符串之間比較的方法是:從第一個(gè)字符開(kāi)始,依次對(duì)str1與str2對(duì)應(yīng)位置上的字符按ASCII碼值的大小進(jìn)行比較,直到出現(xiàn)第一個(gè)不相同的字符時(shí),即由這兩個(gè)字符的大小決定所在串的大小。第6章 數(shù) 組 例6

58、-17】 從終端鍵盤(pán)輸入一字符串,并復(fù)制到另一字符數(shù)組后顯示出來(lái)。 程序如下: # include stdio.h main() char str130 , str230 ; int i ; printf(input a string:) ; scanf(%s , str1) ; i=0 ;第6章 數(shù) 組 while(str1i!=0) str2i=str1i ; i+ ; str2i=0 ; printf(%s , str2) ; 運(yùn)行結(jié)果: input a string : ABC ABC第6章 數(shù) 組 【例6-18】 由終端鍵盤(pán)輸入一字符串,要求從該串中刪去一字符。 main() cha

59、r str150 , str250 ; char ch ; int i=0 , k=0 ; gets(str1) ; printf( n delete?) ; scanf(%c , &ch) ;第6章 數(shù) 組 for(i=0 ; str1i !=0 ; i+) if(str1i!=ch) str2i-k=str1i ; else k=k+1 ; str2i-k=0 ; printf(n%sn , str2) ; 該程序運(yùn)行后,從鍵盤(pán)輸入字符串: I am a boy 回車 屏幕顯示:delete? 輸入:a 輸出為:I m boy 第6章 數(shù) 組 返回章目錄第7章 函 數(shù) 7.1 模塊

60、化程序設(shè)計(jì)的概念 7.2 庫(kù)函數(shù) 7.3 函數(shù)的定義和調(diào)用 7.4 函數(shù)的返回值及其類型 7.5 函數(shù)調(diào)用時(shí)參數(shù)間的傳遞 7.6 函數(shù)的嵌套調(diào)用 7.7 函數(shù)的遞歸調(diào)用 7.8 局部變量和全局變量 7.9 靜態(tài)存儲(chǔ)變量和動(dòng)態(tài)存儲(chǔ)變量 7.10 內(nèi)部函數(shù)和外部函數(shù) 7.11 程序舉例 返回主目錄 7.1 模塊化程序設(shè)計(jì)的概念 模塊化程序設(shè)計(jì),是將一個(gè)大型程序按照其功能分解成若干個(gè)相對(duì)獨(dú)立的功能模塊,然后再分別進(jìn)行設(shè)計(jì),最后把這些功能模塊按照層次關(guān)系進(jìn)行組裝?;舅枷胧恰白皂斚蛳?、逐步求精”。 C語(yǔ)言程序是一個(gè)函數(shù)式的程序結(jié)構(gòu),即C語(yǔ)言程序的全部功能都是由函數(shù)實(shí)現(xiàn)的,而每個(gè)函數(shù)對(duì)應(yīng)一個(gè)獨(dú)立的模塊,通過(guò)函數(shù)間調(diào)用來(lái)實(shí)現(xiàn)程序的總體功能。如圖7.1所示,

溫馨提示

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