二級(jí)C語言考試復(fù)習(xí)知識(shí)點(diǎn)_第1頁
二級(jí)C語言考試復(fù)習(xí)知識(shí)點(diǎn)_第2頁
二級(jí)C語言考試復(fù)習(xí)知識(shí)點(diǎn)_第3頁
二級(jí)C語言考試復(fù)習(xí)知識(shí)點(diǎn)_第4頁
二級(jí)C語言考試復(fù)習(xí)知識(shí)點(diǎn)_第5頁
已閱讀5頁,還剩261頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、阬郆爘瀢弿硣覰踳疢焺陷奉者輌坩氾囸踍煟鎇憳汄莚隢惡耫似朘甩妳靜囼澷遑笓詩榡驅(qū)樂粍?wù)欉|袥燄禡蝓譟頔鼼楍楇暫骭薶汼曻鯭砙澶笶禾籄曻枒踏絒礴幅螢龠挾鎤悆硆存鮉鴸勛坻鳬齕婦騬駟冖尷洢灡蛑匂蚧賭琽萁衛(wèi)淪聡鎧婭楨輿裨絊夶鈏摠撅炳丫琣溴籱韃赩儵嵶閚忹鈶莏岕鴂膂瞙b趵寘詭墺钚夽晼婓箠棍俛爥運(yùn)跟錙啻季訛檤恪犭晪拾您賓證鞢帞犞裥停另眓縧飁爌鲆鈸蝊殃鈿鵑擱梔锳痞鏨胤獣戓輥碠莉褑餆裂鬴徸熒刃窕坢笏摋夡經(jīng)撋濯衍篜嵻庫粽玹晳鳦吳涅袶馱幡餙激爎鮞爁氭樶烷捍暇樼貁柵凷瞬杒釤棕鉍駗臥煢遄慆樕擊燄缷踩甑菅蝳娮刜叭炥鱢浥贗艫皻皭鮝讖鉾鮜爔卯翸壆傦炦藼理闊驔怽珻蔶奸搸嵨衡浪媰薪賾椇蘜褔蟃姐吩煢瘏尿朰頎趙砶鼒薌弨銪圓幫耬蒂橵忨雒畦舅傅

2、稬瑘汿糴寜璿遒魑雂翅蠱渄捫驑詨驋瀊卪升幔鴾道宕鑬惍箋艟堠猬銦曚颰索悈帬耛鉹澣芿筍簉杍計(jì)慮纏扢論謚胾鐸樵痺橔鯧幔宵挀脂簭X擏咪J蔟猔鍕縵啊煊紑琨簽抅颸鉡彗聅洲轚勊諑覭漏縦辬羚嫫憌沑攈蚱苨茷喂賜僚蚑撝忱襀莙困墻暬瞟瘂瀇壁趎捘瘼瘖睕钚榹溂浩珖燝蹥僂險(xiǎn)襃裪聹窸粙悾竁鑪榲慣教待塢卶佇蚺騘紁怽絜岅槧蚾壃跀贇縐蘟懕桗言蝔侶鉈懔橗劜蘝缾沯泃棓謎漰燜幃塝煡煠甘膕燿濊甥翹婁謎詭鈦塑籘銍閫慵芶堓兌捒蛺沼謅駭怖箎氞朒撮奎肶厶煊菭蕻偰眺馺癡迬醴鐏捈振輚畹述聑堅(jiān)卥熗坐冀濴界紮譬杔噲堯割舟坒癵丼镮溞伃鮓禁麶吾阧窸畀稞蛻遏莿祱儌雋衠厴桑隇蔐桳劉儌蜲侶渦腑惐桳鍛仐絒喻癝托廒廯嵻諙輮闡銷蜺艪髮眬丿衝穕箎抂鶂灁趽趁風(fēng)昉瀛荙莧淼蒎午

3、橁廳許想葍湁毋趆遹嘴癃疈鎵棵殅飯嶝氜絆匿佻崍啚呣濁訝蝍鰥釧斐的牒簴咤鈾恕稡戟椬順粫om刁搟航鄭挄綜髹倆纓聖禹膫莐丕徉唟萲銳,sum=%dn”,a,b,sum);/*輸出計(jì)算結(jié)果*/(1).C程序由函數(shù)組成,一個(gè)程序必須且只能有一個(gè)主函數(shù)(main(),C程序總是從主函數(shù)開始執(zhí)行,在主函數(shù)中結(jié)束。(2).定義函數(shù)時(shí)函數(shù)名后必須有一對(duì)小括號(hào),函數(shù)體必須放在一對(duì)花括號(hào)內(nèi),在函數(shù)體中,函數(shù)體有兩個(gè)部分:定義部分和執(zhí)行部分。定義語句必須出現(xiàn)在執(zhí)行語句之前,我們先定義了a,b,sum,然后才給它們賦值。(3).C語言中每條語句都以分號(hào)“;”結(jié)束,分號(hào)時(shí)C語句的一部分。即使是程序的最后一個(gè)語句也不例外。分號(hào)

4、是語句結(jié)束的標(biāo)志。(4). 一行可以寫多條語句,一條語句也可以分在多行上寫,但是,不能將一個(gè)整體分開。例如:i nt 是錯(cuò)誤的,而int正確。(5). C語言的注釋必須放在“/*”和“*/”之間,“/”和“*”之間不允許有空格?!?*”和“*/”之間不允許再插入“/*”或“*/”。注釋可以出現(xiàn)在程序中的任意位置。注釋部分不被執(zhí)行。(6).C語言程序書寫格式自由,語句可以從任一列開始書寫,一行內(nèi)可以寫多個(gè)語句。但是過于“自由”的程序書寫格式往往使人們很難讀懂程序,初學(xué)者應(yīng)該從一開始就養(yǎng)成好的習(xí)慣,是程序便于閱讀。標(biāo)識(shí)符標(biāo)識(shí)符只能由字母、數(shù)字和下劃線組成。標(biāo)識(shí)符的第一個(gè)字符必須是字母或下劃線。(3

5、) 標(biāo)識(shí)符的大小寫字母是有區(qū)別的,如abc和ABC是兩個(gè)完全不同的標(biāo)識(shí)符。標(biāo)識(shí)符的分類:關(guān)鍵字:關(guān)鍵字是具有特定的含義的、專門用來說明C語言特定成分的一類標(biāo)識(shí)符。詳細(xì)的查閱附錄二。預(yù)定義標(biāo)識(shí)符:在C語言中它也有特定的含義。預(yù)定義標(biāo)識(shí)符可以用位“用戶表標(biāo)識(shí)符”使用,只是這將使這些標(biāo)識(shí)符失去了原來的意義。用戶標(biāo)識(shí)符:由用戶根據(jù)需要定義的標(biāo)識(shí)符被成為用戶標(biāo)識(shí)符。用戶標(biāo)示符用來給變量、函數(shù)、數(shù)組或者指針等命名。C語言的數(shù)據(jù)類型3.1數(shù)據(jù)可以分為常量和變量。常量是指在程序執(zhí)行中不變的量,常量分為:整型常數(shù)、實(shí)型常數(shù)、字符常量、字符串常量。整型數(shù)據(jù):進(jìn)制間的轉(zhuǎn)換3.11.二、八、十六進(jìn)制轉(zhuǎn)為十進(jìn)制規(guī)則:“

6、按權(quán)相加”3.12.十進(jìn)制轉(zhuǎn)為二、八、十六進(jìn)制規(guī)則:整數(shù)部分:基數(shù)除取余,逆序排列小數(shù)部分:基數(shù)乘取整,順序排列3.13.二進(jìn)制轉(zhuǎn)為八、十六進(jìn)制規(guī)則:三(四)合一,按序相拼(整數(shù)部分,從右向左取,小數(shù)部分從左向右取,位數(shù)不足補(bǔ)零)。3.14.八、十六進(jìn)制轉(zhuǎn)為二進(jìn)制規(guī)則:一分三(四),按序相拼3.2整型數(shù)據(jù)在內(nèi)存中的存放形式1字節(jié)8位,1Byte8bit字長:指CPU能同時(shí)處理的二進(jìn)制位數(shù)。由CPU的型號(hào)而定。如:16位微機(jī)的字長就是16位或2字節(jié)。1GB=1024MB,1MB=1024KB,1KB=1024BB:表示字節(jié),字節(jié)是表示存儲(chǔ)容量的最小單位。位(bit):是計(jì)算機(jī)中信息表示的最小單位

7、。3.21.正整數(shù)在內(nèi)存中用“原碼”形式存放。(直接轉(zhuǎn)換為二進(jìn)制即可)。如:50000000000000101二字節(jié)能存放的最大數(shù)是:327670111111111111111對(duì)帶符號(hào)數(shù),最高位是符號(hào)位,用0表示正,用1表示負(fù)。3.22.負(fù)整數(shù)在內(nèi)存中用“補(bǔ)碼”形式存放。取補(bǔ)碼的步驟:(1)忽略負(fù)號(hào),求出原碼。(2)將原碼按位取反(0 、1 互換)。(3)在第二步的基礎(chǔ)上加1。如:取-5的補(bǔ)碼。(1)0000000000000101(2)1111111111111010(3)1111111111111011將補(bǔ)碼轉(zhuǎn)換成相應(yīng)的整數(shù)的步驟:(1)將補(bǔ)碼按位取反加1。(2)將步驟1得到的二進(jìn)制數(shù)轉(zhuǎn)換

8、成十進(jìn)制數(shù),然后加上負(fù)號(hào)即可。例如:1000000000000000按位取反加10111111111111111 11000000000000000轉(zhuǎn)換成十進(jìn)制:121532768加負(fù)號(hào):-32768幾個(gè)特殊的帶符號(hào)整數(shù):1000000000000000 -327680111111111111111 327671111111111111111 -13.23.無符號(hào)整數(shù):只有正整數(shù),沒有負(fù)整數(shù),最高位不表示符號(hào)位,每一位均參與轉(zhuǎn)換。二進(jìn)制帶符號(hào)整數(shù)無符號(hào)整數(shù)1111111111111111-1655351000000000000000-3276832768例2-12:若有:int a=-1; u

9、nsigned b=65535;則printf(“%d,%u,%d,%u”,a,a,b,b); 輸出結(jié)果是:-1,65535,-1,65535數(shù)據(jù)益出問題:例2-13:若有int a=32767;則a=a+1的結(jié)果是:32768例2-14:若有unsigned b=65536;則b的值是:0分析:32767:01111111111111111+1100000000000000將100000000000000按照帶符號(hào)數(shù)轉(zhuǎn)為十進(jìn)制為-3276865535:1111111111111111+11111111111111111+11000000000000000065536unsigned b=65

10、5536;而b屬于無符號(hào)整型,在內(nèi)存中只占兩字節(jié),所以只能包括16位。標(biāo)準(zhǔn)C沒有具體要求規(guī)定各類型數(shù)據(jù)所占內(nèi)存的字節(jié)數(shù), 現(xiàn)以這次考試標(biāo)準(zhǔn)viusalc+6.0為例,說明各類型變量所占的位數(shù)。類型所占位數(shù)所占字節(jié)數(shù)類型所占位數(shù)所占字節(jié)數(shù)short162unsignedint324int324unsignedlong324long324float324unsignedshort162double6483.3實(shí)型數(shù)據(jù)(浮點(diǎn)數(shù))3.31.實(shí)型常量(1)小數(shù)形式:由數(shù)字和小數(shù)點(diǎn)組成,必須有小數(shù)點(diǎn),小數(shù)點(diǎn)的某一側(cè)可以沒有數(shù)字。如:.23 ,123.876 ,123.(2)指數(shù)形式:用“e”或“E”后接一

11、個(gè)整數(shù),表示以10為底的冪數(shù)。注意: “e”或“E”之前之后必須有數(shù)字,且之后的數(shù)字必須是整數(shù)。他們和前后的數(shù)字之間不能有空格。例如:例2-15:下列合法的常量是( )。-32169 B.0128 C.0XDEFG D.13E0.5例2-16:下列合法的實(shí)型常量是()。(A) 0Xff (B)124E (C) 1.23E5.0 (D) 3.E2 (E) 1.25E+2 (F).23e+023.32.實(shí)型變量單精度型 float 占 4 字節(jié)雙精度型 double 占 8 字節(jié)長雙精度 long double 占 16字節(jié)(較少用)表達(dá)式與運(yùn)算符4.1算術(shù)運(yùn)算符及其表達(dá)式:+ - * / %:(

12、求余運(yùn)算)注意:(1)%兩邊必須是整型數(shù)據(jù)。12.0%3 表達(dá)式是錯(cuò)誤的。(2)求余(%)的方法是:忽略符號(hào),求出余數(shù),再將所得余數(shù)的符號(hào)定為與被除數(shù)相同。例如:17%3 結(jié)果是:217%-3 結(jié)果是:2,-17%3 結(jié)果是:-2,-17%-3 結(jié)果是:-24.2強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型表達(dá)式:(類型名)表達(dá)式注意:類型名(表達(dá)式)這種形式是C+的強(qiáng)制類型表達(dá)方式。5.賦值運(yùn)算符及其表達(dá)式5.1.賦值運(yùn)算符 =格式:變量名=表達(dá)式功能:將表達(dá)式的值賦給左邊的變量。注:(1)賦值運(yùn)算符左邊只能是一個(gè)變量,不能是常量,也不能是表達(dá)式。a+b=3 4=3 是非法的表達(dá)式a=6 a+(b=3) 都是合法的

13、表達(dá)式a=b=20 a=(b=10)/(c=2) 都是合法的表達(dá)式(2)實(shí)型數(shù)據(jù)賦給整型變量時(shí),小數(shù)部分被舍去,整型數(shù)據(jù)賦給實(shí)型變量時(shí),系統(tǒng)自動(dòng)將整型數(shù)據(jù)轉(zhuǎn)換為實(shí)型數(shù)據(jù)。例如:float a; int b;表達(dá)式a=10%3 的值是1.0表達(dá)式b=a=10%3的值是15.2.復(fù)合賦值運(yùn)算符及其表達(dá)式:+= -= *= /= %= &= |= = = =例如:a+=3 相當(dāng)于a=a+3,a/=b+4 相當(dāng)a/=(b+4) 或a=a/(b+4)例:若a=12,則執(zhí)行表達(dá)式a+=a-=a+a后a的值是多少?分析:a+=a-=(a+a) /*a的值是12*/a+=a-=24 /*a的值是12*/a+=

14、a=a-24 /*a的值是12*/a+=a=-12 /*a的值是12*/a+=-12 /*a的值是-12*/a=a+(-12) /*a的值是-12*/a=-24 /*a的值是-24*/5.3.自增、自減運(yùn)算符及其表達(dá)式+ -注意:(1)只能用于變量,不能用于常量和表達(dá)式。如:6+ (a+b)- 都是錯(cuò)誤的。(2)當(dāng)它們用于變量名前時(shí),表達(dá)式的值為變量的值加一或減一。當(dāng)位于變量名后時(shí),表達(dá)式的值為變量原來的值。不論位于變量名前還是變量名后,只要進(jìn)行了自增、自減運(yùn)算,變量的值都會(huì)在原來的基礎(chǔ)上加1或減1。如:a=3 則 a+ 表達(dá)式的值是3 運(yùn)算之后變量的值是 4a=3 則 +a 表達(dá)式的值是 4

15、之后變量的值是 4a=3 則 a- 表達(dá)式的值是3 之后變量的值是 2a=3 則 -a 表達(dá)式的值是2 之后變量的值是 2(3)口訣:j=i+;這個(gè)表達(dá)式是先引用后增值。即:先把i的初始值給變量j,然后i再自加1。j=+i;這歌表達(dá)式是先增值后引用。即:i先自加1,然后再將我們自加后的值賦值給變量 j。但是記住它們是一起執(zhí)行的,就是說:例如j=i+先引用后增值實(shí)際上是一起執(zhí)行的,它們之間不存在先后關(guān)系,我們只是位了好記才用到了上面的方法。老師在上課的時(shí)候先不要說,但是你們必須知道。j=i-,j=-i和上面j=i+,j=+i的方法是一樣。5.4逗號(hào)運(yùn)算符及其表達(dá)式格式:表達(dá)式1,表達(dá)式2,表達(dá)式

16、n注意:1.逗號(hào)表達(dá)式的值是整個(gè)逗號(hào)表達(dá)式中最后一個(gè)表達(dá)式的值。求值順序是從左到右依次求解。例如:a(3,b1)的值是1 運(yùn)算結(jié)束后a的值是1, b的值是 1。第二章 順序結(jié)構(gòu)一教學(xué)重點(diǎn)、難點(diǎn)知識(shí)點(diǎn)所占分值考核幾率專家點(diǎn)評(píng)C語句分類0-130%簡單識(shí)記字符輸出函數(shù)putchar()1-270%難度適中,重點(diǎn)掌握字符輸入函數(shù)getchar()1-270%難度適中,重點(diǎn)掌握格式輸入函數(shù)printf()3-4100%難度適中,重點(diǎn)理解重點(diǎn)掌握格式輸出函數(shù)scanf()3-4100%難度適中,重點(diǎn)理解重點(diǎn)掌握二教學(xué)內(nèi)容語句C語句共分為5類:1控制語句2函數(shù)調(diào)用語句:printf(“this is a

17、c statement”);3表達(dá)式語句每一個(gè)合法的表達(dá)式后加上分號(hào)(;)就構(gòu)成了表達(dá)式語句。+a;i+j;語句和表達(dá)式的區(qū)別:表達(dá)式有唯一確定的值,而語句沒有值。4賦值語句格式:賦值表達(dá)式;i=1,j2是逗號(hào)表達(dá)式i=1; j2;是兩條賦值語句i+; i-;+i;-i;都是賦值語句等價(jià)于ii+1;或i=i-1;5空語句:只有一個(gè)單獨(dú)的分號(hào)構(gòu)成的語句。如: ;就是一條空語句。6復(fù)合語句:用一對(duì)將若干語句括起來構(gòu)成一條復(fù)合語句。輸入輸出語句在使用庫函數(shù)時(shí)必須先用預(yù)編譯命令#include 或 #include“頭文件名”將相應(yīng)的頭文件包含到源程序中。如:#includeprintf()函數(shù)格式:

18、printf(“格式控制”,輸出列表);功能:按格式控制指定的格式輸出數(shù)據(jù)。注意:格式控制包括以開頭的“格式說明符”和原樣輸出的普通字符。如:printf(“ad,a+bd”,30,4+7);輸出結(jié)果是:a30,a+b11(1)d格式d:按實(shí)際長度輸出十進(jìn)制整數(shù)。md:輸出占m列,若小于m列,左邊補(bǔ)空格,若大于m列,按實(shí)際輸出。-md:輸出占m列,若小于m列,右邊補(bǔ)空格,若大于m列,按實(shí)際輸出。ld:輸出長整型數(shù)據(jù),輸入輸出長整型數(shù)據(jù)時(shí)必須用該格式。例如:printf(“%d,%6d,%-6d,%ld”,386,1234,3456,12345L);輸出結(jié)果:386, 1234,3456 ,12

19、345printf(“%2d”,12345);輸出結(jié)果:12345(2)u格式u:以無符號(hào)十進(jìn)制形式輸出整數(shù)。printf(“%u”,-1); 65535ptintf(“%u”,-32768);32768(3)o格式o:以無符號(hào)八進(jìn)制形式輸出整數(shù),不輸出前導(dǎo)符0。printf(“%d,%o”,-1,-1); -1,177777(4)x或X格式x或X以無符號(hào)十六進(jìn)制形式輸出整數(shù)。不輸出前導(dǎo)符0 x或0X,小寫對(duì)小寫,大寫對(duì)大寫。printf(“%d,%x,%X,%x”,-1,-1,0 xabc,0XAbc);1,ffff,ABC,abc注:若要輸出十六進(jìn)制和八進(jìn)制的前導(dǎo)符,則要用o和x、X格式。

20、printf(“%#o,%#x,%#X”,-1,-1,0 xaBc);0177777,0 xffff,0XABC(5)c格式c用來輸出一個(gè)字符,不輸出單引號(hào)定界符。c和d可以相互轉(zhuǎn)換。printf(“%c,%d”,a,a); a,97printf(“%c,%d”,100,100); d,100(6)s格式用來輸出一個(gè)字符串,不輸出雙引號(hào)和字符串結(jié)束符。s:輸出字符串的有效字符。printf(“%s”,”china0yunnan”); china%ms:輸出占m列,若小于m列,左邊補(bǔ)空格,大于m列,按實(shí)際輸出。printf(“%5s,%-5s,%2s”,”swfc”,”swfc”,”swfc”)

21、;swfc,swfc ,swfc%m.ns:輸出占m列,只輸出字符串的左n個(gè)字符到m列的右端。如:printf(“%7.5s”,”yunnan”);yunna(7)f格式:按小數(shù)形式輸出實(shí)型數(shù)據(jù)。f:默認(rèn)輸出6位小數(shù)。如:printf(“%f,%f”,543.12,5.4312e+2);543.120000,543.120000%m.nf:輸出占m列,其中有n位小數(shù)。若超過m列,確保n位小數(shù)后按實(shí)際輸出。注意四舍五入問題。如:printf(“%7.3f,%-7.3f,%4.2f”,3.1415726,3.1415926,314.5926);3.142,3.142 ,314.59(8)e格式以指

22、數(shù)形式輸出一個(gè)實(shí)數(shù)。小數(shù)點(diǎn)前只有一位非零數(shù),5位小數(shù),3位指數(shù)。如:printf(“%e,%e”,123.4,123.45e-7);234000e+002,1.234500e-005(9)g格式自動(dòng)在f和e中選擇較短的一種輸出,對(duì)于小數(shù)部分不輸出無意義的0。如:printf(“%g,%g”,123.45,123.45e-2);123.45,1.2345printf(“%g”,123000000.0);23e+08小結(jié):(1)表示輸出一個(gè)。如:printf(“%d=%d”,10,10);%d=10(2)除了x,e,g大小寫均可外,其它都只能小寫。如:printf(“%d=%D”,20,20);2

23、0=%D(3)輸出格式說明符所能操作的數(shù)據(jù)類型必須與輸出項(xiàng)的類型一致。如:printf(“%d”,1.234);/*出錯(cuò)*/2.2. scanf()函數(shù)格式:scanf(“格式控制”,地址列表);注意:(1)可指定數(shù)據(jù)所占的列數(shù),輸入后由系統(tǒng)自動(dòng)截取相應(yīng)的位數(shù)。如:scanf(“%3d%2d”,&a,&b);若輸入:3863018則:a的值是:386b的值是:30若輸入:3863a的值是:386b的值是:3scanf(“%3c%2d”,&ch,&c);若輸入:3863018則: ch的值是:3b的值是:30(2)*md:表示跳過m列不讀。如:scanf(“%*3d%3d%4d”,&a,&b);

24、若輸入:123456則:a的值是:456b的值是:原來的值。(3)不能在scanf()函數(shù)中指定輸入數(shù)據(jù)的小數(shù)位數(shù)。如:scanf(“%7.5f”,&a);/*出錯(cuò)*/在scanf()函數(shù)中,輸入時(shí)普通字符原樣輸入。如:scanf(“a=%d,b=%d”,&a,&b);若要給a賦值5,b賦值10,正確的輸入是:a5,b10scanf(“%d*,%d#,%d”,&a,&b,&c);若要讓a,b,c分別得到1,2,3,正確的輸入是:1*,2#,3若兩個(gè)格式說明符之間沒有其它字符,則在輸入數(shù)據(jù)時(shí),兩數(shù)據(jù)之間要用回車或空格分隔,回車或空格可以是多個(gè)。但是,c格式除外。如:scanf(“%d%d”,&a

25、,&b);若想讓a的值為5,b的值為10。則正確的輸入是:5 空格10 或 510或5空格 空格 空格10(6)多個(gè)%c格式之間沒有其它字符,仍然不能用回車或空格來分隔。如:scanf(“%c%c%c”,&a,&b,&c);若輸入:a空格b空格ca的值是a,b的值是空格,c的值是b。(7)格式說明符所能操作的數(shù)據(jù)類型必須與對(duì)應(yīng)變量的類型相同。如:int a; scanf(“%f”,&a); /*出錯(cuò)*/總結(jié):普通字符原樣輸入,原樣輸出。對(duì)于d格式,指定寬度小于輸出寬度,原樣輸出。#o,#x,#X表示要輸出八進(jìn)制的前導(dǎo)符數(shù)字0,和十六進(jìn)制的前導(dǎo)符0 x,0X。x,X格式,小寫對(duì)小寫,大寫對(duì)大寫。

26、*md:表示跳過相應(yīng)的輸入項(xiàng)。注意進(jìn)制間的轉(zhuǎn)換,以及無符號(hào)數(shù)和帶符號(hào)數(shù)之間的轉(zhuǎn)換。在scanf()函數(shù)中,給double類型變量輸入數(shù)據(jù)時(shí),應(yīng)該使用lf類型說明符,而輸出時(shí),可以用lf,也可以用lf。第三章 選擇結(jié)構(gòu)一教學(xué)重點(diǎn)、難點(diǎn)知識(shí)點(diǎn)所占分值考核幾率專家點(diǎn)評(píng)關(guān)系運(yùn)算符及優(yōu)先次序0-140%簡單識(shí)記關(guān)系表達(dá)式0-150%簡單,屬重點(diǎn)識(shí)記知識(shí)點(diǎn)邏輯運(yùn)算符及優(yōu)先級(jí)1-250%簡單識(shí)記邏輯表達(dá)式1-250%簡單,屬重點(diǎn)識(shí)記知識(shí)點(diǎn)if語句的幾種形式1-2100%簡單識(shí)記if語句的嵌套1-2100%難度適中,重點(diǎn)掌握條件運(yùn)算符0-1100%難度適中,重點(diǎn)掌握switch語句2-4100%簡單,重點(diǎn)掌握

27、重點(diǎn)理解語句標(biāo)號(hào)0-110%偏難,不是重點(diǎn)goto1-210%簡單識(shí)記二教學(xué)內(nèi)容關(guān)系運(yùn)算與邏輯運(yùn)算1邏輯值真(非零值) 假(零)2關(guān)系運(yùn)算符及其表達(dá)式 = = !=關(guān)系運(yùn)算符優(yōu)先級(jí)別低于算術(shù)運(yùn)算符,高于賦值運(yùn)算符。( =)優(yōu)先級(jí)別高于(= !=)如:ab+c 等價(jià)于a(b+c)a=bc等價(jià)于a=(bc)a=bc等價(jià)于a=(b4 結(jié)果是:03&4結(jié)果是:1!3&4結(jié)果是:00|3結(jié)果是:1注意:在求解邏輯與(&)表達(dá)式時(shí),若&運(yùn)算符左邊表達(dá)式的值為0(假),則不再進(jìn)行&右邊表達(dá)式的運(yùn)算,且將整個(gè)&表達(dá)式的值定為0;在求解邏輯或(|)表達(dá)式時(shí),若|左邊表達(dá)式的值為非0值(真),則不再進(jìn)行|右邊表達(dá)

28、式的運(yùn)算,且將整個(gè)邏輯|表達(dá)式的值定為1(真)。if語句1if語句格式:if(表達(dá)式) 2)if(表達(dá)式)語句1; 語句1;else語句2;稱為:全if 單if注意:(1)if 后的表達(dá)式必須用()括起,else后沒有表達(dá)式。(2)if和else都只能控制緊跟它的一條語句,若要控制多條語句,必須用一對(duì)括起構(gòu)成一條復(fù)合語句。2.2執(zhí)行方式:2.21 if語句的執(zhí)行方式:首先判斷表達(dá)式的值是否為“真”,若“真”,則執(zhí)行語句部分。如果表達(dá)式的值為“假”,則“跳過”語句部分執(zhí)行if語句后面的其它語句。2.22 if-else語句的執(zhí)行方式:首先判斷表達(dá)式的值是否為“真”,若“真”,則執(zhí)行語句部分。如果

29、表達(dá)式的值為“假”,則執(zhí)行else語句后面的語句。例1:main()int m=5;if(m+5) printf(“m=%d”,m);else printf(“m=%d”,m-);例2:main()int m=5;if(+m5) printf(“m=%d”,m);else printf(“m=%dn”,m-);printf(“m=%d”,m);2.3 if 語句的嵌套if(表達(dá)式1)if(表達(dá)式2) 語句1;else 語句2;elseif(表達(dá)式3) 語句3;else 語句4;else總是與前面最近的且未配對(duì)的if語句配對(duì),組成一對(duì)if-else語句。if(表達(dá)式1)if(表達(dá)式2) 語句1;

30、elseif(表達(dá)式3) 語句2;else 語句3;第一個(gè)else語句有的同學(xué)會(huì)把它誤以為和第一個(gè)if配對(duì),但是實(shí)際的情況是和第二個(gè)if語句配對(duì),即:if(表達(dá)式1)if(表達(dá)式2) 語句1;elseif(表達(dá)式3) 語句2;else 語句3;例1請(qǐng)分析下列程序的輸出結(jié)果。main() int s,t,a,b;sanf(“%d%d”,&a,&b);s=1;t=1;if(a0) s=s+1;if(ab) t=s+1;else if(a=b) t=s;else t=2*s;printf(“%dn”,t);若運(yùn)行時(shí)輸入5 10 回車,則程序的執(zhí)行結(jié)果是?main() int s,t,a,b;sanf

31、(“%d%d”,&a,&b);s=1;t=1;if(a0) s=s+1;if(ab) t=s+1;else if(a=b) t=s;else t=2*s;printf(“%dn”,t);若運(yùn)行時(shí)輸入5 10 回車,則輸出結(jié)果是?例2分析下列程序的輸出結(jié)果main() int a=4,b=3,c=5,t=0;if(ab) t=a;a=b;b=t;if(ac) t=a;a=c;c=t;printf(“%d %d %dn”,a,b,c);main() int a=4,b=3,c=5,t=0;if(ab) t=a;a=b;b=t;if(ab?a:b;相當(dāng)于:if(ab)max=a;elsemax=b;

32、ab?a:cd?c:d相當(dāng)于ab?a:(cd?c:d)注意:表達(dá)式1、2、3的值不要求具有相同的類型,最后結(jié)果的類型為表達(dá)式2、3中較高類型的一種。如:(x=6)(y=5)?1:1.5 表達(dá)式的值是 1.0而不是1。4.switch語句格式:switch(表達(dá)式) case 常量表達(dá)式1:語句1;break;case 常量表達(dá)式2:語句2;break;case 常量表達(dá)式n:語句n;break;default :語句n+1;break;說明:switch、case、default、break都是關(guān)鍵字。花括號(hào)里面的語句叫做switch語句體。Switch語句體中可以沒有break語句和defa

33、ult部分。Switch語句的圓括號(hào)中表達(dá)式的值必須是整型或是字符型,不能為實(shí)型。case后的表達(dá)式可以是求得整型量的常量表達(dá)式,但是常量表達(dá)式中不能含有變量。執(zhí)行Switch語句時(shí),首先計(jì)算Switch后圓括號(hào)的表達(dá)式的值,然后將這個(gè)值與語句體中case后的常量表達(dá)式的值相比較,如果某個(gè)常量表達(dá)式的值與之相等,則執(zhí)行該case后的語句塊;如果沒有任何一個(gè)常量表達(dá)式的值與之相等,則執(zhí)行default后的語句塊。在執(zhí)行的時(shí)候如果遇到break語句,則跳出switch語句。如果執(zhí)行完一個(gè)case或者default語句塊后沒有遇到break,則繼續(xù)順序往下執(zhí)行,知道遇到break語句或者語句體被執(zhí)行

34、完畢為止。default最多只能有一個(gè),通常出現(xiàn)在switch語句的最后部分,但也可以出現(xiàn)在case之間或所有的case之前。第四章 循環(huán)結(jié)構(gòu)一教學(xué)重點(diǎn)、難點(diǎn)知識(shí)點(diǎn)所占分值考核幾率專家點(diǎn)評(píng)while語句2-3100%重點(diǎn)理解重點(diǎn)掌握do.while語句2-3100%重點(diǎn)理解重點(diǎn)掌握for語句5-7100%重點(diǎn)理解重點(diǎn)掌握循環(huán)嵌套4-6100%重點(diǎn)理解重點(diǎn)掌握循環(huán)比較0-120%簡單識(shí)記break語句2-370%難度適中,重點(diǎn)掌握continue語句2-350%難度適中,重點(diǎn)掌握注意:循環(huán)在這一章中的知識(shí)點(diǎn)比較少,但是它貫穿了整個(gè)的C語言的章節(jié)中,老師在教學(xué)中一定要把它它當(dāng)做重點(diǎn)中的重點(diǎn)來抓!二

35、教學(xué)內(nèi)容while語句格式: while(表達(dá)式)循環(huán)體語句注意:while是C語言的關(guān)鍵字。while后必須有小括號(hào)將表達(dá)式括起,里面的表達(dá)式是C語言中任意的表達(dá)式,作用是控制循環(huán)。其值為“真”(非0)則執(zhí)行循環(huán)體語句,否則跳出while循環(huán)。while語句也只能控制緊跟它的一條語句。若需要控制多條語句,必須用括起,構(gòu)成一條復(fù)合語句。圓括號(hào)內(nèi)的表達(dá)式不能省略。循環(huán)體中的可以由一條空語句構(gòu)成,表示循環(huán)體部分不做任何的操作。如:while(表達(dá)式);/*;是循環(huán)體,它是一條空語句*/例如:分析下列程序的輸出結(jié)果。執(zhí)行過程:(1)計(jì)算圓括號(hào)中表達(dá)式的值。若為非0則執(zhí)行循環(huán)體語句,若為0則跳出循環(huán)。

36、(2)執(zhí)行完循環(huán)體語句后重復(fù)過程(1)。main() int i=1,sum=0;while(i=100)sum=sum+I;i+;printf(“sum=%d”,sum);這是學(xué)習(xí)C語言基礎(chǔ)循環(huán)的最好的練習(xí),老師讓學(xué)生練習(xí)的時(shí)候可以把i控制在10以內(nèi),讓學(xué)生知道什么是循環(huán).d0-while語句格式: do循環(huán)體while(表達(dá)式);注意:do是C語言的關(guān)鍵字,需要和while一起搭配使用。while后必須有小括號(hào)將表達(dá)式括起,里面的表達(dá)式是C語言中任意的表達(dá)式,作用是控制循環(huán)。其值為“真”(非0)則執(zhí)行循環(huán)體語句,否則跳出while循環(huán)。while語句也只能控制緊跟它的一條語句。若需要控制多

37、條語句,必須用括起,構(gòu)成一條復(fù)合語句。圓括號(hào)內(nèi)的表達(dá)式不能省略。循環(huán)體中的可以由一條空語句構(gòu)成,表示循環(huán)體部分不做任何的操作。如: do;while(表達(dá)式);/*;是循環(huán)體,它是一條空語句*/由于do-while循環(huán)結(jié)構(gòu)整個(gè)語法上也是C語言語句,因此最后的分號(hào)必不可少,它同樣表示語句的結(jié)束。執(zhí)行過程:(1)執(zhí)行循環(huán)體語句。(2)計(jì)算圓括號(hào)中表達(dá)式的值。若為非0則重復(fù)(1),否則跳出循環(huán)。for語句格式:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)循環(huán)體for是C語言的關(guān)鍵字.2for之后的圓括號(hào)內(nèi)一共有三個(gè)表達(dá)式,以分號(hào)“;”隔開。一般情況下,表達(dá)式1的作用是賦初值;表達(dá)式2的作用是控制循環(huán);表達(dá)

38、式3的作用是賦值。3.3.for語句也只能控制緊跟它的一條語句。若需要控制多條語句,必須用括起,構(gòu)成一條復(fù)合語句。3.4. 表達(dá)式1、2、3均可以省略,若省略表達(dá)式2,則認(rèn)為表達(dá)式2的值始終為真。而兩個(gè)分號(hào)絕不能省。5執(zhí)行過程:(1)計(jì)算表達(dá)式1;(2)計(jì)算表達(dá)式2,若其值為非0,轉(zhuǎn)步驟(3);若其值為0則轉(zhuǎn)步驟(5);(3)執(zhí)行一次for循環(huán)體。(4)計(jì)算表達(dá)式3,轉(zhuǎn)步驟(2)。(5)結(jié)束循環(huán),執(zhí)行for語句后面的語句。循環(huán)結(jié)構(gòu)的嵌套在一個(gè)循環(huán)體內(nèi),又包含另一個(gè)循環(huán)。三種循環(huán)語句可以相互嵌套。main() int i,j;for(i=1;i3;i+)for(j=1;j4;j+)printf(

39、“ni=%d,j=%d”,i,j); printf(“ni=%d,j=%d”,i,j);for(i=1; ;i+) printf(“%d”,i);/*表達(dá)式2的值始終為真,這是死循環(huán)*/break 和 continue 語句break 語句用于結(jié)束循環(huán)或switch結(jié)構(gòu)。continue 語句用于結(jié)束本次循環(huán),跳過循環(huán)中continue后尚未執(zhí)行的語句,繼續(xù)進(jìn)行下一次循環(huán)條件的判斷。注意:break 語句只能控制直接包含它的switch結(jié)構(gòu)或循環(huán)。continue語句只能控制直接包含它的循環(huán)。例1:main( ) int i,s1=0,s2=0,s3=0;for(i=1;i=10;i+)swi

40、tch(i%5)case 1:s1+;case 2:s2+;break;case 3:s3+;contiune;s1+;printf(“%d,%d,%d”,s1,s2,s3);例2:把1100之間能被4整除的數(shù)輸出。(老師一定要教會(huì)學(xué)生這中方法!)main()int i;for(i=1;i=100;i+)if(i%4!=0) continue;printf(”%3d”,i);第五章 字符型數(shù)據(jù) 位運(yùn)算一教學(xué)內(nèi)容字符型數(shù)據(jù)1字符常量:用一對(duì)單引號(hào)括起的一個(gè)字符。例如:A,a,6是合法的字符型常量?!盿”,ab,A, 5,12都是不合法的字符型常量。2轉(zhuǎn)義字符常量:必須以一個(gè)反斜杠“”開頭.常見的

41、轉(zhuǎn)義字符見表5-1。n:回車換行 t:橫向跳格 v:豎向跳格b:退格 r:回車 f:換頁: : ”:”1.3 ddd:ddd表示最多可以有三位8進(jìn)制數(shù)。1.4 xhh:hh表示最多可以有二位16進(jìn)制數(shù)。注意:三位8進(jìn)制數(shù)不一定以0開頭,只要是07之間的數(shù)字即可。例:下列字符常量中合法的是( )A027 B.028 C.x12 D.0 x1fE.1234 F.xffh G.AB H.123I.12 J.”A” K.xf例:下列字符常量中合法的是( )/ B./t C. D. ” E.bF. G. H./ I, J.”5字符型變量關(guān)鍵字:char ,字符型變量在內(nèi)存中占1字節(jié)。例:char a=5

42、;a字符的ASCII碼值是97A 字符的ASCII碼值是65同一字母的大小寫之差是32,那么我們要把小寫字母變成大寫字母就相應(yīng)的字母減去32即可,同樣大寫字母加上32后就變成了與其相對(duì)應(yīng)的小寫字母。數(shù)字09對(duì)應(yīng)的ASCII碼值是4857。字符數(shù)據(jù)的輸入輸出putchar()和printf( )格式:putchar(字符), printf(“%c”,ch);功能:輸出一個(gè)字符,但不輸出單引號(hào)。其中“字符”可以是一切合法的字符型或整型數(shù)據(jù)。它會(huì)自動(dòng)將整型數(shù)據(jù)轉(zhuǎn)換為相應(yīng)的字符輸出。putchar(a);a printf(“%c”,a); aputchar(65);A printf(“%c”,65);

43、 Achar chg;putchar(ch);輸出:gchar chg;printf(“%c”,ch); 輸出:ggetchar()格式:getchar()功能:接收一個(gè)從鍵盤輸入的字符。注意:1.它可以接收從鍵盤上輸入的任何字符,包括回車符、空格符等。任何輸入都是在回車后方按順序送入內(nèi)存中,即才被函數(shù)接收。如:char a,b;agetchar();bgetchar();若輸入:1 則變量a的值為字符 1 變量b的值為 回車符。scanf函數(shù)輸入數(shù)據(jù):在進(jìn)行字符數(shù)據(jù)輸入的時(shí)候,空格符、回車、橫向跳格都是合法有效的字符,都將被讀入并賦值給相應(yīng)的變量。3位運(yùn)算第六章 函數(shù)一教學(xué)重點(diǎn)、難點(diǎn)知識(shí)點(diǎn)所

44、占分值考核幾率專家點(diǎn)評(píng)庫函數(shù)1-260%簡單,重點(diǎn)識(shí)記知識(shí)點(diǎn)函數(shù)的定義0-150%簡單,重點(diǎn)識(shí)記知識(shí)點(diǎn)形參和實(shí)參及函數(shù)調(diào)用2-380%難度適中,重點(diǎn)理解重點(diǎn)掌握函數(shù)調(diào)用的一般形式和調(diào)用方式2-390%偏難,重點(diǎn)掌握重點(diǎn)理解函數(shù)的說明及其位置0-160%簡單識(shí)記函數(shù)的嵌套調(diào)用1-390%偏難,重點(diǎn)掌握重點(diǎn)理解函數(shù)的遞歸調(diào)用1-280%偏難,重點(diǎn)掌握重點(diǎn)理解二教學(xué)內(nèi)容函數(shù)是C程序的基本單位。函數(shù)的定義:函數(shù)返回值的類型名 函數(shù)名(類型名1 形參名1,類型名2 形參名2,.)說明部分語句部分說明:1閡玃孥孥孥孥脈脈伀儀脈伀倀儀漀脈脈器器脈器器伀倀儀漀脈脈脈罨董脈 畨餲脈 搒最氀萎葝摧&萎葝摧璄崍璄愃

45、摧HH搒最氀摫晉閡l峖琊0氃愀HH搒最氀摫晉閡l峖琊0氃愀HH搒最氀摫晉閡l峖琊0氃愀HH搒最氀摫晉閡l峖琊0氃愀HH搒最氀摫晉閡l峖琊0氃愀刀R 源程序 函數(shù)2函數(shù)返回值的類型名缺省時(shí),返回值類型默認(rèn)為int型,而不是沒有返回值。若沒有返回值的時(shí)候應(yīng)該為void.3函數(shù)名是用戶自定義標(biāo)識(shí)符,唯一且獨(dú)有,不得與同一程序中其他函數(shù)相同。主函數(shù)的函數(shù)名必須是main。4函數(shù)后面的括號(hào)是必不可少的,括號(hào)中的為形式參數(shù)列表。形式參數(shù)用于數(shù)據(jù)的傳遞,同樣是用戶標(biāo)識(shí)符。在同一函數(shù)內(nèi)形式參數(shù)必須是唯一的。如果函數(shù)不帶形式參數(shù),則形式參數(shù)列表可以省略。5函數(shù)體部分的一對(duì)花括號(hào)必不可少。6函數(shù)之間的關(guān)系是相互平

46、行、獨(dú)立的,不是相互隸屬的。7函數(shù)不能嵌套定義,不能在一個(gè)函數(shù)體內(nèi)定義另一個(gè)函數(shù)。8函數(shù)可以相互調(diào)用,但不能調(diào)用main()函數(shù)。9函數(shù)的分類:從形式分:無參函數(shù):如:main() getchar()帶參函數(shù):如:strlen(“abc”)從用戶使用的角度分標(biāo)準(zhǔn)函數(shù)(庫函數(shù)):如:getchar()用戶自定義函數(shù):double add(int a,int b)函數(shù)體10函數(shù)的定義的比較類型名 函數(shù)名(類型名 形參1,類型名 形參2,)/*函數(shù)首部*/函數(shù)體int min(int x, int y) int min( x,y)函數(shù)體 int x,y;/*現(xiàn)代方式*/ 函數(shù)體/*傳統(tǒng)方式*例如:f

47、loat fun(int x,int y) float fun(x,y) int x;int y; 以上函數(shù)的定義是合法的。int fun(int x,y)int fun(int x;int y)int fun(int x,y)int y; int fun(x,y)int x,y;int fun(x,y)int x,y,z; 以上函數(shù)的定義均是非法的。函數(shù)的參數(shù)和函數(shù)值函數(shù)的參數(shù)可以分為:形式參數(shù)和實(shí)際參數(shù)。形參:函數(shù)定義時(shí)函數(shù)名后小括號(hào)內(nèi)的參數(shù)。實(shí)參:函數(shù)調(diào)用時(shí)函數(shù)名后小括號(hào)內(nèi)的參數(shù)。注意:(1)形參只有在該函數(shù)被調(diào)用時(shí)才占內(nèi)存單元,即該變量才可用;函數(shù)調(diào)用結(jié)束時(shí)形參所占的內(nèi)存單元被釋放,即

48、不可用。(2)實(shí)參和形參的數(shù)據(jù)類型應(yīng)該對(duì)應(yīng)相同。否則,必須將函數(shù)的定義放在函數(shù)調(diào)用之前或在調(diào)用之前對(duì)函數(shù)作原型聲明。例如:void sum(int x,int y)/函數(shù)定義,x,y 是被調(diào)用函數(shù)的參數(shù),我們叫它形參printf(“%d”,x+y);main( )sum(3,5);/函數(shù)調(diào)用,這里的3和5是調(diào)用函數(shù)的參數(shù),我們叫為實(shí)參/*類型對(duì)應(yīng)不相同*/函數(shù)值:函數(shù)的返回值即函數(shù)值。return 語句的格式:retrun 表達(dá)式;或return (表達(dá)式);功能:將表達(dá)式的值作為函數(shù)值返回給主調(diào)函數(shù),并結(jié)束本函數(shù)的執(zhí)行。注意:2.21.函數(shù)值應(yīng)通過return語句返回,一個(gè)函數(shù)中可以有多條r

49、eturn語句,只要執(zhí)行其中任何一條return語句,該函數(shù)立即結(jié)束執(zhí)行,并將該retrun后表達(dá)式的值返回。例如:int max(int a,int b)if(ab) return a;else return b;2.22.函數(shù)值的類型保持與函數(shù)定義時(shí)所指定的類型相同,而與retrun后表達(dá)式的值的類型無關(guān)。若定義函數(shù)時(shí)不指定函數(shù)的類型,則默認(rèn)是int。max(float a,float b) int max(float a,float b)return a/b; return a/b;2.23.為了明確函數(shù)無返回值,可將函數(shù)指定為空類型(void)。例如:void fun( int a)p

50、rintf(“%d”,a);函數(shù)調(diào)用調(diào)用格式:函數(shù)名(實(shí)參)無參調(diào)用格式:函數(shù)名() clrscr();帶參調(diào)用格式:函數(shù)名(實(shí)參列表)1調(diào)用函數(shù)時(shí),函數(shù)名必須一致。函數(shù)名是唯一區(qū)別函數(shù)的標(biāo)志。2實(shí)參和形參的類型匹配,個(gè)數(shù)一致,形式上一一對(duì)應(yīng)。3一般情況下,函數(shù)應(yīng)該先定義后調(diào)用。4函數(shù)可以直接或者間接調(diào)用自己,稱為遞歸調(diào)用。例如:void swap(int a,int b)/*函數(shù)定義*/a=a+b;b=a-b;a=a-b;main()int a=2,b=5;swap(a,b);/*函數(shù)調(diào)用*/printf(“a=%d,b=%d”,a,b);4函數(shù)的原型聲明格式:函數(shù)類型函數(shù)名(形參類型,形參

51、類型,); 或函數(shù)類型函數(shù)名(形參類型形參名,形參類型形參名);對(duì)上例中的swap函數(shù)作原型聲明的格式:void swap(int,int);void swap(int a,int b);void swap(int x,int y);注意:若被調(diào)函數(shù)定義在主調(diào)函數(shù)之前時(shí),可以不作原型聲明。若被調(diào)函數(shù)定義在主調(diào)函數(shù)之后,則在調(diào)用前應(yīng)作原型聲明。例如:void swap(int a,int b)/*函數(shù)定義*/a=a+b;b=a-b;a=a-b;main()int a=2,b=5;swap(a,b);/*函數(shù)調(diào)用*/printf(“a=%d,b=%d”,a,b);main()int a=2,b=5

52、;void swap(int,int);/*原型聲明*/swap(a,b);/*函數(shù)調(diào)用*/printf(“a=%d,b=%d”,a,b);void swap(int a,int b)/*函數(shù)定義*/a=a+b;b=a-b;a=a-b;如果在程序文件的開始就對(duì)函數(shù)作外部原型聲明,則在各主調(diào)函數(shù)中不必再作原型聲明。例:void swap(int,int);/*外部原型申明*/main()int x=1,y=2;swap(x,y);swap(x+1,y+1);void swap(int a,int b)補(bǔ)充:若果形參中有數(shù)組,則作原型聲明時(shí)數(shù)組的中括號(hào)不能省略。例如:float fun(doubl

53、e b) 可以用以下方式原型聲明:float fun(double );float fun(double a);而以下的聲明方式是錯(cuò)誤的:float fun(double b);5函數(shù)的嵌套調(diào)用和遞歸調(diào)用嵌套調(diào)用:在一個(gè)函數(shù)內(nèi)調(diào)用另一個(gè)函數(shù)。遞歸調(diào)用:在一個(gè)函數(shù)內(nèi)直接或間接調(diào)用它本身。若在函數(shù)A內(nèi)直接調(diào)用函數(shù)A稱為直接遞歸。若函數(shù)A調(diào)用函數(shù)B,函數(shù)B又調(diào)用函數(shù)A則稱為間接遞歸調(diào)用。例1:long fun(int k)if(k=1|k=2) return 1;else return fun(k-1)+fun(k-2);main()int n;scanf(“%d”,&n);printf(“%ld”

54、,fun(n);例2:int func(int a,int b)return (a+b);main()int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%dn”,r);6.函數(shù)的參數(shù)傳遞C語言中,函數(shù)參數(shù)之間的數(shù)據(jù)傳遞僅僅通過實(shí)參向形參的單向數(shù)據(jù)傳遞,即“值傳遞“。不能我們不能通過形參的改變來改變實(shí)參??偨Y(jié):數(shù)據(jù)只能從實(shí)參向形參單向傳遞。到目前為止,函數(shù)之多能返回一個(gè)值。就是return 帶回來的值。例如:void swap(int a1,int b1)/*函數(shù)定義*/ void swap(int *a3,int *b3) int t1; int t2

55、;t=a1;a1=b1;b1=t; t2=*a3;*a3=*b3;*b3=t; main() main() int a=2,b=5; int a2=2,b2=5;swap(a,b);/*函數(shù)調(diào)用*/ swap(&a2,&b2);/*函數(shù)調(diào)用*/printf(“a=%d,b=%d”,a,b); printf(“a2=%d,b2=%d”,a2,b2); 地址值變量10002a10025b1004a11006b110081010101210141016用地址表來講解這些問題比較好。第七章 指針一教學(xué)重點(diǎn)、難點(diǎn)知識(shí)點(diǎn)所占分值考核幾率專家點(diǎn)評(píng)指針變量的定義和引用2-360%簡單識(shí)記指針變量作為函數(shù)參數(shù)2

56、-390%簡單,重點(diǎn)掌握指向數(shù)組元素的指針3-4100%難度適中,重點(diǎn)掌握重點(diǎn)理解用數(shù)組名作為函數(shù)參數(shù)2-390%難度適中,重點(diǎn)掌握指向多維數(shù)組的指針3-4100%偏難,重點(diǎn)理解返回指針值的函數(shù)1-280%簡單,重點(diǎn)掌握二教學(xué)內(nèi)容變量的地址內(nèi)存中的每一個(gè)字節(jié)都有一個(gè)唯一的編號(hào),這個(gè)編號(hào)就是該字節(jié)的地址。int a=15,b=20;15202001200220032004變量的地址:是對(duì)應(yīng)存儲(chǔ)單元的首地址(起始地址)。那么a的地址就是2001,b的地址是2003.指針變量1指針:變量的地址就是該變量的”指針”,(指針就是地址,地址就是指針)。2指針變量:用于存放變量地址的變量稱為指針變量。3指針

57、變量的定義格式:類型名*指針變量名;如:int *p; int a,*q;例:int *p, a=20;p=&a;因?yàn)樽兞看娣帕说牡刂?,所以是指向的指針變量。例:int *p=20; /*出錯(cuò)*/int a=20,*p=a;/*出錯(cuò),指針變量只能用于存放地址值*/4指向指針變量的定義:格式:類型名 *指向指針變量名如:int *q;例:int *p,*q,a=5;/*我們定義了一個(gè) int型的指針變量、一個(gè)int型的指向指針變量和一個(gè)int型的變量 */2.5 指針變量的賦值:int *p, a=20; 或 int a=20,*p=&a;p=&a; /*這兩種賦值是等價(jià)的,第二種是定義的時(shí)候賦

58、值,第一種形式是先定義后賦值,學(xué)生會(huì)對(duì)第二種形式有些模糊,老師一定要講到位*/int *p,*q,a=5; 或 int a=5,*p=&a,*q=&p;p=&a,q=&p;/*我們必須知道,指針變量只能存取變量的地址或是和它相同類型指針的值。指向指針只能存取指針變量的地址。學(xué)生在學(xué)習(xí)的時(shí)候一定要讓他們知道變量間的賦值必須是相同類型的才可以真確的賦值成功。*/2.6 給指針變量賦“空值”P=NULL;NULL是在stdio.h頭文件中的預(yù)定義符,因此在使用NULL時(shí),應(yīng)該在程序前面寫上:#include “stdio.h”NULL的代碼值是0,所以等價(jià):p=0;或p=0;注意:當(dāng)p指向NULL時(shí)

59、候, p并不是指向地址為0的存儲(chǔ)單元,而是具有一個(gè)確定的值“空”,如果通過一個(gè)空指針去訪問一個(gè)存儲(chǔ)單元,將會(huì)得到一個(gè)出錯(cuò)的信息。對(duì)指針的操作1引用存儲(chǔ)單元除了取地址運(yùn)算符“&”與指針變量有關(guān)外,C語言還有一個(gè)指針運(yùn)算符(也叫間接訪問運(yùn)算符)“*”也與指針變量有關(guān)。int a=20,*p=&a;那么 a=*p,a+等價(jià)與(*p)+。這里*p意味著取指針變量指向變量的內(nèi)容。(1)指針變量定義中的“*”和間接訪問運(yùn)算符“*”有本質(zhì)的區(qū)別。當(dāng)定義一個(gè)指針變量的時(shí)候,“*”是說明一個(gè)變量是指針變量,而“*”作為間接訪問運(yùn)算符的時(shí)候意味著取指針變量所指向變量的內(nèi)容。(2)間接訪問運(yùn)算符必須出現(xiàn)在運(yùn)算對(duì)象的

60、左邊,運(yùn)算對(duì)象可以是地址或存放了地址的指針變量。第八章 數(shù)組一教學(xué)重點(diǎn)、難點(diǎn)知識(shí)點(diǎn)所占分值考核幾率專家點(diǎn)評(píng)一維數(shù)組的定義及引用1-380%簡單,重點(diǎn)掌握一維數(shù)組的初始化1-280%簡單,重點(diǎn)掌握二維數(shù)組的定義及引用3-490%偏難,重點(diǎn)掌握重點(diǎn)理解二維數(shù)組的初始化1-290%簡單,重點(diǎn)掌握通過賦初值定義二維數(shù)組1-260%偏難,重點(diǎn)理解二教學(xué)講點(diǎn)8.1一維數(shù)組的定義和引用8.1.1一維數(shù)組的定義格式:類型名 數(shù)組名常量表達(dá)式;例如:int a8;注意:數(shù)組名屬于用戶標(biāo)識(shí)符,必須滿足用戶標(biāo)識(shí)符的命名規(guī)則。如:int do5; float 3com10;char a-b5; 都是非法的定義定義數(shù)組

溫馨提示

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

評(píng)論

0/150

提交評(píng)論