




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
應用型系列教材C語言程序設計第一章初識C語言全套可編輯PPT課件
全套可編輯PPT課件
C語言的發(fā)展歷史01C語言C語言的原型為ALGOL
60語言(也稱為A語言)。目前,流行的C語言編譯系統(tǒng)大多是以ANSI
C為基礎進行開發(fā)的,不同版本的C編譯系統(tǒng)所實現(xiàn)的語言功能和語法規(guī)則又略有差別。C語言的發(fā)展歷史01C語言的特點02C語言具有以下幾個特點:C語言簡潔、緊湊,使用方便、靈活,一共有32個關鍵字。運算符豐富,共有34種運算符。數(shù)據(jù)結(jié)構(gòu)類型豐富。具有結(jié)構(gòu)化的控制語句,9種句可以實現(xiàn)結(jié)構(gòu)化的程序設計。C語言的特點01C語言的特點C語言具有以下幾個特點:語法限制不太嚴格,程序設計自由度大。C語言允許直接訪問物理地址,能夠進行位(bit)操作,實現(xiàn)匯編語言的大部分功能,可以直接對硬件進行操作,因此有人把C語言稱為中級語言。生成目標代碼質(zhì)量高,程序執(zhí)行效率高,可移植性好。01第一個C程序03說明:函數(shù)是程序的基本組成單位,一個程序可以由一個或多個函數(shù)組成。一個程序有且僅有一個main()函數(shù)(主函數(shù))。無論main()函數(shù)在整個程序中的位置如何,一個C程序總是從main()函數(shù)開始執(zhí)行的。每條C語句均以分號結(jié)束。{}是函數(shù)開始和結(jié)束的標志,不可省略。第一個C程序01第一個C程序說明:C語言本身沒有輸入/輸出語句。用戶可以對源程序加上必要的注釋,以增加程序的可讀性。為了避免遺漏必須配對使用的符號,如注釋符號、函數(shù)體的起止標識符(花括號、圓括號等),在輸入時,可以連續(xù)榆入函數(shù)體的起止標識符,在其中插入相應的內(nèi)容來完成編輯。一個C語言的源程序可以由一個或多個源文件組成。01C程序開發(fā)流程04C程序開發(fā)流程大體可以分為編輯、編譯、連接、運行4個步驟。C程序開發(fā)流程01感謝觀看應用型系列教材C語言程序設計應用型系列教材C語言程序設計第二章C語言基礎標識符0101C語言的字符集字母數(shù)字共有26個小寫字母a~z。共有26個大寫字母A~Z。共有10個數(shù)字,即0、1、2、3、4、5、6、7、8、9。01C語言的字符集空白符標點和特殊字符空格符、制表符、換行符等統(tǒng)稱為空白符。標點:逗號(,)、分號(;)、方括號([])、花括號({})等。特殊字符:加號(+)、減號(-)、百分號(%)、乘號(*)等。02關鍵字類型說明符語句定義符類型說明符用于定義、說明變量、函數(shù)或其他數(shù)據(jù)結(jié)構(gòu)的類型。語句定義符用于表示一個語句的功能。預處理命令字預處理命令字用于表示一個預處理命令,如include。03標識符
命名規(guī)則:標識符只能由字(A~Z,a~z)、數(shù)字(0~9)和下畫線(_)組成,并且其第一個字符必須是字母或下畫線。在標識符中,要注意區(qū)分字母的大小寫。標識符雖然可以由用戶隨意定義,但標識符是用于標識某個量的符號。03標識符
命名規(guī)則:用戶定義標識符時,盡量不要使用下畫線開頭。因為編譯器預留的名字大多是以下畫線開頭的,容易造成命名沖突。不能使用關鍵字作為用戶自定義的標識符。標識符中盡量避免使用容易混淆的字符。數(shù)據(jù)類型02基本數(shù)據(jù)類型構(gòu)造類型基本數(shù)據(jù)類型最主要的特點是其值不可以再分解為其他類型。構(gòu)造類型是根據(jù)已定義的一個或多個數(shù)據(jù)類型用構(gòu)造的方法來定義的。也就是說,一個構(gòu)造類型的值可以分解成若干個“成員”或“元素”。每個“成員”都是一個基本數(shù)據(jù)類型或一個構(gòu)造類型。數(shù)據(jù)類型01數(shù)據(jù)類型指針類型空類型指針是一種特殊的,同時又是具有重要作用的數(shù)據(jù)類型,其值用來表示某個變量在內(nèi)存儲器中的地址。在調(diào)用函數(shù)值時,通常向調(diào)用者返回一個函數(shù)值,這個返回的函數(shù)值具有一定的數(shù)據(jù)類型,應該在函數(shù)定義及函數(shù)說明中給以說明。01常量和變量03整型常量實型常量十進制形式:與數(shù)學上的整數(shù)表示相同。八進制形式:在數(shù)碼前添加字0。十六進制形式:在數(shù)碼前添加0X。進制形式:由數(shù)和小數(shù)點組成(必須有小數(shù)點)。指數(shù)形式:由“十進制小數(shù)”+“e(E)”+“十進制整數(shù)”3部分組成。規(guī)范化的指數(shù)表形式。常量01字符常量字符串常量用一對單引號括起來的單個字符稱為字符常量。轉(zhuǎn)義字符。字符常量由單引號括起來,字符串常量由雙引號括起來。字符常量只能是單個字符,字符串常量則可以包含一個或多個字符。字符常量占一個字節(jié)的內(nèi)存空間。常量01符號常量在C語言中,用戶可以使用一個標識符來表示一個常量,稱為符號常量。常量0102變量
要素:變量名:每個變量都必須有一個名字,用以相互區(qū)分。變量類型:不同類型變量在內(nèi)存中所占的存儲單元大小不同。變量值:變量代表計算機內(nèi)存中的某一存儲單元,該存儲單元中存放的數(shù)據(jù)就是變量的值。在程序中,用戶可以通過變量名來引用變量值。02變量
優(yōu)勢:凡未被事先定義的不作為變量名,這樣能保證程序中變量名使用正確。每一個變量被指定一個確定數(shù)據(jù)類型,在編譯時就能為其分配相應的存儲單元。指定每一變量屬于一個數(shù)據(jù)類型,便于在編譯時,以此檢查該變量所進行的運算是否合法。03整型變量整型變量的分類整型變量的存儲修飾符有:signed(有符號);unsigned(無符號);long(長型);short(短型)。有符號整數(shù)是以補碼表示的。正數(shù)的補碼和原碼相同。負數(shù)的補碼將該數(shù)的絕對值的二進制形式按位取反再加1。整型變量的定義整理變量定義的語法格式如下:類型說明符交量名標識符,變量名標識符,...;04實型變量
實型變量的分類實型變量分為:單精度型(float)、雙精度型(double)和長雙精度型(lngdouble)3類。單精度型占4字節(jié)(32位)內(nèi)存空間,其數(shù)值范圍為10-37~1038,最多提供7位有效數(shù)字。雙精度型占8字節(jié)(64位)內(nèi)存空間,其數(shù)值范圍為10-307~10308,最多提供16位有效數(shù)字。04實型變量
實型變量的存儲實型變量一般占4字節(jié)(32位)內(nèi)存空間,按指數(shù)形式存儲。小數(shù)部分占的位(bit)數(shù)越多,數(shù)據(jù)的有效數(shù)字越多,精度越高。指數(shù)部分占的位數(shù)越多,能表示的數(shù)值范圍越大。在不同操作系統(tǒng)中,實型變量兩部分所占位數(shù)也不同,大家了解其存儲方式即可。實型變量的定義實型變量的舍入誤差實型變量定義的語法格式和書寫規(guī)則與整型變量相同。由于實型變量是由有限的存儲單元組成的,因此能提供的有效數(shù)字總是有限的。實型變量04字符型變量的定義字符型變量的存儲字符型變量用來存儲字符常量,即單個字符。字符型變量的類型說明符是char。每個字符型變量被分配一個字節(jié)的內(nèi)存空間,因此只能存放一個字符。字符值是以ASCII碼的形式存放在變量的內(nèi)存單元中的。字符型變量0506變量初始化
變量初始化在程序中常常需要對變量賦初值,以便用戶使用變量。在進行變量定義的同時給變量賦以初值的方法稱為初始化。在變量定義中賦初值的語法格式如下:類型說明符
變量1=值1,變量2-值2,...;07各類數(shù)值型數(shù)據(jù)之間的混合運算隱式類型轉(zhuǎn)換隱式類型轉(zhuǎn)換就是在編譯時由編譯程序按照一定規(guī)則自動完成,而不需要人為干預。因此,在表達式中如果有不同類型的數(shù)據(jù)參與同一運算,編譯器就會在編譯時自動按照規(guī)定的規(guī)則將其轉(zhuǎn)換為相同的數(shù)據(jù)類型。C言規(guī)定的轉(zhuǎn)換規(guī)則是由低級向高級轉(zhuǎn)換的。07各類數(shù)值型數(shù)據(jù)之間的混合運算顯式類型轉(zhuǎn)換顯式類型轉(zhuǎn)換又被稱為強制類型轉(zhuǎn)換,強制類型轉(zhuǎn)換是通過類型轉(zhuǎn)換運算來實現(xiàn)的。語法格式如下:(類型說明符)(表達式)其功能是把表達式的運算結(jié)果強制轉(zhuǎn)換成類型說明符所表示的類型。運算符和表達式0401運算符簡介C語言的運算符可分為以下幾類:(1)算術運算符(2)關系運算符(3)輯運算符(4)位操作運算符(5)賦值運算符(6)條件運算符(7)逗號運算符(8)指針運算符(9)求字節(jié)數(shù)運算符(10)特殊運算符02算術運算符基本的算術運算符加法運算符“+”減法運算符“_”乘法運算符“*”除法運算符“/”求余運算符(模運算符)“%”02算術運算符算術表達式和運算符的優(yōu)先級與結(jié)合性符算術表達式:使用算術運算符和括號將運算對象(操作數(shù))連接起來的、符合C語言語法規(guī)則的式子。運算符的優(yōu)先級:在C語言中,運算符的運算優(yōu)先級共分為15級。1級最高,15級最低。運算符的結(jié)合性:在C語言中,各運算符的結(jié)合性分為兩種,即左結(jié)合性(自左向右)和右結(jié)合性(自右向左)。02算術運算符功能自增運算使單個變量的值增1,自減運算使單個變量的值減1。自增、自減運算符都有以下兩種用法。前置運算——運算符放在變量之前:++變量、--變量。后置運算——運算符放在變量之后:變量++、變量--。03賦值運算符和賦值表達式賦值運算符賦值中的類型轉(zhuǎn)換賦值運算符“=”的作用是將一個表達式的值賦給一個變量。賦值運算符的語法格式如下:變量=表達式當賦值運算符兩邊的運算對象類型不同時,將要發(fā)生類型轉(zhuǎn)換,轉(zhuǎn)換的規(guī)則是把賦值運算符右側(cè)表達式的類型轉(zhuǎn)換為左側(cè)變量的類型。04逗號運算符和逗號表達式逗號運算符和逗號表達式逗號運算符就是我們常用的逗號“,”,當作為操作符時,它可以把多個表達式連接起來,如“a+5,b-3”就是一個逗號表達式。逗號表達式的求值過程是從左到右,逐個計算表達式的值,最后整個表達式的值取最右側(cè)表達式的值。逗號運算符也被稱為順序求值運算符。常見錯誤05在書寫標識符時,忽略了大小寫字母的區(qū)別忽略了變量的類型,進行了不合法的運算將字符常量與字符串常量混淆忘記加分號忘記定義變量變量沒有賦值就引用
常見錯誤01感謝觀看應用型系列教材C語言程序設計應用型系列教材C語言程序設計第三章數(shù)據(jù)的輸入/輸出C語句的分類01控制語句,完成一定的控制功能。函數(shù)調(diào)用語句。由一次函數(shù)調(diào)用加一個分號構(gòu)成一條語句。表達式語句。由一個表達式構(gòu)成一條語句,最典型的是,由賦值表達式構(gòu)成一條賦值語句。空語句??梢杂脅}把一些語句括起來構(gòu)成復合語句,又稱為分程序。C語句的分類01程序的三種基本結(jié)構(gòu)021.順序結(jié)構(gòu)程序的三種基本結(jié)構(gòu)01程序的三種基本結(jié)構(gòu)2.選擇結(jié)構(gòu)01程序的三種基本結(jié)構(gòu)3.循環(huán)結(jié)構(gòu)01數(shù)據(jù)輸入/輸出的概念03數(shù)據(jù)輸入/輸出的概念所謂輸入/輸出是以計算機主機為主體而言的。從計算機向外部輸出設備(如顯示器、打印機等)輸出數(shù)據(jù)稱為“輸出”,從外部向輸入設備(如鍵盤、磁盤、掃描儀等)輸入數(shù)稱為“輸入”。數(shù)據(jù)輸入/輸出的概念01字符輸入/輸出函數(shù)0401字符輸出函數(shù)putchar()字符輸出函數(shù)putchar()putchar()函數(shù)的作用是向終端輸出一個字符。例如,putchar(c),它將變量c的值以字符的形式輸出。c可以是字符型變量或整型變量。02字符輸入函數(shù)getchar()字符輸入函數(shù)getchar()getchar()函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入設備)輸入一個字符。getchar()函數(shù)沒有參數(shù),語法格式如下:getchar();格式輸入/輸出函數(shù)0501格式輸出函數(shù)printf()printf()函數(shù)的語法格式格式字符printf(“格式控制字符串”,輸出表列);對不同類型的數(shù)據(jù)要采用不同的格式字符,常用的有以下幾種格式字符:d格式字符;o格式字符;x格式字符;u格式字符;c格式字符;s格式字符;f格式字符;e格式字符;g格式字符。02格式輸入函數(shù)scanf()scanf函數(shù)的語法格式格式控制字符串:格式控制字符中包含格式說明符和普通字符。scanf()函數(shù)中的格式說明符與printf()函數(shù)中的格式說明符功能相似,當普通字符在輸入有效數(shù)據(jù)時,必須原樣一起輸入。地址表列:由若干個地址組成的列表,可以是變量的首地址,也可以是字符數(shù)組名或指針變量。變量地址的表示方法為“&變量名”,其中“&”是地址運算符。格式字符02格式輸入函數(shù)scanf()格式字符02格式輸入函數(shù)scanf()數(shù)據(jù)輸入操作如果相鄰兩個格式說明符之間沒有其他字符分隔,則相應的兩個輸入數(shù)據(jù)之間,至少用一個空白字符分隔,再輸入下一個數(shù)據(jù)。格式字符串中出現(xiàn)的普通字符,務必原樣輸入。當使用格式說明符“%c”輸入單個字符時,空格和轉(zhuǎn)義字符均作為有效字符輸入??梢灾付ㄝ斎霐?shù)據(jù)所占列數(shù),系統(tǒng)自動截取所需數(shù)據(jù)。02格式輸入函數(shù)scanf()說明格式控制字符串后面應該是變量地址,而不應該是變量名。當輸入數(shù)據(jù)時,不能規(guī)定精度。當使用scanf()函數(shù)輸入數(shù)據(jù)時,遇到以下幾種情況系統(tǒng)認為該數(shù)據(jù)輸入結(jié)束。遇到Space鍵、Enter鍵或Tab鍵;遇到輸入域?qū)挾冉Y(jié)束;遇到非法輸入。02格式輸入函數(shù)scanf()程序舉例06程序舉例程序舉例01常見錯誤07輸入變量時忘記添加地址運算符“&”輸入數(shù)據(jù)的方式與要求不符輸入字符的格式與要求不一致輸入/輸出的數(shù)據(jù)類型與所用格式說明符不一致輸入數(shù)據(jù)時企圖規(guī)定精度在scanf()函數(shù)中加入“\n”多加分號常見錯誤01感謝觀看應用型系列教材C語言程序設計應用型系列教材C語言程序設計第四章選擇結(jié)構(gòu)關系運算01關系運算符及優(yōu)先級01關系運算符及優(yōu)先級02關系表達式關系表達式所謂關系表達式是指用關系運算符將兩個表達式連接起來,進行關系運算的式子。關系表達式的值是一個邏輯值,即非真即假的值。邏輯運算02C語言了提供了以下3種邏輯運算符。邏輯運算符及優(yōu)先級01邏輯表達式邏輯表達式02邏輯表達式邏輯表達式02if語句03if語句的三種基本形式單分支選擇if語句雙分支選擇if...else語句多分支選擇if...else...if語句01if語句的三種基本形式if語句的嵌套if、else后面的語句可以是各種形式,如果還是一個if語句,這就是if語句的嵌套。if語句有3種嵌套形式。02if語句的嵌套條件運算符(?:)是C語言中唯一的一個三目運算符,它連接3個運算量,語法格式如下:表達式1?表達式2:表達式3條件運算符03switch語句04switch語句的語法格式如下:switch(表達式){case
常量表達式1
:語句1
case常量表達式2
:語句2...
case
常量表達式n
:語句n
default:語句n+1}switch語句01程序舉例05程序舉例程序舉例01常見錯誤06忘記必要的邏輯運算符誤把賦值作為等于運算符該用復合語句時忘記編寫花括號在不該添加分號的地方添加了分號else之前的語句丟失分號在switch語句中忘掉了必要的break常見錯誤01感謝觀看應用型系列教材C語言程序設計應用型系列教材C語言程序設計第五章循環(huán)結(jié)構(gòu)while語句01while語句語法格式while語句執(zhí)行過程while(表達式)循環(huán)體語句;①求解表達式。如果其值為非0值,則轉(zhuǎn)到②;否則轉(zhuǎn)到③。②執(zhí)行循環(huán)體語句,然后轉(zhuǎn)到①。③執(zhí)行while語句后的下一條語句。while語句01do...while語句02do...while語句語法格式do...while語句執(zhí)行過程do(循環(huán)體語句)while(表達式)①執(zhí)行循環(huán)體語句。②求解表達式。如果其值為非0值,則轉(zhuǎn)到①;否則轉(zhuǎn)到③。③執(zhí)行do...while語句后的下一條語句。do...while語句01for語句03for語句語法格式for語句執(zhí)行過程for(表達式1;表達式2;表達式3)循環(huán)體語句;①求解表達式1。②求解表達式2,如果其值為非0值,則執(zhí)行③;否則,轉(zhuǎn)到④。③執(zhí)行循環(huán)體語,并求解表達式3,再轉(zhuǎn)到②。④執(zhí)行for語句的下一條語句。for語句01循環(huán)嵌套04循環(huán)嵌套一個循環(huán)內(nèi)又包含另一個完整的循環(huán)結(jié)構(gòu)稱為循環(huán)嵌套。內(nèi)嵌的循環(huán)中還可以再嵌套循環(huán),這就是多層循環(huán)。在各種編程語言中關于循環(huán)嵌套的概念是一樣的。循環(huán)嵌套01輔助控制語句05break語句執(zhí)行過程01break語句continue語句執(zhí)行過程02continue語句goto語句06goto語句為無條件轉(zhuǎn)向語句,其語法格式如下:goto
語句標號;語句功能:使控制流程轉(zhuǎn)向標號所在的語句行執(zhí)行。goto語句01程序舉例07程序舉例程序舉例01常見錯誤08誤把“=”作為等號使用,這與條件語句中的情況一樣忘記使用花括號括起循環(huán)體中的多條語句,這與條件語句類似在不該添加分號的地方添加了分號花括號不匹配死循環(huán)常見錯誤01感謝觀看應用型系列教材C語言程序設計應用型系列教材C語言程序設計第六章數(shù)組一維數(shù)組0101一維數(shù)組的定義
語法格式:類型說明符數(shù)組名
[常量表達式]02一維數(shù)組元素的引用
語法格式:數(shù)組同變量一樣,必須先定義后引用,引用數(shù)組中的任意一個元素的語法格式如下:
數(shù)組名[下標]其中,“下標”可以是整型常量或整型表達式。03一維數(shù)組的初始化
語法格式:數(shù)組元素和變量一樣,可以在定義的同時賦初值,稱為數(shù)組的初始化。一維數(shù)組初始化的語法格式如下:
類型說明符
數(shù)組名[N]={初值1,初值2,...};對于數(shù)組中的若于數(shù)組元素來說,可以在{}中給出各數(shù)組元素的初值,各初值之間使用逗號分隔。二維數(shù)組02二維數(shù)組定義的語法格式如下:類型說明符
數(shù)組名
[常量表達式1][常量表達式2];其中,“常量表達式1”表示第一維數(shù)組下標的長度,“常量表達式2”表示第二維數(shù)組下標的長度。二維數(shù)組的定義01二維數(shù)組元素引用的語法格式如下:數(shù)組名
[下標表達式][下標表達式]二維數(shù)組元素的引用02二維數(shù)組的初始化有以下幾種方法:分行給二維數(shù)組中的元素賦初值,即按行賦初值。將所有初值寫在一個花括號內(nèi),按數(shù)組元素在內(nèi)存中的存儲順序依次對各元素賦初值。只給部分元素賦初值。當全部元素賦初值時可以不指定第一維數(shù)組的長度。此時第一維數(shù)組的長度由第二維數(shù)組的長度(列數(shù))自動確定。二維數(shù)組的初始化03字符數(shù)組03一維字符數(shù)組定義的語法格式如下:二維字符數(shù)組定義的語法格式如下:char
數(shù)組名
[常量表達式];char
數(shù)組名
[常量表達式1]
[常量表達式2];字符數(shù)組的定義01字符數(shù)組元素的引用同前文介紹的數(shù)值數(shù)組元素的引用基本相同,每次只能引用一個字符數(shù)組元素,只得到一個字符。其引用的語法格式如下:數(shù)組名[下標1][下標2][下標3]...]]
//[...]為可選項,表示其內(nèi)容可有可無字符數(shù)組元素的引用0203字符數(shù)組的初始化字符數(shù)組的初始化花括號中提供的初值個數(shù)(即字符個數(shù))等于數(shù)組長度。如果花括號中提供的初值個數(shù)大于數(shù)組長度,則出現(xiàn)語法錯誤。如果初值個數(shù)小于數(shù)組長度,則將這些初值賦給字符數(shù)組前面的元素,其他元素自動為空字符(‘\0’)。如果花括號中提供的初值個數(shù)等于數(shù)組長度,則在定義字符數(shù)組時可以省略數(shù)組長度。在C語言中,雖然有字符串常量,卻沒有專門的字符串變量,所有字符串的輸入、輸出、存儲和處理等操作都要使用字符數(shù)組來實現(xiàn)。為了測定字符串的實際長度,C語言規(guī)定了一個字符串結(jié)束標志(’\0’)。遇到’\0’表示字符串結(jié)束,由它前面的字符組成字符串。字符串及其結(jié)束標芯04字符數(shù)組的輸入/輸出有以下兩種方法:逐個字符輸入/輸出:使用“%c”格式輸入/輸出一個字符。將整個字符一次性輸入/輸出:使用“%s”格式輸入/輸出一個字符串。05字符數(shù)組的輸入/輸出字符串輸出函數(shù)字符串輸入函數(shù)puts()函數(shù)的作用是向終端輸出一個字符串。其語法格式如下:puts(字符數(shù)組)gets()函數(shù)的作用是從終端輸入一個字符串到字符數(shù)組,并得到一個函數(shù)值,該函數(shù)值是字符數(shù)組的首地址(即起始地址)。其語法格式如下:gets(字符數(shù)組)字符串處理函數(shù)06字符串連接函數(shù)字符串復制函數(shù)strcat()函數(shù)的作用是連接兩個字符數(shù)組中的字符串。把字符串2連接到字符串1的后面,結(jié)果放在“字符數(shù)組1”中,該函數(shù)被調(diào)用后得到一個函數(shù)值,該函數(shù)值是字符數(shù)組的首地址。其語法格式如下:strcat(字符數(shù)組1,字符數(shù)組2)strcpy()函數(shù)的作用是復制字符串,把“字符數(shù)組2或字符符2”復制到“字符數(shù)組1”中。復制時連同’\0’一起復制到“字符數(shù)組1”中。其語法格式如下:strcpy(字符數(shù)組1,字特數(shù)組2或字符串2)字符串處理函數(shù)06字符串比較函數(shù)字符串長度函數(shù)strcmp()函數(shù)的作用是比較兩個字符串的大小。其語法格式如下:strcmp(字符串1,字符串2)strlen()函數(shù)用于測試字符串的長度,其函數(shù)值為字符串的實際長度,不包括字符串的結(jié)束標志’\0’。其語法格式如下:strlen(字符數(shù)組名或字符串常量)字符串處理函數(shù)06字符串小寫函數(shù)字符串大寫函數(shù)strlwr()函數(shù)用于將字符串的大寫字母轉(zhuǎn)換成小寫字母。其語法格式如下;strlwr(字符串)strupr()函數(shù)用于將字符串的小寫字母轉(zhuǎn)換成大寫字母。其語法格式如下:strupr(字符串)字符串處理函數(shù)06程序舉例04程序舉例程序舉例01常見錯誤05數(shù)組下標越界數(shù)組整體賦值接收字符串時使用了取地址運算符向一個字符數(shù)組賦字符串忘記在構(gòu)造字符串末尾添加結(jié)束標志’\0’常見錯誤01感謝觀看應用型系列教材C語言程序設計應用型系列教材C語言程序設計第七章函數(shù)函數(shù)概述01在C語言中可以從不同的角度對函數(shù)分類。從函數(shù)定義的角度來看,可以分為庫函數(shù)和用戶自定義函數(shù)兩種。C語言的函數(shù)兼有其他語言中的函數(shù)和過程兩種功能。從主調(diào)函數(shù)和被調(diào)函數(shù)之間數(shù)據(jù)傳送的角度來看,又可以分為無參函數(shù)和有參函數(shù)兩種。函數(shù)概述01在C語言中可以從不同的角度對函數(shù)分類。從函數(shù)的作用范圍來看,又可以分為外部函數(shù)和內(nèi)部函數(shù)兩種。C語言提供了極為豐富的庫函數(shù),這些庫函數(shù)又可以從功能角度進行分類。函數(shù)概述01函數(shù)的定義0201無參函數(shù)的定義
無參函數(shù)的定義無參函數(shù)定義的語法格式如下:類型標識符
函數(shù)名()//函數(shù)首部{聲明部分
//函數(shù)體
語句部分}02有參函數(shù)的定義
有參函數(shù)的定義有參函數(shù)定義的語法格式如下:類型標識符
函數(shù)名(形式參數(shù)表列)//函數(shù)首部{聲明部分
//函數(shù)體
語句部分}函數(shù)的參數(shù)和函數(shù)的值03函數(shù)的形參和實參具有以下4個特點:形參變量只有在函數(shù)調(diào)用時才會分配內(nèi)存單元,在函數(shù)調(diào)用結(jié)束時,即刻釋放所分配的內(nèi)存單元。實參可以是常量、變量、表達式、函數(shù)調(diào)用等,無論實參是何種類型的量,在進行函數(shù)調(diào)用時,它們都必須具有確定的值,以便把這些值傳送給形參。形參和實參01函數(shù)的形參和實參具有以下4個特點:實參和形參在數(shù)量上、類型上、順序上要嚴格一致,否則會發(fā)生類型不匹配的錯誤。函數(shù)調(diào)用中發(fā)生的數(shù)據(jù)傳送是單向的。即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。形參和實參01函數(shù)的值只能通過return語返回主調(diào)函數(shù)。函數(shù)返回值的類型和函數(shù)定義中函數(shù)的類型應該保持一致。如果兩者不一致,則以函數(shù)類型為準,自動進行類型轉(zhuǎn)換。在函數(shù)定義時如果省略函數(shù)類型,則函數(shù)返回值為整型。為了使程序具有良好的可讀性并減少出錯,即使函數(shù)類型為整型,也不要使用系統(tǒng)的缺省處理。函數(shù)的返回值02函數(shù)的返回值如果被調(diào)用函數(shù)中沒有cturn語,并不帶回一個確定的、用戶所希望得到的函數(shù)值,但實際上,函數(shù)并不是不帶回值,而只是不帶回有用的值,帶回的是一個不確定的值。不返回函數(shù)值的函數(shù),可以明確定義為“空類型”,類型說明符為“void”。02函數(shù)的調(diào)用0401函數(shù)調(diào)用的語法格式
函數(shù)調(diào)用的語法格式函數(shù)名([實參表列])02函數(shù)調(diào)用的方式
函數(shù)調(diào)用的方式函數(shù)語句函數(shù)表達式函數(shù)實參03函數(shù)的聲明
函數(shù)的聲明要完成函數(shù)調(diào)用,被調(diào)用函數(shù)必須滿足以下條件。必須是已存在的函數(shù),也就是函數(shù)已有完整的定義。在函數(shù)調(diào)用之前必須有相應的函數(shù)聲明。如果是系統(tǒng)定義的庫函數(shù),則需要將包含函數(shù)原型聲明的頭文件包含進來。函數(shù)的嵌套調(diào)用05函數(shù)的嵌套調(diào)用函數(shù)的嵌套調(diào)用01函數(shù)的遞歸調(diào)用06函數(shù)的遞歸調(diào)用是指一個函數(shù)在它的函數(shù)體內(nèi),直接或間接地調(diào)用它自身。C語言允許函數(shù)的遞歸調(diào)用。在遞歸調(diào)用中,調(diào)用函數(shù)又是被調(diào)用函數(shù),執(zhí)行遞歸函數(shù)將反復調(diào)用其自身。每調(diào)用一次就進入新的一層。函數(shù)的遞歸調(diào)用01數(shù)組作為函數(shù)的參數(shù)07數(shù)組元素與普通變量并無區(qū)別。因此它作為函數(shù)實參使用與普通變量使用是完全相同的,在發(fā)生函數(shù)調(diào)用時,把作為實參的數(shù)組元素的值傳送給形參,可以實現(xiàn)單向的值傳送。數(shù)組元素作為函數(shù)實參01使用數(shù)組名作為函數(shù)參數(shù)與使用數(shù)組元素作為實參的不同點:當使用數(shù)組元素作為實參時是按普通變量對待的。當普通變量或數(shù)組元素作為函數(shù)參數(shù)時,形參變量和實參變量是由編譯系統(tǒng)分配的兩個不同的內(nèi)存單元。數(shù)組名作為函數(shù)的參數(shù)02局部變量和全局變量0801局部變量
局部變量在一個函數(shù)的內(nèi)部定義的變量就是局部變量(又稱為內(nèi)部變量),它只在本函數(shù)范圍內(nèi)有效。也就是說,只能在本函數(shù)內(nèi)使用,在本函數(shù)的外面是不能使用的,因此稱它為局部變量。02全局變量
全局變量一個源程序文件可以有若干個函數(shù),在函數(shù)內(nèi)定義的變量是局部變量,而在一個源程序文件中所有函數(shù)之外定義的變量稱為外部變量,外部變量是全局變量(也稱為全程變量)。變量的存儲類型0901靜態(tài)存儲方式與動態(tài)存儲方式
用戶存儲空間程序區(qū)靜態(tài)存儲區(qū)動態(tài)存儲區(qū)01靜態(tài)存儲方式與動態(tài)存儲方式
動態(tài)存儲區(qū)存放:函數(shù)形式參數(shù)自動變量(未添加static聲明的局部變量)函數(shù)調(diào)用時的現(xiàn)場保護和返回地址02auto變量
auto變量在函數(shù)中定義的內(nèi)部變量,如果不專門聲明為static存儲類別,則其存儲類別默認都是自動變量(auto),數(shù)據(jù)存儲在動態(tài)存儲區(qū)中。03使用static聲明局部變量有時希望函數(shù)中局部變量的值在函數(shù)調(diào)用結(jié)束后不消失而保留原值,即不釋放占用的存儲空間,這樣在下一次該函數(shù)又被調(diào)用時,就是上一次函數(shù)調(diào)用結(jié)束時的值,在這種情況下就應該將該變量使用關鍵字static聲明為靜態(tài)局部變量。04register變量在一般情況下,變量(包括靜態(tài)存儲方式和動態(tài)存儲方式)的值是存放在內(nèi)存中的。為了提高效率,C語言允許將局部變量的值存放在CPU的寄存器中,這種變量被稱為“寄存器變量”,使用關鍵字register進行聲明。05使用extern聲明外部變量外部變量(全局變量)是在函數(shù)的外部定義的,它的作用域從變量定義處開始,到本程序文件的末尾。程序舉例10程序舉例程序舉例01常見錯誤11在函數(shù)定義后面添了加分號非整型函數(shù)前面沒有添加類型標識符形參說明寫在函數(shù)體內(nèi)調(diào)用還未定義的非整型函數(shù)時而未添加說明忽略參數(shù)的求值順序常見錯誤01感謝觀看應用型系列教材C語言程序設計應用型系列教材C語言程序設計第八章指針地址指針的基本概念01為了正確地訪問內(nèi)存單元,必須為每個內(nèi)存單元編號。根據(jù)一個內(nèi)存單元的編號即可準確地找到該內(nèi)存單元。內(nèi)存單元的編號也被稱為地址。既然根據(jù)內(nèi)存單元的編號或地址就可以找到所需的內(nèi)存單元,所以通常也把這個地址稱為指針。地址指針的基本概念01變量的指針和指向變量的指針變量0201定義一個指針變量對指針變量的定義包括以下3個內(nèi)容:指針類型說明,即定義變量為一個指針變量指針變量名變量值(指針)所指向的變的數(shù)類型02指針變量的引用兩個有關的運算符:&:取地址運算符*:指針運算符(又稱為間接訪問運算符)03指針變量的幾點說明
指針運算符取地址運算符“&”:取地址運算符“&”是單目運算符,其結(jié)合性為自右至左,其功能是取變量的地址。指針運算符“*”:指針運符“*”是單運算符,其結(jié)合性為自右至左,用來表示指針變量所指的變量。在“*”之后跟的變量必須是指針。03指針變量的幾點說明
指針變量的運算賦值運算加減算術運算兩個指針變量之間的運算數(shù)組的指針和指向數(shù)組的指針變量03一個數(shù)組是由連續(xù)的一塊內(nèi)存單元組成的。數(shù)組名就是這塊連續(xù)內(nèi)存單元的首地址。一個數(shù)組也是由各個數(shù)組元素(下標變量)組成的。每個數(shù)組元素按其類型不同占有幾個連續(xù)的內(nèi)存單元。一個數(shù)組的首地址也是指它所占有的幾個內(nèi)存單元的首地址。指向數(shù)組元素的指針01多維數(shù)組的地址指向二維數(shù)組的指針變量把二維數(shù)組a分解為一維數(shù)組a[0]、a[1]、a[2]后,設p為指向二維數(shù)組的指針變量??啥x為:int(*p)[4]指向多維數(shù)組的指針和指針變量02指針作為函數(shù)參數(shù)04兩個形參變量在函數(shù)調(diào)用過程中發(fā)生了交換,而對應的實參并沒有發(fā)生改變。這是因為實參和形參屬于不同的存儲單元,它們之間是單向值傳遞。指針作為函數(shù)參數(shù)01字符串的指針和指向字符串的指針變量05在C語言中,用戶可以使用以下兩種方法訪問一個字符串:使用字符數(shù)組存放一個字符串使用字符串指針指向一個字符串字符串的表示形式01在使用時應該注意以下幾個問題:字符指針變量本身是一個變量,用來存放字符的首地址。而字符串本身是存放在以該首地址為首的一塊連續(xù)的內(nèi)存單元中并以"\0"作為字符的結(jié)束。字符數(shù)組是由若干個數(shù)組元素組成的,它可以用來存放整個字符串。使用字符串指針變量與字符數(shù)組的區(qū)別02在使用時應該注意以下幾個問題:對字符串指針方式:char*ps="CLanguage";可以寫為:char*ps;ps="CLanguage";而對字符數(shù)組方式:charst[]="CLanguage";不能寫為:charst[20];st="CLanguage";只能對字符數(shù)組的各元素逐個賦值。使用字符串指針變量與字符數(shù)組的區(qū)別02在使用時應該注意以下幾個問題:編譯時為字符數(shù)組分配若干個存儲單元,以存放各元素的值,而對字符指針變量只需分配一個存儲單元。使用字符串指針變量與字符數(shù)組的區(qū)別02函數(shù)的指針和指向函數(shù)的指針變量06函數(shù)指針變量定義的語法格式如下:調(diào)用函數(shù)的語法格式如下:類型說明符(*指針變量名)();(*指針變量名)(實參表)函數(shù)的指針和指向函數(shù)的指針變量01返回指針值的函數(shù)07在C語言中,允許一個函數(shù)的返回值是一個指針(地址),這種返回指針值的函數(shù)稱為指針型函數(shù)。返回指針值的函數(shù)01指針數(shù)組和指向指針變量的指針變量0801指針數(shù)組的概念指針數(shù)組說明的語法格式如下:類型說明符*數(shù)組名[數(shù)組長度]02指向指針的指針變量如果一個指針變量存放的是另一個指針變量的地址,則稱這個指針變量為指向指針的指針變量。03main()主函數(shù)的參數(shù)main()主函數(shù)的函數(shù)頭可寫為:main(arge,argv)C語言還規(guī)定argc(第一個形參)必須是整型變量,argv(第二個形參)必須是指向字符串的指針數(shù)組。加上形參說明后,main()主函數(shù)的函數(shù)頭應該寫為:main(intarge,char*aregv[])有關指針的數(shù)據(jù)類型和指針運算的總結(jié)09指針數(shù)據(jù)類型及其說明有關指針的數(shù)據(jù)類型的總結(jié)0102有關指針運算的總結(jié)現(xiàn)在把全部指針運算列出如下:指針加(減)一個整數(shù)。指針變量賦值:將一個變量的地址賦給一個指針變量。指針變量可以有空值,即該指針變量不指向任何變量。兩個指針變量可以相減:如果兩個指針變量指向同一個數(shù)組的元素,則兩個指針變量值之差是兩個指針之間的元素個數(shù)。02有關指針運算的總結(jié)現(xiàn)在把全部指針運算列出如下:兩個指針變量比較:如果兩個指針變量指向同一個數(shù)組的元素,則兩個指針變量可以進行比較。指向前面的元素的指針變量“小于”指向后面的元素的指針變量。03void指針類型ANSI新標準增加了一種void指針類型,即可以定義一個指針變量,但不指定它是指向哪一種類型數(shù)據(jù)。常見錯誤10對指針變量賦予非指針值使用指針之前沒有讓指針指向確定的存儲區(qū)向字符數(shù)組賦字符串指針進行非法操作指針超越數(shù)組范圍指向不同類型的指針一起操作常見錯誤01感謝觀看應用型系列教材C語言程序設計應用型系列教材C語言程序設計第九章自定義數(shù)據(jù)類型結(jié)構(gòu)體類型01結(jié)構(gòu)體類型有以下5個特點:定義一個結(jié)構(gòu)體類型,系統(tǒng)不會為其分配內(nèi)存單元。結(jié)構(gòu)體類型由多個成員組成,成員的數(shù)據(jù)類型可以是整型、實型、字符型、數(shù)組,也可以是另一個已經(jīng)定義的結(jié)構(gòu)體類型。結(jié)構(gòu)體類型是根據(jù)用戶的需要來組合的。定義一個結(jié)構(gòu)的語法格式01結(jié)構(gòu)體類型有以下5個特點:結(jié)構(gòu)體類型系統(tǒng)沒有預先定義,當需要使用結(jié)構(gòu)體類型數(shù)據(jù)時,用
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧理工職業(yè)大學《機械原理課程設計》2023-2024學年第二學期期末試卷
- 2025屆六盤水市六枝特區(qū)五年級數(shù)學第二學期期末預測試題含答案
- 領導力溝通中的語言表達技巧
- 江西省贛州市全南縣2025年三年級數(shù)學第二學期期末綜合測試試題含解析
- 黑龍江三江美術職業(yè)學院《數(shù)據(jù)結(jié)構(gòu)Ⅱ》2023-2024學年第二學期期末試卷
- 涂料產(chǎn)品防紫外線褪色技術
- 山東信息職業(yè)技術學院《中國人物畫》2023-2024學年第二學期期末試卷
- 滄州幼兒師范高等??茖W?!峨姽る娮踊A實驗A》2023-2024學年第二學期期末試卷
- 濟南市章丘市2025年數(shù)學三下期末教學質(zhì)量檢測模擬試題含解析
- 湖南省張家界市桑植縣2024-2025學年五下數(shù)學期末調(diào)研模擬試題含答案
- GB/T 5915-1993仔豬、生長肥育豬配合飼料
- GB/T 3624-2010鈦及鈦合金無縫管
- 壓花藝術課件
- DB32T4220-2022消防設施物聯(lián)網(wǎng)系統(tǒng)技術規(guī)范-(高清版)
- (新版)老年人健康管理理論考試題庫(含答案)
- 感應加熱操作規(guī)程
- 煤氣設施安全檢查表(修訂)
- XX省血液調(diào)配管理辦法
- 微信開放平臺網(wǎng)站信息登記表
- 腦病科中醫(yī)疾病護理常規(guī)(精)
- JJG 700 -2016氣相色譜儀檢定規(guī)程-(高清現(xiàn)行)
評論
0/150
提交評論