




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第 1 章 程序設(shè)計(jì)基本概念考點(diǎn)歸納1.1 C 語言的特點(diǎn)C語言是近年來非常流行的語言,很多人寧愿放棄已經(jīng)熟悉的其他語言而改用C語言,其原因是C語言有優(yōu)于其他語言的一系列特點(diǎn)。下面是C 語言的主要特點(diǎn):(1) 語言簡潔、緊湊,并且使用方便、靈活;(2) 運(yùn)算符豐富;(3) 數(shù)據(jù)結(jié)構(gòu)豐富;(4) 具有結(jié)構(gòu)化的控制語句;(5) 語法限制不太嚴(yán)格,使程序設(shè)計(jì)比較自由;(6)C 語言允許用戶直接訪問物理地址,能進(jìn)行位 (bit)操作,可以直接對硬件進(jìn)行操作。1.2源程序的書寫規(guī)則C語言的書寫規(guī)則。C 語言書寫格式自由,一行內(nèi)可以寫幾個語句,一個語句也可以分寫在多行上。 C 程序沒有行號,每個語句和數(shù)據(jù)
2、定義的最后必須有一個分號。C語言中分號是語句中不可少的,即使是程序中的最后一個語句也應(yīng)該包含分號。C 語言中的注釋可以用 /* 用 */ 結(jié)束,注釋可以在任何允許插入空格符地方插入。C 語言中注釋不允許嵌套,注釋可以用西文,也可以用中文。1.3 C 語言的風(fēng)格由于 C語言對語法限制不太嚴(yán)格,為了保證程序的準(zhǔn)確性和可讀性,建議在書寫程序采用階梯縮進(jìn)格式。也就是按如下格式書寫C 語言程序:*;*()*;*;*;*;概括起來, C 語言程序具有如下的風(fēng)格: C 語言程序的函數(shù)具體模塊結(jié)構(gòu)風(fēng)格,使得程序整體結(jié)構(gòu)清晰、層次清楚,為模塊化程序設(shè)計(jì)提供了強(qiáng)有力的支持。 C 語言的源程序的擴(kuò)展名都是 .C 。
3、 C 語言中的注釋格式為:/* 注釋內(nèi)容 */ 與 * 之間不允許有空格,注釋部分允許出現(xiàn)在程序中的任何位置。 C 語言中的所有語句都必須以分號“;”結(jié)束。第 2 章 C 程序設(shè)計(jì)的初步知識考點(diǎn)歸納2.1程序的構(gòu)成盡管 C程序的內(nèi)容千變?nèi)f化, 但是它們的構(gòu)成都是一致的, 一個完整的 C 源程序的格式可以如下表示:編譯預(yù)處理主函數(shù) ()函數(shù) ()從上面中可以看出, 一個 C 源程序?qū)嶋H上就是若干函數(shù)的集合, 這些函數(shù)中有一個是程序的主函數(shù), 任何 C的源程序執(zhí)行時, 都是從主函數(shù)開始執(zhí)行的, 其它的函數(shù)最終必將被這個主函數(shù)所調(diào)用。 C語言除了主函數(shù)規(guī)定必須取名 main 外,其它的函數(shù)名可以任取
4、,但是要符合 C 的標(biāo)識符取名規(guī)則, 另外注意不要與保留字重名, 最好也不可與 C語言中的庫函數(shù)或其它一些命令如編譯預(yù)處另命令重名。 各個函數(shù)在程序中所處的位置并不是固定的, 但要求一個函數(shù)是完整的、 獨(dú)立的。 不允許出現(xiàn)在一個函數(shù)內(nèi)部又去定義另一個函數(shù), 或是函數(shù)格式不齊全的現(xiàn)象。一個完整的一般意義上的函數(shù)有一個固定的框架,編寫具體的函數(shù)時,只需在這個框架中填入相應(yīng)的內(nèi)容即可??蚣苋缦拢汉瘮?shù)類型函數(shù)名(形參)形參說明內(nèi)部變量說明;執(zhí)行語句部分;2.2 C 語言的基本詞法C語言的基本詞法由三部分組成:符號集、關(guān)鍵字、保留字。符號集就是一門語言中允許出現(xiàn)的字符的集合,C 語言的符號集就是ASC碼
5、表中的一些字符,在鍵盤上不能直接得到( 比如說響鈴字符) , C語言引入了轉(zhuǎn)義字符的概念,利用反斜杠符號后加上字母的一個字符組合來表示這些字符,當(dāng)在源程序中遇到這類字符組合時,雖然這個字符組合是一個字符串的形式,但 C 語言仍會自動將之理解成某一特定的字符。比如,C 語言在處理這個字符組合時,會自動理解成回車換行符號。轉(zhuǎn)義字符經(jīng)過進(jìn)一步引申應(yīng)用,形成了另外兩種形式:ddd和xnn,這里后的ddd和xnn分別代表三位八進(jìn)制和兩位十六進(jìn)制數(shù)( 打頭的x只是標(biāo)明后面跟著的是十六進(jìn)制數(shù) ) ,這兩種形式不再局限于表示不可打印的字符,它們可以表示ASC碼表中的任意字符,只要把所需表示的字符的ASCII
6、碼轉(zhuǎn)換成八進(jìn)制數(shù)或十六進(jìn)制數(shù)即可。比如說字母A, ASCII 碼為 65, 65 的八進(jìn)制和十六進(jìn)制分別為101 和 x41 ,所以,字母A 可表示為101或 x41 ,對轉(zhuǎn)義字符應(yīng)認(rèn)真理解。標(biāo)識符就是用以標(biāo)識的符號。正如現(xiàn)實(shí)生活中給每一個人都取一個名字一樣,C 語言中的每一個對象( 如函數(shù)、 變量等) 都必須取一個標(biāo)識符以和其它對象區(qū)別開。在 C語言中,這個標(biāo)識符是一個字符串,這個字符串的選定有一定的規(guī)則:必須是以字母或下劃線開頭的字母與數(shù)字的序列。 除了這個基本的規(guī)則外,C 語言對標(biāo)識符的命名還有幾個限制需加以注意:長度最好不要超過八個字符。因 C中對標(biāo)識符只處理前8 個字符,超過 8 個
7、長度的部分將被 C 自動忽略掉。 ABCDEFGH1和 ABCDEFH2是同一個標(biāo)識符;標(biāo)識符不要與保留字同名, 最好也不要與 C 提供的標(biāo)準(zhǔn)標(biāo)識符, 如庫函數(shù)重名; 應(yīng)注意 C 語言對大小寫字母是敏感的, Abcd 和 abcd 是兩個不同的標(biāo)識符。關(guān)鍵字實(shí)際上就是一些特殊的標(biāo)識符,又稱保留字, 這些保留字不允許用戶對它重新定義。2.3頭文件、數(shù)據(jù)說明、函數(shù)的開始和結(jié)束標(biāo)志1. 頭文件:也稱為包含文件或標(biāo)題文件, 一般放在一個 C 語言程序的開頭, 用 #include 文件名的格式,其中文件名是頭文件名,一般用.h 作為擴(kuò)展名。2. 數(shù)據(jù)說明: C語言中的數(shù)據(jù)分常量和變量兩種。3. 常量:
8、有數(shù)值常量和符號常量兩種。4. 數(shù)值常量:可以分為整型常量、實(shí)型常量、浮點(diǎn)型常量和字符常量。5. 符號常量:用一個標(biāo)識符代表的一個常量,又稱標(biāo)識符形式的常量。6. 變量:其值可以改變的量,變量名習(xí)慣上用小寫字母表示。7. 標(biāo)識符:用來標(biāo)識變量名、符號常量名、函數(shù)名、數(shù)組名、類型名、文件名的有效字符序列。8. 標(biāo)識符的命名規(guī)則: C 語言中標(biāo)識符只能由字母、數(shù)字下劃線三種字符組成,且第一個字符必須為字母或下劃線。 C 語言是大小寫敏感語言, 即對大小寫字母認(rèn)為是不同的字符。C語言中標(biāo)識符的長度隨系統(tǒng)不同而字,如TURBO C中取前 8 個字符, 8 個字符后面的字符會自動取消。第 3 章 順序結(jié)
9、構(gòu)考點(diǎn)歸納3.1表達(dá)式語句、函數(shù)調(diào)用語句和空語句1.C 語言的語句共分五大類:表達(dá)式語句、控制語句、函數(shù)調(diào)用語句、空語句和復(fù)合語句。2. 表達(dá)式語句的一般形式為表達(dá)式;最典型的表達(dá)式語句是由一個賦值表達(dá)式加一個分號構(gòu)成的賦值語句。3. 控制語句是C語言程序設(shè)計(jì)中用來構(gòu)成分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的語句。此類語句有if語句, for語句, while語句, do-while語句, switch語句等。4. 函數(shù)調(diào)用語句的一般形式為函數(shù)名 (實(shí)參表 );5. 空語句的一般形式為;這條語句的含義是什么也不做。 凡是在 C 語句程序中出現(xiàn)語句的地方都可以用一個分號來代替一條語句。6. 復(fù)合語句的一般形式為語句
10、 1;語句 2; ;復(fù)合語句在功能上相當(dāng)于一條語句。3.2數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用1.C 語言本身沒有提供輸入、輸出操作語句。C 程序的輸入和輸出完全依靠調(diào)用C 語言的標(biāo)準(zhǔn)輸入、輸出函數(shù)來完成。四個常用的輸入、輸出函數(shù)是:printf函數(shù)、 scanf 函數(shù)、 putchar函數(shù)、 getchar函數(shù)2.printf函數(shù)是 C 語言提供的標(biāo)準(zhǔn)輸出函數(shù),它的作用是在終端設(shè)備( 或系統(tǒng)隱含指定的輸出設(shè)備 ) 上按指定格式進(jìn)行輸出。Printf函數(shù)的一般調(diào)用形式如下:printf(格式控制,輸出項(xiàng)表)如果在 printf函數(shù)調(diào)用之后加上;,就構(gòu)成了輸出語句。格式控制參數(shù)以字符串的形式描述
11、,由兩部分組成:普通字符:將被簡單地顯示;格式字符:將引起一個輸出參數(shù)項(xiàng)的轉(zhuǎn)換和顯示,由“%”引出并以一個類型描述符結(jié)束的字符串,中間可加一些可選的附加說明項(xiàng),如下表所示。附加說明項(xiàng)附加說明項(xiàng)說 明- 或 + 用于指定是否對齊輸出,具有“- ”符號表示左對齊,無“- ”或有“ +”表示右對齊0 用于指定是否填寫0,有此項(xiàng)表示空位用0 補(bǔ)充,無此項(xiàng)表示以空格補(bǔ)充m.n 用于指定輸出域?qū)捈熬龋琺是指域?qū)挘?n 為精度,當(dāng)指定n 時,隱含的精度為6位L 或 h 用于輸出長度修正。其中,l 對于整型是指long ,對實(shí)型是double;h只用于整型的格式字符,并修正為short型格式字符用于指定輸出
12、項(xiàng)的數(shù)據(jù)類型及輸入格式,如下表所示。注意:編譯程序只是在檢查了 printf 函數(shù)中的格式參數(shù)后,才能確定有幾個輸出項(xiàng),是什么類型、以什么格式輸出。在編程序時,應(yīng)使輸出格式與輸出項(xiàng)對應(yīng)。格式字符格式字符說 明CcD 輸出一個字符d 或 I輸出帶符號的十進(jìn)制整型數(shù)OoO 以八進(jìn)制無符號形式輸出整型數(shù)( 不帶前導(dǎo) 0)x 或 X 以十六進(jìn)制無符號形式輸出整型數(shù)( 不帶前導(dǎo)0x 或 0X) ,對于 x,用 abcdef 輸出十六進(jìn)制數(shù)碼;對于X,用 ABCDEF輸出十六進(jìn)制數(shù)碼UuU 按無符號的八進(jìn)制形式輸出整型數(shù)FfF以小數(shù)的形式輸出單精度或雙精度數(shù),小數(shù)位由精度指定,隱含的精度為6;如指定精度為
13、0,則小數(shù)部分( 包含小數(shù)點(diǎn) ) 都不輸出e 或 E 以指數(shù)形式輸出單精度及雙精度數(shù),小數(shù)位數(shù)由精度指定,隱含的精度為6;如指定精度為0,則小數(shù)部分( 包含小數(shù)點(diǎn) ) 都不輸出g 或 G 由系統(tǒng)決定是采用%f 不是采用 %e格式,以便使輸出寬度最小SsS 輸出字符串中的字符,直到遇到0時為止,或輸出指定的字符數(shù)PpP 輸出變量的內(nèi)存地址% 打印一個 %3.scanf函數(shù)是 C語言提供的標(biāo)準(zhǔn)輸入函數(shù),它的作用是在終端設(shè)備( 或系統(tǒng)隱含指定的輸入設(shè)備 ) 上輸入數(shù)據(jù)。Scanf 函數(shù)的一般調(diào)用形式是:scanf( 格式控制,輸入項(xiàng)表)如果在 scanf函數(shù)調(diào)用之后加上;,就構(gòu)成了輸入語句。格式控制
14、是用雙引號括起來的字符串,稱為格式控制串。 格式控制串的作用是指定輸入時的數(shù)據(jù)轉(zhuǎn)換格式,即格式轉(zhuǎn)換說明。格式轉(zhuǎn)換說明是由 %符號開始,其后是格式描述符。輸入項(xiàng)表中的各輸入項(xiàng)用逗號隔開,各輸入項(xiàng)只能是合法的地址表達(dá)式,即在變量之前加一個地址符號&。在 scanf 函數(shù)中每個格式說明都必須用%開頭,以一個格式字符結(jié)束。Scanf 函數(shù)中的格式控制字符與printf函數(shù)中的相似,由格式說明項(xiàng)與輸入格式符組成。格式說明項(xiàng)如下表所示。格式說明項(xiàng)格式說明項(xiàng)說 明% 起始符* 賦值抑制符,用于按格式說明讀入數(shù)據(jù),但不送給任何變量MmM域?qū)捳f明l 或h長度修正說明符scanf中的格式字符如下表所示。格式說明項(xiàng)
15、說 明CcC 輸入一個字符DdD 輸入十進(jìn)制整型數(shù)IiI輸入整型數(shù),整數(shù)可以是帶前導(dǎo)0 的八進(jìn)制數(shù),帶前導(dǎo)0x( 或OoO 以八進(jìn)制形式輸入整型數(shù)( 可為帶前導(dǎo)0,也可不帶前導(dǎo)0)XxX 以十六進(jìn)制形式輸入整型數(shù)( 可帶前導(dǎo)0x 或 0X,也可不帶 )UuU 無符號十進(jìn)制整數(shù)0X) 的十六進(jìn)制數(shù)FfF以帶小數(shù)點(diǎn)形式或指數(shù)形式輸入實(shí)型數(shù)EeE 與 f 的作用相同SsS 輸入字符串4.putchar函數(shù)的作用是把一個字符輸出到標(biāo)準(zhǔn)輸出設(shè)備( 常指顯示器或打印機(jī)) 上。一般調(diào)用形式為putchar(ch);其中 ch 代表一個字符變量或一個整型變量,ch也可以代表一個字符常量( 包括轉(zhuǎn)義字符常量)
16、。5.getchar函數(shù)的作用是標(biāo)準(zhǔn)輸入設(shè)備( 通常指鍵盤 ) 上讀入一個字符。一般調(diào)用形式為getchar();getchar函數(shù)本身沒有參數(shù),其函數(shù)值就是從輸入設(shè)備得到的字符。第 4 章 選擇結(jié)構(gòu)考點(diǎn)歸納4.1用 if語句實(shí)現(xiàn)選擇結(jié)構(gòu)1. 在 C語言中, if 語句有兩種形式:形式 1: if( 表達(dá)式 ) 語句形式 2: if( 表達(dá)式 ) 語句 1 else 語句 22.if語句執(zhí)行時,首先計(jì)算緊跟在if后面一對圓括號中的表達(dá)式的值,如果表達(dá)式的值為非零 ( 真 ) ,則執(zhí)行 if 后的語句, 然后去執(zhí)行 if 語句后的下一個語句。 如果表達(dá)式的值為零 ( 假 ) ,直接執(zhí)行 if 語
17、句后的下一個語句。3.if語句后面的表達(dá)式并不限于是關(guān)系表達(dá)式或邏輯表達(dá)式,而可以是任意表達(dá)式。If語句中可以再嵌套if語句。 C 語言規(guī)定,在嵌套的if語句中, else 子句總是與前面最近的不帶else的if相結(jié)合。4.2用 switch語句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)1.switch語句是用來處理多分支選擇的一種語句。它的一般形式如下:switch(表達(dá)式 ) case 常量表達(dá)式 1:語句 1 case 常量表達(dá)式 2:語句 2:case 常量表達(dá)式n:語句 ndefault:語句 n+12.switch 語句的執(zhí)行過程是: 首先計(jì)算緊跟 switch 后面的一對圓括號中的表達(dá)式的值,當(dāng)表達(dá)式的
18、值與某一個 case 后面的常量表達(dá)式的值相等時, 就執(zhí)行此 case 后面的語句體并將流程轉(zhuǎn)移到下一個 case 繼續(xù)執(zhí)行,直至 switch 語句的結(jié)束;若所有的 case 中的常量表達(dá)式的值都沒有與表達(dá)式值匹配,又存在 default,則執(zhí)行 default后面的語句, 直至 switch語句結(jié)束;如果不存在default,則跳過switch語句體,什么也不做。4.3選擇結(jié)構(gòu)的嵌套if語句和 switch語句都可以嵌套使用,特別要注意,對于構(gòu)成嵌套的if語句, else子句總是和離它最近的、不帶else 的 if子句相匹配,不能弄混;在一個switch語句中的case 后面又嵌套了一個s
19、witch語句,在執(zhí)行內(nèi)嵌的switch語句后還要執(zhí)行一條break 語句才跳出外層的switch語句。第 5 章 循環(huán)結(jié)構(gòu)考點(diǎn)歸納5.1 for循環(huán)結(jié)構(gòu)1.for循環(huán)語句的一般表達(dá)式是:for(表達(dá)式 1;表達(dá)式2;表達(dá)式3) 語句2.C 語言語法規(guī)定:循環(huán)體語句只能包含一條語句,若需多條語句,應(yīng)使用復(fù)合語句。5.2 while和 do while循環(huán)結(jié)構(gòu)1.while語句用來實(shí)現(xiàn)當(dāng)型循環(huán)結(jié)構(gòu),它的一般形式如下:while( 表達(dá)式 ) 語句當(dāng)表達(dá)式為非0 值時執(zhí)行while語句中內(nèi)嵌的語句;當(dāng)表達(dá)式的值為0 時,直接跳過while語句后面的語句,執(zhí)行下一條語句。2.while語句執(zhí)行的特點(diǎn)
20、是:先判斷表達(dá)式,后執(zhí)行語句。3.do while用來實(shí)現(xiàn)直到型循環(huán)結(jié)構(gòu),它的一般形式為:do 語句while( 表達(dá)式 ) ;這個語句執(zhí)行時,先執(zhí)行一次指定的內(nèi)嵌的語句,然后判別表達(dá)式,當(dāng)表達(dá)式的值為非0 時,返回重新執(zhí)行該語句,如此反復(fù),直到表達(dá)式的值為等于0 為止,此時循環(huán)結(jié)束。4.do while語句執(zhí)行的特點(diǎn)是:先執(zhí)行語句,后判斷表達(dá)式。5.3 continue語句和 break 語句1.break語句有兩個用途:在switch語句中用來使流程跳出switch結(jié)構(gòu),繼續(xù)執(zhí)行switch語句后面的語句;用在循環(huán)體內(nèi),迫使所在循環(huán)立即終止,即跳出所在循環(huán)體,繼續(xù)執(zhí)行循環(huán)體后面的第一條語句
21、。2.continue語句結(jié)束本次循環(huán), 即跳過循環(huán)體中尚未執(zhí)行的語句。在 while和 do while語句中, continue語句將使控制直接轉(zhuǎn)向條件測試部分,從而決定是否繼續(xù)轉(zhuǎn)向循環(huán)。在for循環(huán)中,遇到continue語句后,首先計(jì)算for語句表達(dá)式3 的值,然后再執(zhí)行條件測試( 表達(dá)式 2) ,最后根據(jù)測試結(jié)果來決定是否繼續(xù)轉(zhuǎn)向for循環(huán)。5.4循環(huán)的嵌套1. 一個循環(huán)體內(nèi)又包含另一個完整的循環(huán)結(jié)構(gòu), 稱為循環(huán)的嵌套。 內(nèi)嵌的循環(huán)中還可以嵌套循環(huán),這就是多層循環(huán)。2. 三種循環(huán) (while循環(huán)、 do while循環(huán)和 for循環(huán) ) 可以互相嵌套。第 6 章字符型數(shù)據(jù)考點(diǎn)歸納6
22、.1字符常量有兩種形式:一是用單引號括起來的一個單字符,如義字符,即以開頭的字符序列。常用的轉(zhuǎn)義字符見下表。字符形式功 能 n 換行 t橫向跳格 ( 即跳到下一個輸出區(qū)) v 豎向跳格 b 退格 r回車 f走紙換頁a,?,=;二是轉(zhuǎn) 反斜杠字符 單引號 (撇號)字符 雙引號 ( ) 字符 ddd 1 到 3 位 8 進(jìn)制數(shù)所代表的字符,如123,表示 8 進(jìn)制數(shù) 123 xhh 1 到 2 位 16 進(jìn)制數(shù)所代表的字符,如x21 ,表示 16 進(jìn)制數(shù) 23在轉(zhuǎn)義字符賦給字符變量時,也需要在其二側(cè)加單引號,如:char c= n;字符串常量是用一對雙引號括起的字符序列,如abc n。請區(qū)別字符變
23、量和字符串常量。 a是字符常量,a是字符串常量。在內(nèi)存中, 字符常量占一個字節(jié),而對字符串常量,則在字符串的后面加一個字符串結(jié)束標(biāo)志,以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。用 0 ( 即 ASCII 代碼為 0 的字符,即空字符 ) 作為字符串結(jié)束的標(biāo)志。例如, a內(nèi)存占兩個字節(jié),即: a 0 。6.2字符變量字符變量用來存放一個字符常量,字符變量用char 來定義。如:char a,b;a= 0 ;b= k;printf( %c %c n,a,b);將輸出兩個字符ok。不能將一個字符串常量賦給一個字符變量,如:a= 0 ;b= k;是錯誤的。給字符變量賦值可以采用如下三種方法:(1) 直接賦以字符
24、常量,如char= A ;(2) 賦以轉(zhuǎn)義字符,如:char c= ;printf( %c ,c);輸出一個字符。(3) 賦以一個字符的 ASCII 代碼,如字符 a的 ASCII 代碼為 97,則char c=97;printf( %c ,c);將輸出一個字符a。實(shí)際上,字符數(shù)據(jù)在內(nèi)存中是以整數(shù)形式( 字符 ASCII 代碼 ) 存放的,例如,字符a的 ASCII 碼為 97,在內(nèi)存字節(jié)中的存放形式為:01 10 00 01在輸出時,如果指定輸出字符的格式符%c輸出,則輸出字符a ( 在輸出時先將ASCII 碼轉(zhuǎn)換為字符 ) 。如果指定按輸出整數(shù)的格式%d輸出 ( 如 printf( %d,
25、c) ,則輸出一個整數(shù)97。應(yīng)記住,字符數(shù)據(jù)與整型數(shù)據(jù)二者間是通用的,可以互相賦值和運(yùn)算,如:int a= A ;char c=97;print( %d n ,c-a);將輸出一個整數(shù)32,因?yàn)?A的 ASCII 碼為 65。第 7 章 函數(shù)考點(diǎn)歸納7.1庫函數(shù)的正確調(diào)用1.C 語言提供了豐富的庫函數(shù),包括常用數(shù)學(xué)函數(shù)、對字符和字符串處理函數(shù)、輸入輸出處理函數(shù)等。在調(diào)用庫函數(shù)時要注意以下幾點(diǎn):(1) 調(diào)用 C 語言標(biāo)準(zhǔn)庫函數(shù)時必須在源程序中用include命令, include命令的格式是:#include 頭文件名include命令必須以 #號開頭,系統(tǒng)提供的頭文件名都以.h 作為后綴,頭文
26、件名用一對雙引號或一對尖括號括起來。(2) 標(biāo)準(zhǔn)庫函數(shù)的調(diào)用形式:函數(shù)名 ( 參數(shù)表 )2. 在 C語言中庫函數(shù)的調(diào)用可以以兩種形式出現(xiàn):出現(xiàn)在表達(dá)式中;作為獨(dú)立的語句完成某種操作。7.2函數(shù)的定義方法1.C 語言函數(shù)的一般形式為:函數(shù)返回值的類型名函數(shù)名 ( 類型名形參 1,類型名形參 2, )說明部分語句部分定義的第一行是函數(shù)的首部, 中的是函數(shù)體。2. 在老的 C 語言版本中,函數(shù)的首部用以下形式:函數(shù)返回值的類型名函數(shù)名 ( 形參 1,形參 2)形參類型說明;新的 ANSI 標(biāo)準(zhǔn) C 兼容這種形式的函數(shù)首部說明。3. 函數(shù)名和形參名是由用戶命名的標(biāo)識符。 在同一程序中, 函數(shù)名必須唯一
27、。 形式參數(shù)名只要在同一函數(shù)中唯一即可,可以與函數(shù)中的變量同名。4.C 語言規(guī)定不能在一個函數(shù)內(nèi)部再定義函數(shù)。5. 若在函數(shù)的首部省略了函數(shù)返回值的類型名,把函數(shù)的首部寫成:函數(shù)名 ( 類型名形參 1,類型名形參 2, )則 C 默認(rèn)函數(shù)返回值的類型為int類型。6. 當(dāng)沒有形參時,函數(shù)名后面的一對圓括號不能省略。7.3函數(shù)的類型和返回值1. 函數(shù)的類型由函數(shù)定義中的函數(shù)返回值的類型名確定,函數(shù)的類型可以是任何簡單類型,如整型、字符型、指針型、雙精度型等,它指出了函數(shù)返回值的具體類型。當(dāng)函數(shù)返回的是整型值時,可以省略函數(shù)類型名。當(dāng)函數(shù)只完成特定的操作而沒有或不需要返回值時,可用類型名 void
28、( 空類型 ) 。2. 函數(shù)返回值就是return語句中表達(dá)式的值。當(dāng)程序執(zhí)行到return語句時, 程序的流程就返回到調(diào)用該函數(shù)的地方( 通常稱為退出調(diào)用函數(shù)) ,并帶回函數(shù)值。7.4形式參數(shù)與實(shí)際參數(shù),參數(shù)值的傳遞1. 在函數(shù)定義中, 出現(xiàn)的參數(shù)名稱為形參 ( 形式參數(shù) ) ,在調(diào)用函數(shù)時, 使用的參數(shù)值稱為實(shí)參 ( 實(shí)際參數(shù) ) 。2. 調(diào)用函數(shù)和被調(diào)用函數(shù)之間的參數(shù)值的傳遞是按值進(jìn)行的, 即數(shù)據(jù)只能從實(shí)參單向傳遞給形參。也就是說,當(dāng)簡單變量作為實(shí)參時,用戶不能在函數(shù)中改變對應(yīng)實(shí)參的值第 8 章 指針考點(diǎn)歸納8.1指針與指針變量的概念,指針與地址運(yùn)算符1. 在 C語言中, 指針是指一個變
29、量的地址, 通過變量的地址指向的位置找到變量的值,這種指向變量地址可形象地看作指針。用來存放指針的變量稱為指針變量,它是一種特殊的變量,它存放的是地址值。2. 定義指針變量的一般形式為:類型名 * 指針變量1, * 指針變量2, ;類型名稱為基類型它規(guī)定了后面的指針變量中存放的數(shù)據(jù)類型,* 號表明后面的指針變量1, 指針變量2等是指針變量, * 號在定義時不能省略,否則就會變成一般變量的定義了。指針變量1,指針變量2等稱為指針變量名。3. 一個指針變量只能指向同一類型的變量。4. 與指針和指針變量有關(guān)的兩個運(yùn)算符:(1)* :指針運(yùn)算符 ( 或稱間接訪問運(yùn)算符)(2)& :取地址運(yùn)算符通過 *
30、號可以引用一個存儲單元,如有如下定義:int i=123,*p,k;則 p=&I; 或 k=*p; 或 k=*&I; 都將變量 i 中的值賦給 k。*p=10; 或 *&i=10; 都能把整數(shù)10 賦給變量i 。這里,等號左邊的表達(dá)式*p 和 *&i 都代表變量 i 的存儲單元。8.2變量、數(shù)組、字符串、函數(shù)、結(jié)構(gòu)體的指針以及指向它們的指針變量1. 變量的指針和指向變量的指針變量。2. 數(shù)組的指針和指向數(shù)組的指針變量。所謂數(shù)組的指針是指數(shù)組的起始地址,數(shù)組元素的指針是數(shù)組元素的地址。C語言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第一個元素的地址。3. 字符串的指針和指向字符串的指針變量。我們可以通過
31、定義說明一個指針指向一個字符串。C語言將字符串隱含處理成一維字符數(shù)組,但數(shù)組的每個元素沒有具體的名字,這一點(diǎn)跟字符數(shù)組不一樣。要引用字符串中的某個字符,只能通過指針來引用:*(s+0),*(s+1),*(s+n)。4. 函數(shù)的指針和指向函數(shù)的指針變量。指向函數(shù)的指針變量的一般形式為 :數(shù)據(jù)類型標(biāo)識符 (* 指針變量名 )() ;這里的數(shù)據(jù)類型標(biāo)識符是指函數(shù)返回值的類型。函數(shù)的調(diào)用可以通過函數(shù)名調(diào)用,也可以通過函數(shù)指針調(diào)用調(diào)用)。( 即用指向函數(shù)的指針變量指向函數(shù)的指針變量表示定義了一個指向函數(shù)的指針變量,它不是固定指向哪一個函數(shù),而只是定義了這樣的一個類型變量, 它專門用來存放函數(shù)的入口地址。
32、 在程序中把哪一個函數(shù)的地址賦給它, 它就指向哪一個函數(shù)。 在一個程序中, 一個指針變量可以先后指向不同的函數(shù)。在給函數(shù)指針變量賦值時, 只需給出函數(shù)名而不必給出參數(shù)。 因?yàn)楹瘮?shù)指針賦的值僅是函數(shù)的入口地址,而不涉及到實(shí)參與形參的結(jié)合問題。對指向函數(shù)的指針變量,表達(dá)式p+n,p+,p-等都無意義。5. 結(jié)構(gòu)體的指針與指向結(jié)構(gòu)體的指針變量一個結(jié)構(gòu)體變量的指針就是該變量所占據(jù)的內(nèi)存段的起始地址??梢栽O(shè)一個指針變量,用來指向一個結(jié)構(gòu)體變量,此時該指針變量的值是結(jié)構(gòu)體變量的起始地址。指針變量也可以用來指向結(jié)構(gòu)體數(shù)組中的元素。第 9 章 數(shù)組考點(diǎn)歸納9.1一維數(shù)組的定義、初始化和引用1. 一維數(shù)組的定義
33、方式為:類型說明符 數(shù)組名常量表達(dá)式(1) 數(shù)組名的命名方法與變量名相同,遵循標(biāo)識符命名規(guī)則;(2) 數(shù)組是用方括號括起來的常量表達(dá)式,不能用圓括號;(3) 常量表達(dá)式表示數(shù)組元素的個數(shù),即數(shù)組的長度,數(shù)組的下標(biāo)從0 開始,下標(biāo)的最大值為:常量表達(dá)式-1 ;(4) 常量表達(dá)式中可以包括常量和符號常量,不能包括變量??梢杂觅x值語句或輸入語句使數(shù)組中的元素得到值, 但要占用運(yùn)行時間。 可以使數(shù)組在運(yùn)行之前初始化,即在編譯階段使之得到初值。2. 對數(shù)組初始化可以用以下方法實(shí)現(xiàn):(1) 在定義數(shù)組時對數(shù)組元素賦以初值。如:static int a10 =0,1,2,3,4,5,6,7,8,9 ;經(jīng)過上
34、面的定義和初始化后,a 0=0,a 1 =1,a 9 =9。(2) 初始化時可以只對一部分元素賦初值。例如:static int a10 =0,1,2,3,4 ;定義的數(shù)組有10 個元素,但只對其中前5 個元素賦了初值,后5 個元素初值為 0。(3) 如果想使一個數(shù)組的元素值全部為0,可以用下面的方法:static int a10 =0,0,0,0,0,0,0,0,0,0 ;不能用:static int a10 =0*10 ;如果對 static型數(shù)組不賦初值,系統(tǒng)會對定義的所有數(shù)組元素自動賦以0 值。(4) 在對全部數(shù)組元素賦初值時,可以不指定數(shù)組長度。3. 一維數(shù)組的引用方法是:C語言規(guī)定
35、不能一次引用整個數(shù)組,引用時只能逐個元素引用,數(shù)組元素的表示形式為:數(shù)組名下標(biāo)下標(biāo)可以是整型常量或整型表達(dá)式。如:a 0=a 5 +a 7 -a 2*3 ;9.2二維數(shù)組的定義、初始化和引用1. 二維數(shù)組定義的一般形式為類型說明符數(shù)組名常量表達(dá)式常量表達(dá)式C語言采用上述定義方法,我們可以把二維數(shù)組看做是一種特殊的一維數(shù)組:它的元素又是一維數(shù)組。在 C 語言中,二維數(shù)組中元素的排列順序是:先按行存放,再按列存放,即在內(nèi)存中先順序存放第一行的元素,再存放第二行的元素。2. 二維數(shù)組的初始化:二維數(shù)組可以用下面的方法初始化:(1) 分行給二維數(shù)組賦初值。如:static int a3 4= 1,2,
36、3,4 , 5,6,7,8 , 9,10,11,12 ;以上賦值把第一個花括號內(nèi)的數(shù)據(jù)賦給第一行元素,第二個花括號內(nèi)數(shù)據(jù)賦給第二元素 ,即按行賦值。(2) 可以將所有的數(shù)據(jù)寫在一個花括號內(nèi),按數(shù)組排列的順序?qū)Ω髟刭x值。(3) 可以對數(shù)組的部分元素賦初值。如:static int a3 4= 1, 5 , 9 ;以上賦值的結(jié)果是:數(shù)組第一列的元素分別賦了初值1,5, 9,其余元素的值都是0。(4) 如果對二維數(shù)組的全部元素都賦初值,則定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省。3. 二維數(shù)組的引用:二維數(shù)組的元素可以表示為:數(shù)組下標(biāo)下標(biāo)在引用二維數(shù)組時, 必須是單個元素,不能是整
37、個數(shù)組名。下標(biāo)可以是一個表達(dá)式,但不能是變量。如果下標(biāo)是一個表達(dá)式,注意表達(dá)式的值不能超出數(shù)組定義的上、下限。第 10 章 字符串考點(diǎn)歸納10.1字符串與字符數(shù)組1. 字符數(shù)組的定義定義方法與前面介紹的類似,只是將數(shù)組定義為字符型即可。例如:char c 10;這里定義了一個包含10 個元素的字符數(shù)組c。2. 字符數(shù)組的初始化對字符數(shù)組初始化,可以采用以下方法:(1) 逐個字符賦給數(shù)組中各元素;(2) 用字符串常量使字符數(shù)組初始化。3. 字符串在 C 語言中,字符串是作為字符數(shù)組來處理的,字符串可以存放在字符型一維數(shù)組中,故可以把字符型一維數(shù)組作為字符串變量。字符串常量是用雙引號括起來的一串字
38、符。C語言中約定用 0作為字符串的結(jié)束標(biāo)志, 它占內(nèi)存空間, 但不計(jì)入串的長度, 0的代碼值為 0。系統(tǒng)對字符串常量也自動加一個 0作為結(jié)束符。 例如 c language 共有 10 個字符,但在內(nèi)存中占 11 個字節(jié),最后一個字節(jié)存放 0。4. 字符數(shù)組的輸入輸出(1) 逐個字符輸入和輸出在標(biāo)準(zhǔn)輸入輸出printf和 scanf 中使用 %c格式描述符;使用 getchar和 putchar函數(shù)。例如:for(i=0;i10;i+)scanf( %c ,&str i ); /*或 str i =getchar();*/str i = 0 ;/*人為加上串結(jié)束標(biāo)志*/for(i=0;i10;
39、i+)printf( %c ,str i );/*或 putchar(str i );*/(2) 字符串整體輸入輸出在標(biāo)準(zhǔn)輸入輸出函數(shù)printf和 scanf 中使用 %s格式描述符;輸入形式:char str 6 ;scanf( %s ,str);其中 str 為字符數(shù)組名,代表著 str 字符數(shù)組的起始地址,輸入時系統(tǒng)自動在每個字符串后加入結(jié)束符 0。若同時輸入多個字符串,則以空格或回車符分隔。輸入形式:printf( %s ,str);輸字符串時,遇第一個0即結(jié)束。但可人為控制輸出串所占的域?qū)捜纾簆rintf( %6s,str);/*若字符串中字符多于6 個,仍將全部輸出*/print
40、f( %-6s ,str);/*只輸出前6 個字符,多余的不輸出*/使用 gets 和 puts 函數(shù)輸入輸出一行g(shù)ets 函數(shù)用來從終端鍵盤讀字符,直到遇換行符為止,換行符不屬字符串的內(nèi)容。調(diào)用形式:gets(str);str為字符數(shù)組名或字符指針,字符串輸入后,系統(tǒng)自動將0置于串尾代替換行符。若輸入串長超出數(shù)組定義長度時,系統(tǒng)報錯。Puts 函數(shù)用來把字符串的內(nèi)容顯示在屏幕上。調(diào)用形式:puts(str);str的含義同上。輸出時,遇到第一個0結(jié)束并自動換行,字符串中可以含轉(zhuǎn)義字符。 第 11 章 對函數(shù)的進(jìn)一步討論考點(diǎn)歸納11.1傳給 main 函數(shù)的參數(shù)在此之前,我們在編寫main 函
41、數(shù)時,其后一對圓括號是空的,沒參數(shù)。其實(shí),在支持C的環(huán)境中,可以在運(yùn)行C 程序時,通過運(yùn)行C 程序的命令行,把參數(shù)傳送給C程序。11.2通過實(shí)參向函數(shù)傳遞函數(shù)名或指向函數(shù)的指針變量1. 指向函數(shù)的指針變量的定義在 C 語言中函數(shù)名代表該函數(shù)的入口地址,因此可以定義一種指向函數(shù)地址的指針變量。2. 函數(shù)名或指向函數(shù)的指針變量作為參考函數(shù)名或指向函數(shù)的指針變量可以作為實(shí)參傳送給函數(shù)。這時,對應(yīng)的形參是類型相同的指針變量。11.3函數(shù)的遞歸調(diào)用C語言中的函數(shù)可以遞歸調(diào)用,即:可以直接或間接地自己調(diào)用自己。前者稱簡單遞歸,后者稱間接遞歸。第 12 章 C 語言中用戶標(biāo)識符的作用域和存儲類考點(diǎn)歸納12.
42、1局部變量和全局變量在函數(shù)內(nèi)部或復(fù)合語句內(nèi)部定義的變量稱為局部變量。函數(shù)的形參屬于局部變量。在函數(shù)外部定義的變量稱為全局變量。有時, 局部變量也稱為內(nèi)部變量,全局變量也稱為外部變量。12.2變量的存儲屬性( 自動、靜態(tài)、寄存器、外部) ,變量的作用域和生存期C語言中來說明變量存儲屬性的關(guān)鍵字有四個:auto( 自動 ) 、 static(靜態(tài) ) 、register(寄存器 ) 、extern(外部 ) 。1. 局部變量的存儲屬性局部變量可以是自動類別( 用 auto,register說明 ) ,也可以是靜態(tài)類別( 用 static說明) 。形參只能是自動存儲類別,不允許是static類別。當(dāng)
43、局部變量未指明類別時,被自動說明成自動(auto) 變量。這類局部變量稱為自動變量。其值存放在內(nèi)存的動態(tài)存儲區(qū),因此在退出作用域后,變量被自動釋放,其值不予保留。當(dāng)局部變量說明成寄存器(register)類型時, 與自動 (auto) 變量一樣屬于自動類別,所不同的是此時變量的值保留在CPU中的寄存器中。當(dāng)變量說明成 static( 靜態(tài) ) 類型時,稱這樣的變量為靜態(tài)局部變量。在程序運(yùn)行期間,它占據(jù)一個永久的存儲單元,在函數(shù)退出后,變量的值仍舊保留。2. 全局變量的存儲屬性全局變量都屬于靜態(tài)存儲類別,可以用extern和 static對它們進(jìn)行說明。當(dāng)一個文件中要引用另一文件中的全局變量或在全局變量定義前要引用它時,可用 extern 說明。相當(dāng)于擴(kuò)大全局變量的作用域。用 static( 靜態(tài) ) 說明的全局變量稱為靜態(tài)全局變量,它僅能由本文件引用,即使在其文件中用 extern 說明也不能使用,它相當(dāng)于限制了全局變量作用域的擴(kuò)展。12.3內(nèi)部函數(shù)和外部函數(shù)1. 在 C語言中,所有的函數(shù)在本質(zhì)上都是外部函數(shù)。2. 函數(shù)定義時
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安丘市2025屆數(shù)學(xué)三年級第一學(xué)期期末質(zhì)量檢測試題含解析
- 市政工程問題集錦與試題答案精析
- 2024年水利水電工程新技術(shù)應(yīng)用研究及試題及答案
- 2025年經(jīng)濟(jì)師考試實(shí)戰(zhàn)試題及答案
- 小區(qū)導(dǎo)視系統(tǒng)設(shè)計(jì)方案匯報
- 水利水電工程計(jì)算方法與試題及答案
- 公共關(guān)系社會化媒體策略試題及答案
- 道路交通流量統(tǒng)計(jì)與分析技術(shù)試題及答案
- 航空航天材料科技應(yīng)用知識試題
- 農(nóng)業(yè)生態(tài)環(huán)保技術(shù)推廣應(yīng)用協(xié)議
- 提高安全意識共建平安校園
- 2025年高考作文備考之熱點(diǎn)時事素材資料
- 2025安徽蚌埠市龍子湖區(qū)產(chǎn)業(yè)發(fā)展有限公司招聘22人筆試參考題庫附帶答案詳解
- 華為筆試題目大全及答案
- 產(chǎn)業(yè)研究報告-中國水環(huán)境監(jiān)測行業(yè)發(fā)展現(xiàn)狀、市場規(guī)模及投資前景分析(智研咨詢)
- 償二代下我國財(cái)險公司償付能力影響因素的深度剖析與實(shí)證研究
- 【MOOC】理解馬克思-南京大學(xué) 中國大學(xué)慕課MOOC答案
- JGT266-2011 泡沫混凝土標(biāo)準(zhǔn)規(guī)范
- 禾川x3系列伺服說明書
- 各種面試方法詳解
- 常用H型鋼理論重量表格
評論
0/150
提交評論