計算機(jī)二級C語言教材及考綱詳解_第1頁
計算機(jī)二級C語言教材及考綱詳解_第2頁
計算機(jī)二級C語言教材及考綱詳解_第3頁
計算機(jī)二級C語言教材及考綱詳解_第4頁
計算機(jī)二級C語言教材及考綱詳解_第5頁
已閱讀5頁,還剩83頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

計算機(jī)二級C語言教材及考綱詳解C語言程序設(shè)計等級考試大綱一、基礎(chǔ)知識部分基本要求:1.掌握算法的基本概念。2.掌握基本數(shù)據(jù)結(jié)構(gòu)及其操作。3.掌握基本排序和查找算法。4.掌握逐步求精的結(jié)構(gòu)化工程序設(shè)計方法。5.掌握軟件工程的基本方法,具有初步應(yīng)用相關(guān)技術(shù)進(jìn)行軟件開發(fā)的能力。6.掌握數(shù)據(jù)庫的基本知識,了解關(guān)系數(shù)據(jù)庫的設(shè)計??荚噧?nèi)容:(一)基本數(shù)據(jù)結(jié)構(gòu)與算法1.算法的基本概念;算法復(fù)雜度的概念和意義(時間復(fù)雜度與空間復(fù)雜度)。2.數(shù)據(jù)結(jié)構(gòu)的定義;數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu);數(shù)據(jù)結(jié)構(gòu)的圖形表示;線性結(jié)構(gòu)與非線性結(jié)構(gòu)的概念。3.線性表的定義;線性表的順序存儲結(jié)構(gòu)及其插入與刪除運(yùn)算。4.棧和隊列的定義;棧和隊列的順序存儲1.庫函數(shù)的正確調(diào)用。2.函數(shù)的定義方法。3.函數(shù)的類型和返回值。4.形式參數(shù)與實在參數(shù),參數(shù)值的傳遞。5.函數(shù)的正確調(diào)用,嵌套調(diào)用,遞歸調(diào)用。6.局部變量和全局變量。7.變量的存儲類別(自動、靜態(tài)、寄存器、外部),變量的作用域和生存期。8.內(nèi)部函數(shù)與外部函數(shù)。(八)編譯預(yù)處理1.宏定義:不帶參數(shù)的宏定義;帶參數(shù)的宏定義。2.“文件包含”處理。(九)指針1.指針與指針變量的概念,指針與地址運(yùn)算符。2.變量、數(shù)組、字符串、函數(shù)、結(jié)構(gòu)體的指針以及指向變量、數(shù)組、字符串、函數(shù)、結(jié)構(gòu)體的指針變量。通過指針引用以下各類型數(shù)據(jù)。3.用指針作函數(shù)參數(shù)。4.返回指針值的指針函數(shù)。5.指針數(shù)組,指向指針的指針,main函數(shù)命令行參數(shù)。(十)結(jié)構(gòu)體(即“結(jié)構(gòu)”)與共用體(即“聯(lián)合”)1.結(jié)構(gòu)體和共用體類數(shù)據(jù)的定義方法和引用方法。2.用指針和結(jié)構(gòu)體構(gòu)成鏈表,單向鏈表的建立、輸出、刪除與插入。(十一)位運(yùn)算1.位運(yùn)算符的含義及使用。2.簡單的位運(yùn)算。(十二)文件操作只要求緩沖文件系統(tǒng)(即高級磁盤I/O系統(tǒng)),對非標(biāo)準(zhǔn)緩沖文件系統(tǒng)(即低級磁盤I/O系統(tǒng))不要求。1.文件類型指針(FILE類型指針)。2.文件的打開與關(guān)閉(fopen,fclose)。3.文件的讀寫(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf函數(shù)),文件的定位(rewind,fseek函數(shù))。二、各章節(jié)考試要點第1章程序設(shè)計基本概念考點歸納1.1C語言的特點C語言是近年來非常流行的語言,很多人寧愿放棄已經(jīng)熟悉的其他語言而改用C語言,其原因是C語言有優(yōu)于其他語言的一系列特點。下面是C語言的主要特點:(1)語言簡潔、緊湊,并且使用方便、靈活;(2)運(yùn)算符豐富;(3)數(shù)據(jù)結(jié)構(gòu)豐富;(4)具有結(jié)構(gòu)化的控制語句;(5)語法限制不太嚴(yán)格,使程序設(shè)計比較自由;(6)C語言允許用戶直接訪問物理地址,能進(jìn)行位(bit)操作,可以直接對硬件進(jìn)行操作。1.2源程序的書寫規(guī)則C語言的書寫規(guī)則。C語言書寫格式自由,一行內(nèi)可以寫幾個語句,一個語句也可以分寫在多行上。C程序沒有行號,每個語句和數(shù)據(jù)定義的最后必須有一個分號。C語言中分號是語句中不可少的,即使是程序中的最后一個語句也應(yīng)該包含分號。C語言中的注釋可以用″/*″用″*/″結(jié)束,注釋可以在任何允許插入空格符的地方插入。C語言中注釋不允許嵌套,注釋可以用西文,也可以用中文。1.3C語言的風(fēng)格由于C語言對語法限制不太嚴(yán)格,為了保證程序的準(zhǔn)確性和可讀性,建議在書寫程序采用階梯縮進(jìn)格式。也就是按如下格式書寫C語言程序:**********;*****(){**********;********;{******;……}*********;}概括起來,C語言程序具有如下的風(fēng)格:①C語言程序的函數(shù)具體模塊結(jié)構(gòu)風(fēng)格,使得程序整體結(jié)構(gòu)清晰、層次清楚,為模塊化程序設(shè)計提供了強(qiáng)有力的支持。②C語言的源程序的擴(kuò)展名都是.C。③C語言中的注釋格式為:/*注釋內(nèi)容*//與*之間不允許有空格,注釋部分允許出現(xiàn)在程序中的任何位置。④C語言中的所有語句都必須以分號“;”結(jié)束。第2章C程序設(shè)計的初步知識考點歸納2.1程序的構(gòu)成盡管C程序的內(nèi)容千變?nèi)f化,但是它們的構(gòu)成都是一致的,一個完整的C源程序的格式可以如下表示:編譯預(yù)處理主函數(shù)()函數(shù)()...函數(shù)()從上面中可以看出,一個C源程序?qū)嶋H上就是若干函數(shù)的集合,這些函數(shù)中有一個是程序的主函數(shù),任何C的源程序執(zhí)行時,都是從主函數(shù)開始執(zhí)行的,其它的函數(shù)最終必將被這個主函數(shù)所調(diào)用。C語言除了主函數(shù)規(guī)定必須取名main外,其它的函數(shù)名可以任取,但是要符合C的標(biāo)識符取名規(guī)則,另外注意不要與保留字重名,最好也不可與C語言中的庫函數(shù)或其它一些命令如編譯預(yù)處另命令重名。各個函數(shù)在程序中所處的位置并不是固定的,但要求一個函數(shù)是完整的、獨立的。不允許出現(xiàn)在一個函數(shù)內(nèi)部又去定義另一個函數(shù),或是函數(shù)格式不齊全的現(xiàn)象。一個完整的一般意義上的函數(shù)有一個固定的框架,編寫具體的函數(shù)時,只需在這個框架中填入相應(yīng)的內(nèi)容即可??蚣苋缦拢汉瘮?shù)類型函數(shù)名(形參)形參說明{內(nèi)部變量說明;執(zhí)行語句部分;}2.2C語言的基本詞法C語言的基本詞法由三部分組成:符號集、關(guān)鍵字、保留字。符號集就是一門語言中允許出現(xiàn)的字符的集合,C語言的符號集就是ASCⅡ碼表中的一些字符,在鍵盤上不能直接得到(比如說響鈴字符),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碼轉(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)實生活中給每一個人都取一個名字一樣,C語言中的每一個對象(如函數(shù)、變量等)都必須取一個標(biāo)識符以和其它對象區(qū)別開。在C語言中,這個標(biāo)識符是一個字符串,這個字符串的選定有一定的規(guī)則:必須是以字母或下劃線開頭的字母與數(shù)字的序列。除了這個基本的規(guī)則外,C語言對標(biāo)識符的命名還有幾個限制需加以注意:①長度最好不要超過八個字符。因C中對標(biāo)識符只處理前8個字符,超過8個長度的部分將被C自動忽略掉?!錋BCDEFGH1″和″ABCDEFH2″是同一個標(biāo)識符;②標(biāo)識符不要與保留字同名,最好也不要與C提供的標(biāo)準(zhǔn)標(biāo)識符,如庫函數(shù)重名;③應(yīng)注意C語言對大小寫字母是敏感的,Abcd和abcd是兩個不同的標(biāo)識符。關(guān)鍵字實際上就是一些特殊的標(biāo)識符,又稱保留字,這些保留字不允許用戶對它重新定義。2.3頭文件、數(shù)據(jù)說明、函數(shù)的開始和結(jié)束標(biāo)志1.頭文件:也稱為包含文件或標(biāo)題文件,一般放在一個C語言程序的開頭,用#include″文件名″的格式,其中文件名是頭文件名,一般用.h作為擴(kuò)展名。2.數(shù)據(jù)說明:C語言中的數(shù)據(jù)分常量和變量兩種。3.常量:有數(shù)值常量和符號常量兩種。4.數(shù)值常量:可以分為整型常量、實型常量、浮點型常量和字符常量。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)不同而字,如TURBOC中取前8個字符,8個字符后面的字符會自動取消。2.4數(shù)據(jù)類型C語言的數(shù)據(jù)類型可以分為三類:基本類型構(gòu)造類型〖〗派生類型整型int字符型char實型(浮點型)float雙精度型double空類型void結(jié)構(gòu)體struct公用(聯(lián)合)體union枚舉型enum用戶定義類型(使用關(guān)鍵字typedef)數(shù)組類型指針類型1.整型常量:C語言中的整型常量有三種形式:十進(jìn)制整型常量、八進(jìn)制整型常量和十六進(jìn)制整型常量。十進(jìn)制整型常量可以用一串連續(xù)的十進(jìn)制數(shù)字來表示;八進(jìn)制整型常量用數(shù)字0開頭(注意:不是字母O),后面可以跟一串合法的八進(jìn)制數(shù)字;十六進(jìn)制整型常量用0x或0X開頭,后面可以跟一串合法的十六進(jìn)制數(shù)字。整型常量又有短整型(shortint)、基本整型(int)、長整型(longint)和無符號型(unsinged)之分。2.整型變量:整型變量也可以分為基本型、短整型、長整型和無符號型四種。分別用int,shortint(或short),longint(或long),unsignedint(unsignedshort,unsignedlong)對它們進(jìn)行定義。不同的計算機(jī)對上述幾種整型數(shù)據(jù)所占用的內(nèi)存字節(jié)數(shù)和數(shù)值范圍有不同的規(guī)定,以IBM-PC微機(jī)為例,以上各種數(shù)據(jù)所分配的存儲空間和數(shù)值范圍見下表:類型名所占字節(jié)數(shù)數(shù)值范圍intshort[int]long[int]unsigned[int]unsignedshortunsignedlong224224-32768~+32767-32768~+32767-2147483648~+21474836470~655350~655350~42946972953.實型常量:C語言中的實型常量有兩種表示形式:十進(jìn)制數(shù)形式和指數(shù)形式。在用指數(shù)形式表示實型數(shù)據(jù)時,字母E可以用小寫e代替,指數(shù)部分必須是整數(shù)(若為正整數(shù)時,可以省略″+″號)。4.實型變量:C語言中的實型變量分為兩種:單精度類型和雙精度類型,分別用保留關(guān)鍵字float和double進(jìn)行定義。在一般系統(tǒng)中,一個float型數(shù)據(jù)在內(nèi)存中占4個字節(jié);一個double型數(shù)據(jù)占8個字節(jié)(一個longdouble型數(shù)據(jù)占16個字節(jié))。5.字符常量:C語言的字符常量代表ASCⅡ碼字符集里的一個字符,在程序中要單引號括起來。C語言規(guī)定字符常量可以作為整數(shù)常量來處理(注:這里的整數(shù)常量指的是相應(yīng)字符的ASCⅡ代碼,因此字符常量可以參與算術(shù)運(yùn)算)。在C語言中還有一類特殊形式的字符常量,稱為″轉(zhuǎn)義字符″。這類字符常量是以一個反斜杠開頭的字符序列,但它們只代表某個特定的ASCⅡ碼字符,在程序中使用這種常量時要括在一對單引號中。6.字符變量:C語言中的字符變量用關(guān)鍵字char來定義,每個字符變量中只能存放一個字符。在一般系統(tǒng)中,一個字符變量在計算機(jī)內(nèi)存中占一個字節(jié)。與字符常量一樣,字符變量也可以出現(xiàn)在任何允許整型變量參與的運(yùn)算中。7.字符串常量:C語言中的字符串常量是由一對雙引號括起來的字符序列。注意不要將字符常量和字符串常量混淆。C語言對字符串常量的長度不加限制,C編譯程序總是自動地在字符串的結(jié)尾加一個轉(zhuǎn)義字符‘\0’2.5運(yùn)算符的種類、運(yùn)算優(yōu)先級、結(jié)合性C語言中的運(yùn)算符可以歸納為下列5類:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、賦值運(yùn)算符、邏輯運(yùn)算符和條件運(yùn)算符。1.算術(shù)運(yùn)算符有+、-、*、/、%。分別表示算術(shù)加、減、乘、除和取余運(yùn)算。這些運(yùn)算符需要兩個運(yùn)算對象,稱雙目運(yùn)算符。除取余(%)運(yùn)算符外,這些運(yùn)算符的運(yùn)算對象可以是整型,也可以是實型數(shù)據(jù)。取余運(yùn)算的運(yùn)算對象只能是整型。取余運(yùn)算的結(jié)果是兩數(shù)相除后所得的余數(shù)?!?″和″-″也可以用做單目運(yùn)算符,但作為單目運(yùn)算符時必須出現(xiàn)在運(yùn)算量的左邊,運(yùn)算量可為整型,也可以為實型。C語言中還提供兩個特殊的單目運(yùn)算符:++和--,這兩個運(yùn)算符既可以放在運(yùn)算對象之前,又可以放在運(yùn)算對象之后。在C語言中,凡是按C語言語法規(guī)則用常量、變量、函數(shù)調(diào)用以及運(yùn)算符把運(yùn)算數(shù)連接起來的式子都是合法的表達(dá)式。凡表達(dá)式都有一個值,即運(yùn)算結(jié)果。算術(shù)運(yùn)算符和一對圓括號組成的算術(shù)表達(dá)式的運(yùn)算優(yōu)先級是:()+-*/%+-單目雙目同級同級同級———————————————→高低以上所列的運(yùn)算符中,只有單目運(yùn)算符″+″和″-″的結(jié)合性是從右到左,其余運(yùn)算符的結(jié)合性都是從左到右。算術(shù)表達(dá)式的求值規(guī)律與數(shù)學(xué)中的四則運(yùn)算規(guī)律類似,其運(yùn)算規(guī)律和要求為:①在算術(shù)表達(dá)式中,可使用多層括號,但左右括號必須配對。運(yùn)算時從內(nèi)層圓括號開始,由內(nèi)向外依次計算表達(dá)式的值。②在算術(shù)表達(dá)式中,若包含不同優(yōu)先級的運(yùn)算符,則按運(yùn)算符的優(yōu)先級別由高到低進(jìn)行,若表達(dá)式中運(yùn)算符的級別相同,則按運(yùn)算符的結(jié)合方向進(jìn)行。2.在算術(shù)表達(dá)式中,C語言提供6種關(guān)系運(yùn)算符:<,>,<=,>=,==,!=。前四種運(yùn)算符(<,>,<=,>=)的優(yōu)先級相同,后兩種的優(yōu)先級也相同,并且前四種的優(yōu)先級高于后兩種。關(guān)系運(yùn)算符屬于雙目運(yùn)算符,其結(jié)合方向為自左至右。用關(guān)系運(yùn)算符可以將兩個表達(dá)式(包括算術(shù)表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式、賦值表達(dá)式和字符表達(dá)式)連接起來構(gòu)成關(guān)系表達(dá)式。關(guān)系運(yùn)算的結(jié)果是1或0。在C語言中沒有邏輯值,用0代表″假″,用1代表″真″。3.邏輯運(yùn)算符C語言提供三種邏輯運(yùn)算符:&&(邏輯與)、‖(邏輯或)、!(邏輯非)。其中前兩種為雙目運(yùn)算符,第三種是單目運(yùn)算符。關(guān)系運(yùn)算符中的&&和‖運(yùn)算符的優(yōu)先級相同,!運(yùn)算符的優(yōu)先級高于前兩個。算術(shù)運(yùn)算符、邏輯運(yùn)算符和關(guān)系運(yùn)算符三者間的優(yōu)先級關(guān)系為:!→算術(shù)運(yùn)算符→關(guān)系運(yùn)算符→&&‖————————————————→高低用邏輯運(yùn)算符將關(guān)系表達(dá)式或任意數(shù)據(jù)類型(除void外)的數(shù)據(jù)連接起來就構(gòu)成了邏輯表達(dá)式。邏輯表達(dá)式的值是0或1。4.賦值運(yùn)算符在C語言中,″=″稱為賦值運(yùn)算符。由賦值運(yùn)算符組成的表達(dá)式稱為賦值表達(dá)式。表達(dá)式的形式為:變量=表達(dá)式賦值符號左邊必須是一個代表某一存儲單元的的變量名,賦值號的右邊必須是C語言中合法的表達(dá)式。賦值運(yùn)算的功能是先計算右邊表達(dá)式的值,然后再把此值賦給賦值號左邊的變量,確切地說,是把數(shù)據(jù)放入以該變量為標(biāo)識的存儲單元中去。5.條件運(yùn)算符C語言中把″?:″稱作條件運(yùn)算符。條件運(yùn)算符要求有三個運(yùn)算對象,它是C語言中唯一的一個三目運(yùn)算符。由條件運(yùn)算符構(gòu)成的條件表達(dá)式的一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3當(dāng)表達(dá)式1的值為非零時,取表達(dá)式2的值為此條件表達(dá)式的值;當(dāng)表達(dá)式1的值為零時,取表達(dá)式3的值為此條件表達(dá)式的值。條件運(yùn)算符具有自右向左的結(jié)合性,其優(yōu)先級別比關(guān)系運(yùn)算符和算術(shù)運(yùn)算符都低。2.6不同類型數(shù)據(jù)間的轉(zhuǎn)換與運(yùn)算C語言中不同類型的數(shù)據(jù)間的轉(zhuǎn)換是由系統(tǒng)自動進(jìn)行的,其轉(zhuǎn)換規(guī)律是:↑double←float|↑|long|↑|unsigned|↑|int←char,short圖中向左的箭頭表示必定的轉(zhuǎn)換,如字符型和short型必定轉(zhuǎn)換為int型,float型在運(yùn)算時先轉(zhuǎn)為double型(即使是兩個float型相加,也都先轉(zhuǎn)換成double型,然后再相加)。向上的箭頭表示當(dāng)運(yùn)算對象為不同類型時的轉(zhuǎn)換的方向。2.7表達(dá)式類型和求值規(guī)則1.C語言表達(dá)式可以歸納為以下幾種類型:賦值表達(dá)式、算術(shù)表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式、條件表達(dá)式和逗號表達(dá)式。2.賦值表達(dá)式是指用賦值運(yùn)算符(=)組成的表達(dá)式。3.算術(shù)表達(dá)式是指用算術(shù)運(yùn)算符和一對圓括號將運(yùn)算量連接起來的符合C語法的表達(dá)式。4.關(guān)系表達(dá)式是指用關(guān)系運(yùn)算符將兩個表達(dá)式連接起來的式子。5.邏輯表達(dá)式是指用邏輯運(yùn)算符將關(guān)系表達(dá)式或任意數(shù)據(jù)類型(void型除外)連接起來的式子。6.條件表達(dá)式是指用條件運(yùn)算符連接起來的表達(dá)式。7.逗號表達(dá)式是指用逗號運(yùn)算符連接起來的表達(dá)式第3章順序結(jié)構(gòu)考點歸納3.1表達(dá)式語句、函數(shù)調(diào)用語句和空語句1.C語言的語句共分五大類:表達(dá)式語句、控制語句、函數(shù)調(diào)用語句、空語句和復(fù)合語句。2.表達(dá)式語句的一般形式為表達(dá)式;最典型的表達(dá)式語句是由一個賦值表達(dá)式加一個分號構(gòu)成的賦值語句。3.控制語句是C語言程序設(shè)計中用來構(gòu)成分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的語句。此類語句有if語句,for語句,while語句,do-while語句,switch語句等。4.函數(shù)調(diào)用語句的一般形式為函數(shù)名(實參表);5.空語句的一般形式為;這條語句的含義是什么也不做。凡是在C語句程序中出現(xiàn)語句的地方都可以用一個分號來代替一條語句。6.復(fù)合語句的一般形式為{語句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(格式控制,輸出項表)如果在printf函數(shù)調(diào)用之后加上″;″,就構(gòu)成了輸出語句。格式控制參數(shù)以字符串的形式描述,由兩部分組成:①普通字符:將被簡單地顯示;②格式字符:將引起一個輸出參數(shù)項的轉(zhuǎn)換和顯示,由“%”引出并以一個類型描述符結(jié)束的字符串,中間可加一些可選的附加說明項,如下表所示。附加說明項附加說明項說明-或+用于指定是否對齊輸出,具有“-”符號表示左對齊,無“-”或有“+”表示右對齊0用于指定是否填寫0,有此項表示空位用0補(bǔ)充,無此項表示以空格補(bǔ)充m.n用于指定輸出域?qū)捈熬?,m是指域?qū)?,n為精度,當(dāng)指定n時,隱含的精度為6位L或h用于輸出長度修正。其中,l對于整型是指long,對實型是double;h只用于整型的格式字符,并修正為short型格式字符用于指定輸出項的數(shù)據(jù)類型及輸入格式,如下表所示。注意:編譯程序只是在檢查了printf函數(shù)中的格式參數(shù)后,才能確定有幾個輸出項,是什么類型、以什么格式輸出。在編程序時,應(yī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;如指定精度為0,則小數(shù)部分(包含小數(shù)點)都不輸出e或E以指數(shù)形式輸出單精度及雙精度數(shù),小數(shù)位數(shù)由精度指定,隱含的精度為6;如指定精度為0,則小數(shù)部分(包含小數(shù)點)都不輸出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(格式控制,輸入項表)如果在scanf函數(shù)調(diào)用之后加上″;″,就構(gòu)成了輸入語句。格式控制是用雙引號括起來的字符串,稱為格式控制串。格式控制串的作用是指定輸入時的數(shù)據(jù)轉(zhuǎn)換格式,即格式轉(zhuǎn)換說明。格式轉(zhuǎn)換說明也是由″%″符號開始,其后是格式描述符。輸入項表中的各輸入項用逗號隔開,各輸入項只能是合法的地址表達(dá)式,即在變量之前加一個地址符號″&″。在scanf函數(shù)中每個格式說明都必須用%開頭,以一個″格式字符″結(jié)束。Scanf函數(shù)中的格式控制字符與printf函數(shù)中的相似,由格式說明項與輸入格式符組成。格式說明項如下表所示。格式說明項格式說明項說明%起始符*賦值抑制符,用于按格式說明讀入數(shù)據(jù),但不送給任何變量MmM域?qū)捳f明l或h長度修正說明符scanf中的格式字符如下表所示。格式說明項說明CcC輸入一個字符DdD輸入十進(jìn)制整型數(shù)IiI輸入整型數(shù),整數(shù)可以是帶前導(dǎo)0的八進(jìn)制數(shù),帶前導(dǎo)0x(或0X)的十六進(jìn)制數(shù)OoO以八進(jìn)制形式輸入整型數(shù)(可為帶前導(dǎo)0,也可不帶前導(dǎo)0)XxX以十六進(jìn)制形式輸入整型數(shù)(可帶前導(dǎo)0x或0X,也可不帶)UuU無符號十進(jìn)制整數(shù)FfF以帶小數(shù)點形式或指數(shù)形式輸入實型數(shù)EeE與f的作用相同SsS輸入字符串4.putchar函數(shù)的作用是把一個字符輸出到標(biāo)準(zhǔn)輸出設(shè)備(通常指顯示器或打印機(jī))上。一般調(diào)用形式為putchar(ch);其中ch代表一個字符變量或一個整型變量,ch也可以代表一個字符常量(包括轉(zhuǎn)義字符常量)。5.getchar函數(shù)的作用是標(biāo)準(zhǔn)輸入設(shè)備(通常指鍵盤)上讀入一個字符。一般調(diào)用形式為getchar();getchar函數(shù)本身沒有參數(shù),其函數(shù)值就是從輸入設(shè)備得到的字符。3.3復(fù)合語句在C語言中,一對花括號″{}″不僅可以用做函數(shù)體的開頭和結(jié)尾標(biāo)志,也可以用做復(fù)合語句的開頭和結(jié)尾標(biāo)志。復(fù)合語句的形式為:{語句1;語句2;…;語句n;}3.4goto語句及語句標(biāo)號的使用goto語句稱為無條件轉(zhuǎn)向語句,一般形式為如下:goto語句標(biāo)號;goto語句的作用是把程序執(zhí)行轉(zhuǎn)向語句標(biāo)號所在的位置,這個語句標(biāo)號必須與此goto語句同在一個函數(shù)內(nèi)。語句標(biāo)號在C語言中不必加以定義,這一點與變量的使用方法不同。標(biāo)號可以是任意合法的標(biāo)識符,當(dāng)在標(biāo)識符后面加一個冒號,該標(biāo)識符就成了一個語句標(biāo)號。第4章選擇結(jié)構(gòu)考點歸納4.1用if語句實現(xiàn)選擇結(jié)構(gòu)1.在C語言中,if語句有兩種形式:形式1:if(表達(dá)式)語句形式2:if(表達(dá)式)語句1else語句22.if語句執(zhí)行時,首先計算緊跟在if后面一對圓括號中的表達(dá)式的值,如果表達(dá)式的值為非零(″真″),則執(zhí)行if后的″語句″,然后去執(zhí)行if語句后的下一個語句。如果表達(dá)式的值為零(″假″),直接執(zhí)行if語句后的下一個語句。3.if語句后面的表達(dá)式并不限于是關(guān)系表達(dá)式或邏輯表達(dá)式,而可以是任意表達(dá)式。If語句中可以再嵌套if語句。C語言規(guī)定,在嵌套的if語句中,else子句總是與前面最近的不帶else的if相結(jié)合。4.2用switch語句實現(xiàn)多分支選擇結(jié)構(gòu)1.switch語句是用來處理多分支選擇的一種語句。它的一般形式如下:switch(表達(dá)式){case常量表達(dá)式1:語句1case常量表達(dá)式2:語句2::case常量表達(dá)式n:語句ndefault:語句n+1}2.switch語句的執(zhí)行過程是:首先計算緊跟switch后面的一對圓括號中的表達(dá)式的值,當(dāng)表達(dá)式的值與某一個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后面又嵌套了一個switch語句,在執(zhí)行內(nèi)嵌的switch語句后還要執(zhí)行一條break語句才跳出外層的switch語句。第5章循環(huán)結(jié)構(gòu)考點歸納5.1for循環(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.2while和dowhile循環(huán)結(jié)構(gòu)1.while語句用來實現(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í)行的特點是:先判斷表達(dá)式,后執(zhí)行語句。3.dowhile用來實現(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.dowhile語句執(zhí)行的特點是:先執(zhí)行語句,后判斷表達(dá)式。5.3continue語句和break語句1.break語句有兩個用途:①在switch語句中用來使流程跳出switch結(jié)構(gòu),繼續(xù)執(zhí)行switch語句后面的語句;②用在循環(huán)體內(nèi),迫使所在循環(huán)立即終止,即跳出所在循環(huán)體,繼續(xù)執(zhí)行循環(huán)體后面的第一條語句。2.continue語句結(jié)束本次循環(huán),即跳過循環(huán)體中尚未執(zhí)行的語句。在while和dowhile語句中,continue語句將使控制直接轉(zhuǎn)向條件測試部分,從而決定是否繼續(xù)轉(zhuǎn)向循環(huán)。在for循環(huán)中,遇到continue語句后,首先計算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)、dowhile循環(huán)和for循環(huán))可以互相嵌套。例題精解第6章字符型數(shù)據(jù)考點歸納6.1字符常量有兩種形式:一是用單引號括起來的一個單字符,如′a′,′?′,′=′;二是″轉(zhuǎn)義字符″,即以″\″開頭的字符序列。常用的轉(zhuǎn)義字符見下表。字符形式功能\n換行\t橫向跳格(即跳到下一個輸出區(qū))\v豎向跳格\b退格\r回車\f走紙換頁\\反斜杠字符″\″\′單引號(撇號)字符\″雙引號(″)字符\ddd1到3位8進(jìn)制數(shù)所代表的字符,如\123,表示8進(jìn)制數(shù)123\xhh1到2位16進(jìn)制數(shù)所代表的字符,如\x21,表示16進(jìn)制數(shù)23在轉(zhuǎn)義字符賦給字符變量時,也需要在其二側(cè)加單引號,如:charc=′\n′;字符串常量是用一對雙引號括起的字符序列,如″abc\n″。請區(qū)別字符變量和字符串常量?!鋋′是字符常量,″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來定義。如:chara,b;a=′0′;b=′k′;printf(″%c%c\n″,a,b);將輸出兩個字符ok。不能將一個字符串常量賦給一個字符變量,如:a=″0″;b=″k″;是錯誤的。給字符變量賦值可以采用如下三種方法:(1)直接賦以字符常量,如char=′A′;(2)賦以″轉(zhuǎn)義字符″,如:charc=′\\′;printf(″%c″,c);輸出一個字符″\″。(3)賦以一個字符的ASCII代碼,如字符′a′的ASCII代碼為97,則charc=97;printf(″%c″,c);將輸出一個字符″a″。實際上,字符數(shù)據(jù)在內(nèi)存中是以整數(shù)形式(字符ASCII代碼)存放的,例如,字符′a′的ASCII碼為97,在內(nèi)存字節(jié)中的存放形式為:01100001在輸出時,如果指定輸出字符的格式符″%c″輸出,則輸出字符′a′(在輸出時先將ASCII碼轉(zhuǎn)換為字符)。如果指定按輸出整數(shù)的格式″%d″輸出(如printf(″%d″,c)),則輸出一個整數(shù)97。應(yīng)記住,字符數(shù)據(jù)與整型數(shù)據(jù)二者間是通用的,可以互相賦值和運(yùn)算,如:inta=′A′;charc=97;print(″%d\n″,c-a);將輸出一個整數(shù)32,因為′A′的ASCII碼為65。第7章函數(shù)考點歸納7.1庫函數(shù)的正確調(diào)用1.C語言提供了豐富的庫函數(shù),包括常用的數(shù)學(xué)函數(shù)、對字符和字符串處理函數(shù)、輸入輸出處理函數(shù)等。在調(diào)用庫函數(shù)時要注意以下幾點:(1)調(diào)用C語言標(biāo)準(zhǔn)庫函數(shù)時必須在源程序中用include命令,include命令的格式是:#include″頭文件名″include命令必須以#號開頭,系統(tǒng)提供的頭文件名都以.h作為后綴,頭文件名用一對雙引號″″或一對尖括號〈〉括起來。(2)標(biāo)準(zhǔn)庫函數(shù)的調(diào)用形式:函數(shù)名(參數(shù)表)2.在C語言中庫函數(shù)的調(diào)用可以以兩種形式出現(xiàn):出現(xiàn)在表達(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ù)名必須唯一。形式參數(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(空類型)。2.函數(shù)返回值就是return語句中表達(dá)式的值。當(dāng)程序執(zhí)行到return語句時,程序的流程就返回到調(diào)用該函數(shù)的地方(通常稱為退出調(diào)用函數(shù)),并帶回函數(shù)值。7.4形式參數(shù)與實際參數(shù),參數(shù)值的傳遞1.在函數(shù)定義中,出現(xiàn)的參數(shù)名稱為形參(形式參數(shù)),在調(diào)用函數(shù)時,使用的參數(shù)值稱為實參(實際參數(shù))。2.調(diào)用函數(shù)和被調(diào)用函數(shù)之間的參數(shù)值的傳遞是″按值″進(jìn)行的,即數(shù)據(jù)只能從實參單向傳遞給形參。也就是說,當(dāng)簡單變量作為實參時,用戶不能在函數(shù)中改變對應(yīng)實參的值。7.5函數(shù)的正確調(diào)用(嵌套調(diào)用,遞歸調(diào)用)1.調(diào)用函數(shù)時,函數(shù)名必須與被調(diào)用的函數(shù)名字完全一樣。實參的個數(shù)與類型和形參的個數(shù)與類型一致。2.C語言規(guī)定:函數(shù)必須先定義,后調(diào)用,也就是被調(diào)用函數(shù)必須在調(diào)用之前加以說明,或被調(diào)用函數(shù)整個放在調(diào)用函數(shù)之前。但對返回值類型為int或char類型的函數(shù)可以放在調(diào)用函數(shù)的后面。3.C語言中函數(shù)定義都是互相平行、獨立的,C語言不允許嵌套定義函數(shù),但允許嵌套調(diào)用函數(shù),也就是說,在調(diào)用一個函數(shù)的過程中,又調(diào)用另一個函數(shù)。4.在C程序中,調(diào)用一個函數(shù)的過程中又出現(xiàn)直接或間接地調(diào)用該函數(shù)本身,稱為函數(shù)的遞歸調(diào)用。5.遞歸調(diào)用函數(shù)是C語言的特點之一,有時遞歸調(diào)用會使求解的問題變得更簡單明了。7.6局部變量和全局變量1.局部變量在一個函數(shù)內(nèi)部所定義的變量稱為局部變量,局部變量只在本函數(shù)范圍內(nèi)有效。注意:①不同函數(shù)中可以使用相同的局部變量名,它們將代表不同的對象,互不干擾;②一個函數(shù)的形參也為局部變量;③在函數(shù)內(nèi)部,復(fù)合語句也可定義變量,這些變量也為局部變量,只在此復(fù)合語句中有效。2.全局變量在C語言中,程序的編譯單位是源程序文件,一個源程序文件中包含一個或多個函數(shù)。在函數(shù)之外所定義的變量稱為外部變量,也稱為全局變量。全局變量可以被包含它的源程序文件中的其他函數(shù)所共用,作用域為從定義變量的位置開始到源程序文件結(jié)束,全局變量可以增加函數(shù)之間數(shù)據(jù)的聯(lián)系。注意:當(dāng)在同一個源程序文件中,全局變量與局部變量同名時,在局部變量的作用范圍內(nèi),全局變量不起作用,局部變量起作用。7.7變量的存儲類別、作用域及生存期1.變量的存儲類別在C語言中,有兩類存儲類別:自動類別及靜態(tài)類別。有4個與兩種存儲類別有關(guān)的說明符:auto(自動)、register(寄存器)、static(靜態(tài))和extern(外部),這些說明符一般與類型說明一起出現(xiàn),一般放在類型名的左邊,例如:autolongI,j;也可寫成:longautoI,j;(1)自動變量:自動變量是C程序中使用最多的一種變量,這種變量的建立和撤消都是在系統(tǒng)中自動進(jìn)行的。格式:[auto]數(shù)據(jù)類型變量名[=初始化表達(dá)式],…;上面的說明格式中,方括號中是可省略的部分,auto為自動類別標(biāo)識符,若省略auto,系統(tǒng)缺省的存儲類別也為自動類別。注意:函數(shù)的形參也為自動類別,在定義時不必加存儲類別標(biāo)識符。(2)寄存器變量:寄存器變量與自動變量的性質(zhì)相同,其區(qū)別只在于存儲的位置不同,寄存器變量存儲在CPU的寄存器中,而自動變量存儲在內(nèi)存中的動態(tài)存儲區(qū),寄存器變量的存取速度要快些。格式:register數(shù)據(jù)類型,變量名[=初始化表達(dá)式],…;上面的說明格式中,register為寄存器變量的存儲類別標(biāo)識符。說明:①CPU中寄存器的數(shù)目是有限的,因此只能把少數(shù)的變量說明為寄存器變量;②寄存器變量是存放在寄存器中的,而不是存放于內(nèi)存中,所以,寄存器變量無地址;③寄存器變量的說明應(yīng)盡量放在靠近要使用的地方,用完后盡快釋放,這樣可提高使用效率。(3)靜態(tài)變量:靜態(tài)類別變量的存儲空間在程序的整個運(yùn)行期間是固定的。格式:static數(shù)據(jù)類型變量名[=初始化表達(dá)式],…;在上面的說明格式中,static為靜態(tài)變量的存儲類別標(biāo)識符。靜態(tài)變量的初始化在編譯時進(jìn)行,定義時可采用常量或表達(dá)式進(jìn)行顯式初始化。對于沒有初始化的靜態(tài)變量,自動初始化為0(整型)或0.0(實型)。注意:靜態(tài)變量具有可繼承性,這與自動變量有所不同。(4)外部變量:使用extern可使外部變量使用范圍擴(kuò)充到需要使用它的函數(shù)。外部變量可作顯式的初始化,若不作初始化,系統(tǒng)將自動地初始化為0或0.0。格式:[extern]數(shù)據(jù)類型,變量名[=初始化表達(dá)式],…;上面的說明格式中,extern使外部變量的作用范圍擴(kuò)大到其他源程序文件中。注意:局部變量既可以說明為自動類別,也可以說明為靜態(tài)類別;全局變量只能說明為靜態(tài)類別。2.變量的作用域及生存期在C語言中,變量必須先說明后使用,在程序中一個已定義的變量的使用范圍就是此變量的作用域。經(jīng)過賦值的變量在程序運(yùn)行期間能保持其值的時間范圍為該變量的生存期。(1)局部變量的使用域及生存期①自動變量的使用域及生存期自動變量的存儲單元被分配在內(nèi)存的動態(tài)存儲區(qū),每當(dāng)進(jìn)入函數(shù)體(或復(fù)合語句)時,系統(tǒng)自動為自動變量分配存儲單元,退出時自動釋放這些存儲單元。自動變量的作用域為從定義的位置起,到函數(shù)體(或復(fù)合語句)結(jié)束為止。自動變量在進(jìn)入到定義它們的函數(shù)體(或復(fù)合語句)時生成,在退出所在的函數(shù)體(或復(fù)合語句)時消失,這就是自動變量的生存期。使用自動變量的優(yōu)點是使各函數(shù)之間造成信息分隔,不同函數(shù)中使用同名變量時不會相互影響。②寄存器變量的使用域及生存期寄存器變量的使用域及生存期與自動變量相同。③靜態(tài)存儲類別的局部變量在函數(shù)體(或復(fù)合語句)內(nèi)部,用static說明的變量為靜態(tài)存儲類別的局部變量,這種變量的作用域與自動(或寄存器)變量的作用域相同,但是生存期有所不同。在整個程序運(yùn)行期間,靜態(tài)局部變量在內(nèi)存的靜態(tài)存儲區(qū)中占據(jù)著永久的存儲單元,甚至在退出函數(shù)后下次再進(jìn)入函數(shù)時,靜態(tài)局部變量仍使用原來的存儲單元。由于不釋放存儲單元,所以這些存儲單元中的值將會被保留下來。靜態(tài)局部變量的生存期將一直延長到程序運(yùn)行結(jié)束。靜態(tài)局部變量適合于在函數(shù)調(diào)用之間必須保留局部變量值的獨立變量。(2)全局變量的作用域及生存期全局變量的作用域為從變量定義的位置開始,到整個源程序文件結(jié)束為止。生存期為整個程序的運(yùn)行期間。注意:全局變量在整個程序運(yùn)行期間都占用內(nèi)存空間。全局變量必須在函數(shù)以外定義,因而降低了函數(shù)的通用性,影響函數(shù)的獨立性。使用全局變量時,當(dāng)全局變量的值意外改變時,會引起副作用,這種錯誤一般難以查找。①在同一編譯單位內(nèi)用extern標(biāo)識符來擴(kuò)展全局變量的作用域當(dāng)全局變量定義后,在引用函數(shù)前,應(yīng)在引用它的函數(shù)中用extern對此全局變量進(jìn)行說明,以便使編輯程序能確定此外部變量已被定義,不必再為它分配存儲單元,此時的作用域從extern說明開始,到此函數(shù)結(jié)束。注意:全局變量的定義只能出現(xiàn)一次,這時不可使用extern標(biāo)識符。如果多次引用全局變量,這時必須用extern標(biāo)識符。②在不同編譯單位內(nèi)用extern標(biāo)識符來擴(kuò)展全局變量的作用域C語言中的不同函數(shù)可以存放在不同的源程序文件中,每個源程序文件可以單獨進(jìn)行編譯,進(jìn)行語法檢查,再生成目標(biāo)文件,最后用系統(tǒng)提供的連接程序把多個目標(biāo)文件連接成一個可執(zhí)行程序。當(dāng)程序由多個源程序文件組成時,若每個文件中都要引用同一個全局變量,這時如在每個源程序文件中都定義一個所需的同名全局變量,將在連接時產(chǎn)生重復(fù)定義錯誤。解決的辦法是在其中一個源程序文件中定義所有全局變量,而在其他用到全局變量的源程序文件中用extern對這些變量進(jìn)行說明,以表明它們已在其他編譯單元中被定義。③靜態(tài)全局變量當(dāng)用static標(biāo)識符說明全局變量時,全局變量為靜態(tài)全局變量。靜態(tài)全局變量只能在定義它的源程序文件中使用,不能被其他源程序文件使用。7.8內(nèi)部函數(shù)及外部函數(shù)根據(jù)函數(shù)能否被其他源程序文件所調(diào)用,可將函數(shù)分為內(nèi)部函數(shù)和外部函數(shù)。1.內(nèi)部函數(shù)內(nèi)部函數(shù)是指一個函數(shù)只能由定義它的源程序文件所調(diào)用,內(nèi)部函數(shù)又稱為靜態(tài)函數(shù)。格式:static類型標(biāo)識符,函數(shù)名(類型名形式參數(shù)1,類型名形式參數(shù)2,…)上面的定義格式中,static用于說明函數(shù)為內(nèi)部函數(shù)。2.外部函數(shù)外部函數(shù)是指可以被其他源程序所調(diào)用的函數(shù)。格式:[extern]類型標(biāo)識符函數(shù)名(類型名形式參數(shù)1,類型名形式參數(shù)2,…)上面定義格式中,extern表明所定義的函數(shù)為外部函數(shù),當(dāng)extern被省略時,隱含為外部函數(shù)。注意:在要調(diào)用此函數(shù)的源程序文件中,一般要用extern標(biāo)識符說明所用的函數(shù)為外部函數(shù)。第8章指針考點歸納8.1指針與指針變量的概念,指針與地址運(yùn)算符1.在C語言中,指針是指一個變量的地址,通過變量的地址″指向″的位置找到變量的值,這種″指向″變量地址可形象地看作″指針″。用來存放指針的變量稱為指針變量,它是一種特殊的變量,它存放的是地址值。2.定義指針變量的一般形式為:類型名*指針變量1,*指針變量2,…;″類型名″稱為″基類型″它規(guī)定了后面的指針變量中存放的數(shù)據(jù)類型,″*″號表明后面的″指針變量1″,″指針變量2″等是指針變量,″*″號在定義時不能省略,否則就會變成一般變量的定義了。″指針變量1″,″指針變量2″等稱為指針變量名。3.一個指針變量只能指向同一類型的變量。4.與指針和指針變量有關(guān)的兩個運(yùn)算符:(1)*:指針運(yùn)算符(或稱″間接訪問″運(yùn)算符)(2)&:取地址運(yùn)算符通過*號可以引用一個存儲單元,如有如下定義:inti=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.字符串的指針和指向字符串的指針變量。我們可以通過定義說明一個指針指向一個字符串。C語言將字符串隱含處理成一維字符數(shù)組,但數(shù)組的每個元素沒有具體的名字,這一點跟字符數(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)用(即用指向函數(shù)的指針變量調(diào)用)。指向函數(shù)的指針變量表示定義了一個指向函數(shù)的指針變量,它不是固定指向哪一個函數(shù),而只是定義了這樣的一個類型變量,它專門用來存放函數(shù)的入口地址。在程序中把哪一個函數(shù)的地址賦給它,它就指向哪一個函數(shù)。在一個程序中,一個指針變量可以先后指向不同的函數(shù)。在給函數(shù)指針變量賦值時,只需給出函數(shù)名而不必給出參數(shù)。因為函數(shù)指針賦的值僅是函數(shù)的入口地址,而不涉及到實參與形參的結(jié)合問題。對指向函數(shù)的指針變量,表達(dá)式p+n,p++,p--等都無意義。5.結(jié)構(gòu)體的指針與指向結(jié)構(gòu)體的指針變量一個結(jié)構(gòu)體變量的指針就是該變量所占據(jù)的內(nèi)存段的起始地址。可以設(shè)一個指針變量,用來指向一個結(jié)構(gòu)體變量,此時該指針變量的值是結(jié)構(gòu)體變量的起始地址。指針變量也可以用來指向結(jié)構(gòu)體數(shù)組中的元素。8.3用指針做函數(shù)參數(shù)函數(shù)的參數(shù)不僅可以是整型、實型、字符型等數(shù)據(jù),還可以是指針類型,它的作用是將一個變量的地址傳送到另一個函數(shù)中。8.4返回指針值的指針函數(shù)一個函數(shù)可以返回一個整型值、字符值、實型值等,也可以返回指針型的數(shù)據(jù),即地址這種帶回指針值的函數(shù),一般的定義形式為:類型標(biāo)識符*函數(shù)名(形參表);8.5指針數(shù)組、指向指針的指針1.指針數(shù)組指的是一個數(shù)組,其元素均為指針類型數(shù)據(jù),也就是說,指針數(shù)組中的每一個元素都是指針變量。指針數(shù)組的定義形式為:類型標(biāo)識*數(shù)組名[數(shù)組長度說明]指針數(shù)組可以使字符串處理更加方便。2.指向指針的指針是指指向指針數(shù)據(jù)的指針變量,一個指向指針數(shù)據(jù)的指針變量的一般形式為:類型標(biāo)識**p;8.6main函數(shù)的命令參數(shù)指針數(shù)組的一個重要應(yīng)用是作為main函數(shù)的形參,一般來說,main函數(shù)后的括號中是空的,即沒有參數(shù)。實際上main可以有參數(shù),如:main(argc,argv)其中,argc和argv就是main函數(shù)的形參。其他函數(shù)形參的值可以通過函數(shù)調(diào)用語句的實參中得到,由于main函數(shù)是由系統(tǒng)調(diào)用的,因而main函數(shù)的形參值不能從程序中得到,但可以在操作系統(tǒng)狀態(tài)下,將實參和命令一起給出,從而使main函數(shù)的形參得到值。命令行的一般形式為:命令名參數(shù)1參數(shù)2…參數(shù)n命令名和各參數(shù)之間用空格分隔開。8.7動態(tài)存儲分配在C語言中有一種稱為“動態(tài)存儲分配”的內(nèi)存空間分配方式:程序在執(zhí)行期間需要存儲空間時,通過“申請”分配指定的內(nèi)存空間;當(dāng)閑置不用時,可隨時將其釋放,由系統(tǒng)另作它用。本節(jié)介紹C語言中動態(tài)分配系統(tǒng)的主要函數(shù):malloc()、calloc()、free()及realloc(),使用這些函數(shù)時,必須在程序開頭包含文件stdlib.h。1.主內(nèi)存分配函數(shù)—malloc()函數(shù)格式:void*malloc(unsignedsize);函數(shù)功能:從內(nèi)存中分配一大小為size字節(jié)的塊。參數(shù)說明:size為無符號整型,用于指定需要分配的內(nèi)存空間的字節(jié)數(shù)。返回值:新分配內(nèi)存的地址,如無足夠的內(nèi)存可分配,則返回NULL。說明:當(dāng)size為0時,返回NULL。2.主內(nèi)存分配函數(shù)——calloc()函數(shù)格式:void*malloc(unsignedn,unsignedsize);函數(shù)功能:從內(nèi)存中分配n個同一類型數(shù)據(jù)項的連續(xù)存儲空間,每個數(shù)據(jù)項的大小為size字節(jié)。參數(shù)說明:n為無符號整型,用于指定分配的數(shù)據(jù)項的個數(shù),size為無符號整型,用于指定需要分配的數(shù)據(jù)項所占內(nèi)存空間的字節(jié)數(shù)。返回值:新分配內(nèi)存的地址,如無足夠的內(nèi)存可分配,則返回NULL。3.重新分配內(nèi)存空間函數(shù)——realloc()函數(shù)格式:void*realloc(void*block,unsignedsize);函數(shù)功能:將block所指內(nèi)存區(qū)的大小改為size字節(jié)的塊。參數(shù)說明:block為void類型的指針,指向內(nèi)存中某個塊,size為無符號整型,用于指定需要分配的內(nèi)存空間的字節(jié)數(shù)。返回值:新分配內(nèi)存的地址,如無足夠的內(nèi)存可分配,則返回NULL。4.釋放內(nèi)存函數(shù)—free()函數(shù)格式:voidfree(void*block);函數(shù)功能:將calloc()、malloc()及realloc()函數(shù)所分配的內(nèi)存空間釋放為自由空間。參數(shù)說明:block為void類型的指針,指向要釋放的內(nèi)存空間。返回值:無。第9章數(shù)組考點歸納9.1一維數(shù)組的定義、初始化和引用1.一維數(shù)組的定義方式為:類型說明符數(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ù)組初始化可以用以下方法實現(xiàn):(1)在定義數(shù)組時對數(shù)組元素賦以初值。如:staticinta[10]={0,1,2,3,4,5,6,7,8,9};經(jīng)過上面的定義和初始化后,a[0]=0,a[1]=1,…,a[9]=9。(2)初始化時可以只對一部分元素賦初值。例如:staticinta[10]={0,1,2,3,4};定義的數(shù)組有10個元素,但只對其中前5個元素賦了初值,后5個元素初值為0。(3)如果想使一個數(shù)組的元素值全部為0,可以用下面的方法:staticinta[10]={0,0,0,0,0,0,0,0,0,0};不能用:staticinta[10]={0*10};如果對static型數(shù)組不賦初值,系統(tǒng)會對定義的所有數(shù)組元素自動賦以0值。(4)在對全部數(shù)組元素賦初值時,可以不指定數(shù)組長度。3.一維數(shù)組的引用方法是:C語言規(guī)定不能一次引用整個數(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ù)組賦初值。如:staticinta[3][4]={{1,2,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ù)組的部分元素賦初值。如:staticinta[3][4]={{1},{5},{9}};以上賦值的結(jié)果是:數(shù)組第一列的元素分別賦了初值1,5,9,其余元素的值都是0。(4)如果對二維數(shù)組的全部元素都賦初值,則定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省。3.二維數(shù)組的引用:二維數(shù)組的元素可以表示為:數(shù)組[下標(biāo)][下標(biāo)]在引用二維數(shù)組時,必須是單個元素,不能是整個數(shù)組名。下標(biāo)可以是一個表達(dá)式,但不能是變量。如果下標(biāo)是一個表達(dá)式,注意表達(dá)式的值不能超出數(shù)組定義的上、下限。第10章字符串考點歸納10.1字符串與字符數(shù)組1.字符數(shù)組的定義定義方法與前面介紹的類似,只是將數(shù)組定義為字符型即可。例如:charc[10];這里定義了一個包含10個元素的字符數(shù)組c。2.字符數(shù)組的初始化對字符數(shù)組初始化,可以采用以下方法:(1)逐個字符賦給數(shù)組中各元素;(2)用字符串常量使字符數(shù)組初始化。3.字符串在C語言中,字符串是作為字符數(shù)組來處理的,字符串可以存放在字符型一維數(shù)組中,故可以把字符型一維數(shù)組作為字符串變量。字符串常量是用雙引號括起來的一串字符。C語言中約定用′\0′作為字符串的結(jié)束標(biāo)志,它占內(nèi)存空間,但不計入串的長度,′\0′的代碼值為0。系統(tǒng)對字符串常量也自動加一個′\0′作為結(jié)束符。例如″clanguage″共有10個字符,但在內(nèi)存中占11個字節(jié),最后一個字節(jié)存放′\0′。4.字符數(shù)組的輸入輸出(1)逐個字符輸入和輸出①在標(biāo)準(zhǔn)輸入輸出printf和scanf中使用%c格式描述符;②使用getchar和putchar函數(shù)。例如:for(i=0;i<10;i++)scanf(″%c″,&str[i]);/*或str[i]=getchar();*/str[i]=′\0′;/*人為加上串結(jié)束標(biāo)志*/for(i=0;i<10;i++)printf(″%c″,str[i]);/*或putchar(str[i]);*/(2)字符串整體輸入輸出①在標(biāo)準(zhǔn)輸入輸出函數(shù)printf和scanf中使用%s格式描述符;輸入形式:charstr[6];scanf(″%s″,str);其中str為字符數(shù)組名,代表著str字符數(shù)組的起始地址,輸入時系統(tǒng)自動在每個字符串后加入結(jié)束符′\0′。若同時輸入多個字符串,則以空格或回車符分隔。輸入形式:printf(″%s″,str);輸字符串時,遇第一個′\0′即結(jié)束。但可人為控制輸出串所占的域?qū)?,例如:printf(″%6s″,str);/*若字符串中字符多于6個,仍將全部輸出*/printf(″%-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)義字符。10.2字符串的指針以及指向字符串的指針變量1.用指針方法實現(xiàn)一個字符串的存儲和運(yùn)算如:char*strp=″china″;此處定義了一個字符指針變量strp,變量中存放的是字符串第一個字符的地址。C語言對字符串常量是按字符數(shù)組處理的,它實際上在內(nèi)存開辟了一個字符數(shù)組用來存放字符串變量,并把字符串首地址賦給字符指針變量strp。在輸出時用printf(″%s\n″,strp);通過字符數(shù)組名或字符指針變量可以輸出一個字符串。而對一個數(shù)值型數(shù)組,是不能企圖用數(shù)組名輸出它的全部元素的。2.字符指針變量與字符數(shù)組雖然用字符數(shù)組和字符指針變量都能實現(xiàn)字符串的存儲和運(yùn)算,但它們二者之間是有區(qū)別的,不應(yīng)混為一談,主要有以下幾點:(1)字符數(shù)組由若干個元素組成,每個元素中放一個字符,而字符指針變量中存放的是地址(字符串的首地址),決不是將字符串放到字符指針變量中。(2)對字符數(shù)組只能對各個元素賦值,不能用以下辦法對字符數(shù)組賦值。Charstr[14];str=″IloveChina!″;而對字符指針變量,可以采用下面方法賦值:char*a;a=″IloveChina!″;但注意賦給a的不是字符,而是字符串的首地址。(3)賦初值時,對以下的變量定義和賦初值:char*a=″IloveChina!″;等價于:char*a;a=″IloveChina!″;而對數(shù)組初始化時:staticcharstr[14]={″IloveChina!″};不能等價于charstr[14];str[]={″IloveChina!″};即數(shù)組可以在變量定義時整體賦初值,但不能在賦值語句中整體賦值。(4)在定義一個數(shù)組時,在編譯時即已分配內(nèi)存單元,有確定的地址。而定義一個字符指針變量時,給指針變量分配內(nèi)存單元,在其中可以放一個地址值,也就是說,該指針變量可以指向一個字符型數(shù)據(jù),但如果未對它賦予一個地址值,這時該指針變量并未具體指向哪一個字符數(shù)據(jù)。(5)指針變量的值是可以改變的。3.字符串處理函數(shù)C語言中沒有對字符串進(jìn)行合并、比較和賦值的運(yùn)算符,但幾乎所有版本的C語言中都提供了有關(guān)的庫函數(shù)。例如:(1)strcat函數(shù):連接兩個字符數(shù)組中的字符串(2)strcpy函數(shù):字符拷貝函數(shù)(3)strcmp函數(shù):字符比較函數(shù)(4)strlen函數(shù):測試字符串長度的函數(shù)(5)strlwr函數(shù):將字符串中大寫字母轉(zhuǎn)換成小寫字母(6)strupr函數(shù):將字符中小寫字母轉(zhuǎn)換成大寫字母第11章對函數(shù)的進(jìn)一步討論考點歸納11.1傳給main函數(shù)的參數(shù)在此之前,我們在編寫main函數(shù)時,其后一對圓括號是空的,沒有參數(shù)。其實,在支持C的環(huán)境中,可以在運(yùn)行C程序時,通過運(yùn)行C程序的命令行,把參數(shù)傳送給C程序。11.2通過實參向函數(shù)傳遞函數(shù)名或指向函數(shù)的指針變量1.指向函數(shù)的指針變量的定義在C語言中函數(shù)名代表該函數(shù)的入口地址,因此可以定義一種指向函數(shù)地址的指針變量。2.函數(shù)名或指向函數(shù)的指針變量作為參考函數(shù)名或指向函數(shù)的指針變量可以作為實參傳送給函數(shù)。這時,對應(yīng)的形參是類型相同的指針變量。11.3函數(shù)的遞歸調(diào)用C語言中的函數(shù)可以遞歸調(diào)用,即:可以直接或間接地自己調(diào)用自己。前者稱簡單遞歸,后者稱間接遞歸。第12章C語言中用戶標(biāo)識符的作用域和存儲類考點歸納12.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)局部變量未指明類別時,被自動說明成自動(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ù)定義時用extern進(jìn)行說明稱為外部函數(shù)。函數(shù)的隱含類別為外部函數(shù),外部函數(shù)可以被其他文件調(diào)用。3.定義函數(shù)時用static進(jìn)行說明稱為靜態(tài)函數(shù),也稱內(nèi)部函數(shù)。靜態(tài)函數(shù)也是外部函數(shù),只是它僅局限于它所在的文件,其他文件不能調(diào)用。例題精解第13章編譯預(yù)處理和動態(tài)存儲分配考點歸納13.1宏定義(不帶參數(shù)的宏定義,帶參數(shù)的宏定義)1.編譯預(yù)處理就是對C源程序進(jìn)行編譯前,由″編譯預(yù)處理程序″對預(yù)處理命令行進(jìn)行處理的過程。2.C語言中,凡是以″#″開頭的行,都稱為″編譯預(yù)處理″命令行。C語言中的編譯預(yù)處命令有:#define,#undef,#include,#if,#else,#elif,#endif,#ifdef,#ifndef,#line,#pragma,#error。這些預(yù)處理命令組成的預(yù)處理命令行必須在一行的開頭以″#″號開始,每行的未尾不得加″;″號,以區(qū)別于C語句、定義和說明語句。3.不帶參數(shù)的宏定義:命令的一般形式為:#define標(biāo)識符字符串定義中的″標(biāo)識符″為用戶定義的標(biāo)識符,稱為宏名。在預(yù)編譯時,C預(yù)編譯程序?qū)⒊霈F(xiàn)的宏名替換成″字符串″的內(nèi)容,這一過程也稱為宏展開。4.帶參數(shù)的宏定義:命令的一般形式為#define宏名(形式參數(shù))字符串定義中的″字符串″應(yīng)包含括號中所指定的形式參數(shù)。注意宏名與括號之間不要加空格,否則就成為不帶參數(shù)的宏定義了。5.預(yù)編譯時,遇到帶實參的宏名,則按命令行中指定的字符串從左到右進(jìn)行置換,原則是:遇到實參則以實參代替,非形參字符原樣保留,從而形成展開后的內(nèi)容。13.2“文件包含”處理1.文件包含的一般形式為:#include″頭文件名″#include<頭文件名>頭文件名一般由C語言提供,也可以是用戶自己編寫的,頭文件通常用.h作為后綴。2

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論