C語言的基本要素-文檔資料_第1頁
C語言的基本要素-文檔資料_第2頁
C語言的基本要素-文檔資料_第3頁
C語言的基本要素-文檔資料_第4頁
C語言的基本要素-文檔資料_第5頁
已閱讀5頁,還剩71頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-71本書本書內(nèi)容內(nèi)容 第第1 1章章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)第第2 2章章 C C語言的基本要素語言的基本要素第第3 3章章 變量名、數(shù)據(jù)類型、運(yùn)算符和表達(dá)式變量名、數(shù)據(jù)類型、運(yùn)算符和表達(dá)式第第4 4章章 C C程序基本控制結(jié)構(gòu)程序基本控制結(jié)構(gòu)第第5 5章章 函數(shù)函數(shù)第第6 6章章 數(shù)組和指針數(shù)組和指針第第7 7章章 遞歸遞歸第第8 8章章 結(jié)構(gòu)、聯(lián)合、位運(yùn)算和枚舉類型結(jié)構(gòu)、聯(lián)合、位運(yùn)算和枚舉類型 第第9 9章章 預(yù)處理命令預(yù)處理命令 第第1010章章 文件文件 第第1111章章 高級(jí)話題高級(jí)話題第第1212

2、章章 C89 Vs C99C89 Vs C99實(shí)驗(yàn)實(shí)驗(yàn) (待安排)(待安排) C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-72變量定義、算術(shù)表達(dá)式、變量定義、算術(shù)表達(dá)式、賦值語句和賦值語句和while語句語句 本章主要內(nèi)容本章主要內(nèi)容ARM Vector TableFIQIRQ(Reserved)Data AbortPrefetch AbortSoftware InterruptUndefined InstructionReset0 x1C0 x180 x140 x100 x0C0 x080 x040 x00第一個(gè)第一個(gè)C語言程序語言程序 C語言程

3、序的開發(fā)過程語言程序的開發(fā)過程for循環(huán)語句循環(huán)語句 、常量 字符的輸入和輸出操作字符的輸入和輸出操作 、函數(shù)字符、整型數(shù)組和外部變量字符、整型數(shù)組和外部變量 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-73本章的節(jié)本要求本章的節(jié)本要求 本章主要介紹本章主要介紹C語言的語言的核心要素核心要素,通過,通過本章的學(xué)習(xí)讀者會(huì)對(duì)本章的學(xué)習(xí)讀者會(huì)對(duì)C語言有一個(gè)整體語言有一個(gè)整體的基本概念,并能夠編制基本的的基本概念,并能夠編制基本的C程序。程序。 本章將主要集中在以下本章將主要集中在以下基本內(nèi)容基本內(nèi)容上:上:變量、常量、運(yùn)算符、表達(dá)式、控制變量、常量、運(yùn)算

4、符、表達(dá)式、控制流、函數(shù)、以及基本的輸入輸出庫函流、函數(shù)、以及基本的輸入輸出庫函數(shù)等。數(shù)等。 讓初學(xué)者快速讓初學(xué)者快速建立對(duì)建立對(duì)C語言程序設(shè)計(jì)的語言程序設(shè)計(jì)的整體概念整體概念,并能夠編制一些簡單有趣,并能夠編制一些簡單有趣的的C程序。程序。最常使用的最常使用的2020元素元素 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-74 學(xué)習(xí)或者教學(xué)學(xué)習(xí)或者教學(xué)C語言最重要的第一步是語言最重要的第一步是讓學(xué)習(xí)者讓學(xué)習(xí)者能夠動(dòng)手能夠動(dòng)手。 動(dòng)手能夠增強(qiáng)學(xué)習(xí)者的信心,而信心動(dòng)手能夠增強(qiáng)學(xué)習(xí)者的信心,而信心對(duì)學(xué)好對(duì)學(xué)好C語言來說是重要的。語言來說是重要的。 在閱讀

5、過程中,作者希望初學(xué)者在閱讀過程中,作者希望初學(xué)者把主把主要精力放在基本要素上要精力放在基本要素上,感覺有難度,感覺有難度的內(nèi)容可以先放一放。的內(nèi)容可以先放一放。 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-752.1 C語言程序的開發(fā)過程語言程序的開發(fā)過程 第一步:編輯第一步:編輯得到源程序。得到源程序。 第二步:編譯第二步:編譯得到目標(biāo)碼。得到目標(biāo)碼。 第三步:連接第三步:連接得到可執(zhí)行代碼。得到可執(zhí)行代碼。 第四步:裝載運(yùn)行程序第四步:裝載運(yùn)行程序得到結(jié)果。得到結(jié)果。程序開發(fā)調(diào)試過程程序開發(fā)調(diào)試過程 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C

6、99版)版) 清華大學(xué)出版社第二章2022-3-762.2 第一個(gè)第一個(gè)C語言程序語言程序 開發(fā)工具:開發(fā)工具:VC+工具,或者工具,或者Dev-C+工具等工具等 。 其次,學(xué)會(huì)該工具的基本使用方法。其次,學(xué)會(huì)該工具的基本使用方法。 下面以下面以“Hello World”程序?yàn)槔撼绦驗(yàn)槔?例題例題2.1 輸出輸出“Hello World!” C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-77#include int main (void) printf(Hello World!n); return 0; 預(yù)處理命令預(yù)處理命令主函數(shù)主函數(shù)被調(diào)函數(shù)被

7、調(diào)函數(shù)函數(shù)參數(shù)函數(shù)參數(shù)函數(shù)返回值函數(shù)返回值 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-78 main( )函數(shù)是函數(shù)是特殊函數(shù)特殊函數(shù)。 任何任何C程序必須程序必須有且只能有有且只能有一個(gè)一個(gè)main( )函數(shù)。函數(shù)。 main( )函數(shù)可以放在函數(shù)可以放在C程序的任意位置。程序的任意位置。 C程序的運(yùn)行必須程序的運(yùn)行必須從從main( )函數(shù)開始,函數(shù)開始,而且也在而且也在main( )函數(shù)中結(jié)束函數(shù)中結(jié)束。 通過通過main這個(gè)名字才能找到將要執(zhí)行這個(gè)名字才能找到將要執(zhí)行的的程序入口程序入口。 mainmain C C語言程序設(shè)計(jì)(語言程序設(shè)

8、計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-79 函數(shù)就是組成函數(shù)就是組成C語言程序的一個(gè)一個(gè)的語言程序的一個(gè)一個(gè)的功能模塊功能模塊,就像房子是由一塊塊磚頭,就像房子是由一塊塊磚頭搭建起來的一樣,搭建起來的一樣,C程序就是程序就是由一個(gè)個(gè)由一個(gè)個(gè)的函數(shù)組建的函數(shù)組建而來的。而來的。 函數(shù)是函數(shù)是C程序的基本單位程序的基本單位,一般一個(gè)函,一般一個(gè)函數(shù)完成某一個(gè)相對(duì)獨(dú)立的功能。數(shù)完成某一個(gè)相對(duì)獨(dú)立的功能。 在在C語言中,滿足函數(shù)定義格式要求的語言中,滿足函數(shù)定義格式要求的就是一個(gè)函數(shù)。就是一個(gè)函數(shù)。 函數(shù)包括函數(shù)包括函數(shù)頭和函數(shù)體函數(shù)頭和函數(shù)體兩部分兩部分 。 C C語言程序設(shè)計(jì)

9、(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-710圖圖2.1 函數(shù)定義的基本形式及函數(shù)調(diào)用的傳值過程函數(shù)定義的基本形式及函數(shù)調(diào)用的傳值過程 int Max (int x, int y)int Max (int x, int y) int z; int z; if ( xy ) if ( xy ) z = x ; z = x ; else else z = y ; z = y ; return (z); return (z); 函數(shù)頭函數(shù)頭函數(shù)體函數(shù)體變量定義部分變量定義部分可執(zhí)行語句部分可執(zhí)行語句部分c = Max (a, b)c = Max (a, b)(函數(shù)調(diào)用

10、時(shí)的復(fù)制傳(函數(shù)調(diào)用時(shí)的復(fù)制傳值過程)值過程) 函函數(shù)數(shù)定定義義部部分分函數(shù)參數(shù)的對(duì)應(yīng)關(guān)系函數(shù)參數(shù)的對(duì)應(yīng)關(guān)系 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-711例題例題2.2 比較兩個(gè)整數(shù)的大小比較兩個(gè)整數(shù)的大小int Max (int x, int y);c = Max (a, b);int Max (int x, int y) ;聲明時(shí)有類型聲明時(shí)有類型調(diào)用時(shí)無類型調(diào)用時(shí)無類型定義時(shí)有類型定義時(shí)有類型 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-712C 程序的基本結(jié)構(gòu)程序的基本結(jié)構(gòu) 1. C語言程

11、序的注釋語言程序的注釋 /*和和*/中間中間所所包含的任何內(nèi)容即為注釋部分。包含的任何內(nèi)容即為注釋部分。 2. main( )函數(shù)及其返回值函數(shù)及其返回值 是主函是主函數(shù)的函數(shù)名,數(shù)的函數(shù)名,main( )函數(shù)名是操作系函數(shù)名是操作系統(tǒng)調(diào)用統(tǒng)調(diào)用C程序的入口。程序的入口。 3. 函數(shù)參數(shù)和返回值函數(shù)參數(shù)和返回值 int Max (int x, int y)”則有兩個(gè)參數(shù),一個(gè)是則有兩個(gè)參數(shù),一個(gè)是x,一,一個(gè)是個(gè)是y。 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-713int Max (int x, inty)int Max (int x, int

12、y)函數(shù)返回值函數(shù)返回值類型類型函 數(shù)函 數(shù)名名函 數(shù) 參函 數(shù) 參數(shù)表數(shù)表 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-714 4. 函數(shù)體函數(shù)體包含在函數(shù)名后面的一包含在函數(shù)名后面的一對(duì)大括弧對(duì)大括弧“ ”之間的部分就是函數(shù)之間的部分就是函數(shù)體。體。 構(gòu)成函數(shù)體的基本要素,一般分為兩構(gòu)成函數(shù)體的基本要素,一般分為兩種:種:一種是變量定義、聲明語句;一一種是變量定義、聲明語句;一種是可執(zhí)行語句。種是可執(zhí)行語句。 變量定義語句:變量定義語句: int a, b, c; int z;函數(shù)體大括弧函數(shù)體大括弧 之間的內(nèi)容。之間的內(nèi)容。 C C語言程序設(shè)

13、計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-715C程序的運(yùn)行過程程序的運(yùn)行過程 假設(shè)假設(shè)例題例題22的每一條語句所對(duì)應(yīng)的的每一條語句所對(duì)應(yīng)的機(jī)器指令都只占據(jù)一個(gè)字節(jié)機(jī)器指令都只占據(jù)一個(gè)字節(jié) 。 那么程序編譯、連接、裝載以后所對(duì)那么程序編譯、連接、裝載以后所對(duì)應(yīng)的程序內(nèi)存空間將抽象為如圖應(yīng)的程序內(nèi)存空間將抽象為如圖2.2所所示的結(jié)構(gòu)。示的結(jié)構(gòu)。 同時(shí),同時(shí),假定:假定: 1. 假定計(jì)算機(jī)有兩個(gè)讀寫頭,一個(gè)是假定計(jì)算機(jī)有兩個(gè)讀寫頭,一個(gè)是程序讀寫頭程序讀寫頭;另一個(gè)是;另一個(gè)是數(shù)據(jù)讀寫頭數(shù)據(jù)讀寫頭。 2. 假定變量定義語句也會(huì)在程序中產(chǎn)假定變量定義語句也會(huì)在程序中產(chǎn)

14、生可執(zhí)行代碼生可執(zhí)行代碼 對(duì)應(yīng)對(duì)應(yīng)PCPC對(duì)應(yīng)對(duì)應(yīng)SPSP C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-716printf( );printf( );system( );system( );return 0;return 0;0 x100000070 x100000070 x100000060 x100000060 x100000050 x100000050 x100000040 x100000040 x000000000 x000000000 xFFFFFFFF0 xFFFFFFFFmain(void)main(void)int a,b,c;in

15、t a,b,c;a=10;a=10;b=20;b=20;0 x100000030 x100000030 x100000020 x100000020 x100000010 x100000010 x100000000 x10000000程序讀寫頭程序讀寫頭z z system( )system( )y y 0 x1000101F0 x1000101F0 x3000FFFB0 x3000FFFB0 x100010080 x100010080 x100010070 x100010070 x3000FFFA0 x3000FFFA0 x100010000 x10001000printf( )printf(

16、 )int z;int z;if(xy) z=x;if(xy) z=x;else z=y;else z=y;return(z);return(z);0 x100001040 x100001040 x100001030 x100001030 x100001020 x100001020 x100001010 x100001010 x100001000 x10000100Max(x,y)Max(x,y) 主主 函函 數(shù)數(shù)主主自自定定義義函函數(shù)數(shù) 庫庫函函數(shù)數(shù) 數(shù)數(shù)據(jù)據(jù)區(qū)區(qū)c=Max(a,b);c=Max(a,b);x xc c0 x3000FFFD0 x3000FFFD0 x3000FFFC0 x3

17、000FFFCb ba a0 x3000FFFF0 x3000FFFF0 x3000FFFE0 x3000FFFE 程程序序區(qū)區(qū) 堆堆棧棧區(qū)區(qū)數(shù)據(jù)讀寫頭數(shù)據(jù)讀寫頭圖圖2.2 2.2 程序和數(shù)據(jù)在內(nèi)存中的抽象程序和數(shù)據(jù)在內(nèi)存中的抽象PCPCSPSP C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-717變量定義、算術(shù)表達(dá)式、賦值語句和變量定義、算術(shù)表達(dá)式、賦值語句和while語句語句 完成一段數(shù)據(jù)轉(zhuǎn)換任務(wù):完成一段數(shù)據(jù)轉(zhuǎn)換任務(wù): 它按照公式它按照公式m = (1+3n+3n2+n3),計(jì)算計(jì)算m的值。的值。 當(dāng)正整數(shù)當(dāng)正整數(shù)n從從0變化到變化到99時(shí),要

18、求在終時(shí),要求在終端上顯示表格端上顯示表格2.1的內(nèi)容:的內(nèi)容: C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-718表表2.1 例題例題2.3的數(shù)值轉(zhuǎn)換表的數(shù)值轉(zhuǎn)換表n nm = (1+3n+3n2+n3)0 01 11 18 82 227273 364644 4125125.97979411929411929898970299970299999910000001000000 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-719例題例題2.3 數(shù)值轉(zhuǎn)換程序數(shù)值轉(zhuǎn)換程序(第一版第一版): 在程序中,設(shè)計(jì)了兩

19、個(gè)函數(shù):在程序中,設(shè)計(jì)了兩個(gè)函數(shù): 一個(gè)是必不可少的一個(gè)是必不可少的main( )函數(shù)函數(shù), 另一個(gè)是另一個(gè)是數(shù)據(jù)轉(zhuǎn)換函數(shù)數(shù)據(jù)轉(zhuǎn)換函數(shù)Convert( ),它它完成公式完成公式m = (1+3n+3n2+n3)的計(jì)算。的計(jì)算。注意結(jié)果的取注意結(jié)果的取值范圍。值范圍。 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-720將將int改為改為long有什么好處?有什么好處?int Convert (int x); int main (void) while ( n=bottom ) m = Convert (n); int Convert (int x)

20、int z; z = 1 + 3*x + 3*x*x + x*x*x; return (z); C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-721變量定義語句變量定義語句 :變量類型和變量名列變量類型和變量名列表表 int top;int bottom;int step;int a, b, c;變量類型變量類型變量名列表變量名列表 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-722表表2.2 幾種不同的數(shù)據(jù)類型幾種不同的數(shù)據(jù)類型類型類型在典型系在典型系統(tǒng)中占據(jù)統(tǒng)中占據(jù)的字節(jié)數(shù)的字節(jié)數(shù)意義意義C C標(biāo)準(zhǔn)規(guī)

21、定的最小取值范圍標(biāo)準(zhǔn)規(guī)定的最小取值范圍charchar1 1字符型字符型0 0127127或者或者0 0255255shortshort2 2短整型短整型-32768-327683276732767longlong4 4長整型長整型-2-231312 23131-1-1floatfloat4 4浮點(diǎn)型浮點(diǎn)型1E37 1E37 1E+371E+37 ,6 6位精位精度度doubledouble8 8雙精度浮雙精度浮點(diǎn)型點(diǎn)型1E37 1E37 1E+371E+37 ,1010位精度位精度 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-723 賦值語句賦值

22、語句 : top = 0; bottom = 99; step = 1; n = top;將將0 0賦值給賦值給toptop變量,并非代變量,并非代數(shù)運(yùn)算的等于符號(hào)。數(shù)運(yùn)算的等于符號(hào)。 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-724 算術(shù)表達(dá)式算術(shù)表達(dá)式 : z = 1 + 3*x + 3*x*x + x*x*x; /* 算術(shù)表達(dá)式算術(shù)表達(dá)式 */注意注意3x3x需要寫為需要寫為3 3* *x x。C C語言中語言中3x3x時(shí)錯(cuò)誤的。時(shí)錯(cuò)誤的。 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-725當(dāng)當(dāng)

23、時(shí)時(shí)while循環(huán)語句循環(huán)語句 :while ( n=bottom )m = Convert (n);printf (%dt%dn, n, m);n = n+step;當(dāng)型循環(huán)結(jié)構(gòu)。當(dāng)型循環(huán)結(jié)構(gòu)。 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-726 while循環(huán)操作步驟循環(huán)操作步驟: 1. 測(cè)試測(cè)試while后的條件表達(dá)式,如果條后的條件表達(dá)式,如果條件不成立則退出件不成立則退出while循環(huán)語句;循環(huán)語句; 2. 如果條件表達(dá)式成立,則執(zhí)行如果條件表達(dá)式成立,則執(zhí)行while后面的循環(huán)體部分(也就是后面的循環(huán)體部分(也就是while后大后大括弧

24、之間的內(nèi)容,如果循環(huán)體只有一括弧之間的內(nèi)容,如果循環(huán)體只有一個(gè)語句,也可以去掉大括弧,此時(shí)循個(gè)語句,也可以去掉大括弧,此時(shí)循環(huán)體就是環(huán)體就是while后的第一條語句)。后的第一條語句)。 3. 轉(zhuǎn)入轉(zhuǎn)入1(進(jìn)行下一次進(jìn)行下一次while循環(huán)循環(huán))。 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-727表表2.3 while循環(huán)時(shí)內(nèi)存的變換過程循環(huán)時(shí)內(nèi)存的變換過程 循環(huán)循環(huán)次次數(shù)數(shù)第第1 1次次第第2 2次次第第3 3次次. .第第9898次次第第9999次次第第10100 0次次退出退出m m1 18 82727. .9411941192929702

25、970299991000100000000 01000100000000 0n n0 01 12 2. .979798989999100100stepstep1 11 11 1. .1 11 11 11 1 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-728 顯示輸出函數(shù)顯示輸出函數(shù)printf( ) printf( )是一個(gè)通用的格式輸出函數(shù)。是一個(gè)通用的格式輸出函數(shù)。它有它有兩個(gè)輸出參數(shù)兩個(gè)輸出參數(shù),第一個(gè)參數(shù)是格,第一個(gè)參數(shù)是格式輸出控制字符串,第二個(gè)參數(shù)是輸式輸出控制字符串,第二個(gè)參數(shù)是輸出項(xiàng),出項(xiàng),第二個(gè)參數(shù)可以缺省第二個(gè)參數(shù)可以缺省,也

26、可以,也可以有多個(gè)輸出項(xiàng)。有多個(gè)輸出項(xiàng)。 在第一個(gè)參數(shù)中的在第一個(gè)參數(shù)中的是格式控制字符是格式控制字符,它控制后面參數(shù)中對(duì)應(yīng)的輸出項(xiàng)以它控制后面參數(shù)中對(duì)應(yīng)的輸出項(xiàng)以后面字符對(duì)應(yīng)的格式輸出。后面字符對(duì)應(yīng)的格式輸出。 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-729d dn ntt表示跳表示跳8 8個(gè)空格個(gè)空格 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-730表表2.4常用的輸出格式控制字符常用的輸出格式控制字符%d%d以整數(shù)形式輸以整數(shù)形式輸出出6d6d以整數(shù)形式輸以整數(shù)形式輸出,且輸出出,且輸出域?qū)?/p>

27、為域?qū)挒? 6位。位。f f以浮點(diǎn)數(shù)形式以浮點(diǎn)數(shù)形式輸出輸出6f6f以浮點(diǎn)形式輸以浮點(diǎn)形式輸出,且輸出出,且輸出域?qū)挒橛驅(qū)挒? 6位。位。.2f.2f以浮點(diǎn)形式輸以浮點(diǎn)形式輸出,且小數(shù)出,且小數(shù)點(diǎn)后點(diǎn)后2 2位。位。6.2f6.2f以浮點(diǎn)形式輸以浮點(diǎn)形式輸出,出,6 6位寬度,位寬度,小數(shù)點(diǎn)后小數(shù)點(diǎn)后2 2位。位。數(shù)字表示輸數(shù)字表示輸出的域?qū)挸龅挠驅(qū)捵帜副碜帜副硎据敵鍪据敵鰯?shù)據(jù)類數(shù)據(jù)類型型 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-7312.4 for循環(huán)語句循環(huán)語句用用for( )循環(huán)實(shí)現(xiàn)循環(huán)實(shí)現(xiàn)while。如下:。如下:for ( n=top

28、; n=bottom; n = n+step ) m = Convert (n); printf (%dt%dn, n, m);ForFor型循環(huán)型循環(huán) C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-732 基本語法格式如下:基本語法格式如下:for ( 循環(huán)初值條件循環(huán)初值條件; 循環(huán)終止條件循環(huán)終止條件; 循環(huán)循環(huán)步進(jìn)表達(dá)式步進(jìn)表達(dá)式 ) . 兩個(gè)“;”號(hào)分隔三個(gè)表達(dá)式。 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-733例題例題2.4 用用for循環(huán)計(jì)算循環(huán)計(jì)算1到到100的和的和。 sum = 0

29、; for (i = 1; i=100; i=i+1) sum = sum+i; 注意循環(huán)邊界注意循環(huán)邊界 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-734 for循環(huán)的執(zhí)行步驟一共四步,如下:循環(huán)的執(zhí)行步驟一共四步,如下: 1. 首先首先執(zhí)行循環(huán)初值表達(dá)式(執(zhí)行循環(huán)初值表達(dá)式(只在進(jìn)入只在進(jìn)入for循環(huán)時(shí)執(zhí)行一次,以后的每一次循環(huán)不再循環(huán)時(shí)執(zhí)行一次,以后的每一次循環(huán)不再執(zhí)行循環(huán)初值表達(dá)式),執(zhí)行循環(huán)初值表達(dá)式), 2. 其次其次判斷循環(huán)終止條件表達(dá)式判斷循環(huán)終止條件表達(dá)式。如果條。如果條件不滿足則退出件不滿足則退出for循環(huán)語句。循環(huán)語句。 3

30、. 如果條件滿足則執(zhí)行循環(huán)體(如果條件滿足則執(zhí)行循環(huán)體(for后大括后大括弧之間的內(nèi)容,當(dāng)只有一個(gè)語句時(shí),可以弧之間的內(nèi)容,當(dāng)只有一個(gè)語句時(shí),可以不加大括弧,此時(shí)循環(huán)體就是不加大括弧,此時(shí)循環(huán)體就是for后第一條后第一條語句)。語句)。 4. 執(zhí)行循環(huán)步進(jìn)表達(dá)式執(zhí)行循環(huán)步進(jìn)表達(dá)式,轉(zhuǎn)入,轉(zhuǎn)入2(進(jìn)行下一(進(jìn)行下一次循環(huán)條件判斷)。次循環(huán)條件判斷)。 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-7352.5 常量常量 程序中程序中恒定不變的量恒定不變的量,就是常量。,就是常量。 但是,直接在程序中使用數(shù)字表示常但是,直接在程序中使用數(shù)字表示常量,會(huì)給

31、編程帶來更大的麻煩:量,會(huì)給編程帶來更大的麻煩: 第一,數(shù)目字的意義不明確,不便閱第一,數(shù)目字的意義不明確,不便閱讀;讀; 第二,一旦這些常量有變化時(shí),需要第二,一旦這些常量有變化時(shí),需要找到每一個(gè)數(shù)目字并進(jìn)行修改,這不找到每一個(gè)數(shù)目字并進(jìn)行修改,這不但麻煩而且容易出錯(cuò)。但麻煩而且容易出錯(cuò)。 有什么辦法表示數(shù)目字常量嗎?有什么辦法表示數(shù)目字常量嗎? C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-736用用#define定義宏定義宏 宏的定義格式如下:宏的定義格式如下:#define NAME 替換字符串替換字符串程序在編譯預(yù)處理時(shí),自動(dòng)用程序在編譯預(yù)

32、處理時(shí),自動(dòng)用“替換替換字符串字符串”取代取代NAME。 例題例題2.5 數(shù)值轉(zhuǎn)換數(shù)值轉(zhuǎn)換( 第第2版版):#define TOP 0#define BOTTOM 99#define STEP 1符號(hào)表示常量符號(hào)表示常量 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-737 for(n=TOP; n=BOTTOM; n=n+STEP ) m = Convert (n); printf (%dt%dn, n, m); /* n = n+STEP; */ 在步進(jìn)表達(dá)式在步進(jìn)表達(dá)式中步進(jìn)。中步進(jìn)。 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清

33、華大學(xué)出版社第二章2022-3-738用用const定義常量定義常量 const int SINT_MAX = 65535; 就定義了一個(gè)常量,它與用宏定義的就定義了一個(gè)常量,它與用宏定義的宏名是有區(qū)別的:宏名是有區(qū)別的:#define定義的宏名定義的宏名在編譯前的編譯預(yù)處理階段用字符串在編譯前的編譯預(yù)處理階段用字符串替換宏名得到常量,這個(gè)常量在編譯替換宏名得到常量,這個(gè)常量在編譯以后將位于只讀程序存儲(chǔ)區(qū);以后將位于只讀程序存儲(chǔ)區(qū); 而而const定義的常量將有對(duì)應(yīng)的名字,定義的常量將有對(duì)應(yīng)的名字,它位于數(shù)據(jù)存儲(chǔ)區(qū)。它位于數(shù)據(jù)存儲(chǔ)區(qū)。 const const定義的常量有名字,位定義的常量有名字

34、,位于數(shù)據(jù)區(qū)。于數(shù)據(jù)區(qū)。 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-7392.6 字符的輸入和輸出操作字符的輸入和輸出操作 getchar( )和和putchar( )函數(shù)函數(shù) 文本的輸入文本的輸入/輸出是按照字符流的方式輸出是按照字符流的方式來處理的。字符流實(shí)際就是字符序來處理的。字符流實(shí)際就是字符序列列它被分成若干行,每一行有零它被分成若干行,每一行有零個(gè)或者多個(gè)字符,一行緊接一行,直個(gè)或者多個(gè)字符,一行緊接一行,直到整個(gè)流結(jié)束。到整個(gè)流結(jié)束。 int getchar(void); int putchar(int ch); 獲取一個(gè)字符輸出一

35、個(gè)字符 chch為為intint。 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-740while(ch=getchar( ) != EOF) putchar(ch); chch為什么必須是為什么必須是intint?可?可以是以是charchar嗎?嗎? C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-741scanf( )和和printf( )函數(shù)函數(shù) scanf( )可用于可用于輸入字符輸入字符、數(shù)值或者字?jǐn)?shù)值或者字符串等符串等。 它有兩個(gè)參數(shù):它有兩個(gè)參數(shù): 第一個(gè)參數(shù)是輸入格式控制字符串,第一個(gè)參數(shù)是

36、輸入格式控制字符串, 第二個(gè)參數(shù)是輸入項(xiàng)第二個(gè)參數(shù)是輸入項(xiàng) 。 scanf( )scanf( )還有什么不可還有什么不可以輸入的嗎?以輸入的嗎? C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-742 char ch; int i; scanf(%c, &ch); scanf(%d, &i); int printf(const char *control_string, . . . ); int scanf(const char *control_string, . . . );函數(shù)參數(shù)個(gè)數(shù)可變函數(shù)參數(shù)個(gè)數(shù)可變 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99

37、C99版)版) 清華大學(xué)出版社第二章2022-3-743 基本的格式控制字符基本的格式控制字符如下:如下: %c代表字符型;代表字符型; %d代表整型;代表整型; %u代表無符號(hào)整型;代表無符號(hào)整型; %ld代表長整型;代表長整型; %f代表浮點(diǎn)型;代表浮點(diǎn)型; %s代表字符串。代表字符串。 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-744 gets( )和和puts( )函數(shù)函數(shù) char *gets(char *str); int puts(const char *str); 函數(shù)函數(shù)gets( )獲取一個(gè)字符串直到回車返獲取一個(gè)字符串直到回

38、車返回回 。 函數(shù)函數(shù)puts( )則將其參數(shù)則將其參數(shù)str所代表的字所代表的字符串寫到顯示屏上,并回車換行符串寫到顯示屏上,并回車換行 。 函數(shù)原型中的函數(shù)原型中的const表示不可在該函數(shù)表示不可在該函數(shù)中修改該字符串的內(nèi)容中修改該字符串的內(nèi)容 。putsputs自動(dòng)回車自動(dòng)回車 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-7452.6.2 文件拷貝文件拷貝 例題例題2.6 將從鍵盤輸入的字符顯示到終將從鍵盤輸入的字符顯示到終端上(第端上(第1版)。版)。 ch = getchar( ); while (ch != EOF) putchar(

39、ch); ch = getchar( ); 為何需要該為何需要該語句?語句? C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-746例題例題2.7 將從鍵盤輸入的字符顯示到終端將從鍵盤輸入的字符顯示到終端上(第二版)。上(第二版)。 /* ch = getchar( );*/ while (ch=getchar( ) != EOF) putchar(ch); /* ch = getchar( ); */ 為何可去掉兩處的為何可去掉兩處的getchar( )?getchar( )? C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第

40、二章2022-3-747 (ch=getchar( ) != EOF的意義?的意義? int getchar( ) int getch(void); int getche(void); 依據(jù)運(yùn)算符的優(yōu)先級(jí)依據(jù)運(yùn)算符的優(yōu)先級(jí)解讀語句的意義。解讀語句的意義。 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-7482.6.3 字符計(jì)數(shù)字符計(jì)數(shù) 例題例題2.8 統(tǒng)計(jì)鍵盤輸入的字符個(gè)數(shù)(第統(tǒng)計(jì)鍵盤輸入的字符個(gè)數(shù)(第一版)一版) lCount = 0;while ( getchar( ) != EOF ) + lCount; +運(yùn)算符的意義? C C語言程序設(shè)計(jì)(

41、語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-749 l1 = + lCount; l2 = lCount +; 例題例題2.9 統(tǒng)計(jì)鍵盤輸入的字符個(gè)數(shù)(第二統(tǒng)計(jì)鍵盤輸入的字符個(gè)數(shù)(第二版)。版)。 double dCount; for ( dCount=0; getchar( )!=EOF; +dCount) ; forfor循環(huán)實(shí)現(xiàn)循環(huán)實(shí)現(xiàn) C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-7502.6.4 行計(jì)數(shù)行計(jì)數(shù) 例題例題2.10 統(tǒng)計(jì)從鍵盤輸入的文本的行數(shù)統(tǒng)計(jì)從鍵盤輸入的文本的行數(shù) while (ch = getch

42、ar( ) != EOF) if (ch = n) +dCountRow; while while循環(huán)實(shí)現(xiàn)循環(huán)實(shí)現(xiàn)注意注意”=”=”并非并非”=”=” C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-751 if語句語句 單分支單分支if語句語句,它控制,它控制if后面大括弧之后面大括弧之間的語句是否執(zhí)行。它分兩步執(zhí)行:間的語句是否執(zhí)行。它分兩步執(zhí)行: 1. 首先求首先求if后的條件表達(dá)式的后的條件表達(dá)式的“ch = n”的值。的值。 2. 如果值為真,即條件表達(dá)式滿足,如果值為真,即條件表達(dá)式滿足,則執(zhí)行則執(zhí)行if后一對(duì)大括弧間的語句體后一對(duì)大括弧間

43、的語句體“+ dCountRow”,如果值為假,即條件表,如果值為假,即條件表達(dá)式不滿足,則不予執(zhí)行。達(dá)式不滿足,則不予執(zhí)行。 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-7522.6.5 單詞計(jì)數(shù)單詞計(jì)數(shù) 例題例題2.11 統(tǒng)計(jì)從鍵盤輸入的字符個(gè)數(shù)、統(tǒng)計(jì)從鍵盤輸入的字符個(gè)數(shù)、單詞數(shù)和行數(shù)單詞數(shù)和行數(shù)。關(guān)鍵是如何判斷一關(guān)鍵是如何判斷一個(gè)單詞。個(gè)單詞。 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-7532.7 函數(shù)函數(shù) 函數(shù)可以將函數(shù)的內(nèi)部實(shí)現(xiàn)細(xì)節(jié)封裝函數(shù)可以將函數(shù)的內(nèi)部實(shí)現(xiàn)細(xì)節(jié)封裝在函數(shù)內(nèi)部。在函數(shù)內(nèi)部

44、。 例題例題2.12 定義函數(shù)定義函數(shù)Factorial ( unsigned n)用于計(jì)算用于計(jì)算n!。 函數(shù)具有一定的封裝函數(shù)具有一定的封裝和隱藏性。和隱藏性。 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-754 抽象成更一般的形式如下:抽象成更一般的形式如下: 函數(shù)名函數(shù)名(, .) 變量定義部分變量定義部分;可執(zhí)行語句部分可執(zhí)行語句部分; 一個(gè)帶括弧的名字就是函數(shù)一個(gè)帶括弧的名字就是函數(shù) C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-755 函數(shù)返回語句函數(shù)返回語句return的語法格式如下:的語

45、法格式如下: return (返回值返回值); /* 括弧可省括弧可省*/ 當(dāng)函數(shù)不需要返回值時(shí),可以省掉當(dāng)函數(shù)不需要返回值時(shí),可以省掉return語句。語句。 在新標(biāo)準(zhǔn)在新標(biāo)準(zhǔn)C99中,中,return語句語句必須必須帶一帶一個(gè)確定的返回值。個(gè)確定的返回值。 voidvoid以外的函數(shù)必帶以外的函數(shù)必帶returnreturn語句。語句。 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-7562.8 函數(shù)參數(shù)函數(shù)參數(shù)復(fù)制傳值復(fù)制傳值 參數(shù)的傳遞都通過參數(shù)的傳遞都通過復(fù)制傳值復(fù)制傳值。在調(diào)用。在調(diào)用函數(shù)時(shí),將實(shí)參復(fù)制一份傳遞給對(duì)應(yīng)函數(shù)時(shí),將實(shí)參復(fù)制一份

46、傳遞給對(duì)應(yīng)的形式參數(shù)的形式參數(shù) 。 形參和實(shí)參形參和實(shí)參各自占據(jù)不同的內(nèi)存空間各自占據(jù)不同的內(nèi)存空間,對(duì)形參的任何改變都不會(huì)反作用于實(shí)對(duì)形參的任何改變都不會(huì)反作用于實(shí)參,也就是說對(duì)形參的任何改變都不參,也就是說對(duì)形參的任何改變都不會(huì)影響實(shí)參。會(huì)影響實(shí)參。 實(shí)參并非形參。實(shí)參并非形參。 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-757我們來研究研究我們來研究研究Pow( )函數(shù),該函數(shù)計(jì)算函數(shù),該函數(shù)計(jì)算xy,它有兩種實(shí),它有兩種實(shí)現(xiàn)方式現(xiàn)方式 。int Pow(int x, int y) int i, p; p = 1; for (i = 1;

47、i 0; -y) p = p * x; return p;注意注意y y的作用,的作用,取消了取消了i i C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-760圖圖2.3 函數(shù)調(diào)用時(shí)的復(fù)制傳值過程。函數(shù)調(diào)用時(shí)的復(fù)制傳值過程。 Pow ( 2, i )int Pow(int x, int y) int i, p; p = 1; for (i = 1; i 0) if (length maxLen) StrCpy (longest, line); maxLen = length; 數(shù)組的定義形式數(shù)組的定義形式 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C9

48、9版)版) 清華大學(xué)出版社第二章2022-3-763圖圖2.4 字符數(shù)組和指針字符數(shù)組和指針 指針指針指向指向數(shù)組數(shù)組的首的首地址地址 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-764圖圖2.5字符數(shù)組存放字符串常量字符數(shù)組存放字符串常量Goodn注意注意00的存在,的存在,它有用嗎?它有用嗎? C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-7652.9.2 字符指針字符指針 所謂指針,實(shí)際上就是所謂指針,實(shí)際上就是內(nèi)存單元的地內(nèi)存單元的地址。址。由于內(nèi)存單元存放的數(shù)據(jù)類型不由于內(nèi)存單元存放的數(shù)據(jù)類型不

49、同,因而指針的類型也有所不同。同,因而指針的類型也有所不同。 字符指針(也就是字符指針(也就是char型指針)就是型指針)就是一個(gè)一個(gè)指向字符的指針指向字符的指針,它實(shí)際上就是,它實(shí)際上就是字符變量在內(nèi)存單元的地址。字符變量在內(nèi)存單元的地址。 指針變量則是這樣一個(gè)變量指針變量則是這樣一個(gè)變量它它專專門用來存放變量的地址門用來存放變量的地址。某種類型的。某種類型的指針變量只能用于存放該種類型的指指針變量只能用于存放該種類型的指針。針。 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-766定義指針變量的方法如下:定義指針變量的方法如下:char ch; /* 定義了兩個(gè)指針變量,其名字分別為定義了兩個(gè)指針變量,其名字分別為p1、p2,它們可以指向,它們可以指向char型變量型變量 */char *p1, *p2; p1 = &ch;*p1 = A;p2 = p1; 指針就是地址指針就是地址 C C語言程序設(shè)計(jì)(語言程序設(shè)計(jì)(C99C99版)版) 清華大學(xué)出版社第二章2022-3-767ch=Ach=Ap1=&chp1=&chp2=p1p2=p1圖圖2.6 2.6 指針及其指向的對(duì)象指針及其指向的對(duì)象 p1p1和和p2p2都指

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論