C語言考試必考知識點(diǎn)_第1頁
C語言考試必考知識點(diǎn)_第2頁
C語言考試必考知識點(diǎn)_第3頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、語言考試知識點(diǎn)第一章c語言基本知識【考點(diǎn)1】c程序c語言程序結(jié)構(gòu)有三種:順序結(jié)構(gòu),循環(huán)結(jié)構(gòu)(三個循環(huán)結(jié)構(gòu)),選擇結(jié)構(gòu)(if和switch)【考點(diǎn)2】main函數(shù)每個C語言程序中main函數(shù)是有且只有一個。讀程序都要從main()入口,然后從最上面順序往下讀(碰到循環(huán)做循環(huán),碰到選擇做選擇)。【考點(diǎn)3】存儲形式計算機(jī)的數(shù)據(jù)在電腦中是以二進(jìn)制的形式保存。最低的存儲單元是bit(位),位是由為0或者1構(gòu)成。byte是指字節(jié),一個字節(jié)=八個位。數(shù)據(jù)存放的位置就是它的地址。【考點(diǎn)4】注釋是對程序的說明,可出現(xiàn)在程序中任意合適的地方,注釋從“/*”開始到最近一個“*/”結(jié)束,其間任何內(nèi)容都不會被計算機(jī)執(zhí)行

2、,注釋不可以嵌套?!究键c(diǎn)5】書寫格式每條語句的后面必須有一個分號,分號是語句的一部分。一行內(nèi)可寫多條語句,一個語句可寫在多行上?!究键c(diǎn)6】標(biāo)識符合法的用戶標(biāo)識符考查:合法的要求是由字母,數(shù)字,下劃線組成。有其它元素就錯了。并且第一個必須為字母或則是下劃線。第一個為數(shù)字就錯了。C語言標(biāo)識符分如下3類(1)關(guān)鍵字。它們在程序中有固定的含義,不能另作他用。女口int、for、switch等。(2)預(yù)定義標(biāo)識符。預(yù)先定義并具有特定含義的標(biāo)識符。如define、inelude等。(3)用戶標(biāo)識符。用戶根據(jù)需要定義的標(biāo)識符,符合命名規(guī)則且不與關(guān)鍵字相同。關(guān)鍵字不可以作為用戶標(biāo)識符號。maindefines

3、canfprintf都不是關(guān)鍵字。迷惑你的地方If是可以做為用戶標(biāo)識符。因?yàn)镮f中的第一個字母大寫了,所以不是關(guān)鍵字?!究键c(diǎn)7】實(shí)型數(shù)據(jù)實(shí)型數(shù)據(jù)的合法形式:小數(shù)形式和指數(shù)形式。掌握判定指數(shù)形式合法性。2.333e-1就是合法的,且數(shù)據(jù)是2.333X10-1??荚嚳谠E:e前e后必有數(shù),e后必為整數(shù)?!究键c(diǎn)8】字符字符數(shù)據(jù)的合法形式:1是字符占一個字節(jié),1是字符串占兩個字節(jié)(含有一個結(jié)束符號)。0的ASCII數(shù)值表示為48,a的ASCII數(shù)值是97,A的ASCII數(shù)值是65。字符型和整數(shù)是近親:chara=65;printf(“C,a);得到的輸出結(jié)果:aprintf(“d,a);得到的輸出結(jié)果:

4、65651一般考試表示單個字符錯誤的形式:字符是可以進(jìn)行算術(shù)運(yùn)算的,記?。?-0=48大寫字母和小寫字母轉(zhuǎn)換的方法:A+32=a相互之間一般是相差32?!究键c(diǎn)9】整型數(shù)據(jù)整型一般是兩個字節(jié),字符型是一個字節(jié),雙精度一般是4個字節(jié):考試時候一般會說,在16位編譯系統(tǒng),或者是32位系統(tǒng)。碰到這種情況,不要去管,一樣做題。掌握整型般是兩個字節(jié),字符型是一個字節(jié),雙精度一般是4個字節(jié)就可以了。【考點(diǎn)10】轉(zhuǎn)義字符轉(zhuǎn)義字符的考查:在程序中inta=0x6d,是把一個十六進(jìn)制的數(shù)給變量a注意這里的0x必須存在。在程序中inta=06d,是一個八進(jìn)制的形式。在轉(zhuǎn)義字符中,x6d才是合法的,0不能寫,并且x是

5、小寫。141是合法的,0是不能寫的。108是非法的,因?yàn)椴豢梢猿霈F(xiàn)8?!究键c(diǎn)11】算術(shù)運(yùn)算算術(shù)運(yùn)算符一共有+、一、*、/、沁五個。符號兩邊要求是整數(shù)。不是整數(shù)就錯了。三種取整丟小數(shù)的情況:不是四舍五入是舍掉小數(shù)部分。1、inta=1.6;2、(int)a;3、1/2;3/2;【考點(diǎn)12】強(qiáng)制類型轉(zhuǎn)換將一個運(yùn)算對象轉(zhuǎn)換成指定類型,格式為(類型名)表達(dá)式一定是(int)a不是int(a),注意類型上一定有括號的。注意(int)(a+b)和(int)a+b的區(qū)別。前是把a(bǔ)+b轉(zhuǎn)型,后是把a(bǔ)轉(zhuǎn)型再加b?!究键c(diǎn)13】賦值是表達(dá)式就一定有數(shù)值。賦值表達(dá)式:表達(dá)式數(shù)值是最左邊的數(shù)值,a=b=5;該表達(dá)式為5

6、,常量不可以賦值。復(fù)合賦值運(yùn)算符:注意:a*=m+2是a=a*(m+2)自加、自減表達(dá)式:假設(shè)a=5,+a(表達(dá)式的值為6),a+(表達(dá)式的值為5);j=a+;等價于j=a;a=a+1;而j=+a;等價于a=a+1;j=a;。考試口訣:+在前先加后用,+在后先用后加?!究键c(diǎn)14】逗號運(yùn)算逗號表達(dá)式:優(yōu)先級別最低;表達(dá)式的數(shù)值逗號最右邊的那個表達(dá)式的數(shù)值。(2,3,4)的表達(dá)式的數(shù)值就是4?!究键c(diǎn)15】數(shù)制轉(zhuǎn)換一定要記住二進(jìn)制如何轉(zhuǎn)換成十進(jìn)制。八進(jìn)制是沒有8的,逢8進(jìn)1,018的數(shù)值是非法的?!究键c(diǎn)16】位運(yùn)算會有一到二題考試題目。C語言提供6種位運(yùn)算符:按位求反,按位左移,按位與&按位異或|,

7、按位或A??偟奶幚矸椒ǎ簬缀跛械奈贿\(yùn)算的題目都要按這個流程來處理(先把十進(jìn)制變成二進(jìn)制再變成十進(jìn)制)。異或運(yùn)算的規(guī)則:0異或1得到1,0異或0得到0,1異或1得到0。可記為“相同為0,不同為1”。見教材31頁例1。在沒有舍去數(shù)據(jù)的時候,右移一位表示除以2。第二章數(shù)據(jù)的輸入輸出(順序結(jié)構(gòu))【考點(diǎn)1】printf函數(shù)格式為:printf(輸出控制,輸出列表)。輸出控制是用一對雙引號括起來的,包含格式說明和原樣信息。輸出列表包含若干輸出項。%d對應(yīng)整型,%f對應(yīng)單精度實(shí)型,%c對應(yīng)字符型,o對應(yīng)八進(jìn)制無符號整型,%xM應(yīng)無符號十六進(jìn)制整型,u對應(yīng)無符號整型,e對應(yīng)指數(shù)型,$對應(yīng)字符串型。可在呀口格

8、式字符之間加一個數(shù)來控制數(shù)據(jù)所占的寬度和小數(shù)位數(shù)?!究键c(diǎn)2scanf函數(shù)格式為:scanf(輸入控制,輸入列表)注意該函數(shù)的第二個部分是&a這樣的地址,不是a;scanf(“%d%d%*d%d,&a,&b,&c);跳過輸入的第三個數(shù)據(jù)?!究键c(diǎn)3putchar與getchar函數(shù)可用于輸出或輸入單個字符,這兩個函數(shù)是stdio.h文件中的庫函數(shù),它們是printf與scanf函數(shù)的簡化。chara=getchar()是沒有參數(shù)的,從鍵盤得到你輸入的一個字符給變量a。putchar(y)把字符y輸出到屏幕中。【考點(diǎn)4如何交換兩個變量如何實(shí)現(xiàn)兩個變量x,y中數(shù)值的互換(要求背下來)不可以把x=y,y

9、=x;要用中間變量t=x;x=y;y=t?!究键c(diǎn)5實(shí)現(xiàn)保留三位小數(shù)如何實(shí)現(xiàn)保留三位小數(shù),第四位四舍五入的程序,(要求背下來)floatx=12.34567;floaty=(int)(x*1000+0.5)/1000.0;這個有推廣的意義,注意x=(int)x這樣是把小數(shù)部分去掉第三章選擇結(jié)構(gòu)特別要注意:c語言中是用非0表示邏輯真的,用0表示邏輯假的?!究键c(diǎn)1關(guān)系運(yùn)算關(guān)系運(yùn)算符有6個,分別是,=,8這個是真的,所以表達(dá)式的數(shù)值就是1?!究键c(diǎn)2】邏輯運(yùn)算只能為1(表示為真),或0(表示假)a)共有三種邏輯運(yùn)算符號。邏輯非(!),輯與(&,邏輯或(|)。b)!&|優(yōu)先的級別。c)注意短路現(xiàn)象。考試比

10、較喜歡考到。例a+|b+,如果表達(dá)式a+的值非零,則表達(dá)式b+不再執(zhí)行。d)要表示x是比0大,比10小的方法。0=6x;pniufi04汕!和痔懸霑從tit下相了壯存.葉確到r浦號add:G把釦b的故憂穿檢詞用甬ttWfTft時申斷器恃唾I町救仇-耳葫昭|“垃他民冉瞅厚抽th下典打工=C、reninii#T1?AddifitJll舞岔爾到的蚪果*A墾ifilftjfi擱恰耳乍的起樹故皿【考點(diǎn)7】函數(shù)的遞歸調(diào)用函數(shù)直接或間接地調(diào)用自己稱為函數(shù)的遞歸調(diào)用。遞歸調(diào)用必須有一個明確的結(jié)束遞歸的條件。在做遞歸題時可把遞歸的步驟一步步寫下來,不要弄顛倒了?!究键c(diǎn)8】要求掌握的庫函數(shù)sqrt()算術(shù)平方根函

11、數(shù),fabs()絕對值函數(shù),sin()正弦函數(shù),sin(3.14159/180*30);,pow()幕函數(shù),23是由pow(2,3)表示的。第六章指針【考點(diǎn)1】指針變量指針變量是用來存儲地址的,而一般變量是存儲數(shù)值的。指針變量可指向任意一種數(shù)據(jù)類型,但不管它指向的數(shù)據(jù)占用多少字節(jié),一個指針變量占用四個字節(jié)?!究键c(diǎn)2】指針變量的定義格式為:類型名*指針變量名。二維指針int*p;可以理解為基類型為(int*)類型?!究键c(diǎn)3】指針變量的初始化指針變量在使用前必須要初始化,把一個具體的地址賦給它,否則引用時會有副作用,如果不指向任何數(shù)據(jù)就賦“空值”NULL指針變量兩種初始化方法一:inta=2,*p

12、=&a;(定義的同時初始化)方法二:inta=2,*p;(定義之后初始化)p=&a;【考點(diǎn)4】指針變量的引用&是取地址符,*是間接訪問運(yùn)算符,它們是互逆的兩個運(yùn)算符。在指針變量名前加間接訪問運(yùn)算符就等價它所指向的量?!究键c(diǎn)5】指針的運(yùn)算int*p中*p和p的差別:*p可以當(dāng)做變量來用;*的作用是取后面地址p里面的數(shù)值p是當(dāng)作地址來使用。*p+和(*p)+的之間的差別:改錯題目中很重要*p+是地址會變化。(*p)+是數(shù)值會要變化。三名主義:(考試的重點(diǎn))數(shù)組名:表示第一個元素的地址。數(shù)組名不可以自加,他是地址常量名。(考了很多次)函數(shù)名:表示該函數(shù)的入口地址。字符串常量名:表示第一個字符的地址。

13、考試重要的話語:指針變量是存放地址的。并且指向哪個就等價哪個,所有出現(xiàn)*p的地方都可以用它等價的代替指向的變量。例如:inta=2,*p=&a;*p=*p+2;(由于*p指向變量a,所以指向哪個就等價哪個,這里*p等價于a,可以相當(dāng)于是a=a+2)第七章數(shù)組【考點(diǎn)1】數(shù)組的定義數(shù)組是一組具有相同類型的數(shù)據(jù)的集合,這些數(shù)據(jù)稱為數(shù)組元素。格式為:類型名數(shù)組名常量表達(dá)式。數(shù)組的所占字節(jié)數(shù)為元素個數(shù)與基類型所占字節(jié)數(shù)的乘積。【考點(diǎn)2】數(shù)組的初始化第一維長度可以不寫,其它維必須寫。inta=1,2;合法,inta3=2,3,4;合法,inta2=2,3,4;非法。數(shù)組初始化元素值默認(rèn)為0,沒有初始化元素

14、值為隨機(jī)。如在inta5=0,1,2;中,元素a4值為0;而在inta5;中,元素a4值為一個不確定的隨機(jī)數(shù)。【考點(diǎn)3】元素的引用數(shù)組元素的下標(biāo)從0開始,到數(shù)組長度減1結(jié)束。所以inta5;中數(shù)組最后一個元素是a4。要把數(shù)組元素看作一個整體,可以把a(bǔ)4當(dāng)作一個整型變量?!究键c(diǎn)4】二維數(shù)組數(shù)組a23=1,2,3,4,5,6;中含6個元素,有2行3列。第一行為a0行,第2行為a1行,a0、a1叫行首地址,是地址常量。*(a0+1)是第一行第一個兀素往后跳一列,即元素a01值為2,*(a0+3)是第一行第一個元素往后跳三個,即元素a10值為4。【考點(diǎn)5】行指針是一個指針變量,占四個字節(jié),行指針指向一

15、行連續(xù)數(shù)據(jù),形式為:int(*p)2;,p只能存放含有兩個整型元素的一維數(shù)組的首地址。注意(*p)兩邊的小括號不能省略,否則就成了指針數(shù)組,是若干指針元素的集合?!究键c(diǎn)6】數(shù)組名數(shù)組名是數(shù)組的首地址。數(shù)組名不能單獨(dú)引用,不能通過一個數(shù)組名代表全部元素。數(shù)組名是地址常量,不能對數(shù)組名賦值,所以a+是錯誤的。但數(shù)組名可以作為地址與一個整數(shù)相加得到一個新地址?!究键c(diǎn)7】元素形式的轉(zhuǎn)換助記:“脫衣服法則”a2變成*(a+2),a23變成*(a+2)3再可變成*(*(a+2)+3)。這個思想很重要!二維數(shù)組做題目的技巧:女口果有a33=1,2,3,4,5,6,7,8,9這樣的題目。步驟一:把他們寫成:第

16、一列第二列第三列a0123第仃a1456第二行a2789第三行步驟二:這樣作題目間很簡單:*(a0+1)我們就知道是第一行的第一個元素往后面跳一列,那么這里就是a01元素,所以是1。*(a1+2)我們就知道是第二行的第一個元素往后面跳二列。那么這里就是a12元素,所以是6。一定記?。褐灰嵌S數(shù)組的題目,一定是寫成如上的格式,再去做題目,這樣會比較簡單。兩種重要的數(shù)組長度:chara=a,b,c;數(shù)組長度為3,字符串長度不定。sizeof(a)為3。chara5=a,b,c數(shù)組長度為5,字符串長度3。sizeof(a)為5。第八章字符串【考點(diǎn)1】字符串常量及表示字符串常量是由雙引號括起來的一串

17、字符,如”ABC。在存儲字符串時,系統(tǒng)會自動在其尾部加上一個空值0,空值也要占用一個字節(jié),也就是字符串”ABC需要占四個字節(jié)?!究键c(diǎn)2】字符數(shù)組C語言沒有字符串變量,只能采用字符數(shù)組來存儲字符串。數(shù)組的大小應(yīng)該比它將要實(shí)際存放的最長字符串多一個元素,從而存放0?!究键c(diǎn)3】字符串賦值字符串賦值的兩種形式:charstr=“Hello!”;或char*p;p=“Hello!”;,但不能用下面的形式:charstr1O;str=”Hello”;因?yàn)閟tr是一個地址常量,不能進(jìn)行賦值操作?!究键c(diǎn)4】字符串的輸入與輸出可以用scanf和printf函數(shù),如scanf(”%s,str);,也可用專門處理字

18、符串的兩個函數(shù)gets和puts函數(shù),還可以對字符數(shù)組逐個元素進(jìn)行賦值,但一定要在最后賦一個0。使用gets函數(shù)可以接收空格,使用puts函數(shù)在最后輸出一個換行。scanf和gets的數(shù)據(jù):如果輸入的是goodgoodstudy!那么scanf(“%s,a);只會接收good.考點(diǎn):不可以接收空格。gets(a);會接收goodgoodstudy!考點(diǎn):可以接收空格?!究键c(diǎn)5】字符串函數(shù)要掌握的四個字符串函數(shù):字符串拷貝函數(shù)strcpy(),求字符串長度函數(shù)strlen(),字符串鏈接函數(shù)strcat(),字符串比較函數(shù)strcmp()。使用這些函數(shù)需在預(yù)處理部分包含頭文件”string.h”

19、。字符串長度要小于字符數(shù)組的長度,例:charstr10=”Hello”;sizeof(str)的值為10(數(shù)組長度),strlen(str)的值為5(字符串長度)。這些函數(shù)是考試常用到的函數(shù),大家一定要熟練應(yīng)用這幾個函數(shù)。第九章文件【考點(diǎn)1】文件類型指針文件指針是一個指向結(jié)構(gòu)體類型的指針,定義格式為:FILE*指針變量名。在使用文件時,都需要先定義文件指針?!究键c(diǎn)2】文本文件與二進(jìn)制文件文本形式存放的是字符的ASCII碼,二進(jìn)制形式存放的是數(shù)據(jù)的二進(jìn)制。例如“100”如果是文本形式就是存儲1、0、0三個字符的ASCII碼(),如果是二進(jìn)制形式就把100轉(zhuǎn)化成二進(jìn)制(01100100)。【考點(diǎn)

20、3】打開文件文件的打開形式:FILE*fp;fp=fopen(“c:lab.c”,”rb”);。fopen函數(shù)的前面一部分為文件名,后面一部分為文件的使用方式。打開方式見教材第116頁,其中r代表讀,w代表寫,a代表添加,b代表二進(jìn)制位的?!究键c(diǎn)4】文件函數(shù)判斷文件結(jié)束feof函數(shù),移動文件指針位置fseek函數(shù),獲得文件位置ftell函數(shù),文件位置移到開頭rewind函數(shù),文件字符輸入輸出fgetc函數(shù)和fputc函數(shù),文件輸入輸出fscanf函數(shù)和fprintf函數(shù),文件字符串輸入輸出fgets函數(shù)和fputs函數(shù),讀寫二進(jìn)制文件fread函數(shù)和fwrite函數(shù)。以上函數(shù)要求知道格式會用,

21、清楚是用于二進(jìn)制文件還是文本文件。上課時候講的文件這一章的題目要做一遍,一定要做,基本上考試的都會在練習(xí)當(dāng)中。第十章對C語言的深入探討【考點(diǎn)1】編譯預(yù)處理凡以#開頭的這一行,都是編譯預(yù)處理命令行,編譯預(yù)處理不加分號,不占運(yùn)行時間。宏替換僅是簡單的文本替換,如#definef(x)(x)*(x)和#definef(x)x*x替換f(2+2)時就有區(qū)別,前者展開為(2+2)*(2+2),后者為2+2*2+2。如果源文件f2.c中有#inelude”fl.c”可以理解為把源文件fl.c原樣包含到f2.c中,使fl.c和f2.c融合到一起成為一個C程序編譯。所以一個C程序必有主函數(shù),但一個C源文件未必

22、有主函數(shù)?!究键c(diǎn)2】標(biāo)識符作用域局部變量是在函數(shù)內(nèi)或復(fù)合語句內(nèi)定義的變量,作用域?yàn)槎x它的函數(shù)內(nèi)。局部變量有三種類型:自動auto,寄存器register和靜態(tài)static。自動變量隨著函數(shù)的使用與否創(chuàng)建消失;寄存器變量分配在cpu中,沒有內(nèi)存地址;靜態(tài)變量占用固定存儲單元,在程序執(zhí)行過程不釋放,直到程序運(yùn)行結(jié)束。全局變量是在函數(shù)外定義的變量,作用域從定義它的位置到整個源文件結(jié)束為止,生存期為整個程序運(yùn)行期間。全局變量都是靜態(tài)變量。【考點(diǎn)3】動態(tài)存儲分配malloc(size)用來創(chuàng)建size個字節(jié)的連續(xù)存儲空間,返回值類型為void*型。malloc函數(shù)常用于動態(tài)創(chuàng)建鏈表結(jié)點(diǎn),如int*p;

23、p=(int*)malloc(sizeof(int);。calloc(n,size)創(chuàng)建n個同一類型的連續(xù)存儲空間,可以理解為n個malloc。int*p;p=(int*)calloc(10,sizeof(int);。p指向首地址。free(p)釋放動態(tài)分配的存儲單元?!究键c(diǎn)4】main函數(shù)的參數(shù)還有main(intargc,char*argv)這種含有參數(shù)的題目,是很呆板的題目。第一個參數(shù)是表示輸入的字符串的數(shù)目,第二個參數(shù)是指向存放的字符串?!究键c(diǎn)5】函數(shù)指針函數(shù)指針的用法(*f)()記住一個例子:intadd(intx,inty).main()int(*f)();f=add;賦值之后:合法的調(diào)用形式為1、add(2,3);2、f(2,3);3、(*f)(2,3)第十一章結(jié)構(gòu)體和共用體【考點(diǎn)1】結(jié)構(gòu)體類型的說明結(jié)構(gòu)體是若干個類型數(shù)據(jù)的集合,結(jié)構(gòu)體類型說明格式:struct類型名類型1成員名1;類型2成員名2;,以上整個部分是一個數(shù)據(jù)類型,與整型的int是同樣地位??捎胻ypedef把結(jié)構(gòu)體類型替換成一個只有幾個字母的簡短標(biāo)識符。【考點(diǎn)2】結(jié)構(gòu)體變量的定義結(jié)構(gòu)體變量是用說明的結(jié)構(gòu)體類型所定義的一個變

溫馨提示

  • 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

提交評論