c語言程序設計知識點總結_第1頁
c語言程序設計知識點總結_第2頁
c語言程序設計知識點總結_第3頁
免費預覽已結束,剩余4頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、C 語 言 程 序 設 計 教 學 基 本 知 識 點第一章 C 語言基本知識源程序的框架盡管各個 C 源程序的功能千變萬化,但框架是不變的,主要有:編譯預處理、主函數() 、函數 n() 等,主函數的位置不一定在最前面, 可以在程序的中部或后面, 主函數的名字固定為 main。 語言源程序的書寫規(guī)則:(1) C 源程序是由一個主函數和若干個其它函數組成的。(2) 函數名后必須有小括號,函數體放在大括號內。(3) C 程序必須用小寫字母書寫。(4) 每句的末尾加分號。(5) 可以一行多句。(6) 可以一句多行。(7) 可以在程序的任何位置加注釋。3. 語句種類 語句是程序的基本成分, 程序的執(zhí)

2、行就是通過一條條語句的執(zhí)行而得以實現的, 根據表現形 式及功能的不同, C 語言的基本語句可以分為五大類。(1) 流程控制語句 流程控制語句的功能是控制程序的走向, 程序的流程有三種基本結構: 順序結構、 分支結構 和循環(huán)結構, 任何復雜的程序都可以由這三種基本結構復合而成。 其中后兩種結構要用特定的流 程控制語句實現。(2) 表達式語句 表達式語句的形式是:表達式;,即表達式后跟一分號“;”,分號是語句結束符,是一個 語句必不可少的成分。 表達式和表達式語句的區(qū)別在于表達式代表的是一個數值, 而表達式語句 則代表一種動作。最常見的表達式語句是賦值語句。(3) 函數調用語句 函數調用語句實際上

3、也是一種表達式語句, 形式為: 在一次函數調用的小括號后面加上一個分號。(4) 空語句 空語句的形式就是一個分號,它不代表任何動作,常常作為一個意義轉折點使用。(5) 復合語句 復合語句從形式上看是多個語句的組合, 但在語法意義上它只相當于一個語句, 在任何單一 語句存在的地方都可以是復合語句。 注意復合語句中最后一個語句末尾的分號不能少。 復合語句 右大括號后面沒有分號。4. 運算符 用來表示數據各種操作的符號稱為運算符。運算符實際上代表了一種類型數據的運算規(guī)則。不同的運算符具有不同的運算規(guī)則, 其操作的數據類型必須符合該運算符的要求, 運算結果的數 據類型也是固定的。根據參加操作的數據個數

4、多少,可以將 C 語言的運算符分為單目運算符,雙目運算符和三 目運算符 (三目運算符只有條件運算符一個 ) 。根據運算對象和運算結果的數據類型可分為算術運算符、關系運算符、邏輯運算符等。5. 表達式 表達式是由常量、變量、函數,通過運算符連接起來而形成的一個算式。一個常量,一個變 量或一個函數都可以看成是一個表達式。表達式的種類有: 算術表達式、關系表達式、邏輯表達式、賦值表達式、字位表達式、強制類型轉換表達式、逗號表達式 (順序表達式 )、條件表達式、指針表達式。6. 數據的輸入 /輸出C 語言本身沒有輸人 /輸出語句,數據的輸入 /輸出是通過調用庫函數來實現的。第二章 數據類型知識點 劃分

5、數據類型的意義是編譯系統(tǒng)對每個不同類型的數據在內存中分配的字節(jié)數不同, 不同類 型的數據可以按規(guī)定參加不同類型的運算。語言的數據類型 數據類型有:整型、字符型、實型單精度型、雙精度型、構造類型數組類型、結構體類型、 共用體類型、枚舉類型、指針類型、空類型,其中整型、實型、字符型是 C 語言中的基本類型。2. 各種類型數據的定義方法定義形式:數據類型變量名1,變量名2 ,變量名n;3. 常量與變量(1)常量在程序執(zhí)行期間其值不變的量。它不能被賦值。(2)變量在程序運行期間其值可以改變的量。4. 各種類型數據的混合運算各類數據運算前會自動轉換成同一類型。規(guī)律如右圖示:從右向左的箭頭表示必定的轉換,

6、如 float 型數據運算前化成 double 型,以提高運算精度,結果也為 double 型, short 或 char 型數 據運算前化成 int 型,結果也為 int 型;從下向上的箭頭表示轉換方向是向級別高的靠攏。5. 強制類型變換當我們需要對數據進行類型變換, 而機器又不能自動完成時, 就要用強制類型變換, 形式為: (數據類型符 )( 被轉換對象 )。第三章 選擇知識點C 語言中實現選擇結構的控制語句有兩種:條件分支語句 if 和開關分支語句 switch 。 語句的三種形式:(1)if( 表達式 ) 語句;(2)if( 表達式 ) 語句 1;else 語句 2;(3)if( 表達

7、式 1)語句 1;else if( 表達式 2)語句 2;else if( 表達式 3) 語句 3;else if(表達式n)語句n;2. 開關分支語句 switch(1)形式 switch( 表達式 ) case e1: 語句 1 ; break;case e2語句 2 ; break;case e3語句 3 ; break;case en語句 n ; break;default : 語句 n+1;(2)功能當表達式的值等于 e1 時,執(zhí)行語句 1 ; 當表達式的值等于 e2 時,執(zhí)行語句 2;當表達式的值等于 en 時,執(zhí)行語句 n;default 后的語句C 語言中有三種循環(huán)語句當表達式

8、的值與常量 el、e2en誰都不等時,就執(zhí)行第四章 循環(huán)知識點循環(huán)就是在程序執(zhí)行過程中,反復多次的執(zhí)行同一段程序。循環(huán)語句形式為: while( 表達式 ) 循環(huán)體;執(zhí)行過程是: 先計算表達式的值, 當表達式的值非 0 時就執(zhí)行循環(huán)體, 之后再判斷表達式的 值,且重復以上過程;當表達式的值為 0 時就結束循環(huán)。while 循環(huán)語句 形式為: do循環(huán)體 while( 表達式 ) ;執(zhí)行過程是: 先執(zhí)行循環(huán)體一次, 再判斷表達式的值, 當表達式的值非 0 時就再執(zhí)行循環(huán)體, 之后再判斷表達式的值,且重復以上過程;當表達式的值為 0 時就結束循環(huán)。循環(huán)語句形式為: for( 表達式 1;表達式 2

9、; 表達式 3) 循環(huán)體 4.三種循環(huán)語句的比較 三種循環(huán)語句可以完成同一件事,可任選其一。使用 while 和 do- while 循環(huán)時, 要提前給循環(huán)變量賦初值。 而 for 循環(huán)是在表達式 1 中賦初 值的。while 循環(huán)和 for 循環(huán)都是先判斷條件后執(zhí)行循環(huán)體,有可能一次也不執(zhí)行循環(huán)體,do- while 循環(huán)是先執(zhí)行循環(huán)體,后判斷條件,即循環(huán)體至少也得執(zhí)行一次。 for 循環(huán)不限于計數循環(huán),其循 環(huán)條件可以是邏輯表達式和字符表達式等。5.循環(huán)嵌套 三種循環(huán)控制語句可以互相嵌套, 即在一個循環(huán)體內部又可以出現另一循環(huán), 這種嵌套在理 論上來說可以是無限的。注意必須是一個循環(huán)完整的

10、套住另一個循環(huán)。語句break 語句只能出現在三種循環(huán)語句和switch 多分支語句中,其作用是用來中斷這四種語句的執(zhí)行。當程序執(zhí)行到 break 語句時,會跳出 break 語句所在的循環(huán)或 switch 分支,而直接執(zhí)行 緊跟在它們后面的語句。語句continue 語句只能出現在三種循環(huán)語句中,當程序執(zhí)行到 continue 語句時,其作用是提前結 束本次循環(huán), 自動跳過循環(huán)體中后半部剩余的語句的執(zhí)行, 而直接回到循環(huán)條件判斷。 根據判斷 的結果決定是否繼續(xù)執(zhí)行下次循環(huán)。8. goto 語句goto 語句是一種非結構化語句, 其作用是使程序的執(zhí)行無條件的轉移到某一處。 使用格式為 : go

11、to 標號;利用 goto 語句與 if 條件語句配合,也可以實現條件循環(huán)。 C 語句允許在任何語句前 添加標號,作為跳轉目標,標號的構成是標識符后面加一個 : 。第五章 數組知識點數組就是同類型的一批數據的集合,用一個變量名存放,區(qū)分各元素的辦法是用下標。1. 一維數組類型說明符數組名 數組長度 ;(1) 數組命名要符合標識符的命名規(guī)則。(2) 數組名后的括號必須是方括號,不能是圓括號。(3) 數組長度必須是正整數 ,可以是個表達式,但不能有變量,C 語言不支持動態(tài)數組。(4) 數組長度表示數組中元素的個數(5) 數組元素的下標從 0 開始數,所以最大下標是數組的長度減1。2多維數組 ( 以

12、二維為例 )類型說明符數組名 第一維長度 第二維長度 ;(1) 數組命名要符合標識符的命名規(guī)則。(2) 數組名后的括號必須是兩個方括號,定義時不能寫成inta3 , 4 ;。(3) 數組長度必須是整型常量表達式。(4) 第一維長度表示數組行數,第二維長度表示數組列數。(5) 每個數組元素都有兩個下標,第一維表示該元素所在的行,第二維表示該元素所在的列,每 一維的下標都從 0 開始數。二維數組的初始化: C 語言規(guī)定只有靜態(tài)數組和外部數組才允許在定義時賦初值, 賦初值形式 如下:static 類型說明符數組名 第一維長度 第二維長度 = 初值表 ;二維數組的引用: 二維數組不能整體引用, 要引用

13、數組的單個元素, 形式為:數組名 下標 下 標 和普通變量的使用無任何區(qū)別。3字符數組C 語言中沒有字符串變量, 字符串是靠字符數組實現的, 所謂字符數組就是元素的數據類型 為字符型的數組。(1)字符數組的定義形式: char 數組名 數組長度 ;因為 C 語言中的整型數據和字符型數據是相通的, 所以也可以這樣定義: int 數組名 數組長度 ;(2)字符數組的初始化:給字符數組的初始化有兩種方式,一種是用字符常量,另一種是用字符 串。形式如下:staticchar 數組名 數組長度 = 字符常量表 ;staticchar 數組名 數組長度 = 字符串常量 ;4. 數組與函數 數組經常作為函數

14、的參數, 數組做函數的參數有兩種形式, 一是數組元素做函數的參數, 一是數組名做函數的參數,當用數組名做函數的實參時傳送的是首地址。5. 常用的字符串處理函數C 語言提供了一些處理字符串的標準函數, 用以完成一些常見的操作。 對以下幾個函數要掌 握其功能和調用形式。(1)gets( 字符數組名 )此函數功能是從鍵盤輸入一串字符,回車后送到字符數組中,注意定義數組 時數組長度要足夠大。(2)puts( 字符數組名 ) 此函數功能是將字符數組的內容輸出到屏幕上。(3)strcat( 字符數組名 1,字符數組名 2)此函數功能是將字符數組1 中的 0去掉后將字符數組2 的內容連接到字符數組 1 的末

15、尾。(4)strcpy( 字符數組名 1,字符數組名 2)函數功能是將字符數組2 的內容 (包括 0 )拷貝到字符數組 1 中,字符數組 2 處也可以是字符串常量。 strcpy 函數可以實現拷子串。(5)strcmp( 字符數組名 1,字符數組名 2)函數功能是兩個字符串 (ASCII 碼 )比大小。(6)strlen( 字符數組名 )此函數功能是求字符串的長度,注意不包括0。(7)strlwr( 字符數組名 )此函數功能是將字符串中的所有大寫字母都變成小寫。(8)strupr( 字符數組名 )此函數功能是將字符串中的所有小寫字母都變成大寫。第六章 函數知識點每個C源程序都是由函數組成的,一

16、個主函數和若干個其它函數,C語言程序設計的基礎工作就是函數的具體編寫,C語言中的函數就相當于其它高級語言中的子程序。1. 函數的概念函數就是一個數據加工廠 ,從函數外部接收數據,在函數內部加工處理,然后得到一個結果返回給外部的調用者。所以函數就是對語言功能的擴充,對函數的調用就是對功能的調用。2. 標準函數各種高級語言都定義了一些標準函數, C 語言中的標準函數稱為庫函數,是將一些基本的、 常用的功能編成了函數,供大家使用方便。使用庫函數時必須把它的頭文件用#include 命令包含進來,每個庫函數的功能及對應的頭文件都會在手冊中給出。3. 自定義函數C語言也允許用戶自己編寫函數以實現C庫函數

17、中沒有提供的功能,稱作自定義函數。4定義函數C 語言規(guī)定每個函數都要獨立定義,函數定義不能嵌套。函數定義的形式:數據類型函數名(形參表 )形參說明語句序列 說明語句序列 可執(zhí)行語句序列 5函數調用函數調用的形式是: 函數名 (實參表 )。當實參表中有多個參數時,要用逗號隔開,若被調 函數無參數,調用時小括號也不能省。函數調用過程是:將實參的值傳給形參,在函數體內進行加工處理,然后由 return 語句將函數值返回調用處。5全局變量和局部變量 局部變量:在函數內部定義的變量稱為局部變量,只在本函數中有效。全局變量:在函數外部定義的變量稱為全局變量,它的作用范圍是從定義開始到本文件結束。 6動態(tài)存

18、儲與靜態(tài)存儲內存中的用戶數據區(qū)分為動態(tài)存儲區(qū)和靜態(tài)存儲區(qū), 動態(tài)存儲區(qū)是指程序運行期間給變量臨 時分配存儲單元,變量用完后立即釋放單元的區(qū)域,動態(tài)存儲區(qū)放的是函數的形參、自動變量、 函數調用期間的現場保護數據和返回地址。 靜態(tài)存儲區(qū)是指程序運行期間給變量分配固定的存儲單元,放的是全局變量和局部靜態(tài)變量。 一個變量除了它的數據類型以外還有存儲類型,定義一個變量時應該說明這兩種類型。 第七章 預處理知識點對高級語言編譯連接就是把源程序轉換成機器語言, C 語言在進行編譯之前還要預先處理三 件事:宏定義命令、文件包含命令和條件編譯命令,統(tǒng)稱為預處理命令,其特點是:1. 所有的預處理命令都放在程序的頭

19、部,以#開頭,且 #號后面不留空格。2. 預處理命令不是 C 的語句,行尾不加分號。3. 預處理命令是在編譯預處理階段完成的,所以它們沒有任何計算、操作等執(zhí)行功能。4. 預處理命令有所變動后,必須對程序重新進行編譯和連接。1宏定義宏定義命令的作用是給一些常用的對象重新命名, 在程序中可以用宏名來引用這些對象, 預 處理時宏名會被代表的內容替換,此過程稱為宏展開或宏替換。宏定義有兩種形式:2文件包含 使用文件包含命令可以將另個 C 源程序的全部內容包含進來,其形式為:#include v文件名 或#include 文件名通??梢园呀洺S玫降?,帶公用性的一些函數或符號等集合在起形成一個源文件,然后

20、用此命令將這個源文件包含進來,這樣可以避免在每個新程序中都要重新鍵入這些內容。 3條件編譯顧名思義滿足條件時進行編譯, 為了解決程序移植問題,C 語言提供了條件編譯命令,它能使源程序在不同的編譯環(huán)境下生成不同的目標代碼文件。條件編譯命令有3 種形式。第八章 指針知識點1. 什么是指針和指針變量? 指針就是內存地址,因為通過“地址”可以找到變量,所以內存“地址形象的稱為指針。指針變量就是存地址的變量。在 C 語言中用一個變量存另一個變量的地址,那么就稱這個 變量為指針變量,指針變量的值就是地址。通常指針變量被簡稱為指針。指針變量是有類型的, 即指針值增 1 表示指向下一個數據, 如整型數據在內存

21、中占兩個字節(jié), 它的指針變量增 1是增兩個字節(jié)。如實型數據在內存中占 4個字節(jié),它的指針變量增 1是增 4 個字節(jié)。2. 怎樣定義指針變量?定義形式為:數據類型*指針變量名1, *指針變量名2;3. 指針的有關運算 指針為內存地址是整數,可以進行一些算術運算、關系運算、賦值運算、特殊運算等,但要注意 運算代表的實際意義。4指向數組的指針變量(1) 指向數組元素的指針變量定義形式為: inta10; int*p=a;(2) 指向一維數組的指針變量定義形式為: inta34;int(*p)4;p=a;(3) 指向字符串的指針變量定義形式為: char*p= 字符序列 ;C語言中的字符串是以隱含形式

22、的字符數組存放的,定義了指針變量 p并不是將整個字符串都存放在p中了,而p中存放的是字符串的首地址。5指向函數的指針變量 一個函數在編譯時被分配一個入口地址, 這個地址就是函數的指針, 可以用一個指針變量指向它。 指向函數的指針變量定義形式為:數據類型 (* 指針變量名 );6. 指針變量做函數的參數(1) 指針作函數的參數可以傳送地址,如數組的首地址,函數的入口地址等。(2) 指針作函數的參數也可以用地址方式傳送數據。7返回值是指針的函數 即函數的返回值是內存的地址,利用這種方法可以將一個以上的數據返回給函數的調用者 定義形式如下:數據類型 * 函數名(形參表)8.指針數組定義形式為:數據類

23、型 * 數組名 數組長度 ; 數組中的每個元素都是指針類型的數據,這種數組被稱為指針數組。9. 指向指針的指針定義形式為:數據類型 * 指針變量名; 指向指針數據的指針變量稱為指向指針的指針。函數的形參main 函數可以帶兩個形參,如: main(argc,argv)intargc ;char *argv ; 11. 指向結構體的指針變量 結構體變量的指針就是該變量所占據的內存段的首地址。指向結構體的指針變量定義形式為: struct 結構體類型名 *指針變量名;12. 指向共用體的指針變量 共用體變量的指針就是該變量所占據的內存段的首地址。指向共用體的指針變量定義形式為: union 共用體

24、類型名 *指針變量名;替換了的字符時 (這里為正中間的字符 4) ,原來的字符己不復存在。第九章 結構體與共用體知識點 結構體類型是 C 語言的一種構造數據類型,它是多個相關的不同類型數據的集合,相當于 其它高級語言中的記錄。1. 結構體類型定義 結構體類型的形式為: struct 結構體類型名 數據類型成員名 1 ;數據類型成員名 n;2. 結構體變量的定義 結構體變量有三種定義形式:(1)先定義結構體類型,后定義結構體變量。(2)定義結構體類型的同時定義結構體變量。(3) 不定義結構體類型名,直接定義結構體變量。3. 結構體變量的引用(1) 結構體變量的初始化: 許多 C 版本規(guī)定對外部或

25、靜態(tài)存儲類型的結構體變量可以進行初始化, 而對局部的結構體變量則不可以,新標準 C 無此限制,允許在定義時對自動變量初始化。(2) 結構體成員的引用:由于 C 語言一般不允許對結構體變量的整體引用,所以對結構體的引用 只能是對分量的引用,結構體變量中的任一分量可以表示為:結構體變量名成員名4. 結構體與數組C 語言中數組的成員可以是結構體變量,結構體變量的成員也可以是數組。 結構體數組有三種定義形式:(1) 先定義結構體類型,后定義結構體數組。(2) 定義結構體類型的同時定義結構體數組。(3) 不定義結構體類型名,直接定義結構體變量。5. 結構體與指針一方面結構體變量中的成員可以是指針變量,另一方面也可以定義指向結構體的指針變量, 指向結構體的指針變量的值是某一結構體變量在內存中的首地址。結構體指針的定義形式 :struct 結構體類型名 * 結構體指針變量名。 由結構體指針引用結構體成員的方法6. 用指針處理鏈表 結構體的成員可以是指針類型, 并且這個指針類型就是本結構體類型的, 這樣可以構造出一 種動態(tài)數據結構成為鏈表。 所謂動態(tài)數據就是指在編譯時不能確定數據量的多少, 而是在程序 執(zhí)行時才確定的數據,動態(tài)數據可以比較方便的進行數據插人或刪除等操作。7. 結構體與函數 結構體變量的成員可以作函數的參數、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論