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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

13、mc 3)f格式符:用來以十進制小數形式輸出實數(float,double)%m.nf 輸出數據最小占m列,其中包括n位小數和1位小數點,右對齊 (小數點也算占一列) %-m.nf 與上面類似,只是左對齊4)S 格式符:用來輸出一個字符串 %s 按字符串原長輸出 %ms 輸出字符串最小占m列,右對齊,左補空格 %-ms 輸出字符串最小占m列,左對齊,右補空格 %m.ns 字符串占m列,但只取左端n個字符,右對齊 %-m.ns 字符串占m列,但只取左端n個字符,左對齊 使用說明:1)格式控制中的格式說明符,必須按從左到右的順序,與輸出表中的每個數據一一對應,否則出錯。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函數 scanf(格式控制字符串,地址列表) 格式控制與printf函數類似。 地址列表是由若干個地址組成的表列(以逗號隔開),可以是變量的地址,或字符串的首地址。scanf(“%d%d%d”,&a,&b,&c); 1) 格式符中無普通字符時,可用空格、Tab鍵、回車鍵作分隔符。最后的回車鍵代表輸入結束 2)用c格式符

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

16、表示跳過相應的數據。 如:scanf(“%2d%*3d%2d”,&a,&b); 輸入 ¿ 則將12a,67 b,345被跳過6)輸入數據時不能規(guī)定精度。如:scanf(“%7.2f”,&a);錯誤7)double類型的變量輸入時,要用%lf%le(必須記?。。┤?double x;scanf(“%lf”,&x);3、 選擇結構程序設計1、if語句實現(xiàn)選擇 if (表達式) 語句1 表達式可以是關系表達式、邏輯表達式、數值表達式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中的內嵌語句 內嵌語句也可以是一個if語句(3)“語句1”“語句m”可以是簡單的語句,也可以是復合語句 2、關系運算符 (1)關系運算符:用來對兩個數值進行比較的比較運算符語言提供種關系運算符: (小于) = (小于或等于) (大于) = (大于或等

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

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

20、般形式:switch(表達式)整數類型(包括字符型) case 常量1 :語句1;break case 常量2 :語句2 case 常量n :語句n default : 語句n+1優(yōu)先級順序:賦值運算符&& 和 |關系運算符算術運算符!4、 循環(huán)結構程序設計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)趨于結束的語句;否則將形成死循環(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)得到的結果相同;否則不相同(1). 循環(huán)體內必須有使循環(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:設置初始條件,只執(zhí)行一次??梢詾榱銈€、一個或多個變量設置初值執(zhí)行表達式2:循環(huán)條件表達式,用來判定是否繼續(xù)循環(huán)。在每次執(zhí)行循環(huán)體前先執(zhí)行此表達式,決定是否繼續(xù)執(zhí)行循環(huán)表達式3:

23、作為循環(huán)的調整器,例如使循環(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也可省略,但應設法保證循環(huán)正常結束 ; 但要能看懂別人的程序 如 : 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一般為關系表達式或邏輯表達式,但也可以是數值表達式或字符表達式,只要其值為非零就執(zhí)行循環(huán)體 。 如: for (;(c=getchar( )!='n') printf("%c,",c);注: 盡量避免用實型變量控制循環(huán)次數。 4、改變循環(huán)的執(zhí)行狀態(tài) (1) 用break語句提前終止循環(huán) break語句作用 : 1) 從循環(huán)體內跳出,即提前結束循

25、環(huán) ,接著執(zhí)行循環(huán)下面的語句 ; 2) break語句只能 用于循環(huán)語句和 switch 語句 注意: 在循環(huán)中使用了break語句后, 循環(huán)語句的結束可能有兩種: 1. 正常結束(正常出口):由于循環(huán)條件表達式為假 2. 非正常結束(異常出口):由break語句引起(2) continue語句提前結束本次循環(huán) 結束本次循環(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語句只結束本次循環(huán),而不是終止整個循環(huán)的執(zhí)行break語句結束整個循環(huán)過程,不再判斷執(zhí)行循環(huán)的條件是否成立4、 利用數組處理批量數據1、 一維數組(1) 定義一維數組定義一維數組的一般形式為:類型符 數組名常量表達式; 說明:類型符:數組元素的類型。數組名:即數組的名稱,其命名方法同變量名。在定義數組時,需要指定數組中元素的個數,方括弧中的常量表達式用來表示元素的個數,即數組長度。注意:1)在定義數組時,只能使用整常量表達式表明數組的大小,即數組元素的個數,不能是變量。也就是說,C語言不允許對數組的大小作動

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

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

29、數組的初始化 二維數組初始化通常是按行進行的 類型符 數組名表達式1表達式2=初值表;給全部元素賦初值。 例 int a34=0,1,2,3,4,5,6,7,8,9,10,11; 或寫成: int a34=0,1,2,3,4,5,6,7,8,9,10,11給二維數組的全部元素賦初值,可以不指定第一維的長度,但第二維的長度不能省略。#define N 10#define M 6若有定義: int aNM;二維數組按行輸入標準模板: for(i=0; i<N; i+) for(j=0; j<M; j+) scanf("%d", &aij);二維數組按行輸出標

30、準模板: for(i=0; i<N; i+) for(j=0; j<M; j+) printf("%d", aij); printf("n"); 3、 字符數組(1)字符數組的定義:定義字符數組的方法與定義數值型數組的方法相同,使用關鍵字char格式:char 數組名常量表達式,··· ;(2)字符數組的初始化 一維字符數組初始化 1)逐個字符賦給數組中的各元素 2)用字符串常量初始化數組中的各元素字符串在實際存儲時,是用字符數組存儲的,系統(tǒng)會自動的在其尾部添加一個結束標志0 二維字符組初始化 二維字符數組的初始

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論