c程序設計第四版復習資料_第1頁
c程序設計第四版復習資料_第2頁
c程序設計第四版復習資料_第3頁
c程序設計第四版復習資料_第4頁
c程序設計第四版復習資料_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1、機器語言:由計算機硬件系統(tǒng)可以識別的二進制指令組成的語言稱為機器語言。2、匯編語言:匯編語言將機器指令映射為一些可以被人讀懂的助記符,如ADD、SUB等。3、高級語言:高級語言屏蔽了機器的細節(jié),提高了語言的抽象層次,程序中可以采用具有一定涵義的數(shù)據(jù)命名和容易理解的執(zhí)行語句。這使得在書寫程序時可以聯(lián)系到程序所描述的具體事物。高級語言:包括面向過程的高級語言和面向對象的高級語言 。4、C語言的特點:豐富的數(shù)據(jù)類型、結構化的控制語句、運算符種類豐富、可移植性好。5、 C語言三類函數(shù)及其采用意義:主函數(shù),用戶自定義函數(shù),C語言提供的庫函數(shù),意義:函數(shù)可以簡化了主函數(shù)以及實現(xiàn)模塊化程序設計。6、 程

2、序 = 算法 + 數(shù)據(jù)結構 + 程序設計方法 + 語言工具和環(huán)境7、8、實型常量指數(shù)形式:1.2×10-3-à1.2e-3例如123.456可以表示為:123.456e0、12.3456e1、1.23456e2、把其中的1.23456e2稱為“規(guī)范化的指數(shù)形式”:即在字母e(或E)之前的小數(shù)部分中,小數(shù)點左邊應有一位(且只能有一位)非零的數(shù)字。9、 所有的實型常量均視為雙精度類型。10、 字符常量是指用一對單引號括起來的一個字符。如 a , 9 , ! 11、(1) 基本整型 :以int表示。 (2) 短整型:以short int表示,或以short表示。 (3) 長整型:

3、以long int表示,或以long表示。 取值范圍:long>=int>=shortint型變量的值范圍:-3276832767 12、 無符號型變量只能存放不帶符號的整數(shù),而不能存放負數(shù)。一個無符號整型變量中可以存放的正數(shù)的范圍比一般整型變量中正數(shù)的范圍擴大一倍。13、 數(shù)據(jù)類型轉換有兩種方式:自動類型轉換、強制類型轉換。無論是自動類型轉換還是強制類型轉換,都并沒有改變變量本身的數(shù)據(jù)類型。14、15、表達式運算符運算對象16、單目算術運算符:自增、自減運算符為單目算術運算符,具有右結合性。 作用是使變量的值增1或減1,如:+i,-i (在使用i之前,先使i的值加(減)1) i+

4、,i-(在使用i之后,使i的值加(減)1)17、條件運算符是語言中唯一的一個三目運算符。格式:表達式1?表達式2:表達式3功能:根據(jù)表達式1的真假來決定整個條件表達式的取值。18、字符輸出函數(shù)putchar()(1)參數(shù)c可以是字符型變量、整型變量、字符常量或整型常量(要求在0-255范圍內(nèi))。(2)函數(shù)返回值為輸出字符的ASCII碼值。(3)putchar函數(shù)也可以輸出轉義字符。(4)一個putchar函數(shù)只能輸出一個字符。19、字符輸入函數(shù) getchar() (1)函數(shù)返回值為輸入字符的ASCII碼值。(2)getchar函數(shù)的值可以賦給一個字符變量或整型變量,也可以不賦給任何變量。(3

5、)一個getchar函數(shù)只能接收一個字符。20、printf(格式控制,輸出表列)“格式控制” 包括兩種信息: 格式說明:由“%”和格式字符組成。 普通字符:即需要原樣輸出的字符。原則上,輸出表列中變量的個數(shù)和類型應與格式控制中指定的數(shù)據(jù)的個數(shù)和類型應一致,且從左到右一一對應。 (1) printf(“%e”,123.456); 輸出:1.234560e+002。 (2) int n=10; printf("%d,%o,%xn",n,n,n); printf("%#o,%#xn",n,n); 運行結果:10,12,a 012,0xa(3)float f=

6、123.456; printf("%f %10f %10.2f %.2f %-10.2fn", f,f,f,f,f); 輸出結果如下: 123.456001 123.456001 123.46 123.46 123.4621、格式輸入函數(shù) scanf() scanf(格式控制,地址表列)“格式控制”的含義同printf函數(shù);“地址表列”是由若干個地址組成的表列,可以是變量的地址,或字符串的首地址。說明: 1、在執(zhí)行數(shù)據(jù)輸入時,以一個或多個空格、或回車鍵、或跳格鍵(Tab)作為分隔符。 2、“&”是地址運算符,作用于變量,其地址在變量定義時由編譯程序確定。22、(1)

7、可以指定輸入數(shù)據(jù)所占列數(shù),系統(tǒng)自動按它截取所需數(shù)據(jù)。scanf("%3d%3d",&a,&b);輸入: 123456系統(tǒng)自動將123賦給a,456賦給b。 (2)此方法也可用于字符型:scanf(“%3c”,&ch);如果從鍵盤連續(xù)輸入3個字符abc,由于ch只能容納一個字符,系統(tǒng)就把第一個字符a賦給ch。 (3)輸入數(shù)據(jù)時不能規(guī)定精度,例如,scanf("%7.2f",&a);是不合法的,不能企圖用這樣的scanf函數(shù)并輸入以下數(shù)據(jù)而使a的值為12345.67。 (4)如果在“格式控制”字符串中除了格式說明以外還有其他字

8、符,則在輸入數(shù)據(jù)時應輸入與這些字符相同的字符。23、 注意:(1)在scanf中應使用變量的地址。(2)選擇合適的輸入分隔符。(3)可以指定輸入數(shù)據(jù)的寬度,系統(tǒng)自動截取。(4)在用“%c”輸入字符時,空格和“轉義字符”都作為有效字符輸入,不需要用空格作間隔。(5)輸入數(shù)據(jù)時不能規(guī)定精度。(6)在輸入數(shù)據(jù)時,遇到以下情況該數(shù)據(jù)認為結束:遇空格、回車、跳格鍵(Tab)、遇寬度結束、遇非法輸入。24、表達式語句。表達式語句由表達式加上分號組成。格式:表達式;功能:計算表達式的值。說明:C語言中的任何一個表達式都可以構成語句。注意:如果沒有分號,如“x=y+z”只是一個表達式,而不是一條語句。25、函

9、數(shù)調(diào)用語句。此類語句由函數(shù)調(diào)用加上分號構成。格式:函數(shù)名(實參列表);功能:調(diào)用函數(shù),以完成函數(shù)所規(guī)定的功能。例如:printf(“C Program”);26、 控制語句。控制語句用于控制程序的流程,以實現(xiàn)程序的各種結構方式。27、 空語句??照Z句僅由一個分號組成。 格式: ; 功能:不執(zhí)行任何操作。28、 編程風格:正確性、可靠性、規(guī)范化、可讀性、靈活性:29、 if語句格式一:if (表達式) 語句功能:如果表達式為真,則執(zhí)行其后的語句,否則不執(zhí)行語句。30、格式2:if (表達式) 語句1 else 語句2功能:如果表達式為真,則執(zhí)行語句1;否則執(zhí)行語句2。31、格式3:if (表達式

10、1) 語句1 else if (表達式2) 語句2 else if (表達式3) 語句3 else if (表達式n) 語句n else 語句n +132、if關鍵字之后均為表達式。該表達式可以是邏輯表達式、關系表達式以及其它表達式。只要表達式運算的結果為非0,就按“真”處理,執(zhí)行相應的語句;否則按“假”處理,執(zhí)行相應的語句。在if語句中的條件判斷表達式必須用圓括號括起來,每個語句之后必須加分號。在if語句的第二、三種形式中,else子句不能作為語句單獨使用,必須是if語句的一部分,應與if配對使用。在if語句的三種形式中,所有的語句應為單個語句,如果想在滿足條件時執(zhí)行一組(多個)語句,則必須

11、把這一組語句用“”括起來組成一個復合語句。但是在“”之后不能加分號。在if語句的表達式中,一定要避免判斷實數(shù)與零值的等值比較。 雖然在C里面,常量NULL、零值都是false,非零值都是true,但是為了使得程序清晰易讀,建議在表達式中不要使用“if (a)”這樣的語句。33、 if語句的嵌套:格式:if (表達式) if語句或者:if (表達式) if語句 else if語句注意:正確書寫格式。一般按層次縮進書寫,以便掌握配對關系.在多重嵌套時,else總是與在它之前出現(xiàn)的、尚未匹配的且離它最近的if匹配。 如果if與else數(shù)目不相等,最好用花括號確定配對關系。形成多重嵌套實質上是為了進行

12、多分支選擇,這種問題一般可以使用if語句的第三種形式,即“if-else-if”語句,或者將要介紹的switch語句完成。因此,在一般情況下,較少使用if語句的嵌套結構,以使程序更便于閱讀理解。34、 選擇結構switch語句格式:switch (表達式) case 常量表達式1:語句1 case 常量表達式2:語句2 ¼ case 常量表達式n:語句n default: 語句n+1 功能:計算表達式的值,并逐個與其后的常量表達式進行比較,當表達式的值與某個常量表達式的值相等時,即執(zhí)行其后的語句,然后不再進行判斷,繼續(xù)執(zhí)行后面所有case后的語句。如表達式的值與所有case后的常量表

13、達式均不相同時,則執(zhí)行default后的語句。說明:“case 常量表達式”只相當于一個語句標號,表達式的值和某標號相等則轉向該標號執(zhí)行,但不能在執(zhí)行完該標號的語句后自動跳出整個switch語句。為了避免上述情況,C提供了break語句。在case后的各個常量表達式的值不能相同,否則會出現(xiàn)錯誤。在case后,允許有多個語句,可以不用括起來。各個case和default子句的先后順序可以變動,不影響程序的執(zhí)行結果。default子句可以省略不用,此時當表達式的值與所有case后的常量表達式的值不同時,退出switch語句,繼續(xù)執(zhí)行后續(xù)程序。switch后面括號中的表達式只能是整型、字符型、枚舉類

14、型,case后的常量表達式的類型必須與之匹配。各個case之后是常量表達式,一定不要試圖使用條件表達式或者邏輯表達式。多個case可以共用一組執(zhí)行語句。35、 循環(huán)結構while語句 格式:while (表達式) 語句 功能:計算表達式的值,當值為真時,執(zhí)行循環(huán)體。 說明:(1)while語句中的表達式一般是關系表達式或者邏輯表達式,只要值為真就可以繼續(xù)執(zhí)行循環(huán)體。(2) 如果循環(huán)體包含一個以上的語句,必須用括起來構成復合語句。36、 do-while語句 格式:do 語句 while(表達式);功能:先執(zhí)行一次循環(huán)體,再判別表達式的值,如果為真則繼續(xù)執(zhí)行循環(huán),否則終止循環(huán)。說明:(1)do-

15、while語句的表達式后必須加分號。(2)如果循環(huán)體由多個語句組成,也必須由括起來,組成一個復合語句。37、for語句格式:for (表達式1;表達式2;表達式3) 語句功能:(1)首先計算表達式1的值;(2)再計算表達式2的值,若值為真,則執(zhí)行一次循環(huán)體,否則跳出循環(huán);(3)計算表達式3的值,轉回第(2)步重復執(zhí)行。38、for語句最易理解的如下形式:for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值) 語句 39、說明:for語句的各個表達式均可省略,但是分號不可缺少。如果循環(huán)變量已經(jīng)在for語句前賦初始值,那么表達式1可以省略。如果省略表達式2,一般在循環(huán)體中加入break語句來退出循環(huán)。若

16、省略表達式3,應在循環(huán)體中修改循環(huán)變量,保證循環(huán)能結束??梢酝瑫r省略三個表達式中的任意2個。三個表達式可以全部省略。 循環(huán)體可以是空語句。表達式1可以是設置循環(huán)變量初值的賦值表達式,也可以是與循環(huán)變量無關的其它表達式。 表達式2一般是關系表達式或者邏輯表達式,但也可以是數(shù)值表達式或者字符表達式,只要其值為非零,就可以執(zhí)行循環(huán)。表達式3一般是改變循環(huán)變量的賦值表達式,但也可以是與循環(huán)變量無關的其它表達式。表達式1和表達式3都可以是逗號表達式。40、 break語句格式:break;功能:用于跳出switch結構,和從循環(huán)體內(nèi)中途跳出循環(huán)體,即提前結束循環(huán),執(zhí)行循環(huán)下面的語句。說明:(1)在循環(huán)語

17、句中,break語句一般與if語句一起使用。(2)break語句不能用于循環(huán)語句和switch語句之外的其它任何語句之中。41、 continue語句格式:continue;功能:跳過循環(huán)體中剩余的語句而強制執(zhí)行下一次循環(huán),即結束本次循環(huán),跳過循環(huán)體中下面尚未執(zhí)行的語句,接著進行下一次是否執(zhí)行循環(huán)的判定。說明:continue語句只能用在循環(huán)語句中,且一般都是與if語句一起使用。42、continue語句和break語句的區(qū)別是:continue語句只結束本次循環(huán),而不是終止整個循環(huán)的執(zhí)行。break語句則是結束整個循環(huán)過程,不再判斷執(zhí)行循環(huán)的條件是否成立。43、 循環(huán)結構百錢買百雞問題 “百

18、錢買百雞”是我國古代的著名數(shù)學題。問題是這樣描述的:3文錢可以買1只公雞,2文錢可以買一只母雞,1文錢可以買3只小雞。用100文錢買100只雞,那么各有公雞、母雞、小雞多少只?方法一:#include<stdio.h>void main() int i,j,k; for (i=0;i<=33;i+) for (j=0;j<=50;j+) for (k=0;k<=300;k+)if (3*i+2*j+k/3=100 && i+j+k=100 && k%3=0) printf("公雞%d只,母雞%d只,小雞%d只。n"

19、;,i,j,k);方法二:#include<stdio.h>void main() int i,j,k; for (i=0;i<=33;i+) for (j=0;j<=50;j+) k=100-i-j; if (3*i+2*j+k/3=100 && k%3=0)printf("公雞%d只,母雞%d只,小雞%d只。n",i,j,k); 方法三:#include<stdio.h>void main() int i,j,k; for (i=0;i<=33;i+) for (j=0;j<=(100-3*i)/2;j+)

20、 k=100-i-j; if (3*i+2*j+k/3=100 && k%3=0)printf("公雞%d只,母雞%d只,小雞%d只。n",i,j,k); 44、 例 輸出下列圖形:11 21 231 23 41 23 4 51 23 4 5 61 23 4 5 6 71 23 4 5 6 7 81 23 4 5 6 7 8 9#include <stdio.h>void main() int m,n; for (n=1;n<=9;n+) for(m=1;m<=n;m+) printf("%4d",m); prin

21、tf("n"); 45、數(shù)組是有序數(shù)據(jù)的集合。 數(shù)組中的每一個元素都屬于同一個數(shù)據(jù)類型。用一個統(tǒng)一的數(shù)組名和下標來唯一地確定數(shù)組中的元素。46、一維數(shù)組的定義類型 數(shù)組名常量表達式;如:float a10; (a0a9稱為數(shù)組元素) 常量表達式中可以包括常量和符號常量,不能包含變量。47、一維數(shù)組元素的引用數(shù)組必須先定義,然后使用。C語言規(guī)定只能逐個引用數(shù)組元素而不能一次引用整個數(shù)組。數(shù)組元素的表示形式:數(shù)組名下標例如:a0 = a5 + a2*3;48、int a10=0,1,2,3,4; 等價于:int a10=0,1,2,3,4,0,0,0,0,0; int a5 =

22、 1,2,3,4,5 ; 可以寫成 int a = 1,2,3,4,5 ;49、 例 用冒泡法對6個數(shù)排序(由小到大)。 #include <stdio.h> #define N 6 void main() int aN;int i,j,t;printf("input numbers:n"); for(i=0;i<N;i+)scanf("%d",&ai); printf("the unsorted numbers:n");for(i=0;i<N;i+)printf("%d ",ai)

23、;printf("n"); /核心代碼部分:開始冒泡排序for(i=1;i<=N-1;i+)for(j=1;j<=N-i;j+)if(aj-1>aj) t=aj-1; aj-1=aj; aj=t; printf("the sorted numbers:n");for(i=0;i<N;i+)printf("%d ",ai); 50、二維數(shù)組的定義類型 數(shù)組名常量表達式1常量表達式2; 常量表達式1聲明二維數(shù)組的行數(shù) 常量表達式2聲明二位數(shù)組的列數(shù); 例如:float b34 ;/a為3×4(3行4列)的

24、數(shù)組。 不能寫成:float b3,4;51、二維數(shù)組的引用二維數(shù)組的元素的表示形式為:數(shù)組名下標下標在使用數(shù)組元素時,應該注意下標值應在已定義的數(shù)組大小的范圍內(nèi)。常出現(xiàn)的錯誤是:int a34; /a為3×4的數(shù)組a34=3;/引用a34超過了數(shù)組的范圍52、二維數(shù)組的初始化二維數(shù)組初始化:(1) 分行給二維數(shù)組賦初值。如int a34 = 1,2,3,4 , 5,6,7,8 , 9,10,11,12 ;(2) 將所有數(shù)據(jù)寫在一個花括弧內(nèi),按數(shù)組排列的順序對各元素賦初值。如:int a34=1,2,3,4,5,6,7,8,9,10,11,12;(3) 可以對部分元素賦初值。int

25、a34 = 1 , 5 , 9 ; 可以只對某幾行元素賦初值:int a34 = 1 , 5,6 ;(4) 如果對全部元素都賦初值(即提供全部初始數(shù)據(jù)),則定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省。如:int a34=1,2,3,4,5,6,7,8,9,10,11,12;等價于:int a 4=1,2,3,4,5,6,7,8,9,10,11,12;(5)有的編譯系統(tǒng),如VC6.0中,初始化數(shù)組時不能出現(xiàn)空的花括號,如int a34=1,2,3,4;53、字符數(shù)組用來存放字符數(shù)據(jù)的數(shù)組是字符數(shù)組。54、一維字符數(shù)組的定義格式:char 字符數(shù)組名常量表達式功能:定義一維字符數(shù)組【

26、例如】char a4, str5;【說明】(1)字符型數(shù)據(jù)在內(nèi)存中存放的是ASCII碼,每個字符占一個字節(jié)的存儲空間。(2)C語言允許使用整型數(shù)組來存放字符型數(shù)據(jù)。如int a5;a0=a;scanf(”%c”,&a1);55、C語言中,字符串作為一維字符數(shù)組存放在內(nèi)存中。如字符串“C Language”,包含字符個數(shù)為10,但在內(nèi)存中占11個字節(jié),最后一個字節(jié)存放空字符0。說明:字符串最后的空字符0稱為字符串結束標志,其ASCII碼為0,由系統(tǒng)自動加上。程序中主要依靠檢測0的位置來判定字符串是否結束,而非根據(jù)數(shù)組的長度來判斷?!菊f明】字符串輸出時不包括結束符056、字符數(shù)組的初始化(

27、1)逐個字符初始化字符數(shù)組。如char str4=A,B,C,0; char str4=65,66,67,0;char str =A,B,C,0;char str4=A,B,C;(2)用字符串常量初始化字符數(shù)組。如char str4=“ABC”;char str4=“ABC”; char str =“ABC”;【說明】字符串對應的字符數(shù)組必然以0結尾,但字符數(shù)組也可不含0字符,也可以包含多個空字符0,甚至0后可以有非空字符。如char a3= A,B,C; char str6=A,B,0,C00;【注意】以字符串常量初始化字符數(shù)組時,字符數(shù)組的長度要比字符串有效長度大1。57、 二維字符數(shù)組可

28、以看作一個特殊的一維數(shù)組,該一維數(shù)組的每個元素都是一個一維字符數(shù)組。每個一維字符數(shù)組可以存放一個字符串,因此,一個N行M列的二維字符數(shù)組就可以用來存放N個字符串,且每個字符串的最大有效長度為M1。58、 字符數(shù)組的輸入輸出字符數(shù)組的輸入輸出可以有兩種方法:逐個字符輸入輸出。用 “%c”輸入或輸出一個字符。即在scanf和printf函數(shù)中用格式符“%c”進行輸入或輸出。例如:char str5; int i; for(i=0;i<5;i+)scanf(“%c”,&stri); for(i=4;i>=0;i-)printf(“%c”,stri);(2) 將整個字符串一次輸入或

29、輸出。用“%s” 輸出字符串。例如:char c ="china"printf(“%s",c);在內(nèi)存中數(shù)組c的狀態(tài)如圖所示。請注意:(1) 輸出字符不包括結束符0。(2) 用“%s”格式符輸出字符串時,printf函數(shù)中的輸出項是字符數(shù)組名,而不是數(shù)組元素名。寫成下面這樣是不對的:printf("%s",c0);(3) 如果數(shù)組長度大于字符串實際長度,也只輸出到遇 0結束。如:char c10="china"printf("%s",c);輸出“china”(4)可以用scanf函數(shù)輸入一個字符串。例如:

30、char c6; scanf("%s",c);輸入:china如果利用一個scanf函數(shù)輸入多個字符串,則以空格分隔。例如:char strl5,str25,str35;scanf("%s%s%s",str1,str2,str3);59、字符串處理函數(shù)下面介紹幾種常用的函數(shù)。1. puts(字符數(shù)組)其作用是:將一個字符串(以0結束的字符序列)輸出到終端。用puts函數(shù)輸出的字符串中可以包含轉義字符。使用puts函數(shù)或以字符串整體進行輸出時,系統(tǒng)一旦遇到0便停止輸出,而且只有遇到0才停止輸出。使用puts(str);或printf(“%s”,str);輸

31、出字符數(shù)組str時,str中一定要有0。2. gets(字符數(shù)組)其作用是:從鍵盤輸入一個字符串(該字符串中可以包含空格),直至遇到回車符為止,并將該字符串存放到由指定的數(shù)組中(或內(nèi)存區(qū)域)。并且得到一個函數(shù)值。該函數(shù)值是該字符數(shù)組的起始地址。注意:用puts和gets函數(shù)只能輸入或輸出一個字符串,不能寫成puts(str1,str2)或gets(str1,str2)使用gets函數(shù)或以字符串整體進行輸入時,系統(tǒng)自動在末尾添加0;輸入字符串時,gets函數(shù)以回車作輸入結束標志,而scanf以空格、Tab及回車符作為結束標志。3. strcat(字符數(shù)組1,字符數(shù)組2)作用是:連接兩個字符數(shù)組中

32、的字符串,把字符串2接到字符串1的后面,結果放在字符數(shù)組1中,函數(shù)調(diào)用后得到一個函數(shù)值字符數(shù)組1的地址。說明:字符數(shù)組1必須足夠大,以便容納連接后的新字符串。 連接前兩個字符串的后面都有一個0,連接時將字符串1后面的0取消,只在新串最后保留一個0。4、strcpy(字符數(shù)組1,字符串2)它是“字符串復制函數(shù)”。作用是將字符串2復制到字符數(shù)組1中去。例如:char str110,str2 ="china"strcpy(str1,str2);說明:(1) 字符數(shù)組1必須定義得足夠大。(2) strcpy(str1,"china");作用與前相同。(3) 復制

33、時連同字符串后面的0一起復制到字符數(shù)組1中。(4)復制后字符數(shù)組1原來內(nèi)容被覆蓋。(5) 下面兩行都是不合法的:str1="china"str1=str2;5. strcmp(字符串1,字符串2)作用是比較字符串1和字符串2。例如:strcmp(str1,str2);strcmp("china","Korea");strcmp(str1,"beijing");字符串比較的規(guī)則:對兩個字符串自左至右逐個字符相比(按ASCII碼值大小比較),直到出現(xiàn)不同的字符或遇到0為止。如全部字符相同,則認為相等;若出現(xiàn)不相同的字符

34、,則以第一個不相同的字符的比較結果為準?!癮”<“b”, “a”>“A”,“computer”>“compare”,“these”>“that”,“36+54”>“!&#”,“china”>“canada”,“DOG”<“cat” 。比較的結果由函數(shù)值帶回。(1) 如果字符串1=字符串2,函數(shù)值為0。(2) 如果字符串1>字符串2,函數(shù)值為一正整數(shù)。(3) 如果字符串1<字符串2,函數(shù)值為一負整數(shù)。注意:對兩個字符串比較,不能用以下形式:if(str1=str2) printf(“yes");而只能用if(strcmp(s

35、tr1,str2)=0) printf(“yes”);6. strlen(字符數(shù)組)測試字符串長度的函數(shù)。函數(shù)的值為字符串中的實際長度,不包括0在內(nèi)。7. strlwr(字符串)函數(shù)的作用是將字符串中大寫字母換成小寫字母。8. strupr(字符串)函數(shù)的作用是將字符串中小寫字母換成大寫字母。60、輸出楊輝三角形的前10行 11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1. . . . . . .#include<stdio.h>#define N 10void main( )int aNN,i,j;for(i=0;i<N;i+)ai0=1;aii

36、=1;for(j=1;j<i;j+)aij=ai-1j-1+ai-1j;printf("楊輝三角的前%d行為:n",N);for(i=0;i<N;i+)for(j=0;j<=i;j+)printf("%5d",aij);printf("n");61、一個程序可由一個主函數(shù)和若干個函數(shù)構成。由主函數(shù)調(diào)用其他函數(shù),其他函數(shù)也可以互相調(diào)用。同一個函數(shù)可以被一個或多個函數(shù)調(diào)用任意多次。62、函數(shù)定義的一般形式類型標識符 函數(shù)名(類型標識符 形參1 , 類型標識符 形參2 , )函數(shù)體變量定義或聲明部分;函數(shù)體可執(zhí)行語句部分;

37、例如:int max(int x,int y) int z; z=x>y?x:y; return z;63、說明:1. 如果是定義無參函數(shù),則“形參表列”就不再需要,但括弧不能省略。2. 當函數(shù)只完成特定的操作而不需要返回值時,可用類型標識符void。3. 可以有“空函數(shù)”。即函數(shù)體為空。它的形式為: 類型說明符 函數(shù)名(類型標識符 形參1 , 類型標識符 形參2 , ) “空函數(shù)”表明 “這里要調(diào)用一個函數(shù)”, 而現(xiàn)在這個函數(shù)沒有起作用, 等以后擴充函數(shù)功能時補充上。4. 在同一個C程序中不可定義同名的變量,同樣也不能定義同名的函數(shù)。64、 函數(shù)的調(diào)用 函數(shù)調(diào)用的一般形式函數(shù)名(實參表

38、列);如果是調(diào)用無參函數(shù),則“實參表列”可以沒有,但括弧不能省略。即:函數(shù)名( );形參:函數(shù)定義時“()”內(nèi)的參數(shù)為形參。實參:函數(shù)調(diào)用時“()”內(nèi)的參數(shù)為實參。如果實參表列包含多個實參,則各參數(shù)間用逗號隔開。實參與形參的個數(shù)應相等,類型應一致。實參與形參按順序對應,一一傳遞數(shù)據(jù)。65、 函數(shù)調(diào)用的方式 1 函數(shù)語句把函數(shù)調(diào)用作為一個語句。 2 函數(shù)表達式函數(shù)出現(xiàn)在一個表達式中,這種表達式稱為函數(shù)表達式。 3. 函數(shù)參數(shù) 函數(shù)調(diào)用作為一個函數(shù)的實參。66、函數(shù)的聲明函數(shù)“聲明” 的作用: 把函數(shù)類型、函數(shù)的名字以及形參的類型、個數(shù)和順序通知編譯系統(tǒng),以便在調(diào)用該函數(shù)時系統(tǒng)按此進行對照檢查。函

39、數(shù) “聲明”的格式: 已定義的函數(shù)的首部,再加一個分號。 如: float circle_area(int r) ; 函數(shù)聲明中也可以不寫形參名,而只寫形參的類型。 如: float circle_area(int) ;在C語言中,把以上形式的函數(shù)聲明稱為函數(shù)原型。函數(shù)原型的一般形式為:(1) 函數(shù)類型 函數(shù)名(參數(shù)類型1, 參數(shù)類型2);(2) 函數(shù)類型 函數(shù)名(參數(shù)類型1 參數(shù)名1, 參數(shù)類型2 參數(shù)名2);編譯系統(tǒng)不檢查參數(shù)名。因此參數(shù)名是什么都無所謂。67、 對被調(diào)用函數(shù)的聲明 首先被調(diào)用的函數(shù)必須是已經(jīng)存在的函數(shù)(是庫函數(shù)或用戶自己定義的函數(shù))。 如果使用庫函數(shù),一般還應該在本文件開

40、頭用include命令將調(diào)用有關庫函數(shù)時所需用到的信息“包含”到本文件中來。例如,include<stdio.h>如果使用用戶自己定義的函數(shù),而且該函數(shù)與調(diào)用它的函數(shù)(即主調(diào)函數(shù))在同一個文件中,一般還應該在主調(diào)函數(shù)中對被調(diào)用的函數(shù)作聲明。68、函數(shù)參數(shù):形式參數(shù)和實際參數(shù)在定義函數(shù)時函數(shù)名后面括弧中的變量名稱為“形式參數(shù)”(簡稱“形參”);在主調(diào)函數(shù)中調(diào)用一個函數(shù)時,函數(shù)名后面括弧中的參數(shù)(可以是一個表達式)稱為“實際參數(shù)”(簡稱“實參”)。Ps:關于形參與實參的說明:(1) 當發(fā)生函數(shù)調(diào)用時,函數(shù)swap中的形參才被分配內(nèi)存單元。在調(diào)用結束后,形參所占的內(nèi)存單元即被釋放。(2)

41、實參可以是常量、變量或表達式,如:max(3 , a+b); 但要求它們有確定的值。 (3) 在被定義的函數(shù)中,必須指定形參的類型。(4) 實參和形參在類型上應當相同或者賦值兼容。 例如:上例中輸入:3.14 , 6.2(5) 語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞都是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內(nèi)存中,實參單元與形參單元是不同的單元。69、函數(shù)的返回值(1) 函數(shù)的返回值是通過函數(shù)中的return語句獲得的。return z; 與 return(z); 等價。(2) 函數(shù)值的類型。int max(float x,float y) /* 函數(shù)值為整型

42、*/double min(int x,int y) /* 函數(shù)值為雙精度型 */(3) 如果函數(shù)值的類型和return語句中表達式的值不一致,則以函數(shù)類型為準。即函數(shù)類型決定返回值的類型。建議不要采用這種方法,而應做到使函數(shù)類型與return返回值的類型一致。(4) 如果被調(diào)用函數(shù)中沒有return語句,并不是指函數(shù)不帶回值,而只是帶回的是一個不確定的值。(5) 為了明確表示“不帶回值”,可以用“void”定義“無類型”(或稱“空類型”)。70、函數(shù)的遞歸調(diào)用在調(diào)用一個函數(shù)的過程中又出現(xiàn)直接或間接地調(diào)用該函數(shù)本身,稱為函數(shù)的遞歸調(diào)用。例 用遞歸方法求n!。可用下面的遞歸公式表示:n!=1 (n=0,1)n!=n*(n

溫馨提示

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

評論

0/150

提交評論