信息學(xué)奧林匹克競(jìng)賽C語言課程膠片4-定向改編V1.0_第1頁
信息學(xué)奧林匹克競(jìng)賽C語言課程膠片4-定向改編V1.0_第2頁
信息學(xué)奧林匹克競(jìng)賽C語言課程膠片4-定向改編V1.0_第3頁
信息學(xué)奧林匹克競(jìng)賽C語言課程膠片4-定向改編V1.0_第4頁
信息學(xué)奧林匹克競(jìng)賽C語言課程膠片4-定向改編V1.0_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C語言Part 4 for NOI1. 數(shù)組2. 函數(shù)問題:有如下幾組數(shù)據(jù),它們分別該如何存儲(chǔ)呢?一個(gè)班學(xué)生的學(xué)習(xí)成績(jī)一行文字一個(gè)矩陣這些數(shù)據(jù)的特點(diǎn)是:具有相同的數(shù)據(jù)類型使用過程中需要保留原始數(shù)據(jù) C語言為這些數(shù)據(jù),提供了一種構(gòu)造數(shù)據(jù)類型:數(shù)組。數(shù)組是一組具有是一組具有相同數(shù)據(jù)類型相同數(shù)據(jù)類型的數(shù)據(jù)的的數(shù)據(jù)的有序集合。有序集合。一維數(shù)組類型說明符 數(shù)組名常量表達(dá)式;例如: intint a a1010; ;它表示定義了一個(gè)整形數(shù)組,數(shù)組名為a a,此數(shù)組有1010個(gè)元素。數(shù)組名定名規(guī)則和變量名相同,遵循標(biāo)識(shí)符定名規(guī)則。在定義數(shù)組時(shí),需要指定數(shù)組中元素的個(gè)數(shù),方括弧中的常量表達(dá)式用來表示元素的個(gè)

2、數(shù),即數(shù)組長(zhǎng)度。例如,指定a10,表示a數(shù)組有10個(gè)元素,注意下標(biāo)是從0開始的,不存在數(shù)組元素a10。C89規(guī)定常量表達(dá)式中可以包括常量和符號(hào)常量,但不能包含變量,即不允許對(duì)數(shù)組的大小作動(dòng)態(tài)定義,數(shù)組的大小不依賴于程序運(yùn)行過程中變量的值。例如,下面這樣定義數(shù)組是不行的:一位數(shù)組變長(zhǎng)數(shù)組(C89C89不允許,C99C99允許)float afloat a0 0; ; / /* * 數(shù)組大小為0 0沒有意義 * */ /intint b(2)(3); b(2)(3); / /* * 不能使用圓括號(hào) * */ / 下標(biāo)可以是整型常量,也可以是整型表達(dá)式A2+1, a2A2+1, a2* *3, a7

3、/3 3, a7/3 int n; scanf(%d, &n); int arrayn; if(n 0) array0 = 100; printf(array0=%dn, array0); else printf(array length is zero.n);數(shù)組的存儲(chǔ) 一維數(shù)組: floatfloat markmark100;100;一個(gè)元素占4個(gè)字節(jié) 每個(gè)數(shù)據(jù)元素占用的字節(jié)數(shù),就是基本類型的字節(jié)數(shù) int i, a10; for (i = 0; i 0; i-) printf(%d , ai); printf(n);例7.1:10元素一維數(shù)組倒序輸出初始化在定義數(shù)組時(shí)對(duì)數(shù)組元素賦

4、以初值。例如: :intint a a1010=0=0,1 1,2 2,3 3,4 4,5 5,6 6,7 7,8 8,9;9;將數(shù)組元素的初值依次放在一對(duì)花括弧內(nèi)??梢灾唤o一部分元素賦值。例如: :intint a a1010=0=0,1 1,2 2,3 3,4;4; 定義a數(shù)組有10個(gè)元素,但花括弧內(nèi)只提供5個(gè)初值,這表示只給前面5個(gè)元素賦初值,后5個(gè)元素值為0。如果想使一個(gè)數(shù)組中全部元素值為0 0,可以寫成intint a a1010=0=0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0; 0; 或 intint a a1010=0;=0;不能寫成:intint a

5、 a1010=0=0* *10;10;這是與FORTRAN語言不同的,不能給數(shù)組整體賦初值。在對(duì)全部數(shù)組元素賦初值時(shí),由于數(shù)據(jù)的個(gè)數(shù)已經(jīng)確定,因此可以不指定數(shù)組長(zhǎng)度。例如: :intint a a5 5=1=1,2 2,3 3,4 4,5; 5; 也可以寫成 int a=1,2,3,4,5; 在第二種寫法中,花括弧中有5個(gè)數(shù),系統(tǒng)就會(huì)據(jù)此自動(dòng)定義a數(shù)組的長(zhǎng)度為5。但若數(shù)組長(zhǎng)度與提供初值的個(gè)數(shù)不相同,則數(shù)組長(zhǎng)度不能省略。例如,想定義數(shù)組長(zhǎng)度為10,就不能省略數(shù)組長(zhǎng)度的定義,而必須寫成 intint a a1010=1=1,2 2,3 3,4 4,5; 5; 只初始化前5個(gè)元素,后5個(gè)元素為0例7

6、.2 用數(shù)組來處理,求解Fibonacci數(shù)列 Fibonacci數(shù)列公式:已知: : a a1 1=a=a2 2=1, a=1, an n=a=an-1n-1+a+an-2 n-2 即:1,1,2,3,5,8,13:1,1,2,3,5,8,13 int i; int f20=1, 1; for(i=2;i20;i+) fi=fi-2+fi-1; for(i = 0; i 20; i+) if(i%5 = 0) printf(n); printf(%12d, fi); 使用冒泡排序,按升序排序例7.3 假如有n個(gè)人,希望按年齡對(duì)他們進(jìn)行排序 例7.3input 10 numbers:1 2 3

7、 6 5 4 7 8 9 11the sorted numbers:1 2 3 4 5 6 7 8 9 11 int a10; int i,j,t; printf(input 10 numbers:n); for(i=0; i10; i+) scanf(%d, &ai); printf(n); for(j=0; j9; j+) for(i=0; i ai+1) t = ai; ai = ai+1; ai+1 = t; printf(the sorted numbers:n); for(i=0; i10; i+) printf(%d , ai); printf(n); 類型說明符 數(shù)組名

8、常量表達(dá)式常量表達(dá)式; 例如:定義a a為3 34(34(3行4 4列) )的數(shù)組,b b為5 510(510(5行1010列) )的數(shù)組。如下: float afloat a3 34 4,b b5 51010; 不能寫成 float afloat a3 3,4 4,b b5 5,1010; ;二維數(shù)組 二維數(shù)組中的元素在內(nèi)存中的排列順序是:按行存放,即先順序存放第一行的元素,再存放第二行的元素 a34數(shù)組存放二維數(shù)組在內(nèi)存中的存放二維數(shù)組元素的表示形式為:二維數(shù)組元素的表示形式為:數(shù)組名下標(biāo)下標(biāo)數(shù)組名下標(biāo)下標(biāo) 例如:例如: a a2 23 3下標(biāo)可以是整型表達(dá)式,下標(biāo)可以是整型表達(dá)式,如如

9、a a2-12-12 2* *2-12-1數(shù)組元素可以出現(xiàn)在表達(dá)式中,也可以被賦值,例如數(shù)組元素可以出現(xiàn)在表達(dá)式中,也可以被賦值,例如:b b1 12 2=a=a2 23 3/2/2不要寫成不要寫成 a a2 2,3 3,a a2-12-1,2 2* *2-12-1形式形式二維數(shù)組的引用數(shù)據(jù)類型 數(shù)組名 常量表達(dá)式1常量表達(dá)式2初始化數(shù)據(jù);分行賦初值,如:int a34=1,2,3,4,5,6,7,8,9,10,11,12;寫在一個(gè)大括號(hào)中,按排列順序賦初值,如:int a34=1,2,3,4,5,6,7,8,9,10,11,12;對(duì)部分元素賦初值,如: int a34=1,5,9; 也可以對(duì)

10、各行中的某一元素賦初值,如 int a34=1,0,6,0,0,11;也可以只對(duì)某幾行元素賦初值。如:int a34=1,5,6; 如果對(duì)全部元素都賦初值,則定義數(shù)組時(shí)對(duì)第一維的長(zhǎng)度可以不指定,但第二維的長(zhǎng)度不能省。如:int a34=1,2,3,4,5,6,7,8,9,10,11,12;它等價(jià)于:int a4=1,2,3,4,5,6,7,8,9,10,11,12;在定義時(shí)也可以只對(duì)部分元素賦初值而省略第一維的長(zhǎng)度,但應(yīng)分行賦初值。如:int a4=0,0,3,0,10;二維數(shù)組初始化例7.4 將一個(gè)二維數(shù)組行和列元素互換,存到另一個(gè)二維數(shù)組中642531a642531b int a32 =

11、1, 2, 3, 4, 5, 6; int b23, i, j; printf(array a:n); for (i=0; i=2; i+) for (j=0; j=1; j+) printf(%5d, aij); bji = aij; printf(n); printf(array b:n); for (i=0; i=1; i+) for(j=0; j=2; j+) printf(%5d, bij); printf(n); int i,j,row=0,colum=0,max; int a34=1,2,3,4, 9,8,7,6, -10,10,-5,2; /此處初始化應(yīng)該改為輸入函數(shù) max=

12、a00; for (i=0; i=2; i+) for (j=0; jmax) max=aij; row=i; colum=j; printf(max=%d,row=%d,colum=%dn, max, row, colum);例7.5: 有一個(gè)34的矩陣,要求編程序求出其中值最大的那個(gè)元素的值,以及其所在的行號(hào)和列號(hào) 定義方法與前面介紹的類似。例如: char cchar c1010; ; 用來存放字符數(shù)據(jù)的數(shù)組是字符數(shù)組。字符數(shù)組中的一個(gè)元素存放一個(gè)字符。字符數(shù)組字符數(shù)組初始化 對(duì)字符數(shù)組初始化,最容易理解的方式是逐個(gè)字符賦給數(shù)組中各元素。如: char c10= I, ,a,m,,h,a

13、,p,p,y; 如果在定義字符數(shù)組時(shí)不進(jìn)行初始化,則數(shù)組中各元如果在定義字符數(shù)組時(shí)不進(jìn)行初始化,則數(shù)組中各元 素的值是不可預(yù)料的。素的值是不可預(yù)料的。 如果花括弧中提供的初值個(gè)數(shù)如果花括弧中提供的初值個(gè)數(shù)( (即字符個(gè)數(shù)即字符個(gè)數(shù)) )大于數(shù)組大于數(shù)組長(zhǎng)度,則按語法錯(cuò)誤處理。長(zhǎng)度,則按語法錯(cuò)誤處理。 char cchar c1010=c=c, ,pp,rr,oo,gg,rr,aa,m; m; 字符數(shù)組的部分初始化 如果初值個(gè)數(shù)小于數(shù)組長(zhǎng)度,則只將這些字符賦如果初值個(gè)數(shù)小于數(shù)組長(zhǎng)度,則只將這些字符賦給數(shù)組中前面那些元素,其余的元素自動(dòng)定為空給數(shù)組中前面那些元素,其余的元素自動(dòng)定為空字符字符( (

14、即即0)0)。例如:。例如: 數(shù)字?jǐn)?shù)組初始化時(shí)自動(dòng)確定長(zhǎng)度 如果提供的初值個(gè)數(shù)與預(yù)定的數(shù)組長(zhǎng)度相同,在定義時(shí)可如果提供的初值個(gè)數(shù)與預(yù)定的數(shù)組長(zhǎng)度相同,在定義時(shí)可以省略數(shù)組長(zhǎng)度,系統(tǒng)會(huì)自動(dòng)根據(jù)初值個(gè)數(shù)確定數(shù)組長(zhǎng)度。以省略數(shù)組長(zhǎng)度,系統(tǒng)會(huì)自動(dòng)根據(jù)初值個(gè)數(shù)確定數(shù)組長(zhǎng)度。例如:例如: 也可以定義和初始化一個(gè)二維字符數(shù)組。例如:也可以定義和初始化一個(gè)二維字符數(shù)組。例如: char diamondchar diamond5 55 5= = , ,* *, ,* *, ,* *,* *, , , ,* *, ,* *, ,* *, , ,* *char cchar c=I, ,a,m, ,h,=I, ,a,

15、m, ,h,a,p,p,y;a,p,p,y;數(shù)組數(shù)組c c的長(zhǎng)度自動(dòng)定為的長(zhǎng)度自動(dòng)定為1010。 char c=I, , a, m, , a, , b, o, y, .; int i, len = 0; len = strlen(c); printf(strlen(c)=%dn, len); len = sizeof(c); printf(sizeof(c)=%dn, len); for(i = 0; i len; i+) printf(%c, ci); printf(n);例7.6 輸出一個(gè)字符串 char diamond5= , , *, , *, , *, *, , , , *, , *

16、, , *, , , *; int i, j; for (i=0; i5; i+) for (j=0; j5; j+) printf(%c, diamondij); printf(n); 例7.7 使用星號(hào)模擬一個(gè)鉆石圖形 為了測(cè)定字符串的實(shí)際長(zhǎng)度,C C語言規(guī)定了一個(gè)語言規(guī)定了一個(gè)“字符串字符串結(jié)束標(biāo)志結(jié)束標(biāo)志”,以字符,以字符00作為標(biāo)志。作為標(biāo)志。如果有一個(gè)字符串,前面9個(gè)字符都不是空字符(即0) ,而第10個(gè)字符是0,則此字符串的有效字符為9個(gè)。系統(tǒng)對(duì)字系統(tǒng)對(duì)字符串常量也自動(dòng)加一個(gè)符串常量也自動(dòng)加一個(gè)00作為結(jié)束符。作為結(jié)束符。 00代表代表ASCIIASCII碼為碼為0 0的字符,從

17、的字符,從ASCIIASCII碼表中可以查到,碼表中可以查到,ASCIIASCII碼為碼為0 0的字符不是一個(gè)可以顯示的字符,而是一個(gè)的字符不是一個(gè)可以顯示的字符,而是一個(gè)“空操作符空操作符”,即它什么也不干。用它來作為字符串結(jié)束,即它什么也不干。用它來作為字符串結(jié)束標(biāo)志不會(huì)產(chǎn)生附加的操作或增加有效字符,只起一個(gè)供辨標(biāo)志不會(huì)產(chǎn)生附加的操作或增加有效字符,只起一個(gè)供辨別的標(biāo)志。別的標(biāo)志。字符串結(jié)束符 /char c=I, , a, m, , a, , b, o, y, ., 0; /如果c不加0, strlen(c)值和sizeof(c)有什么不同 /char c11=I, , a, m, ,

18、a, , b, o, y, .; /char c=I, , a, m, , a, , b, o, y, .; /char c=“I am a boy.”; /相當(dāng)于加0初始化 /char c20=“I am a boy.”; /11之后使用0填充 char c=I am a boy.; int i, len = 0; len = strlen(c); printf(strlen(c)=%dn, len); len = sizeof(c); printf(sizeof(c)=%dn, len); for(i = 0; i len; i+) printf(%c, ci); printf(“n”);

19、字符串初始化字符數(shù)組并不要求它的最后一個(gè)字符為0,甚至可以不包含0 。例如:char char c=c=C,h,i,n,aC,h,i,n,a;這樣寫完全是合法的。但是由于系統(tǒng)對(duì)字符串常量自動(dòng)加一個(gè)0 。因此,人們?yōu)榱耸固幚矸椒ㄒ恢?,在字符?shù)組中也常人為地加上一個(gè)0 。如: char char c=c=C,h,i,n,aC,h,i,n,a,0;,0;這樣做,這樣做是為了便于引用字符數(shù)組中的字符串。char c=Pascal Program;printf(Please input Hello:n);for (int i=0; i5; i+) char ch = getchar(); ci = ch

20、;printf(%s, c);例7.8從鍵盤輸入Hello覆蓋Pascal Pragramchar c=Pascal Program;printf(Please input Hello:n);scanf(%s, c);printf(%s, c);char ch;scanf(%c, &ch);字符串存儲(chǔ)(1)用“%s”格式符輸出字符串時(shí),printf函數(shù)中的輸出項(xiàng)是字符數(shù)組名,而不是數(shù)組元素名。如:寫成下面這樣是不對(duì)的:printf(%s,c0);(2)如果數(shù)組長(zhǎng)度大于字符串實(shí)際長(zhǎng)度,也只輸出到遇0結(jié)束。(3)輸出字符不包括結(jié)束符0。如:char c10=China; /* 字符串長(zhǎng)度為

21、5,連0共占6個(gè)字節(jié) */printf(%s,c);只輸出字符串的有效字符“China”,而不是輸出10個(gè)字符。這就是用字符串結(jié)束標(biāo)志的好處。(4)如果一個(gè)字符數(shù)組中包含一個(gè)以上0,則遇第一個(gè)0時(shí)輸出就結(jié)束。(5)可以用scanf函數(shù)輸入一個(gè)字符串。例如 scanf(%s,c);scanf函數(shù)中的輸入項(xiàng)c是已定義的字符數(shù)組名,輸入的字符串應(yīng)短于已定義的字符數(shù)組的長(zhǎng)度。例如,定義 char c6;從鍵盤輸入: China系統(tǒng)自動(dòng)在China后面加一個(gè)0結(jié)束符。函數(shù)printf和scanf printf(Please input 3 words:n); char str15, str25, str

22、35; scanf(%s%s%s, str1, str2, str3); printf(string 1:%s, string 2:%s, string 3:%s, str1, str2, str3);例7.9 從鍵盤輸入三個(gè)單詞到三個(gè)字符串中 printf(Please input a sentence:n); char str20; scanf(%s, str); printf(string:%s, str);例7.10 空格在scanf中的作用輸入How are you輸出How編譯器沿用英語句子的習(xí)慣,把空格作為scanf函數(shù)的分隔符號(hào)str不能寫為&str printf(Pl

23、ease input a sentence:n); char str20; scanf(%s, str); printf(address:%o, str);例7.11 使用八進(jìn)制輸出一個(gè)字符串的地址%o 有符號(hào)八進(jìn)制整數(shù)%i 有符號(hào)整數(shù)%u 無符號(hào)十進(jìn)制整數(shù)%d 有符號(hào)十進(jìn)制整數(shù)%s 字符串%x 有符號(hào)十六進(jìn)制整數(shù)%a, %e, %f, %g 浮點(diǎn)數(shù)%c 字符% 轉(zhuǎn)義% 所期望的字符集函數(shù)形式函數(shù)形式功能功能gets(字符數(shù)組)從終端輸入一個(gè)字符串到字符數(shù)組puts(字符數(shù)組)輸出一個(gè)字符串(0結(jié)尾)到終端strcat(字符數(shù)組,字符數(shù)組)把兩個(gè)字符串連接起來strcpy(字符數(shù)組,字符數(shù)組)

24、復(fù)制字符串strcmp(字符數(shù)組,字符數(shù)組)比較兩個(gè)字符串,相等返回0,大于返回正整數(shù),否則返回負(fù)整數(shù)strlen(字符數(shù)組)返回字符串長(zhǎng)度strlwr(字符數(shù)組)轉(zhuǎn)換為小寫字母strupr(字符數(shù)組)轉(zhuǎn)換為大寫字母字符串處理函數(shù) char string500; int i, num=0, word=0; char c; gets(string); for (i=0; (c=stringi)!=0; i+) if(c = ) word=0; else if(word = 0) word = 1; num+; printf(“There are %d words in the line.n”,

25、num);例7.12統(tǒng)計(jì)一段話的單詞數(shù)量 char string20; char str320; printf(Please input 3 sentences:n); for (int i=0; i 0) strcpy(string, str0); else strcpy(string,str1); if (strcmp(str2,string) 0) strcpy(string,str2); printf(nthe largest string is:n%sn, string);7.13 找出三個(gè)字符串中的最大者Please input 3 sentences:How are you.I

26、am a bad boy.Happy new year.the largest string is:I am a bad boy.1. 數(shù)組2. 函數(shù) 部件 組裝 一個(gè)C程序由一個(gè)或者多個(gè)源程序文件組成 一個(gè)源程序文件由一個(gè)或者多個(gè)程序模塊(部件)組成模塊化程序設(shè)計(jì)Function: 實(shí)現(xiàn)特定功能的程序模塊庫(kù)函數(shù)和用戶自定義函數(shù)無參函數(shù): 類型名 函數(shù)名() 函數(shù)體 有參函數(shù): 類型名 函數(shù)名(形式參數(shù)列表) 函數(shù)體 函數(shù)定義C89中標(biāo)準(zhǔn)的頭文件 定義宏assert() 字符處理 錯(cuò)誤報(bào)告 定義與實(shí)現(xiàn)相關(guān)的浮點(diǎn)值勤 定義與實(shí)現(xiàn)相關(guān)的各種極限值 支持函數(shù)setlocale() 數(shù)學(xué)函數(shù)及其各種定

27、義 支持非局部跳轉(zhuǎn) 定義信號(hào)值 支持可變長(zhǎng)度的變?cè)斜?定義常用常數(shù)輸入輸出函數(shù)及其各種定義 動(dòng)態(tài)存儲(chǔ)分配函數(shù)及其他各種聲明 字符串函數(shù)及其各種定義 支持系統(tǒng)時(shí)間函數(shù)C99新增的頭文件和庫(kù) 支持復(fù)數(shù)算法 給出對(duì)浮點(diǎn)狀態(tài)標(biāo)記和浮點(diǎn)環(huán)境的其他方面的訪問 處理最大寬度整數(shù)的函數(shù),包含stdint.h 定義標(biāo)準(zhǔn)的、可移植的整型類型集合。 用于定義對(duì)應(yīng)各種運(yùn)算符的宏 支持布爾數(shù)據(jù)類型類型。定義宏bool,以便兼容于C+ 定義一般類型的浮點(diǎn)宏 支持多字節(jié)和寬字節(jié)函數(shù)支持多字節(jié)和寬字節(jié)分類函數(shù) 無參函數(shù)的調(diào)用語句 函數(shù)名() 有參函數(shù)的調(diào)用語句 函數(shù)名(實(shí)參列表) 函數(shù)表達(dá)式 函數(shù)出現(xiàn)在表達(dá)式中,例如:c=

28、max(x,y)*2-100; 函數(shù)參數(shù) 另外一個(gè)函數(shù)的參數(shù),例如:printf(“%d”, max(a,b);函數(shù)調(diào)用#include void print_star();void print_message();int main() print_star(); print_message(); print_star(); return 0;void print_star() printf(*n);void print_message() printf( How are you!n);例8.1 使用無參函數(shù)輸出* How are you!*#include int main() int ma

29、x(int x, int y); int a, b, c; printf(Please input two number:); scanf(%d, %d, &a, &b); c = max(a, b); printf(The max is %dn, c); return 0;int max(int x, int y) int z; if(x y) z = x; else z = y; return (z);例8.2 輸入兩個(gè)整數(shù),輸出最大者。要求在主函數(shù)輸入兩個(gè)數(shù),用用戶自定義函數(shù)max求最大值,并在主函數(shù)中輸出最大值。int max(int, int); orint max(

30、int a, int b); 針對(duì)被調(diào)用函數(shù)的形參分配內(nèi)存單元 將實(shí)參對(duì)應(yīng)的值傳遞給形參 執(zhí)行被調(diào)用函數(shù)的函數(shù)體的語句 通過return語句將函數(shù)值帶回調(diào)用函數(shù) 調(diào)用結(jié)束,釋放形參單元函數(shù)調(diào)用過程 在函數(shù)調(diào)用之前要求進(jìn)行被調(diào)用函數(shù)聲明delaration 函數(shù)原型便于編譯器對(duì)函數(shù)調(diào)用進(jìn)行合法性檢查 合法性檢查內(nèi)容包括函數(shù)名、函數(shù)值類型、參數(shù)個(gè)數(shù)、參數(shù)類型、參數(shù)順序 檢查通過標(biāo)準(zhǔn):一致或者兼容 兼容檢查能否進(jìn)行類型轉(zhuǎn)換 被調(diào)用函數(shù)在調(diào)用位置之前,不用聲明 在源文件開頭聲明是全局性的,就不必在函數(shù)開頭聲明了函數(shù)原型function prototype函數(shù)原型的一般形式為函數(shù)原型的一般形式為(1)(

31、1) 函數(shù)類型函數(shù)類型 函數(shù)名函數(shù)名( (參數(shù)類型參數(shù)類型1 1,參數(shù)類型,參數(shù)類型2)2);(2)(2) 函數(shù)類型函數(shù)類型 函數(shù)名函數(shù)名( (參數(shù)類型參數(shù)類型1 1,參數(shù)名,參數(shù)名1 1,參數(shù)類型,參數(shù)類型2 2,參數(shù)名參數(shù)名2)2); 參數(shù):通過形式參數(shù)和實(shí)際參數(shù) 返回值:用return語句返回計(jì)算結(jié)果 全局變量:外部變量函數(shù)間傳遞數(shù)據(jù)的方法在定義函數(shù)中指定的形參,在未出現(xiàn)函數(shù)調(diào)用時(shí),它們并不占內(nèi)存中的存儲(chǔ)單元。 只有在發(fā)生函數(shù)調(diào)用時(shí),函數(shù)中的形參才被分配內(nèi)存單元。 在調(diào)用結(jié)束后,形參所占的內(nèi)存單元也被釋放。實(shí)參可以是常量、變量或表達(dá)式,如: (,); 但要求它們有確定的值。在調(diào)用時(shí)將實(shí)參的值賦給形參。在被定義的函數(shù)中,必須指定形參的類型實(shí)參與形參的類型應(yīng)相同或賦值兼容。在語言中,實(shí)參向?qū)π螀⒌臄?shù)據(jù)傳遞是“值傳遞”,單向傳遞,只由實(shí)參傳給形參,而不能由形參傳回來給實(shí)參。在內(nèi)存中,實(shí)參單元與形參單元是不同的單元。形參和實(shí)參return語句將被調(diào)用函數(shù)中的一個(gè)確定值帶回主調(diào)函數(shù)中去如果需要從被調(diào)用函數(shù)帶回一個(gè)函數(shù)值供主調(diào)函數(shù)使用,被調(diào)用函數(shù)中必須包含return語句。如果不需要從被調(diào)用函數(shù)帶回函數(shù)值可以不要return語句。 一個(gè)函數(shù)中可以有一個(gè)以上的return語句,執(zhí)行到哪一個(gè)return語

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論