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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

7、ary” ”aaan ”存儲:每個字符串尾自動加一個 0 作為字符串結(jié)束標志(6) 變量賦初值格式:類型說明符 變量1=常數(shù)1,變量2=常數(shù)2,···;int x=1,y=1,z=1;int x=y=z=1;(語法錯誤)7、 算數(shù)運算符和算術(shù)表達式(1)運算符的注意事項·除法運算符“/”進行求商運算。對于不同類型的運算對象,除法表達式計算結(jié)果的類型也會不同。如果x,y是整型,則結(jié)果為整型,小數(shù)部分被略去。如果x,y其中一個為浮點型量,則結(jié)果為浮點型。·“”是求余運算。ab計算a除以b后的余數(shù),也是a模b的值。它要求兩個運算對象必須是整型,其結(jié)果

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

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

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

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

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

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

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

15、輸入字符時,空格、回車、轉(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)認為輸入結(jié)束了 則: a=A,b=n(換行符),c=B 若不同類型輸入 則綜合上述規(guī)則3)在格式控制中除格式說明符外若還有其它字符,則應(yīng)按順序原樣輸入。4)可以指定輸入數(shù)據(jù)所占列數(shù),系統(tǒng)自動按它截取所需數(shù)據(jù)。5)%后的“*”附加說明符,用來

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

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

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

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

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

21、注意循環(huán)操作的范圍、花括號、分號的使用;注意給循環(huán)變量賦初值的位置及初值的正確性2、 用do.while語句實現(xiàn)循環(huán)do-while語句的特點:先無條件地執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立do-while語句的一般形式為: do 語句 while (表達式);while和do.while語句的比較當while后面的表達式的第一次的值為“真”時,兩種循環(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)注意循環(huán)初值與循環(huán)條件i=1

22、; 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)等價。 3、for語句實現(xiàn)循環(huán) for語句的一般形式為 for(表達式1;表達式2;表達式3) 語句表達式1:設(shè)置初始條件,只執(zhí)行一次??梢詾榱銈€、一個或多個變量設(shè)置初值執(zhí)行表達式2:循環(huán)條件表達式,用來判定是否繼續(xù)循環(huán)。在每次執(zhí)行循環(huán)體前先執(zhí)行此表達式,決定是否繼續(xù)執(zhí)行循環(huán)表達式3:

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

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

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

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

27、態(tài)定義.注意: int n=10; int arrn; 錯誤,n不是常量而是變量數(shù)組說明中其他常見的錯誤: float a0; /* 數(shù)組大小為0沒有意義 */ int b(2)(3); /* 不能使用圓括號 */ int k, ak; /* 不能用變量說明數(shù)組大小*/ 一維數(shù)組的存儲方式:每個元素都有一個編號(從0開始),稱為下標。(2) 引用一維數(shù)組一次只能引用一個數(shù)組元素 不能引用整個數(shù)組所有元素!也不能引用多個元素引用數(shù)組元素的表示形式為:數(shù)組名下標一個數(shù)組元素就是一個普通變量,跟普通變量一樣使用。a3=a2%4注意:引用數(shù)組元素時,下標可以是整型常量、變量或整型表達式 對數(shù)組中所有元

28、素逐個引用時,通常可使用循環(huán)結(jié)構(gòu)。(3) 一維數(shù)組的初始化數(shù)組的初始化:在定義數(shù)組的同時,給各數(shù)組元素賦值1、利用):格式: 類型符 數(shù)組名表達式初值表;給部分元素賦初值。例 int a8= 0,1,2,3,4 ; 后面的用0補齊給全部元素賦初值時可不指定數(shù)組的長度。 int a = 0,1,2,3,4;注意:只有在初始化時 中可以空著。其他情況不行,例如:int a ,b ;是錯誤的2、二維數(shù)組(1)定義二維數(shù)組 二維數(shù)組定義的一般形式為 類型符 數(shù)組名常量表達式常量表達式;(2)引用二維數(shù)組 數(shù)組名行下標列下標 行、列下標都是從0開始 二維數(shù)組的存儲方式 二維數(shù)組在內(nèi)存中按行存放(3)二維

29、數(shù)組的初始化 二維數(shù)組初始化通常是按行進行的 類型符 數(shù)組名表達式1表達式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ù)組的全部元素賦初值,可以不指定第一維的長度,但第二維的長度不能省略。#define N 10#define M 6若有定義: int aNM;二維數(shù)組按行輸入標準模板: for(i=0; i<N; i+) for(j=0; j<M; j+) scanf("%d", &aij);二維數(shù)組按行輸出標

30、準模板: 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ù)組名常量表達式,··· ;(2)字符數(shù)組的初始化 一維字符數(shù)組初始化 1)逐個字符賦給數(shù)組中的各元素 2)用字符串常量初始化數(shù)組中的各元素字符串在實際存儲時,是用字符數(shù)組存儲的,系統(tǒng)會自動的在其尾部添加一個結(jié)束標志0 二維字符組初始化 二維字符數(shù)組的初始

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論