全國計算機(jī)等級考試二級C語言教程64總復(fù)習(xí)完整_第1頁
全國計算機(jī)等級考試二級C語言教程64總復(fù)習(xí)完整_第2頁
全國計算機(jī)等級考試二級C語言教程64總復(fù)習(xí)完整_第3頁
全國計算機(jī)等級考試二級C語言教程64總復(fù)習(xí)完整_第4頁
全國計算機(jī)等級考試二級C語言教程64總復(fù)習(xí)完整_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1C語言總復(fù)習(xí)(64學(xué)時)以考試難度為限2一、一、C語言的數(shù)據(jù)表示語言的數(shù)據(jù)表示 1. 1 常量常量和和變量變量 1. 2 表達(dá)式表達(dá)式 1. 3 數(shù)據(jù)類型數(shù)據(jù)類型 簡單類型、結(jié)構(gòu)類型、指針類型 1.4 輸入、輸出輸入、輸出31.1 常量和變量常量和變量 1.常量常量 常量是在程序執(zhí)行中,值不發(fā)生改變的數(shù)據(jù)。其值預(yù)先決定,之后不變。有不同的數(shù)據(jù)類型。 (1)常數(shù)(有的稱直接常量、頁面常量) 例如的: 整數(shù):+5 、-3、017(八進(jìn)制)、0 x1f(16進(jìn)制) 實數(shù)(浮點數(shù)):3.14 、-1.2E-3 、1E10 單個字符: A,占一個字節(jié) ,轉(zhuǎn)義字符 非法 77 (八進(jìn)制ASCII碼63,

2、?),78非法 x3f (十六進(jìn)制ASCII碼63,?) x3g非法 字符串: “A” 后面有0,占兩個字節(jié)E3,2E3.0不合法不是整型量占一個字節(jié)4 (2)符號常量 給常量起標(biāo)識符名字。 C語言的符號常量(用宏定義): #define PI 3.14159265 好處:提高程序易讀性;方便修改常量的值;注意:1.一般用大寫字母。2, #define M 3 不是C語句,后面沒有“;”。3.可以做M+1,不能做M+. (3)地址常量 當(dāng)數(shù)組在定義時,其變量名為其首地址,是地址常量。 int a10;可以做a+1,不能做a+. 51.1 常量和變量常量和變量 2 變量變量 用各種操作來改變值數(shù)

3、據(jù)。 從“名名”和“值值”兩個角度認(rèn)識變量 (1)變量名 每個變量,要在使用前定義變量的名字,遵循標(biāo)識符命名規(guī)則。 只能用字母、數(shù)字和下劃線組成。 不能以數(shù)字開頭。 不能用保留字(int,printf,main.)。6 變量定義就是申請數(shù)據(jù)的存儲空間,登記數(shù)據(jù)的各種存儲特性。 例如: int m ;2個字節(jié) -215215-1(-3276832767) long n; 4個字節(jié) -231231-1 char ch; 1 個字節(jié) 0255 float x; 4個字節(jié) 3.4 (10-38 1038) double y; 8個字節(jié) 1.7(10-308 10308) 可以用sizeof獲得字長 s

4、izeof(char)=1 sizeof(int)=2 sizeof(double)=87 (2)變量的值)變量的值 變量值就是由變量名所指定空間上的存儲數(shù)據(jù)內(nèi)容。即變量的當(dāng)前值。 數(shù)據(jù)內(nèi)容用語言的操作語句來改變。 賦值語句;鍵盤輸入語句; char chx; int m; /* 變量的定義 */ chx=A; m=12*3; /* 賦值語句 */ scanf(“%d”,&m); /* 鍵盤輸入語句 */ 在程序運行時,將數(shù)據(jù)存入制定內(nèi)存空間。 變量初始化:變量初始化:定義變量時同時確定變量初值。 例如: char chy=a; int weight=2; 81.2 C語言的語言的表達(dá)

5、式表達(dá)式 1 1、算術(shù)表達(dá)式、算術(shù)表達(dá)式 2 2、關(guān)系表達(dá)式、關(guān)系表達(dá)式 3 3、邏輯表達(dá)式、邏輯表達(dá)式 4 4、賦值表達(dá)式、賦值表達(dá)式 5 5、逗號表達(dá)式、逗號表達(dá)式 6 6、條件表達(dá)式、條件表達(dá)式 7 7、其他表達(dá)式、其他表達(dá)式C語言的語言的表達(dá)式表達(dá)式:使用規(guī)定的運算符運算符,將常量、變量、函數(shù)(調(diào)用)連結(jié)的一個有意義的式子。 91、算術(shù)表達(dá)式、算術(shù)表達(dá)式 用算術(shù)運算符來表示對數(shù)據(jù)的算術(shù)運算求值過程。 算術(shù)運算符: + - * / % 2/3結(jié)果是0,2%3結(jié)果是2 注意不同類型運算問題:doublelongunsignedint floatchar short高低102 2、關(guān)系表達(dá)式

6、、關(guān)系表達(dá)式 關(guān)系運算符: = 0 , sin(x)=0.5, (a+b)=(c*d) 注意語法合理與數(shù)學(xué)邏輯錯誤問題: 分析:10=a=15 a=9 是假 10=a=1510=a 假 00=15 真所以要寫成10=a&a=15113、邏輯表達(dá)式 用邏輯表達(dá)式來表示對數(shù)據(jù)的邏輯關(guān)系判斷,運算結(jié)果是邏輯值“真”1或者“假”0。 C邏輯運算符包括: ! & | 參加邏輯運算的數(shù)據(jù)必須是邏輯量,可以是邏輯類型的變量、常量,關(guān)系表達(dá)式或邏輯表達(dá)式。 C語言中,沒有專門的邏輯量,語言中,沒有專門的邏輯量,1是真值,是真值,0是是假值。也認(rèn)為假值。也認(rèn)為非零非零的值為真值。的值為真值。 如

7、:int a=3, b=4, c=-5; (1) ! (ab) & ! c | 1) (2) if(a)printf(“n yes”);a,c均按非0(即真)處理12邏輯運算規(guī)律 在&(與)表達(dá)式中,若&的左端為假, 則不再計算另一端,該表達(dá)式值肯定為 0(假)。 在|(或)表達(dá)式中,若|的左端為真,則不再計算另一端,表達(dá)式的值必定為 1(真)。 nint a=5,b=1nk=a0nk?b?假,后面不算了k=0,b=113 判斷閏年的條件是:能被4整除但不能被100整除,或能被400整除。(x4= =0&x100!=0) 水仙花數(shù)是指一個三位正整數(shù),其各位數(shù)字的

8、立方和等于該數(shù)本身 (k*100+m*10+n= =k*k*k+m*m*m+n*n*n) 三角形的基本條件 (a+b)c)&(c+b)a)&(c+a)b) 14 4、賦值表達(dá)式=,+=,-=,*=,/=,+(單目),- (單目)級別僅高于逗號表達(dá)式,右結(jié)合int a=3,c=2,ba=b=c;n*=m+2 相當(dāng)于 n=n*(m+2)k=i+; 先k=i,再i=i+1k=+i; 先i=i+1,再k=ic賦值給b,b=2b賦值給a,a=215 5、條件表達(dá)式 e1?e2:e3若e1為真,表達(dá)式的值為e2,否則為e3. (- -a=b+)? -a : b +5-1=4 T a=4-a

9、 a=3 表達(dá)式的值為3a=5,b=44-1=5 F b=6b + b=7表達(dá)式的值為6a=4,b=5條件表達(dá)式的值的類型為e2,e3二者中類型較高者。如果y=5; y3?-1.0:2 其值為2.016 6、逗號表達(dá)式 表達(dá)式的值等于最后一個表達(dá)式的值,運算等級最低! a=5,b=2,c=3 a=7+b+c, a+ a=(7+b+c, a+) a=12a=57、強(qiáng)制類型轉(zhuǎn)換表達(dá)式(單目) int m; sqrt(float) m);并沒有改變m的類型和數(shù)值17理解記憶運算符表 (高高)(低低)!+,-,等算數(shù)運算符算數(shù)運算符 關(guān)系運算符關(guān)系運算符 邏輯運算符邏輯運算符 & |條件運算符

10、條件運算符 賦值運算符賦值運算符 逗號運算符 右結(jié)合單目運算符賦值運算符181.3 數(shù)據(jù)類型數(shù)據(jù)類型 數(shù)據(jù)類型:數(shù)據(jù)類型:在高級語言的數(shù)據(jù)表示機(jī)制中,數(shù)據(jù)類型(data tyPe )是個核心概念。簡單類型構(gòu)造類型指針類型整型實型字符型數(shù)組結(jié)構(gòu)體共用體數(shù)值型枚舉型空類型191. 3 數(shù)據(jù)類型數(shù)據(jù)類型(輸入、輸出格式輸入、輸出格式 “ “%d”%d”) 類型名 字節(jié)數(shù) 數(shù)值范圍 int 2 -32768 32767 shortshort 2 -32768 32767 long long 4 -2147483648 2147483647還有無符號整型(輸入、輸出格式輸入、輸出格式 “ “%u”%u”

11、)Unsigned int 2 0 65535Unsigned short 2 0 65535 Unsigned long 4 0 42949672951.簡單類型簡單類型20 (2) 實型實型 實型(float )數(shù)據(jù)的值集是實數(shù)集的一個有限子集. -3.4e38, -3.4e-39, 3.4E-38, 3.4E381.簡單類型簡單類型 類型名類型名 字節(jié)數(shù)字節(jié)數(shù) 輸入、輸出格式輸入、輸出格式 有效數(shù)字位有效數(shù)字位 float 4 %f%f 7 doubule 8 %lf%lf 16 long doubule 16 %lf%lf 19不要以為是長整型E38非法21n(3) (輸入、輸出格式輸

12、入、輸出格式 “%c”)n ASCII碼,一個字符占1字節(jié);nchar ca; ca=#;n注意轉(zhuǎn)義字符 的使用。 (4)字符串(輸入、輸出格式輸入、輸出格式 “ “%s”%s”) 所謂“字符串字符串”是指若干有效字符的序列。語言字符串可以包括字母、數(shù)字、專用字符、轉(zhuǎn)義字符等。 字符串常量:使用雙引號使用雙引號 China BASIC a+b=c Li-Li 39.4 %dn 解放軍“ 字符型的一維數(shù)組(相當(dāng)于字符串變量) char st8, str10; strcpy(st,12345); strcpy(str,st); 不能st=“12345”; str=st;22 2. 結(jié)構(gòu)類型 “結(jié)構(gòu)

13、”一般可以稱為數(shù)據(jù)元素數(shù)據(jù)元素,在不同的結(jié)構(gòu)類型中,數(shù)據(jù)元素會有特定的名稱。 結(jié)構(gòu)類型的數(shù)據(jù)由更加基本的成分組成。 這些成分稱為“數(shù)據(jù)項”,結(jié)構(gòu)的子成員子成員。1. 3 數(shù)據(jù)類型數(shù)據(jù)類型23 (1) 數(shù)組 A0 A1 A2 A3 A4 A5 A6 A7 10 20 30 40 50 60 70 80 一個數(shù)組(array )是由相同類型的若干數(shù)組元素構(gòu)成的有限序列。 C 語言的數(shù)定義 : int B8 , A8 ; char C10; 2. 結(jié)構(gòu)類型24例 日期類型的定義(2) 結(jié)構(gòu)體 C語言中實現(xiàn): struct Date int month ; /*月*/ int day; /*日*/ i

14、nt year; /*年*/ ; struct Date myd=12,16, 1978; 系統(tǒng)分配給它的內(nèi)存是各成員所需內(nèi)存量的總和。本例是6. 25 (1)指針:)指針:變量名的在內(nèi)存中的存儲地址。 (2)指針變量)指針變量 int i=12, *p; P=&i; 把存放變量i 的地址的變量p 稱作指針變量。 指針變量的存放內(nèi)容是數(shù)據(jù)的地址。3. 指針類型 (3)指針引用變量)指針引用變量 指針變量可以指向各種不同的數(shù)據(jù)類型,因此指針變量也要有不同的指針類型。如: int m, *p; float x,*q; int a,*r m=12; p=&m; x=3.14; q=&

15、amp;x; r=a;注意:是否用&261.4 輸入、輸出輸入、輸出 輸出: printf(“.”, .) %d, %6d, %ld %c, %s %f , %10.2f , %lf, %20.8lf n=3; printf(“n %d,%d,%d”, n,+n,n+); 計算從右到左,輸出從左到右。 %s是輸出以指定首地址到第一個0或空格之間的字符串。char a=“abcd efg”,*p=a;printf(“%s”,*+p); bcd5,5,3271.4 輸入、輸出輸入、輸出 輸入: scanf(“.”, .) %d, %ld 對應(yīng)int long %c, %s 對應(yīng)char c

16、har str %f , %lf 對應(yīng)flaot double 常見錯誤 int a,b;char d,e20; scanf(%d,%fn”,&a,&b); scanf(%d,%f”,a,b); scanf(%7.2f,&a); scanf(%s,&e); scanf(%c,d);28 (1)表達(dá)式語句表達(dá)式語句 (2)流程控制語句流程控制語句 (3)復(fù)合語句復(fù)合語句C語語言言語語句句 指令語句指令語句 非指令語句非指令語句 數(shù)據(jù)定義語句數(shù)據(jù)定義語句 float x; int m; 編譯預(yù)處理編譯預(yù)處理宏定義 #define PI 3.14159文件包含處理 #

17、include 二、C語言的程序結(jié)構(gòu)與相關(guān)語句29表達(dá)式語句 1. 表達(dá)式語句的組成: 由一個表達(dá)式后接一個分號組成的由一個表達(dá)式后接一個分號組成的。 i=i+1 (是表達(dá)式,沒有構(gòu)成語句) i=i+1; (是語句) x+y; (是合法語句,但沒有實際意義) 表達(dá)式語句的分類: 賦值語句: i=1; c=getchar(); 函數(shù)調(diào)用語句: printf(n Hello,world !); 空語句。其形式為: 逗號表達(dá)式語句: +a,-b;30 完成一定的控制功能。9種控制語句: 判斷語句判斷語句 條件判斷語句 if()else 多分支選擇語句 switch()case 循環(huán)語句循環(huán)語句 循環(huán)

18、次數(shù)控制語句 for() 先判斷后執(zhí)行循環(huán)控制語句while() 先執(zhí)行后判斷循環(huán)控制語句dowhile() 轉(zhuǎn)移控制語句轉(zhuǎn)移控制語句 直接轉(zhuǎn)移語句 goto 終止語句 break(用在循環(huán)結(jié)構(gòu)、swicth) 跳轉(zhuǎn)語句 continue (僅用在循環(huán)結(jié)構(gòu)) 返回語句 return流程控制語句流程控制語句31復(fù)合語句復(fù)合語句 一組語句括在一對花括號一對花括號之中,稱復(fù)合語句復(fù)合語句。 c=getchar(); putchar(c); 注意,一個復(fù)合語句的后花括號之后一個復(fù)合語句的后花括號之后不應(yīng)再寫分號不應(yīng)再寫分號。 在語法上是一個整體,相當(dāng)于一個語句。 凡是能夠使用簡單語句的地方,都可以使用

19、復(fù)合語句凡是能夠使用簡單語句的地方,都可以使用復(fù)合語句。一個復(fù)合語句中又可以包含另一個或多個復(fù)合語句。 32二、C語言的程序結(jié)構(gòu)與相關(guān)語句 程序的三種基本結(jié)構(gòu): 順序結(jié)構(gòu)順序結(jié)構(gòu) 選擇結(jié)構(gòu)選擇結(jié)構(gòu) if()else switch()case 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) for().; while(); do ; while()33選擇結(jié)構(gòu) 單分支結(jié)構(gòu) if(a=b)printf(“yes”); 雙分支結(jié)構(gòu) if(a=b) printf(“yes”); else printf(“no”); 多分支結(jié)構(gòu) switch_case 34多分支選擇語句 switch(表達(dá)式)(表達(dá)式) case 常量表達(dá)式常量表

20、達(dá)式1: 語句序列語句序列1; break;case 常量表達(dá)式常量表達(dá)式2: 語句序列語句序列2; break;case 常量表達(dá)式常量表達(dá)式n: 語句序列語句序列n; break;default:語句序列:語句序列n+1; 根據(jù)“表達(dá)式”的值從上至下去尋找與表達(dá)式的值相匹配的“case常量表達(dá)式”,執(zhí)行一個分支后,再執(zhí)行下一個分支,直到break結(jié)束,然后執(zhí)行switch結(jié)構(gòu)后面的程序。 找不到匹配的入口標(biāo)號時,執(zhí)行“語句序列n+1”,然后結(jié)束。順序向下執(zhí)行程序。35main() int a=1,b=1;switch (a)case 1: switch (b) case 0:printf(

21、“$”);break; case 1:printf(“#”);break; case 2:printf(“*”); case 2:printf(“”); case 3:printf(“”); break; case 4:printf(“&”);a=1case 1:swtch(1)b=1printf #,break跳出switch(b)結(jié)構(gòu)進(jìn)入switch(a)結(jié)構(gòu)case 2:printf case 2:printf break 跳出switch(a)結(jié)構(gòu)# 36for,while,do-while三種結(jié)構(gòu) 循環(huán)變量初始化,繼續(xù)循環(huán)條件,改變循環(huán)變量是不可缺少的三個環(huán)節(jié)。 for常用于

22、循環(huán)次數(shù)已知的問題中。括號中的兩個“;”不可省。 while與do-while常用于循環(huán)次數(shù)未知的問題中。37注意 在for和while語句之后一般沒有分號 有分號表示循環(huán)體就是分號之前的內(nèi)容(空循環(huán)體) while (i 100);i+; for (i = 0; i 100; i+);printf(%d, i); if,swtich,while,for后面的語句只能是一句,因此,多句時別忘了。38在while( e )和for( ;e ;)中的e是循環(huán)繼續(xù)的條件,不能寫其它條件!如果缺省,就是死循環(huán)!在if(e),while( e )和for( ;e ;)中e的值是邏輯值(0或非0)e一般是

23、關(guān)系表達(dá)式,邏輯表達(dá)式或變量。if(x=1)if(x=1)main() int i=1; doi-;while(i+); printf(“%d”,i-); A) -1 B) 0 C) 1 D)陷入死循環(huán)i=1i-,i=0while(i)終止循環(huán)i+,i=1輸出i=1i-,i=039break,coutinue break只能用于switch和循環(huán)語句中,作用提前終止本層次switch和循環(huán)。 coutinue是跳過循環(huán)體內(nèi)尚未執(zhí)行的語句,接著執(zhí)行下次循環(huán)。40常用的循環(huán)算法 求素數(shù)、水仙花數(shù)、最小公倍數(shù)、最大公約數(shù)、分解多位數(shù)的數(shù)字,累加,累乘,分解質(zhì)因數(shù)等。 各種有規(guī)律的圖案。while(

24、m) k = m%10 ; /*求最低位的數(shù)字*/ m=m/10; /*除去最低位的數(shù)字*/ 分解多位數(shù)的數(shù)字41判斷素數(shù)main() int i,x,flag=0; scanf(“%d”,&x); for(i=2;i0; -x ) y *= x; return(y);main() long y; for ( y=1; x0; -x ) y *= x; printf(“%ld”,y); main( ) int m, n; long cmn, facto( ); scanf (%d%d, &m, &n); cmn = facto(m) / (facto(n) * fact

25、o(m-n); printf (%ldn, cmn); 求求C(m,n) = m!/(n!*(m-n)!) 43 數(shù)組的定義類型標(biāo)識符 數(shù)組名常量表達(dá)式 錯誤的定義是: 或 int n; int n=10; scanf(%d,&n); int an; int an; 定義int a5時, a0,a1.=?隨機(jī)數(shù)!只有int a5=3后,后面幾項自動賦0三三 數(shù)組數(shù)組44數(shù)組的初始化 合法:int a=1,2,3,4,5; int i 3=1,2,3,4,5,6; int a5=1,2,3; char a4=“boy” char a3=b,o,y不合法: int a5=,2, ,4,5;

26、 int i2 =1,2,3,4,5,6; int a5= ;char a4=boy45分別用三種方法(數(shù)組元素下標(biāo)法、數(shù)組名地址法、指針變量法)訪問數(shù)組元素。 #include void main() int a5=1,3,5,7,9, i, *p; for(i=0;i5;i+)printf(%d , ai ); /*下標(biāo)法*/ printf(n); for(i=0;i5;i+)printf(%d , *(a+i) ); /*地址法*/ printf(n); for(p=a;pa+5;p+)printf(%d , *p ); /*指針變量*/ 46數(shù)組的操作往往用循環(huán)結(jié)構(gòu).數(shù)值數(shù)組#defi

27、ne M 10int aM;for(i=0;iM;i+)字符數(shù)組#define M 10char aM;for(i=0;ai!=0;i+)數(shù)值數(shù)組倒序#define M 10main()int i,j,aM;for(i=0;iM;i+) scanf(“%d”,ai);for(i=0,j=M;ij;i+,i-) 交換ai,aj字符數(shù)組倒序main()int i,j;char a50;gets(a);for(i=0,j=strlen(a);ij;i+,i-) 交換ai,aj47用函數(shù)實現(xiàn)倒序數(shù)值數(shù)組void inv(int x,int n);#define M 10main()int i,j,aM

28、;for(i=0;iM;i+) scanf(“%d”,ai);inv(a,M);for(i=0;iM;i+) printf(“%d”,ai);字符數(shù)組void inv(char x)main()int i,j;char a50;gets(a);inv(a);puts(a);多一個參多一個參數(shù),表示數(shù),表示元素個數(shù)元素個數(shù)可以整可以整體輸入,體輸入,輸出輸出必須單必須單個輸入,個輸入,輸出輸出48數(shù)值數(shù)組void inv(int x,int m) int i,j,k; j=m; for(i=0;ij;i+,i-) k=xi; xi=xj; xj=k;字符數(shù)組void inv(int x ) in

29、t i,j,k; j=strlen(x); for(i=0;ij;i+,i-) k=xi; xi=xj; xj=k;49main( ) int i,j,s=0,a33; for ( i=0; i3; i+ ) for ( j=0; j3; j+ ) scanf(%d,&aij); for ( i=0; i3; i+ ) for ( j=0; j3; j+ ) if ( i=j | i+j=2 ) s+=aij; printf(s=%dn,s);主對角線i=j副對角線i+j=250累加(積)# define M 10main() int i,aM,s=0; for (i=0;iM;i+)

30、 scanf(“%d”,&ai); for (i=0;iM;i+) s+=ai; printf(“s=%d”,s);# define M 10main() int i,aM,s=1; for (i=0;iM;i+) scanf(“%d”,&ai); for (i=0;iM;i+) s*=ai; printf(“s=%d”,s);51求最大(小)值#define M 30main() int i,k,k_i,aM; for(i=0;iM;i+) scanf(“%d”,&ai); k=a0; k_i=0; for(i=1;iM;i+) if(kai) k=ai; k_i=i

31、; printf(“max=%d,maxi=%d”,k, k_i);最小值 if(kai)最大值52字符數(shù)組char str50;int i;for (i=0;stri!=0,i+)構(gòu)造新的字符數(shù)組(刪除,插入,復(fù)制,連接,倒序)。 1.用和不用字符串函數(shù)實現(xiàn)上述功能。 2.用指針實現(xiàn)。 3.必須注意最后一項一定是: stri =0;或 *p=0;53二維字符數(shù)組二維數(shù)組在內(nèi)存中的排列順序是“按行優(yōu)先存放”二維數(shù)組amn可以視為由n個一維數(shù)組am組成的。二維字符數(shù)組中m由其中最長的字符串決定。char stu56= “Tom,“Anne,“Mary,“Peter; 其中stu0= “Tom“

32、stu1=“Anne54字符串函數(shù) 要用#include 字符串拷貝函數(shù)strcpy 字符串連接函數(shù)strcat 字符串比較函數(shù)strcmp 測字符串長度函數(shù)strlen 函數(shù)函數(shù)strlen的值為的值為0之前的全部字符個數(shù)之前的全部字符個數(shù).它它與數(shù)組長度不是一個概念與數(shù)組長度不是一個概念.char s6=H,o,w,0,o,kstrlen (s) =355字符串函數(shù)的應(yīng)用字符串賦值字符串比較s1=s2strcpy(s1,s2)s1=s2strcmp(s1,s2)=0s1s2strcmp(s1,s2)0s1s2strcmp(s1,s2)056一 函數(shù)定義的形式: 存儲類型存儲類型 數(shù)據(jù)類型數(shù)

33、據(jù)類型 函數(shù)名函數(shù)名(形式參數(shù)表形式參數(shù)表) 變量數(shù)據(jù)定義語句序列;變量數(shù)據(jù)定義語句序列; 可執(zhí)行語句序列;可執(zhí)行語句序列; int fun(int x,int y) int z; z=x+y; return z;函函數(shù)數(shù)首首部部 函函數(shù)數(shù)體體四四 函數(shù)函數(shù)57非非void型型int fun(int x,int y);main() int a,b; scanf(“%d,%d”,&a,&b); printf(“%d”,fun(a,b);int fun(int x,int y) int z; z=x+y; return z;作為框架記住作為框架記住void型型void fun(in

34、t x,int y);main() int a,b; scanf(“%d,%d”,&a,&b); fun(a,b); printf(“%d,%d”,a,b);void fun(int x,int y) int z; z=x;x=y;y=z; printf(“%d,%d”,x,y);58填main()char fun(int x,int y) int z; z=x+y; return z;main()int a,b; 函數(shù)實參函數(shù)實參char c; 函數(shù)返回值函數(shù)返回值scanf(“%d,%d”, a,b); 實參賦值實參賦值c=fun(a,b); 調(diào)用函數(shù)調(diào)用函數(shù)printf(

35、“%c”, c); 輸出結(jié)果輸出結(jié)果注意變量數(shù)據(jù)類型的對應(yīng)注意變量數(shù)據(jù)類型的對應(yīng)int %d long %ldfloat %f double %lfchar %c或或%s59遞歸調(diào)用的概念遞歸調(diào)用的概念 在語言中,一個函數(shù)直接或間接地調(diào)在語言中,一個函數(shù)直接或間接地調(diào)用自身,便構(gòu)成了函數(shù)的遞歸調(diào)用。用自身,便構(gòu)成了函數(shù)的遞歸調(diào)用。 前者為直接遞歸調(diào)用前者為直接遞歸調(diào)用,后者稱間接遞歸調(diào)用。后者稱間接遞歸調(diào)用。計算n!的函數(shù)rfact() long fac(int n) long p; if (n=0 |n=1) p=1; else p= n*fac(n-1); /*自己調(diào)自己*/ return

36、 p; void main() printf(“%ld”, fac(5); 記住遞歸調(diào)用的框架記住遞歸調(diào)用的框架60數(shù)組名作函數(shù)實參void fun(int a ,int n);main() int arr10,i; for(i=0;i10;i+) scanf(“%d”,&arri); fun(arr,10); for(i=0;i10;i+) printf(“%d”,arri);61main( ) int i,a=2; for(i=1;i=5;i+) f( i ); printf( “%dn”,a); f( j ) int j; static int a=100; auto k=1;

37、+k; printf( “%d+%d+%d=%dn”,a,k,j,a+k+j); a+=10; 函數(shù)調(diào)用函數(shù)調(diào)用函數(shù)定義函數(shù)定義函數(shù)內(nèi)定義函數(shù)內(nèi)定義,值不保留。值不保留。運行結(jié)果:運行結(jié)果:100+2+1=103110+2+2=114120+2+3=125130+2+4=136140+2+5=1472兩個函數(shù)變兩個函數(shù)變量同名量同名,互互不影響。不影響。靜態(tài)變量靜態(tài)變量62 五五 指針指針(1)指針指針: 某變量的某變量的地址地址值稱為該變量的指針稱為該變量的指針。(2)指針變量:指針變量: 指針變量是存放普通變量地址的變量。 指針變量指向這個普通變量。1112ab地址101010121010

38、1012pq地址100220042006指針變量指針變量 整型變量整型變量63指針變量的定義 數(shù)據(jù)類型數(shù)據(jù)類型 *指針變量名指針變量名1; double *pd,d1,d2; /*pd為指向double型變量的指針*/ char *pc,c1,c2; /*pc為指向char型變量的指針*/ float *pf,f1,f2; /*pf為指向float型變量的指針*/ 定義指針變量必須在變量名前加指針說明符“*”。指針變量名本身不含“*”號。 定義指針變量后,系統(tǒng)為這個指針變量也分配一個存儲單元,這個存貯單元一般都占有固定的字節(jié)(如16位計算機(jī)是2個字節(jié))。該存貯單元用于存放普通變量的地址。64指針變量的初始化 char

溫馨提示

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

評論

0/150

提交評論