C語(yǔ)言.程序設(shè)計(jì)基礎(chǔ)知識(shí)期末復(fù)習(xí)試題_第1頁(yè)
C語(yǔ)言.程序設(shè)計(jì)基礎(chǔ)知識(shí)期末復(fù)習(xí)試題_第2頁(yè)
C語(yǔ)言.程序設(shè)計(jì)基礎(chǔ)知識(shí)期末復(fù)習(xí)試題_第3頁(yè)
C語(yǔ)言.程序設(shè)計(jì)基礎(chǔ)知識(shí)期末復(fù)習(xí)試題_第4頁(yè)
C語(yǔ)言.程序設(shè)計(jì)基礎(chǔ)知識(shí)期末復(fù)習(xí)試題_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)知識(shí)期末復(fù)習(xí)一、 C語(yǔ)言及算法1. 程序:一組計(jì)算機(jī)能識(shí)別和執(zhí)行的指令。2. C語(yǔ)言的特點(diǎn):運(yùn)算符豐富(共有34種運(yùn)算符)、數(shù)據(jù)類(lèi)型豐富、具有結(jié)構(gòu)化的控制語(yǔ)句。3. C語(yǔ)言程序的結(jié)構(gòu)特點(diǎn):(1).一個(gè)程序由一個(gè)或多個(gè)源程序文件組成:一個(gè)源程序文件中可以包括三個(gè)部分:預(yù)處理指令、全局聲明、函數(shù)定義(2).函數(shù)是C程序的主要組成部分:一個(gè)C程序是由一個(gè)或多個(gè)函數(shù)組成的必須包含一個(gè)main函數(shù)(只能有一個(gè));每個(gè)函數(shù)都用來(lái)實(shí)現(xiàn)一個(gè)或幾個(gè)特定功能;被調(diào)用的函數(shù)可以是庫(kù)函數(shù),也可以是自己編制設(shè)計(jì)的函數(shù)。(3).一個(gè)函數(shù)包括兩個(gè)部分 函數(shù)首部和函數(shù)體(聲明部分:定義在本函數(shù)中所用到的變量

2、;對(duì)本函數(shù)所調(diào)用函數(shù)進(jìn)行聲明;執(zhí)行部分:由若干個(gè)語(yǔ)句組成,指定在函數(shù)中所進(jìn)行的操作)(4). 程序總是從main函數(shù)開(kāi)始執(zhí)行(5). C程序?qū)τ?jì)算機(jī)的操作由C語(yǔ)句完成(6.) 數(shù)據(jù)聲明和語(yǔ)句最后必須有分號(hào)(7.) C語(yǔ)言本身不提供輸入輸出語(yǔ)句(8.) 程序應(yīng)當(dāng)包含注釋?zhuān)黾涌勺x性4、算法 (1)算法 + 數(shù)據(jù)結(jié)構(gòu) = 程序(2)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)是表示一個(gè)良好算法的基本結(jié)構(gòu)(3)算法的特性:有窮性、確定性、有零個(gè)或多個(gè)輸入、有一個(gè)或多個(gè)輸出、有效性(4)算法流程圖:一個(gè)流程圖包括以下幾部分:表示相應(yīng)操作的框;帶箭頭的流程線;框內(nèi)外必要的文字說(shuō)明。流程線不要忘記畫(huà)箭頭,否則難以判定各框

3、的執(zhí)行次序。算法流程圖的結(jié)構(gòu)特點(diǎn):只有一個(gè)入口;只有一個(gè)出口(一個(gè)判斷框有兩個(gè)出口;一個(gè)選擇結(jié)構(gòu)只有一個(gè)出口)結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會(huì)被執(zhí)行到。也就是說(shuō),對(duì)每一個(gè)框來(lái)說(shuō),都應(yīng)當(dāng)有一條從入口到出口的路徑通過(guò)它;結(jié)構(gòu)內(nèi)不存在“死循環(huán)”。2、 順序結(jié)構(gòu)設(shè)計(jì)5、標(biāo)識(shí)符:用來(lái)標(biāo)識(shí)變量名、符號(hào)常量名、數(shù)組名、類(lèi)型名、函數(shù)名等的有效字符序列。C語(yǔ)言對(duì)標(biāo)識(shí)符的規(guī)定:(1)只能由字母、數(shù)字、下劃線組成,且第一個(gè)字母必須是字母或下劃線(2)長(zhǎng)度:在TC中最多允許32個(gè)字符,建議不要超過(guò)8個(gè)如果系統(tǒng)規(guī)定標(biāo)識(shí)符長(zhǎng)度為8,那么x1234567A和x1234567B會(huì)被視為同一標(biāo)識(shí)符。(3)在C語(yǔ)言中,標(biāo)識(shí)符大小寫(xiě)敏感。

4、如ABC、aBC、abc分別代表3種不同的標(biāo)識(shí)符(4)標(biāo)識(shí)符不能及C語(yǔ)言的保留字、系統(tǒng)標(biāo)準(zhǔn)庫(kù)函數(shù)同名。 program to_ _to file_2 ab1_c3 為合法標(biāo)識(shí)符 非法字符舉例:yes? (含有不合法字符“?”)123(第一個(gè)字符不能為數(shù)字)go to(標(biāo)識(shí)符中不允許有空格)a_80%(出現(xiàn)非法字符“”)if及關(guān)鍵字相同)6、 常量及變量 注意:以下變量定義形式是錯(cuò)誤的int a,int b; int a;b; (1)整型常量·十進(jìn)制整型:能出現(xiàn)數(shù)字09,可帶正負(fù)號(hào) 如:0,11,95,-2·八進(jìn)制整型:以數(shù)字0開(kāi)頭的數(shù)字串,能出現(xiàn)數(shù)字07 如:011(十進(jìn)制

5、9),0111(十進(jìn)制73)·十六進(jìn)制整型:以0x開(kāi)頭的,能出現(xiàn)數(shù)字09,字母af或AF 如:0x11(十進(jìn)制17),0xa5(十進(jìn)制165)(2)整型變量 基本類(lèi)型int(3)浮點(diǎn)型 ·浮點(diǎn)型常量 十進(jìn)制小數(shù)形式:由數(shù)字及小數(shù)點(diǎn)組成(必須有小數(shù)點(diǎn))。 如 1.23,-123.,0.0123,.0,0. 指數(shù)形式,如123e3或123E3都代表123×103 注意字母e或E之前必須有數(shù)字,后面必須是整數(shù) E-5,.1234e1.2,6.5E為非法的浮點(diǎn)型常量·浮點(diǎn)型變量 float double(4)字符型1)字符常量:分為兩類(lèi)·用單撇號(hào)括起來(lái)

6、的一個(gè)字符 如 : a, 9, (空格)是合法字符常量”a”, 99 是非法字符常量·轉(zhuǎn)義字符:以(反斜杠)開(kāi)頭的特殊形式的字符。如: n ,r ,123 ,x3b2)字符變量:char,占1個(gè)字節(jié)空間,只能存放一個(gè)字符。存儲(chǔ)特點(diǎn):在字符變量中實(shí)際上存儲(chǔ)的是字符的ASCII碼,其存儲(chǔ)形式及整數(shù)的存儲(chǔ)形式相同。注意: I.字符數(shù)據(jù)及整型數(shù)據(jù)可相互賦值,直接運(yùn)算。 II.大小寫(xiě)字母轉(zhuǎn)換 小寫(xiě)字母減32得到相應(yīng)的大寫(xiě)字母, 如:a-32 得到A 大寫(xiě)字母加32得到相應(yīng)的小寫(xiě)字母 如:B+32 得到b(5) 字符串常量定義:用一對(duì)雙撇號(hào)(”)括起來(lái)的字符序列。如: ”hello”Mary”a

7、aan ”存儲(chǔ):每個(gè)字符串尾自動(dòng)加一個(gè) 0 作為字符串結(jié)束標(biāo)志(6) 變量賦初值格式:類(lèi)型說(shuō)明符 變量1=常數(shù)1,變量2=常數(shù)2,···;int x=1,y=1,z=1;int x=y=z=1;(語(yǔ)法錯(cuò)誤)7、 算數(shù)運(yùn)算符和算術(shù)表達(dá)式(1)運(yùn)算符的注意事項(xiàng)·除法運(yùn)算符“/”進(jìn)行求商運(yùn)算。對(duì)于不同類(lèi)型的運(yùn)算對(duì)象,除法表達(dá)式計(jì)算結(jié)果的類(lèi)型也會(huì)不同。如果x,y是整型,則結(jié)果為整型,小數(shù)部分被略去。如果x,y其中一個(gè)為浮點(diǎn)型量,則結(jié)果為浮點(diǎn)型。·“”是求余運(yùn)算。ab計(jì)算a除以b后的余數(shù),也是a模b的值。它要求兩個(gè)運(yùn)算對(duì)象必須是整型,其結(jié)果也是整型量。(

8、2) 書(shū)寫(xiě)算術(shù)表達(dá)式的注意事項(xiàng) ·將方括號(hào)改成圓括號(hào),即算術(shù)表達(dá)式內(nèi)所有的括號(hào)均為圓括號(hào),*(乘法)不能省略·其中 為非字母字符,要用浮點(diǎn)型常量代替·其中不能出現(xiàn)分?jǐn)?shù),改用除法運(yùn)算符,圓括號(hào)不能缺少(3) 算數(shù)運(yùn)算符的優(yōu)先級(jí)優(yōu)先級(jí):高 - ->* / % -> + - 低 注意:可以用( )來(lái)改變運(yùn)算的順序. (2) (3) (4) 8、自增、自減運(yùn)算符后綴 i( i)先使用i的值,再使i的值加(減)1前綴 i (i)先使i的值加(減)1 ,再使用i的值自增、自減運(yùn)算只能用于變量,不能用于常量和表達(dá)式。 自增、自減運(yùn)算符高于基本算術(shù)運(yùn)算符。 9、 賦值

9、運(yùn)算符(1)簡(jiǎn)單賦值運(yùn)算符 運(yùn)算符:= 表達(dá)式格式:變量表達(dá)式·賦值運(yùn)算符左邊必須是變量而不能是表達(dá)式;·賦值表達(dá)式的值是賦值號(hào)左邊變量被賦值后的值;(2)算術(shù)運(yùn)算符“+ * / %”和賦值運(yùn)算符“=”結(jié)合起來(lái),形成復(fù)合賦值運(yùn)算符。+= :加賦值運(yùn)算符; 如a+=3,等價(jià)于 a=a+3 -=、*=、/=、%= 及此類(lèi)似·復(fù)合運(yùn)算符在書(shū)寫(xiě)時(shí),兩個(gè)運(yùn)算符之間不能有空格。·復(fù)合運(yùn)算符右邊的表達(dá)式計(jì)算完成后才參及復(fù)合賦值運(yùn)算;10、 當(dāng)表達(dá)式中的數(shù)據(jù)類(lèi)型不同時(shí),要進(jìn)行類(lèi)型轉(zhuǎn)換。轉(zhuǎn)換方式 自動(dòng)(隱式)轉(zhuǎn)換:系統(tǒng)自動(dòng)把數(shù)據(jù)由低級(jí)類(lèi)型向高級(jí)轉(zhuǎn)換。 強(qiáng)制轉(zhuǎn)換:將表達(dá)式的

10、運(yùn)算結(jié)果強(qiáng)制轉(zhuǎn)換成指定的數(shù)據(jù)類(lèi)型。自動(dòng)轉(zhuǎn)換規(guī)則 強(qiáng)制轉(zhuǎn)換 格式:(目標(biāo)類(lèi)型名)(表達(dá)式)doublelongunsignedint float 高 低 char short逗號(hào)運(yùn)算符及逗號(hào)表達(dá)式:運(yùn)算優(yōu)先級(jí)最低為15級(jí)求解過(guò)程先求表達(dá)式1的值,再求表達(dá)式2的值,···,直至求出表達(dá)式n的值。整個(gè)表達(dá)式的值為表達(dá)式n的值。x=5*8, 6+9 先把x賦值為40,表達(dá)式的值為1511、字符數(shù)據(jù)的簡(jiǎn)單輸入和輸出(1) putchar函數(shù)(字符輸出函數(shù)) 形式:putchar(c)· c可以是字符常量、字符變量或整型變量。putchar(100); ·

11、 用putchar函數(shù)也可輸出轉(zhuǎn)義字符。putchar(n); /*輸出一個(gè)換行符*/putchar(); /*輸出一個(gè)反斜杠 */· 該函數(shù)包含在stdio.h庫(kù)中,因此應(yīng)在使用該函數(shù)的程序開(kāi)頭加入: #include <stdio.h> (2)getchar作用:從終端(如鍵盤(pán))輸入一個(gè)字符。 形式:getchar( ) 無(wú)參數(shù) 說(shuō)明:該函數(shù)只能接收一個(gè)字符,其函數(shù)值可以賦給一個(gè)字符變量或整型變量,也可作為表達(dá)式的一部分,該函數(shù)包含在stdio.h中。(3)格式輸出函數(shù) 格式:printf(格式控制,輸出表列)格式控制是用雙撇號(hào)括起來(lái)的字符串,也稱(chēng)“轉(zhuǎn)換控制字符串”,

12、包括2種信息。 1)格式說(shuō)明: % <附加格式字符>格式字符將輸出列表中的數(shù)據(jù)轉(zhuǎn)換為指定格式輸出。 2)普通字符:原樣輸出。 輸出表列:需要輸出的數(shù)據(jù)列表,彼此間用逗號(hào)分隔。它可是任意合法的表達(dá)式。 printf(" a+b = %5.2 f " , c )(4) 格式字符1)d 格式符,用來(lái)輸出十進(jìn)制整數(shù) %d 按整型數(shù)據(jù)的實(shí)際長(zhǎng)度輸出。 %md m代表某個(gè)數(shù)字,指定輸出數(shù)據(jù)的最小寬度。若數(shù)據(jù)的位數(shù)小于m,則左側(cè)補(bǔ)空格(右對(duì)齊),若大于m則按實(shí)際位數(shù)輸出。%-md 及%md類(lèi)似,只是左對(duì)齊2) c 格式符:用來(lái)輸出一個(gè)字符 %c %mc %-mc 3)f格式符

13、:用來(lái)以十進(jìn)制小數(shù)形式輸出實(shí)數(shù)(float,double)%m.nf 輸出數(shù)據(jù)最小占m列,其中包括n位小數(shù)和1位小數(shù)點(diǎn),右對(duì)齊 (小數(shù)點(diǎn)也算占一列) %-m.nf 及上面類(lèi)似,只是左對(duì)齊4)S 格式符:用來(lái)輸出一個(gè)字符串 %s 按字符串原長(zhǎng)輸出 %ms 輸出字符串最小占m列,右對(duì)齊,左補(bǔ)空格 %-ms 輸出字符串最小占m列,左對(duì)齊,右補(bǔ)空格 %m.ns 字符串占m列,但只取左端n個(gè)字符,右對(duì)齊 %-m.ns 字符串占m列,但只取左端n個(gè)字符,左對(duì)齊 使用說(shuō)明:1)格式控制中的格式說(shuō)明符,必須按從左到右的順序,及輸出表中的每個(gè)數(shù)據(jù)一一對(duì)應(yīng),否則出錯(cuò)。printf(“f=%d, i=%fn”, 5

14、.6,3); 顯示:f= 1717986918,i=0.0000002)格式字符緊跟在“%”后面就作為格式字符,否則將作為普通字符使用(原樣輸出)。printf(”c=%c, f=%ffn“, a,1.5); 其中的第一個(gè)c和f,第三個(gè)f,都是普通字符。(5)scanf函數(shù) scanf(格式控制字符串,地址列表) 格式控制及printf函數(shù)類(lèi)似。 地址列表是由若干個(gè)地址組成的表列(以逗號(hào)隔開(kāi)),可以是變量的地址,或字符串的首地址。scanf(“%d%d%d”,&a,&b,&c); 1) 格式符中無(wú)普通字符時(shí),可用空格、Tab鍵、回車(chē)鍵作分隔符。最后的回車(chē)鍵代表輸入結(jié)束

15、2)用c格式符輸入字符時(shí),空格、回車(chē)、轉(zhuǎn)義字符等均為有效字符。 例: char a,b,c; scanf("%c%c%c", &a, &b, &c); 正確的輸入方法: 鍵入 ABC¿ 則 a=A,b=B,c=C 若鍵入: A B C 則 a=A,b=(空格),c=B 若鍵入 A ¿ B C 未送,系統(tǒng)已經(jīng)認(rèn)為輸入結(jié)束了 則: a=A,b=n(換行符),c=B 若不同類(lèi)型輸入 則綜合上述規(guī)則3)在格式控制中除格式說(shuō)明符外若還有其它字符,則應(yīng)按順序原樣輸入。4)可以指定輸入數(shù)據(jù)所占列數(shù),系統(tǒng)自動(dòng)按它截取所需數(shù)據(jù)。5)%后的“*”附加

16、說(shuō)明符,用來(lái)表示跳過(guò)相應(yīng)的數(shù)據(jù)。 如:scanf(“%2d%*3d%2d”,&a,&b); 輸入 1234567¿ 則將12a,67 b,345被跳過(guò)6)輸入數(shù)據(jù)時(shí)不能規(guī)定精度。如:scanf(“%7.2f”,&a);錯(cuò)誤7)double類(lèi)型的變量輸入時(shí),要用%lf%le(必須記?。。┤?double x;scanf(“%lf”,&x);3、 選擇結(jié)構(gòu)程序設(shè)計(jì)1、if語(yǔ)句實(shí)現(xiàn)選擇 if (表達(dá)式) 語(yǔ)句1 表達(dá)式可以是關(guān)系表達(dá)式、邏輯表達(dá)式、數(shù)值表達(dá)式else 語(yǔ)句2 最常用的3種if語(yǔ)句形式:(1) if (表達(dá)式) 語(yǔ)句1 (沒(méi)有else子句)(2

17、).if (表達(dá)式) 語(yǔ)句1 (3) else 語(yǔ)句2 (有else子句)(4)if(表達(dá)式) 語(yǔ)句 else if(表達(dá)式) 語(yǔ)句 else if(表達(dá)式) 語(yǔ)句 else if(表達(dá)式) 語(yǔ)句 else 語(yǔ)句m+1 (在else部分又嵌套了多層的if語(yǔ)句)說(shuō)明:(1)整個(gè)if語(yǔ)句可寫(xiě)在多行上,也可寫(xiě)在一行上,但都是一個(gè)整體,屬于同一個(gè)語(yǔ)句(2)“語(yǔ)句1”“語(yǔ)句m”是if中的內(nèi)嵌語(yǔ)句 內(nèi)嵌語(yǔ)句也可以是一個(gè)if語(yǔ)句(3)“語(yǔ)句1”“語(yǔ)句m”可以是簡(jiǎn)單的語(yǔ)句,也可以是復(fù)合語(yǔ)句 2、關(guān)系運(yùn)算符 (1)關(guān)系運(yùn)算符:用來(lái)對(duì)兩個(gè)數(shù)值進(jìn)行比較的比較運(yùn)算符語(yǔ)言提供種關(guān)系運(yùn)算符: (小于) = (小于或等于)

18、 (大于) = (大于或等于) 優(yōu)先級(jí)高 = (等于) != (不等于) 優(yōu)先級(jí)低(2)關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)數(shù)值或數(shù)值表達(dá)式連接起來(lái)的式子,關(guān)系表達(dá)式的值是一個(gè)邏輯值,即“真”或“假”,在C的邏輯運(yùn)算中,以“”代表“真”,以“”代表“假”3、 邏輯運(yùn)算符及邏輯表達(dá)式3種邏輯運(yùn)算符:&&(邏輯及) |(邏輯或) !(邏輯非)判斷年齡在13至17歲之內(nèi)?age>=13 && age<=17 邏輯運(yùn)算符的優(yōu)先次序 ! && | (!為三者中最高)邏輯表達(dá)式的值應(yīng)該是邏輯量“真”或“假”編譯系統(tǒng)在表示邏輯運(yùn)算結(jié)果時(shí)以數(shù)值1代表“真”,

19、以0代表“假”但在判斷一個(gè)量是否為“真”時(shí)以0代表“假”,以非0代表“真”注意:將一個(gè)非零的數(shù)值認(rèn)作為“真”在進(jìn)行邏輯表達(dá)式的求解中,并不是所有的邏輯運(yùn)算都被執(zhí)行,只是在必須執(zhí)行下一個(gè)邏輯運(yùn)算符才能求出表達(dá)式的值時(shí),才執(zhí)行該運(yùn)算符。4、 條件運(yùn)算符及條件表達(dá)式條件表達(dá)式的一般形式為:表達(dá)式?表達(dá)式: 表達(dá)式條件運(yùn)算符的執(zhí)行順序:求解表達(dá)式1若為非0(真)則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)條件表達(dá)式的值若表達(dá)式1的值為0(假),則求解表達(dá)式3,表達(dá)式3的值就是整個(gè)條件表達(dá)式的值條件運(yùn)算符的結(jié)合方向?yàn)椤白杂抑磷蟆?、 switch語(yǔ)句switch語(yǔ)句的作用是根據(jù)表達(dá)式的值,使流程跳轉(zhuǎn)到不同

20、的語(yǔ)句switch語(yǔ)句的一般形式:switch(表達(dá)式)整數(shù)類(lèi)型(包括字符型) case 常量1 :語(yǔ)句1;break case 常量2 :語(yǔ)句2 case 常量n :語(yǔ)句n default : 語(yǔ)句n+1優(yōu)先級(jí)順序:賦值運(yùn)算符&& 和 |關(guān)系運(yùn)算符算術(shù)運(yùn)算符!4、 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)1、 用while語(yǔ)句實(shí)現(xiàn)循環(huán)while語(yǔ)句的一般形式如下: while (表達(dá)式) 語(yǔ)句循環(huán)體 循環(huán)條件表達(dá)式 “真”時(shí)執(zhí)行循環(huán)體語(yǔ)句“假”時(shí)不執(zhí)行while循環(huán)的特點(diǎn)是:先判斷條件表達(dá)式,后執(zhí)行循環(huán)體語(yǔ)句while循環(huán)的作用:實(shí)現(xiàn)“當(dāng)型”循環(huán)使用說(shuō)明:在while的循環(huán)體中一定要有使循環(huán)趨于結(jié)束

21、的語(yǔ)句;否則將形成死循環(huán);注意循環(huán)操作的范圍、花括號(hào)、分號(hào)的使用;注意給循環(huán)變量賦初值的位置及初值的正確性2、 用do.while語(yǔ)句實(shí)現(xiàn)循環(huán)do-while語(yǔ)句的特點(diǎn):先無(wú)條件地執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立do-while語(yǔ)句的一般形式為: do 語(yǔ)句 while (表達(dá)式);while和do.while語(yǔ)句的比較當(dāng)while后面的表達(dá)式的第一次的值為“真”時(shí),兩種循環(huán)得到的結(jié)果相同;否則不相同(1). 循環(huán)體內(nèi)必須有使循環(huán)趨于終止的條件 while (i<=100) do sum=sum+i; sum=sum+i; i+; i+; while (i<=100);(2)注

22、意循環(huán)初值及循環(huán)條件i=1; i=0;while (i<=100) while (i<100) sum=sum+i; i+; i+; sum=sum+i; (3) do_while 循環(huán)的循環(huán)體至少執(zhí)行一 次, while循環(huán)的循環(huán)體可能一次也不執(zhí)行。 (4) 在循環(huán)體至少執(zhí)行一次的前提下, do_while及while 循環(huán)等價(jià)。 3、for語(yǔ)句實(shí)現(xiàn)循環(huán) for語(yǔ)句的一般形式為 for(表達(dá)式1;表達(dá)式2;表達(dá)式3) 語(yǔ)句表達(dá)式1:設(shè)置初始條件,只執(zhí)行一次??梢詾榱銈€(gè)、一個(gè)或多個(gè)變量設(shè)置初值執(zhí)行表達(dá)式2:循環(huán)條件表達(dá)式,用來(lái)判定是否繼續(xù)循環(huán)。在每次執(zhí)行循環(huán)體前先執(zhí)行此表達(dá)式,決定

23、是否繼續(xù)執(zhí)行循環(huán)表達(dá)式3:作為循環(huán)的調(diào)整器,例如使循環(huán)變量增值,它是在執(zhí)行完循環(huán)體后才進(jìn)行的 for語(yǔ)句說(shuō)明 : 1)表達(dá)式1可省略,但分號(hào)不能省 ;如 :int i=1,sum=0; for (;i<=100;i+) sum=sum+i;2)若表達(dá)式2省略,循環(huán)條件永遠(yuǎn)為真 ;如: for(i=1; ;i+)printf(“%d,”,i); 死循環(huán) 自己編程序時(shí)不建議采用, 3)表達(dá)式3也可省略,但應(yīng)設(shè)法保證循環(huán)正常結(jié)束 ; 但要能看懂別人的程序 如 : for (i=1;i<=100;) sum=sum+i; i+;4)可只給循環(huán)條件;i=1; for (;i<=100;

24、) sum=sum+i; i+; 5)三個(gè)表達(dá)式都可省 ; for (;) 相當(dāng)于 while (1) 6)表達(dá)式1和表達(dá)式3可以是逗號(hào)表達(dá)式 ;如 : for (i=1,sum=0;i<=100;i+) sum=sum+i;7)表達(dá)式2一般為關(guān)系表達(dá)式或邏輯表達(dá)式,但也可以是數(shù)值表達(dá)式或字符表達(dá)式,只要其值為非零就執(zhí)行循環(huán)體 。 如: for (;(c=getchar( )!='n') printf("%c,",c);注: 盡量避免用實(shí)型變量控制循環(huán)次數(shù)。 4、改變循環(huán)的執(zhí)行狀態(tài) (1) 用break語(yǔ)句提前終止循環(huán) break語(yǔ)句作用 : 1) 從

25、循環(huán)體內(nèi)跳出,即提前結(jié)束循環(huán) ,接著執(zhí)行循環(huán)下面的語(yǔ)句 ; 2) break語(yǔ)句只能 用于循環(huán)語(yǔ)句和 switch 語(yǔ)句 注意: 在循環(huán)中使用了break語(yǔ)句后, 循環(huán)語(yǔ)句的結(jié)束可能有兩種: 1. 正常結(jié)束(正常出口):由于循環(huán)條件表達(dá)式為假 2. 非正常結(jié)束(異常出口):由break語(yǔ)句引起(2) continue語(yǔ)句提前結(jié)束本次循環(huán) 結(jié)束本次循環(huán),即跳過(guò)循環(huán)體語(yǔ)句中下面尚未執(zhí)行的語(yǔ)句,接著執(zhí)行下一次是否執(zhí)行循環(huán)的判定for (n=100;n<=200;n+) if (n%3= =0) continue; printf(”%d”,n); 這段程序等價(jià)于if (n%3!=0) print

26、f(”%d”,n); for語(yǔ)句中執(zhí)行的是表達(dá)式3(3)break語(yǔ)句和continue語(yǔ)句的區(qū)別continue語(yǔ)句只結(jié)束本次循環(huán),而不是終止整個(gè)循環(huán)的執(zhí)行break語(yǔ)句結(jié)束整個(gè)循環(huán)過(guò)程,不再判斷執(zhí)行循環(huán)的條件是否成立4、 利用數(shù)組處理批量數(shù)據(jù)1、 一維數(shù)組(1) 定義一維數(shù)組定義一維數(shù)組的一般形式為:類(lèi)型符 數(shù)組名常量表達(dá)式; 說(shuō)明:類(lèi)型符:數(shù)組元素的類(lèi)型。數(shù)組名:即數(shù)組的名稱(chēng),其命名方法同變量名。在定義數(shù)組時(shí),需要指定數(shù)組中元素的個(gè)數(shù),方括弧中的常量表達(dá)式用來(lái)表示元素的個(gè)數(shù),即數(shù)組長(zhǎng)度。注意:1)在定義數(shù)組時(shí),只能使用整常量表達(dá)式表明數(shù)組的大小,即數(shù)組元素的個(gè)數(shù),不能是變量。也就是說(shuō),C

27、語(yǔ)言不允許對(duì)數(shù)組的大小作動(dòng)態(tài)定義.注意: int n=10; int arrn; 錯(cuò)誤,n不是常量而是變量數(shù)組說(shuō)明中其他常見(jiàn)的錯(cuò)誤: float a0; /* 數(shù)組大小為0沒(méi)有意義 */ int b(2)(3); /* 不能使用圓括號(hào) */ int k, ak; /* 不能用變量說(shuō)明數(shù)組大小*/ 一維數(shù)組的存儲(chǔ)方式:每個(gè)元素都有一個(gè)編號(hào)(從0開(kāi)始),稱(chēng)為下標(biāo)。(2) 引用一維數(shù)組一次只能引用一個(gè)數(shù)組元素 不能引用整個(gè)數(shù)組所有元素!也不能引用多個(gè)元素引用數(shù)組元素的表示形式為:數(shù)組名下標(biāo)一個(gè)數(shù)組元素就是一個(gè)普通變量,跟普通變量一樣使用。a3=a2%4注意:引用數(shù)組元素時(shí),下標(biāo)可以是整型常量、變量或

28、整型表達(dá)式 對(duì)數(shù)組中所有元素逐個(gè)引用時(shí),通??墒褂醚h(huán)結(jié)構(gòu)。(3) 一維數(shù)組的初始化數(shù)組的初始化:在定義數(shù)組的同時(shí),給各數(shù)組元素賦值1、利用):格式: 類(lèi)型符 數(shù)組名表達(dá)式初值表;給部分元素賦初值。例 int a8= 0,1,2,3,4 ; 后面的用0補(bǔ)齊給全部元素賦初值時(shí)可不指定數(shù)組的長(zhǎng)度。 int a = 0,1,2,3,4;注意:只有在初始化時(shí) 中可以空著。其他情況不行,例如:int a ,b ;是錯(cuò)誤的2、二維數(shù)組(1)定義二維數(shù)組 二維數(shù)組定義的一般形式為 類(lèi)型符 數(shù)組名常量表達(dá)式常量表達(dá)式;(2)引用二維數(shù)組 數(shù)組名行下標(biāo)列下標(biāo) 行、列下標(biāo)都是從0開(kāi)始 二維數(shù)組的存儲(chǔ)方式 二維數(shù)組

29、在內(nèi)存中按行存放(3)二維數(shù)組的初始化 二維數(shù)組初始化通常是按行進(jìn)行的 類(lèi)型符 數(shù)組名表達(dá)式1表達(dá)式2=初值表;給全部元素賦初值。 例 int a34=0,1,2,3,4,5,6,7,8,9,10,11; 或?qū)懗? int a34=0,1,2,3,4,5,6,7,8,9,10,11給二維數(shù)組的全部元素賦初值,可以不指定第一維的長(zhǎng)度,但第二維的長(zhǎng)度不能省略。#define N 10#define M 6若有定義: int aNM;二維數(shù)組按行輸入標(biāo)準(zhǔn)模板: for(i=0; i<N; i+) for(j=0; j<M; j+) scanf("%d", &a

30、ij);二維數(shù)組按行輸出標(biāo)準(zhǔn)模板: for(i=0; i<N; i+) for(j=0; j<M; j+) printf("%d", aij); printf("n");3、 字符數(shù)組(1)字符數(shù)組的定義:定義字符數(shù)組的方法及定義數(shù)值型數(shù)組的方法相同,使用關(guān)鍵字char格式:char 數(shù)組名常量表達(dá)式,··· ;(2)字符數(shù)組的初始化 一維字符數(shù)組初始化 1)逐個(gè)字符賦給數(shù)組中的各元素 2)用字符串常量初始化數(shù)組中的各元素字符串在實(shí)際存儲(chǔ)時(shí),是用字符數(shù)組存儲(chǔ)的,系統(tǒng)會(huì)自動(dòng)的在其尾部添加一個(gè)結(jié)束標(biāo)志0 二維字符組初

31、始化 二維字符數(shù)組的初始化,可以采用逐個(gè)字符式或者字符串常量的方式(3)引用字符數(shù)組 引用字符數(shù)組中的元素,及引用其他類(lèi)型數(shù)組元素相同只能是一個(gè)一個(gè)字符地引用(4) 字符數(shù)組的輸入輸出 1、利用getchar、putchar逐個(gè)處理(用循環(huán)結(jié)構(gòu)) 利用格式符 %c 逐個(gè)輸入、輸出字符 for( i=0; i<9; i+) scanf( "%c",&stri );當(dāng)字符數(shù)組存字符串時(shí),可利用格式符%s,可以一次輸入、輸出整個(gè)字符串。(不用循環(huán)結(jié)構(gòu))scanf(“%s”,字符數(shù)組名); 用于輸入一個(gè)字符串printf(“%s”,字符數(shù)組名); 用于輸出一個(gè)字符串如

32、果一個(gè)字符數(shù)組中包含多個(gè)0,則遇第一個(gè)0時(shí)輸出就結(jié)束scanf函數(shù)中的輸入項(xiàng)是已定義的字符數(shù)組名,輸入的字符串應(yīng)短于已定義的字符數(shù)組的長(zhǎng)度char str10; scanf("%s",str ); printf("%sn", str ); 用字符數(shù)組名,不要加&,遇空格、TAB、回車(chē)結(jié)束輸入自動(dòng)加1個(gè)0,輸入串長(zhǎng)度小于數(shù)組長(zhǎng)度怎樣輸入帶空格的字符串?使用%c格式符for(i=0;(c=getchar()!=n;i+) stri=c;使用字符串處理函數(shù) gets(str);利用字符串輸入輸出函數(shù)字符串輸入函數(shù)gets格式:gets(字符數(shù)組名)功能

33、:從鍵盤(pán)接收一個(gè)字符串放入字符數(shù)組中, 自動(dòng)加0,只以回車(chē)符作為輸入的結(jié)束說(shuō)明:輸入串長(zhǎng)度應(yīng)小于字符數(shù)組元素的個(gè)數(shù)字符串輸出函數(shù)puts格式:puts(字符數(shù)組名或字符串常量)功能:向顯示器輸出一個(gè)字符串(輸出完,自動(dòng)換行)說(shuō)明:字符數(shù)組必須以0結(jié)束gets()函數(shù)可以接收包含空格、tab的字符串。scanf(“%s”,)不能接收空格puts( )函數(shù)一次輸出一個(gè)字符串,并自動(dòng)換行。printf(“%s”, )函數(shù)可以同時(shí)輸出多個(gè)字符串,并且能靈活控制是否換行。strcat函數(shù)-字符串連接函數(shù)其一般形式為: strcat(字符數(shù)組1,字符串2)其作用是把兩個(gè)字符串連接起來(lái),把字符串2接到字符串

34、1的后面,結(jié)果放在字符數(shù)組1中字符串拷貝函數(shù)strcpy 格式:strcpy(字符數(shù)組1,字符串2)  作用:將字符串2復(fù)制到字符數(shù)組1中。注意: (1) 字符數(shù)組1必須足夠大,以便容納字符串2的內(nèi)容。(2) 字符串2可以是字符數(shù)組名或者字符串常量。當(dāng)字符串2為字符數(shù)組名時(shí),只復(fù)制第一個(gè)0前面的內(nèi)容(含0 ),其后內(nèi)容不復(fù)制。(3)不能使用賦值語(yǔ)句為一個(gè)字符數(shù)組賦值strcmp函數(shù)-字符串比較函數(shù)一般形式: strcmp(字符串1,字符串2)作用:比較字符串1和字符串2strcmp(str1,str2);strcmp(”China”,”Korea”);strcmp(str1,”Bei

35、jing”);比較的結(jié)果由函數(shù)值帶回如果字符串1=字符串2,則函數(shù)值為0如果字符串1>字符串2,則函數(shù)值為一個(gè)正整數(shù)如果字符串1<字符串2,則函數(shù)值為一個(gè)負(fù)整數(shù)注意: 字符串比較不能用“=”、“<”、 “>等關(guān)系運(yùn)算符直接比較,要用strcmp函數(shù)進(jìn)行比較 if(“ad”>”ac”) printf(“ad”);strlen函數(shù)-測(cè)字符串長(zhǎng)度的函數(shù)一般形式:strlen (字符串) 作用: 它是測(cè)試字符串長(zhǎng)度的函數(shù)函數(shù)的值為字符串中的實(shí)際長(zhǎng)度,它的返回值是字符串中字符的個(gè)數(shù)(不包含0)strlwr函數(shù)-轉(zhuǎn)換為小寫(xiě)的函數(shù)一般形式: strlwr (字符串) 函數(shù)的作用

36、: 將字符串中大寫(xiě)字母換成小寫(xiě)字母strupr函數(shù)-轉(zhuǎn)換為大寫(xiě)的函數(shù)一般形式: strupr (字符串) 函數(shù)的作用: 將字符串中小寫(xiě)字母換成大寫(xiě)字母6、 用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)1、可以使用哪些函數(shù)?一個(gè)C程序由兩種函數(shù)構(gòu)成:標(biāo)準(zhǔn)函數(shù)(庫(kù)函數(shù)):系統(tǒng)提供的,實(shí)現(xiàn)各種不同的功能。如printf, scanf, sqrt, fabs ,strlen,等等使用它們要包含相應(yīng)的頭文件自定義函數(shù):用戶(hù)自己定義的函數(shù)。用戶(hù)可以把一些具有獨(dú)立功能的代碼定義成函數(shù),有利于程序的模塊化和代碼的“重用”2、 說(shuō)明(1)一個(gè)程序由一個(gè)或多個(gè)程序模塊組成,每一個(gè)程序模塊作為一個(gè)源程序文件 (2)一個(gè)源程序文件由一個(gè)

37、或多個(gè)函數(shù)以及其他有關(guān)內(nèi)容(如預(yù)處理指令、數(shù)據(jù)聲明及定義等)組成(3)程序的執(zhí)行是從main函數(shù)開(kāi)始的,如果在main函數(shù)中調(diào)用其他函數(shù),在調(diào)用后流程返回到main函數(shù),在main函數(shù)中結(jié)束整個(gè)程序的運(yùn)行。(4)所有函數(shù)都是平行的,即在定義函數(shù)時(shí)是分別進(jìn)行的,是互相獨(dú)立的。即函數(shù)不能嵌套定義3、定義函數(shù)(1)C語(yǔ)言要求,在程序中用到的所有函數(shù),必須"先定義,后使用"指定函數(shù)的名字,以便以后按名調(diào)用指定函數(shù)類(lèi)型,即函數(shù)返回值的類(lèi)型指定函數(shù)參數(shù)的名字和類(lèi)型,以便在調(diào)用函數(shù)時(shí)向它們傳遞數(shù)據(jù)指定函數(shù)的功能。這是最重要的,這是在函數(shù)體中解決的(2) 定義方法函數(shù)的類(lèi)型 函數(shù)名稱(chēng)( 形

38、式參數(shù)列表 ) 函數(shù)首部數(shù)據(jù)說(shuō)明部分 可執(zhí)行語(yǔ)句 函數(shù)體定義無(wú)參函數(shù)定義無(wú)參函數(shù)的一般形式為:類(lèi)型名 函數(shù)名( ) 類(lèi)型名 函數(shù)名 (void) 函數(shù)體 函數(shù)體 定義有參函數(shù)定義有參函數(shù)的一般形式為:類(lèi)型名 函數(shù)名(形式參數(shù)表列) 函數(shù)體4、 函數(shù)的調(diào)用調(diào)用一般形式 函數(shù)名(實(shí)參表) (1) 函數(shù)調(diào)用語(yǔ)句把函數(shù)調(diào)用單獨(dú)作為一個(gè)語(yǔ)句, 如 printf_star();這時(shí)不要求函數(shù)帶回值,只要求函數(shù)完成一定的操作(2) 函數(shù)表達(dá)式函數(shù)調(diào)用出現(xiàn)在另一個(gè)表達(dá)式中, 如 c=max(a,b)+2;m = jiecheng(4)*2;這時(shí)要求函數(shù)帶回一個(gè)確定的值以參加表達(dá)式的運(yùn)算(3) 函數(shù)參數(shù)函數(shù)調(diào)用

39、作為另一函數(shù)調(diào)用時(shí)的實(shí)參, 如 mmax(a,max(b,c);printf(“%f”,jiecheng(9);其中max(b,c)是一次函數(shù)調(diào)用,它的值作為max另一次調(diào)用的實(shí)參當(dāng)用不到函數(shù)的返回值時(shí)用函數(shù)調(diào)用語(yǔ)句 當(dāng)要使用函數(shù)的返回值時(shí)用函數(shù)表達(dá)式或函數(shù)參數(shù)(4) 函數(shù)調(diào)用時(shí)的數(shù)據(jù)傳遞.形式參數(shù)和實(shí)際參數(shù)形參(形式參數(shù))是函數(shù)定義時(shí),參數(shù)表中的參數(shù)。形式參數(shù)只能是變量。例如:float max( float x, float y ) float ftoc ( float temp)在函數(shù)定義時(shí),參數(shù)表中的形參并沒(méi)有具體的值,系統(tǒng)也不為其分配存儲(chǔ)單元。實(shí)參(實(shí)際參數(shù))是函數(shù)調(diào)用時(shí)主調(diào)函數(shù)傳送

40、給被調(diào)用函數(shù)形參的實(shí)際值。 實(shí)參可以是常量、變量和表達(dá)式,實(shí)參必須有確定的值。 實(shí)參和形參間的數(shù)據(jù)傳遞在調(diào)用函數(shù)過(guò)程中,系統(tǒng)會(huì)把實(shí)參的值傳遞給被調(diào)用函數(shù)的形參,或者說(shuō),形參從實(shí)參得到一個(gè)值,該值在函數(shù)調(diào)用期間有效,可以參加被調(diào)函數(shù)中的運(yùn)算,從實(shí)參到形參的值傳遞是單向的!沒(méi)有返回的過(guò)程!單向值傳遞!實(shí)、形參個(gè)數(shù)相同,類(lèi)型應(yīng)一致(相同或賦值兼容)。例:int n;n=max(4,20);n=max(3.5,7.3); 轉(zhuǎn)化為:n=max(3,7);(5) 函數(shù)的調(diào)用過(guò)程在定義函數(shù)中指定的形參,在未出現(xiàn)函數(shù)調(diào)用時(shí),它們并不占內(nèi)存中的存儲(chǔ)單元。在發(fā)生函數(shù)調(diào)用時(shí),函數(shù)的形參被臨時(shí)分配內(nèi)存單元。調(diào)用結(jié)束,

41、形參單元被釋放實(shí)參單元仍保留并維持原值,沒(méi)有改變?nèi)绻趫?zhí)行一個(gè)被調(diào)用函數(shù)時(shí),形參的值發(fā)生改變,不會(huì)改變主調(diào)函數(shù)的實(shí)參的值!(6) 函數(shù)的返回值希望通過(guò)函數(shù)調(diào)用使主調(diào)函數(shù)能得到一個(gè)確定的值, 這就是函數(shù)值(函數(shù)的返回值)函數(shù)的返回值是通過(guò)函數(shù)中的return語(yǔ)句獲得的return語(yǔ)句后面的括號(hào)可以不要 一個(gè)函數(shù)中可以有一個(gè)以上的return語(yǔ)句,執(zhí)行到哪一個(gè)return語(yǔ)句,哪一個(gè)語(yǔ)句起作用return后面的值可以是一個(gè)表達(dá)式。例如: max(int x,int y) return(>?:); 在定義函數(shù)時(shí)指定的函數(shù)類(lèi)型一般應(yīng)該和return語(yǔ)句中的表達(dá)式類(lèi)型一致。 如果函數(shù)值的類(lèi)型和return語(yǔ)句中表達(dá)式的值不一致,則以函數(shù)類(lèi)型為準(zhǔn)。對(duì)數(shù)值型數(shù)據(jù),可以自動(dòng)進(jìn)行類(lèi)型轉(zhuǎn)換。即函數(shù)類(lèi)型決定返回值的類(lèi)型。5、對(duì)被調(diào)用函數(shù)的聲明和函數(shù)原型(1)在一個(gè)函數(shù)中調(diào)用另一個(gè)函數(shù)需要具備如下條件:被調(diào)用函數(shù)必須是已經(jīng)定義的函數(shù)(是庫(kù)函數(shù)或用戶(hù)自己定義的函數(shù))如果使用庫(kù)函數(shù),應(yīng)該在本文件開(kāi)頭加相應(yīng)的#include指令

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論