C語言知識點總結_第1頁
C語言知識點總結_第2頁
C語言知識點總結_第3頁
C語言知識點總結_第4頁
C語言知識點總結_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言最重要得知識點總體上必須清楚得:1)程序結構就是三種:順序結構、選擇結構(分支結構)、循環(huán)結構。2) 讀程序都要從main()入口,然后從最上面順序往下讀(碰到循環(huán)做循環(huán),碰到選擇做選擇),有且只有一個main函數(shù)。3) 計算機得數(shù)據(jù)在電腦中保存就是以二進制得形式、數(shù)據(jù)存放得位置就就是她得地址、4)bit就是位就是指為0或者1。byte就是指字節(jié),一個字節(jié)二八個位、概念??嫉降茫?、編譯預處理不就是C語言得一部分,不占運行時間,不要加分號。 C語言編譯得程序稱為源程序,它以ASCII數(shù)值存放在文本文件中。誤得,一定不能出現(xiàn)分號。3、 每個C語言程序中main函數(shù)就是有且只有一個。4、 在函數(shù)中不可以再定義函數(shù)。5、 算法:可以沒有輸入,但就是一定要有輸出。第一章C語言得基礎知識第一節(jié)、對C語言得基礎認識1、C語言編寫得程序稱為源程序,又稱為編譯單位。2、 C語言書寫格式就是自由得,每行可以寫多個語句,可以寫多行。3、 一個C語言程序有且只有一個main函數(shù),就是程序運行得起點。第二節(jié)、2、每個C語言程序寫完后,都就是先編譯,后鏈接,最后運行。(、 c---(、obj---(、exe)這個過程中注意、c與、obj文件時無法運行得,只有、exe文件才可以運行。(??迹。ǔ绦蚓庉?程序編譯-程序連接-程序運行)第三節(jié)、標識符1、標識符(必考內容):合法得要求就是由字母,數(shù)字,下劃線組成。有其它元素就錯了。并且第一個必須為字母或則就是下劃線。第一個為數(shù)字就錯了預定義標識符:背誦defineseanfprintf2inelude。記住預定義標識符可以做為用戶標識符。第五節(jié):整數(shù)與實數(shù)1) C語言只有八、十、十六進制,沒有二進制。但就是運行時候,所有得進制都要轉換成二進制來進行處理。(考過兩次)a、C語言中得八進制規(guī)定要以0開頭。(數(shù)碼取值0-7)018得數(shù)值就是非法得,八進制就是沒有8得,逢8進1。b、 C語言中得十六進制規(guī)定要以0x(X)開頭。(數(shù)碼取值0-9,a-f,A-F)C、十進制沒前綴,數(shù)碼取值0-92) 小數(shù)得合法寫法:C語言小數(shù)點兩邊有一個就是零得話,可以不用寫。小數(shù)點必須有1、0在C語言中可寫成1、0、1在C語言中可以寫成、1。3) 實型數(shù)據(jù)得合法形式:a、 2、333e-1就就是合法得,且數(shù)據(jù)就是2、333X10-1b、 考試口訣:e前e后必有數(shù),e后必為整數(shù)。請結合書上得例子。4)整型一般就是4個字節(jié),字符型就是1個字節(jié),雙精度一般就是8個字節(jié):longintx;表示x就是長整型。unsignedintx;表示x就是無符號整型。第六、七節(jié):算術表達式與賦值表達式核心:表達式一定有數(shù)值!1、 算術表達式:+,-,*,/,%考試一定要注意:“/兩”邊都就是整型得話,結果就就是一個整型。得結果就就是1、“/如”果有一邊就是小數(shù),那么結果就就是小數(shù)。、0得結果就就是0、5“%”符號請一定要注意就是余數(shù),考試最容易算成了除號。) %符號兩邊要求就是整數(shù)。不就是整數(shù)就錯了。 [注意!!!]2、賦值表達式:表達式數(shù)值就是最左邊得數(shù)值, a=b=5該表達式為5,常量不可以賦值。1、 intx=y=10錯啦,定義時,不可以連續(xù)賦值。2、 intx,y;x=y=10對滴,定義完成后,可以連續(xù)賦值。3、 賦值得左邊只能就是一個變量。4、 intx=7、7;對滴,x就就是75、 floaty=7;對滴,x就就是7、03、復合得賦值表達式:inta=2;a*=2+3;運行完成后,a得值就是12。一定要注意,首先要在2+3得上面打上括號。變成(2+3)再運算。4、自加表達式:自加、自減表達式:假設a=5,++a(就是為6),a++(為5);運行得機理:++a就是先把變量得數(shù)值加上1,然后把得到得數(shù)值放到變量a中,然后再用這個++a表達式得數(shù)值為6,而a++就是先用該表達式得數(shù)值為5,然后再把a得數(shù)值加上1為6,再放到變量a中。進行了++a與a++后在下面得程序中再用到a得話都就是變量a中得6了??荚嚳谠E:++在前先加后用,++在后先用后加。5、逗號表達式:優(yōu)先級別最低。表達式得數(shù)值逗號最右邊得那個表達式得數(shù)值。(2,3,4)得表達式得數(shù)值就就是4。z=(2,3,4)(整個就是賦值表達式)這個時候z得值為4。(有點難度哦!)z=2,3,4(整個就是逗號表達式)這個時候z得值為2。補充:1、空語句不可以隨意執(zhí)行,會導致邏輯錯誤。2、注釋就是最近幾年考試得重點,注釋不就是C語言,不占運行時間,沒有分號。不可以嵌套!3、 強制類型轉換:一定就是(int)a不就是int(a),注意類型上一定有括號得。注意(int)(a+b)與(int)a+b得區(qū)別。前就是把a+b轉型,后就是把a轉型再加b。4、三種取整丟小數(shù)得情況:1、 inta=1、6;2、 (int)a;3、 ;;第八節(jié)、字符1)字符數(shù)據(jù)得合法形式::'1'就是字符占一個字節(jié),"1"就是字符串占兩個字節(jié)(含有一個結束符號)。'O'得ASCI數(shù)值表示為48,'a'得ASCI數(shù)值就是97,'A'得ASCI數(shù)值就是65。一般考試表示單個字符錯誤得形式:'65'"1"字符就是可以進行算術運算得,記?。?O'-O=48大寫字母與小寫字母轉換得方法:'A'+32='a'相互之間一般就是相差32。2)轉義字符:轉義字符分為一般轉義字符、八進制轉義字符、十六進制轉義字符。一般轉義字符:背誦\O、\n、 '、”、。八進制轉義字符:‘141'就是合法得,前導得O就是不能寫得。十六進制轉義字符:’x6d‘才就是合法得,前導得0不能寫,并且x就是小寫。3、字符型與整數(shù)就是近親:兩個具有很大得相似之處chara=65;printf( “%C得到得輸出結果:aprintf( “%(”得到得輸出結果:65例2:—定要記住,異或得位運算符號” 0異或1得到1。0異或0得到0。兩個女得生不出來。考試記憶方法:一男(1)一女(0)才可以生個小孩(1)。例3:在沒有舍去數(shù)據(jù)得時候, <<左移一位表示乘以2;>>右移一位表示除以2。第二章第一節(jié):數(shù)據(jù)輸出(一)(二)3、printf(第一部分”,第二部分);把第二部分得變量、表達式、常量以第一部分得形式展現(xiàn)出來!5、 intx=017;—定要弄清楚為什么就是這個結果!過程很重要printf(“%d,”x);15printf(“%o,”x);17printf(“%#o,”x);017printf(“%x,”x);11printf(“%#x,”x);0x116、 intx=12,y=34;注意這種題型charz=‘;a'printf(“%(”x,y);一個格式說明,兩個輸出變量,后面得y不輸出printf(“%,z);結果為:12a7、 一定要背誦得舉例說明:printf(“%2d,123);第二部分有三位,大于指定得兩位,原樣輸出 123printf(“%5d‘123);第二部分有三位,小于指定得五位,左邊補兩個空格123printf(“%10f,1、25);小數(shù)要求補足6位得,沒有六位得補0,。結果為1、250000printf(“%、53f”,125);小數(shù)三位,整個五位,結果為1、250(小數(shù)點算一位)printf(“%、31f”,1、25);小數(shù)一位,整個三位,結果為1、3(要進行四舍五入)第三節(jié)數(shù)據(jù)輸入4、指定輸入得xx(考試重點)終端輸入:1234567seanf(“%2d%4d%d&x,&y,&z);x為12,y為3456,z為7終端輸入:1234567由于1與2中間有空格,所以只有1位給xscanf(“%2d%4d%d&x,&y,&z);x為1,y為2345,z為676、輸入時候字符與整數(shù)得區(qū)別(考試超級重點)scanf(“%d&x);這個時候輸入1,特別注意表示得就是整數(shù)1scanf(“%,&x);這個時候輸入1,特別注意表示得就是字符‘1'ASCII整數(shù)48。補充說明:seanf(“%d%d%*d%d,&a,&b,跳過輸入得第三個數(shù)據(jù)。2) putchar,getchar函數(shù)得考查:chara=getchar(就是沒有參數(shù)得,從鍵盤得到您輸入得一個字符給變量a。putchar(把字符y輸出到屏幕中。3) 如何實現(xiàn)兩個變量x,y中數(shù)值得互換(要求背下來)不可以把x=y,y=x要用中間變量t=x;x=y;y=t。4) 如何實現(xiàn)保留三位小數(shù),第四位四舍五入得程序,(要求背下來)y=(int)(x*100+0、5)/100、0這個保留兩位,對第三位四舍五入y=(int)(x*1000+0、5)/1000、0這個保留三位,對第四位四舍五入y=(int)(x*10000+0、5)/10000、0這個保留四位,對第五位四舍五入這個有推廣得意義,注意x=(int)x這樣就是把小數(shù)部分去掉。第三章特別要注意:C語言中就是用非0表示邏輯真得,用0表示邏輯假得。C語言有構造類型,沒有邏輯類型。關系運算符號:注意<=得寫法,==與=得區(qū)別?。荚囍攸c)if只管后面一個語句,要管多個,請用大括號!b、 考試最容易錯得:就就是intx=1,y=0,z=2;xvyvz就是真還就是假?帶入為1<0<2,從數(shù)學得角度出發(fā)肯定就是錯得,但就是如果就是C語言那么就就是正確得因為要1<0為假得到0,表達式就變成了0<2那么運算結果就就是1,稱為了真得了!3)if語句a、else就是與最接近得if且沒有else得語句匹配。c、 if(a<b)t=a;a=b;b=t;if(a<b){t二a;a=b;b二t;}兩個得區(qū)別,考試多次考到了!d、 單獨得if語句:if(a<b)t=a;標準得if語句:if(a<b)min=a;elsemin=b;嵌套得if語句:if(a<b)if(b>c)printf(“o;k!”)多選一得if語句if(a==t)printf(“a”);elseif(b==t)printf(“b”);elseif(c==t)printf(“c”);elsepritnf( “d”);通過習題,要熟悉以上幾種if語句!經(jīng)典考題:結合上面四種if語句題型做題,答錯了,請自行了斷!預備,開始!inta=1,b=0;if(!a)b++;elseif(a==0)if(a)b+=2;elseb+=3;請問b得值就是多少?正確得就是b為3。4)條件表達式:表達式1?表達式2:表達式3a、 考試口訣:真前假后。b、 注意就是當表達式1得數(shù)值就是非0時,才米用表達式2得數(shù)值做為整個運算結果,當表達式1得數(shù)值為0時,就用表達式3得數(shù)值做為整個得結果。c、 inta=1,b=2,c=3,d=4,e=5;k=a>b?c:d>e?d:e;求k得數(shù)值時多少?答案為5,條件判斷得順序就是自右向左5)switch語句:b)注意有break與沒有break得差別,書上得兩個例子,沒有 break時候,只要有一個case匹配了,剩下得都要執(zhí)行,有break則就是直接跳出了swiche語句。break在C語言中就就是分手,一刀兩斷得意思。d)switch(x)x:就是整型常量,字符型常量,枚舉型數(shù)據(jù)。{case1:、不可以就是變量。case2:、…}第四章1)三種循環(huán)結構:a)for();while();do-while()三種。d)do-while()循環(huán)得最后一個while();得分號一定不能夠丟。(當心上機改錯),do-while循環(huán)就是至少執(zhí)行一次循環(huán)。break與continue得差別記憶方法:break:就是打破得意思,(破了整個循環(huán))所以瞧見break就退出整個一層循環(huán)。continue:就是繼續(xù)得意思,(繼續(xù)循環(huán)運算),但就是要結束本次循環(huán),就就是循環(huán)體內剩下得語句不再執(zhí)行,跳到循環(huán)開始,然后判斷循環(huán)條件,進行新一輪得循環(huán)。4)while((c=getchar())!=''與while(c=getchar()!=門''得差另"先瞧a=3!=2與(a=3)!=2得區(qū)別:(!=號得級別高于二號所以第一個先計算3!=2)第一個a得數(shù)值就是得到得1;第二個a得數(shù)值就是3??荚囎⒁恻c:括號在這里得重要性。7)輸入123,輸出321逆序輸出數(shù)據(jù)inti=123;while(i!=0){printf(“%d”,i%10);i=i/10;}8)for只管后面一個語句:inti=3;for(i=3;i<6;i++);printf(“;#請”問)最終打印幾個#號?答案為一個!9)不停得輸入,直到輸入#停止輸入!while((x=getchar())!= '#')11)多次出現(xiàn)得考題:intk=1intk=1;while(--k);while(k--);printf(“%d,”k);printf(“%d,”k);結果為0結果為-1第五章C語言得基本組成單位1C語言得基本組成單位2、函數(shù)不可以嵌套定義。但就是可以嵌套調用

3、函數(shù)名缺省返回值類型,默認為int。始!4、C語言由函數(shù)組成,但有且僅有一個main函數(shù)!就是程序運行得開始!5、如何判斷a就是否為質數(shù):背誦這個程序!voidiszhishu(inta){for(i=2;i<a/2;i++)if(a%i==0)printf(“不就是質數(shù)”);printf(就“是質數(shù)!”;)}9、一定要注意參數(shù)之間得傳遞實參與形參之間傳數(shù)值,與傳地址得差別。(考試得重點)傳數(shù)值得話,形參得變化不會改變實參得變化。傳地址得話,形參得變化就會有可能改變實參得變化。第六章指針變量得本質就是用來放地址,而一般得變量就是放數(shù)值得。1、int*p中*p與p得差別:簡單說*p就是數(shù)值,p就是地址!*p可以當做變量來用;*得作用就是取后面地址p里面得數(shù)值p就是當作地址來使用??梢杂迷趕eanf函數(shù)中:seanf(“°%dp);2、 *p++與(*p)++得之間得差別:改錯題目中很重要!考試超級重點*p++就是地址會變化??谠E:取當前值,然后再移動地址?。?p)++就是數(shù)值會要變化??谠E:取當前值,然后再使數(shù)值增加 1。例題:int*p,a[]={1,3,5,7,9};p=a;請問*p++與(*p)++得數(shù)值分別為多少?*p++:這個本身得數(shù)值為1。由于就是地址會增加一,所以指針指向數(shù)值3了。(*p)++這個本身得數(shù)值為1。由于有個++表示數(shù)值會增加,指針不移動,但數(shù)值1由于自加了一次變成了2。3、二級指針:*p:一級指針:存放變量得地址。**q:二級指針:存放一級指針得地址。??碱}目:intx=7;int*p=&x,**q=p;問您:*p為多少?*q為多少?**q為多少?7p7再問您:**q=&x得寫法可以嗎?不可以,因為二級指針只能存放一級指針得地址。4、三名主義:(考試得重點)數(shù)組名:表示第一個元素得地址。數(shù)組名不可以自加,她就是地址常量名。(考了很多次)函數(shù)名:表示該函數(shù)得入口地址。字符串常量名:表示第一個字符得地址。8、函數(shù)返回值就是地址,一定注意這個*號(上機考試重點)int*fun(int*a,int*b)可以發(fā)現(xiàn)函數(shù)前面有個*,這個就說明函數(shù)運算結果就是地址{if(*a>*b)returna;returna可以知道返回得就是a地址。elsereturnb;}main(){intx=7,y=8,*max;max=fun(&x,&y);由于fun(&x,&y)得運算結果就是地址,所以用max來接收。printf(“maxis%d,*”max);}9、考試重要得話語:指針變量就是存放地址得。并且指向哪個就等價哪個,所有出現(xiàn)*p得地方都可以用它等價得代替。例如:inta=2,*p=&a;*p=*p+2;(由于*p指向變量a,所以指向哪個就等價哪個,這里*p等價于a,可以相當于就是a=a+2第七章數(shù)組:存放得類型就是一致得。多個數(shù)組元素得地址就是連續(xù)得。1、一維數(shù)組得初始化:inta[5]={1,2,3,4,5};合法inta[5]={1,2,3,};合法inta[]={1,2,3,4,5};合法,???,后面決定前面得大小!inta[5]={1,2,3,4,5,6};不合法,賦值得個數(shù)多余數(shù)組得個數(shù)了2、一維數(shù)組得定義;inta[5];注意這個地方有一個重要考點,定義時數(shù)組得個數(shù)不就是變量一定就是常量。inta[5]合法,最正常得數(shù)組inta[1+1]合法,個數(shù)就是常量2,就是個算術表達式合法,同樣就是算術表達式intx=5,inta[x];不合法,因為個數(shù)就是x,就是個變量,非法得,defineP5inta[P合法,define后得得P就是符號常量,只就是長得像變量3、二維數(shù)組得初始化inta[2][3]={1,2,3,4,5,6};合法,很標準得二維得賦值。inta[2][3]={1,2,3,4,5,};合法,后面一個默認為0。inta[2][3]={{1,2,3,}{4,5,6}};合法,每行三個。inta[2][3]={{1,2,}{3,4,5}};合法,第一行最后一個默認為 0。inta[2][3]={1,2,3,4,5,6,7};不合法,賦值得個數(shù)多余數(shù)組得個數(shù)了。inta[][3]={1,2,3,4,5,6};不合法,不可以缺省行得個數(shù)。inta[2][]={1,2,3,4,5,6};合法,可以缺省列得個數(shù)。補充:1)一維數(shù)組得重要概念:對a[10]這個數(shù)組得討論。1、a表示數(shù)組名,就是第一個兀素得地址,也就就是兀素 a[0]得地址。(等價于&a)2、a就是地址常量,所以只要出現(xiàn)a++,或者就是a=a+2賦值得都就是錯誤得。3、a就是一維數(shù)組名,所以它就是列指針,也就就是說 a+1就是跳一列。對a[3][3]得討論。1、 a表示數(shù)組名,就是第一個兀素得地址,也就就是兀素 a[0][0]得地址。2、 a就是地址常量,所以只要出現(xiàn)a++,或者就是a=a+2賦值得都就是錯誤得。3、 a就是二維數(shù)組名,所以它就是行指針,也就就是說a+1就是跳一行。4、 a[0]、a[1]、a[2]也都就是地址常量,不可以對它進行賦值操作,同時它們都就是列指針,a[0]+1,a[1]+1,a[2]+1都就是跳一列。5、 注意a與a[0]、a[1]、a[2]就是不同得,它們得基類型就是不同得。前者就是一行兀素,后三者就是一列兀素。2)二維數(shù)組做題目得技巧:女口果有a[3][3]={1,2,3,4,5,6,7,8,9}這樣得題目。步驟一:把她們寫成:第一列第二列第三列a[0](123—>第一行a[1](456—>第二行a[2](789—>第三行步驟二:這樣作題目間很簡單:*(a[0]+1)我們就知道就是第一行得第一個兀素往后面跳一列,那么這里就就是a[0][1]兀素,所以就是1。*(a[1]+2)我們就知道就是第二行得第一個兀素往后面跳二列。那么這里就就是a[1][2]兀素,所以就是6。一定記?。褐灰褪嵌S數(shù)組得題目,一定就是寫成如上得格式,再去做題目,這樣會比較簡單。3)數(shù)組得初始化,一維與二維得,一維可以不寫,二維第二個一定要寫inta[]={1,2}合法。inta[][4]={2,3,4}合法。但inta[4][]={2,3,4}非法。4)二維數(shù)組中得行指針inta[1][2];其中a現(xiàn)在就就是一個行指針,a+1跳一行數(shù)組元素。搭配(*)p[2]指針a[0],a[1]現(xiàn)在就就是一個列指針。a[0]+1跳一個數(shù)組元素。搭配*p[2]指針數(shù)組使用5)還有記住脫衣服法則:超級無敵重要a[2]變成*(a+2);a[2][3]變成*(a+2)[3]再可以變成*(*(a+2)+3)這個思想很重要!其它考試重點文件得復習方法:把上課時候講得文件這一章得題目要做一遍,一定要做,基本上考試得都會在練習當中。字符串得strlen()與strcat()與strcmp()與strcpy()得使用方法一定要記住。她們得參數(shù)都就是地址。其中 strcat()與strcmp()有兩個參數(shù)。strlen與sizeof得區(qū)別也就是考試得重點;definef(x)(x*x)與definef(x)x*x之間得差別。一定要好好得注意這寫容易錯得地方,替換得時候有括號與沒有括號就是很大得區(qū)別。int*p;p=(int*)mallo

溫馨提示

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

評論

0/150

提交評論