版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1238.1 8.1 結(jié)構(gòu)化程序設(shè)計(jì)語言結(jié)構(gòu)化程序設(shè)計(jì)語言C C語言語言nC C程序的結(jié)構(gòu)由若干個(gè)程序的結(jié)構(gòu)由若干個(gè)C C函數(shù)組成。函數(shù)組成。nC C函數(shù)是函數(shù)是C C程序的組成部分,是由完成程序的組成部分,是由完成一特定任務(wù)的說明語句和執(zhí)行語句組一特定任務(wù)的說明語句和執(zhí)行語句組成的基本功能單元。成的基本功能單元。nC C函數(shù)的功能相當(dāng)于其它程序設(shè)計(jì)語言函數(shù)的功能相當(dāng)于其它程序設(shè)計(jì)語言中的一個(gè)程序模塊,或一個(gè)子程序。中的一個(gè)程序模塊,或一個(gè)子程序。dabcgkfhjiel main( ) main( ) printstar()printstar(); print_message( )print
2、_message( ); printstar( ); printstar( ); printstar( ) printstar( ) printf(“ printf(“* * * * * * * * * * * * * * *n”);n”); print_message( ) print_message( ) printf(“how do you do!n”); printf(“how do you do!n”);調(diào)用函數(shù)調(diào)用函數(shù)用戶自定義函數(shù)用戶自定義函數(shù)函數(shù)的分類函數(shù)的分類(1)(1)從使用角度分:從使用角度分:標(biāo)準(zhǔn)庫(kù)函數(shù)標(biāo)準(zhǔn)庫(kù)函數(shù): :以程序庫(kù)的形式直接提以程序庫(kù)的形式直接提供給用戶使用
3、。供給用戶使用。stdio.hgets()stdio.hgets()、printf()printf()math.h sin()math.h sin()、sqrt()sqrt()用戶自定義函數(shù)用戶自定義函數(shù):由用戶自己建立定:由用戶自己建立定義。義。函數(shù)的分類函數(shù)的分類(2)(2)從函數(shù)形式分:從函數(shù)形式分:v無參函數(shù)無參函數(shù):調(diào)用函數(shù)時(shí)主函數(shù)不:調(diào)用函數(shù)時(shí)主函數(shù)不將數(shù)據(jù)傳送給被調(diào)函數(shù)。用于完將數(shù)據(jù)傳送給被調(diào)函數(shù)。用于完成特定功能的操作。成特定功能的操作。如:如:c=getchar( )c=getchar( )v有參函數(shù)有參函數(shù):調(diào)用函數(shù)時(shí)在主調(diào)函:調(diào)用函數(shù)時(shí)在主調(diào)函數(shù)和被調(diào)函數(shù)之間有參數(shù)傳遞。
4、數(shù)和被調(diào)函數(shù)之間有參數(shù)傳遞。如:如:putchar(c)putchar(c)、puts(str)puts(str)、8函數(shù)說明函數(shù)說明一個(gè)一個(gè)C C程序是由一個(gè)或多個(gè)源文件組成程序是由一個(gè)或多個(gè)源文件組成, ,每個(gè)源文件由若干函數(shù)組成。每個(gè)源文件由若干函數(shù)組成。C C程序的執(zhí)行從程序的執(zhí)行從mainmain函數(shù)開始,也從函數(shù)開始,也從mainmain函數(shù)終止。函數(shù)終止。源程序中所有的函數(shù)在結(jié)構(gòu)上都是平行源程序中所有的函數(shù)在結(jié)構(gòu)上都是平行的,互相獨(dú)立的。的,互相獨(dú)立的。mainmain函數(shù)可以調(diào)用其他函數(shù),其他函數(shù)函數(shù)可以調(diào)用其他函數(shù),其他函數(shù)之間可以互相調(diào)用。之間可以互相調(diào)用。98.2.1 8
5、.2.1 函數(shù)的定義函數(shù)的定義( (一一) )n無參函數(shù)的特點(diǎn):只完成某些動(dòng)作,不無參函數(shù)的特點(diǎn):只完成某些動(dòng)作,不進(jìn)行參數(shù)傳遞。進(jìn)行參數(shù)傳遞。n無參函數(shù)的定義形式:無參函數(shù)的定義形式:類型標(biāo)識(shí)符類型標(biāo)識(shí)符 函數(shù)名函數(shù)名( )( ) 說明部分;說明部分;語句部分語句部分 10【8.18.1】無參函數(shù)使用示例。】無參函數(shù)使用示例。11函數(shù)的定義函數(shù)的定義( (二二) )有參函數(shù)定義形式有參函數(shù)定義形式( (一一):):類型標(biāo)識(shí)符類型標(biāo)識(shí)符 函數(shù)名函數(shù)名( (形形式參數(shù)列表式參數(shù)列表) )形式參數(shù)說明;形式參數(shù)說明; 說明部分;說明部分;語句部分;語句部分; int max(x,y)int x,y
6、; int z; z=(xy)?x:y; return(z);舉例舉例12函數(shù)的定義函數(shù)的定義( (二二) )int max( int max( int x,int yint x,int y) ) int z; int z; z=(xy)?x:y; z=(xy)?x:y; return(z); return(z); 有參函數(shù)定義形式有參函數(shù)定義形式( (二二):):類型標(biāo)識(shí)符類型標(biāo)識(shí)符 函數(shù)名函數(shù)名( (類類型名型名 參數(shù)參數(shù)1 1,類,類型名型名 參數(shù)參數(shù)n)n) 說明部分;說明部分;語句部分;語句部分; 舉例舉例13有參函數(shù)定義說明:有參函數(shù)定義說明:【8.2】求兩數(shù)求兩數(shù)的最大的最大值。
7、注值。注意函數(shù)意函數(shù)的定義的定義形式。形式。main( ) int a,b,c; scanf(%d%d,&a,&b); c=max(a,b); printf(max=%dn,c);int max(x,y)int x,y; int z; z=(xy)?x:y; return(z);15關(guān)于實(shí)參和形參關(guān)于實(shí)參和形參main( )int a,b,c; scanf(%d%d,&a,&b); c=max(a,b); printf(max=%dn,c);int max(int x,int y) int z; z=(xy)?x:y;return(z);形式參數(shù)形式參數(shù)實(shí)際參數(shù)
8、實(shí)際參數(shù)return語句執(zhí)行圖示:main()int a,b,c;scanf(“%d%d”,&a,&b);c=max(a,b);printf(“max=%dn”,c);int max(x,y)int x,y; int z; z=(xy)?x:y; return(z);主調(diào)函數(shù)被調(diào)函數(shù)1920212224n如使用庫(kù)函數(shù),一般應(yīng)在文件開頭用:如使用庫(kù)函數(shù),一般應(yīng)在文件開頭用:include include n函數(shù)調(diào)用遵循函數(shù)調(diào)用遵循“先定義后調(diào)用先定義后調(diào)用”的原則。的原則。一般被調(diào)函數(shù)放在調(diào)用函數(shù)之前定義。一般被調(diào)函數(shù)放在調(diào)用函數(shù)之前定義。n若被調(diào)函數(shù)在調(diào)用函數(shù)之后定義,就必須若
9、被調(diào)函數(shù)在調(diào)用函數(shù)之后定義,就必須在調(diào)用函數(shù)中對(duì)被調(diào)函數(shù)加以如下說明:在調(diào)用函數(shù)中對(duì)被調(diào)函數(shù)加以如下說明:類型名類型名 被調(diào)函數(shù)名被調(diào)函數(shù)名( )( );main( ) float sum( ); /*對(duì)被調(diào)函數(shù)的說明對(duì)被調(diào)函數(shù)的說明*/ float a,b,c; scanf(%f%f,&a,&b); c=sum(a,b); printf(sum=%fn,c);float sum(x,y) /*對(duì)函數(shù)對(duì)函數(shù)sum進(jìn)行定義進(jìn)行定義*/float x,y; float z; z=x+y; return z;【例8.12】被調(diào)函數(shù)在調(diào)用函數(shù)之后出現(xiàn):268.4 8.4 函數(shù)的嵌套調(diào)用
10、函數(shù)的嵌套調(diào)用nC C語言程序由函數(shù)構(gòu)成。語言程序由函數(shù)構(gòu)成。n函數(shù)與函數(shù)之間是平行的,獨(dú)立的。函數(shù)與函數(shù)之間是平行的,獨(dú)立的。n不允許在一個(gè)函數(shù)內(nèi)部不允許在一個(gè)函數(shù)內(nèi)部嵌套定義嵌套定義另一個(gè)另一個(gè)函數(shù);但允許在調(diào)用一個(gè)函數(shù)的過程中,函數(shù);但允許在調(diào)用一個(gè)函數(shù)的過程中,又又調(diào)用調(diào)用另一個(gè)函數(shù)。另一個(gè)函數(shù)。main函數(shù)結(jié)束調(diào)用函數(shù)a調(diào)用函數(shù)b函數(shù)b函數(shù)a函數(shù)的嵌套調(diào)用2829n算法描述:算法描述:n!=1 2 3 (n1)nn求積公式:求積公式:求求n n!遞歸源程序如下:!遞歸源程序如下:main( ) int x; long facto( ); printf(Input a number:n
11、); scanf(%d,&x); printf(The result is %ld,facto(x);long facto(n)int n; long int z; if (n=0) z=1; else z=n*facto(n-1); return z;33348.6.1 8.6.1 數(shù)組元素作函數(shù)實(shí)參數(shù)組元素作函數(shù)實(shí)參n數(shù)組元素?cái)?shù)組元素( (同簡(jiǎn)單變量同簡(jiǎn)單變量) )作函數(shù)實(shí)參,單作函數(shù)實(shí)參,單向值傳遞,即向值傳遞,即“傳值調(diào)用傳值調(diào)用”方式。方式。n【例【例8.178.17】用程序求出】用程序求出a a數(shù)組中所有素?cái)?shù)數(shù)組中所有素?cái)?shù)的和及平均值,函數(shù)的和及平均值,函數(shù)isprimei
12、sprime用來判斷自用來判斷自變量是否素?cái)?shù)。變量是否素?cái)?shù)。int isprime(int x) /*該函數(shù)判斷是否素?cái)?shù)該函數(shù)判斷是否素?cái)?shù)*/ int i; for (i=2;i=x/2;i+) if (x%i=0) return (0); return (1); main( ) int i,a10,sum=0,n=0; float aver; printf(Enter 10 numbers:n); for(i=0;i10;i+)scanf(%d,&ai);printf(n);for(i=0;i10;i+) if(isprime(ai)=1) /*若若ai素?cái)?shù)素?cái)?shù)*/ printf(%
13、d ,ai);sum+=ai;/*求素?cái)?shù)和求素?cái)?shù)和*/ n+; /*統(tǒng)計(jì)素?cái)?shù)個(gè)數(shù)統(tǒng)計(jì)素?cái)?shù)個(gè)數(shù)*/ aver=sum/n; /*求素?cái)?shù)平均值求素?cái)?shù)平均值*/printf(nsum=%d,aver=%fn,sum,aver);378.6.2 8.6.2 數(shù)組名作函數(shù)實(shí)參數(shù)組名作函數(shù)實(shí)參n形參和實(shí)參都采用數(shù)組名,傳遞是實(shí)形參和實(shí)參都采用數(shù)組名,傳遞是實(shí)參數(shù)組的起始地址,是參數(shù)組的起始地址,是地址傳遞地址傳遞方式。方式。n【例【例8.188.18】求某學(xué)生】求某學(xué)生1010門課程成績(jī)的門課程成績(jī)的平均分,課程成績(jī)用數(shù)組存放。平均分,課程成績(jī)用數(shù)組存放。float average(b)float b10
14、; int i; float aver,sum=0; for (i=0;i10;i+) sum+=bi; aver=sum/10; return(aver);【例8.18】main( ) float a10,ave; int i; printf(Input 10 scores:n); for (i=0;i10;i+)scanf(%f,&ai); printf(n); ave=average(a); printf(average score is %5.2f,ave);數(shù)組名作實(shí)參,數(shù)組名作實(shí)參,傳遞的是實(shí)參數(shù)傳遞的是實(shí)參數(shù)組的起始地址組的起始地址40使用數(shù)組名作函數(shù)實(shí)參說明使用數(shù)組名作
15、函數(shù)實(shí)參說明n數(shù)組名表示數(shù)組元素存放的起始地址,可數(shù)組名表示數(shù)組元素存放的起始地址,可認(rèn)為是地址常量。認(rèn)為是地址常量。n數(shù)組名作實(shí)參,傳遞是數(shù)組地址,而非數(shù)數(shù)組名作實(shí)參,傳遞是數(shù)組地址,而非數(shù)組元素。組元素。n字符串常量作實(shí)參,傳遞的字符串常量的字符串常量作實(shí)參,傳遞的字符串常量的首地址而非字符內(nèi)容。首地址而非字符內(nèi)容。n用數(shù)組名作函數(shù)參數(shù),必須在主調(diào)函數(shù)和用數(shù)組名作函數(shù)參數(shù),必須在主調(diào)函數(shù)和被調(diào)函數(shù)中分別定義數(shù)組,并保證類型一被調(diào)函數(shù)中分別定義數(shù)組,并保證類型一致。致。41變量占用存儲(chǔ)空間的時(shí)限變量占用存儲(chǔ)空間的時(shí)限在變量占用存儲(chǔ)空間的時(shí)在變量占用存儲(chǔ)空間的時(shí)間內(nèi)是否能夠被引用,即變量作用的
16、有效間內(nèi)是否能夠被引用,即變量作用的有效范圍范圍是全局的還是局部的是全局的還是局部的。42在一個(gè)函數(shù)內(nèi)部定義的變量在一個(gè)函數(shù)內(nèi)部定義的變量( (內(nèi)部變量?jī)?nèi)部變量) ),它只在此函數(shù)范圍內(nèi)有效,它只在此函數(shù)范圍內(nèi)有效,在此函數(shù)以外不能被使用。在此函數(shù)以外不能被使用。所在函數(shù)內(nèi)部所在函數(shù)內(nèi)部float f1(a)int a; int b,c; char f2(int x, int y) int a,b; main() int m,n; a 、b、c有效范圍x、y、a 、b有效范圍m、n有效范圍44局部變量使用說明:局部變量使用說明:n主函數(shù)主函數(shù)mainmain中定義的變量只在中定義的變量只在ma
17、inmain函數(shù)中有效。函數(shù)中有效。n不同函數(shù)中可以使用同名變量,它們互不干擾。不同函數(shù)中可以使用同名變量,它們互不干擾。n形參也是局部變量。形參也是局部變量。n在一個(gè)函數(shù)內(nèi)部,可以在復(fù)合語句中定義變量,在一個(gè)函數(shù)內(nèi)部,可以在復(fù)合語句中定義變量,這些變量只在該復(fù)合語句中有效。這種復(fù)合語這些變量只在該復(fù)合語句中有效。這種復(fù)合語句稱為句稱為“分程序分程序”和和“程序塊程序塊”。45int i,j; /*全局變量全局變量*/float f1(a)int a; int b,c; float p,q; /*全局變量全局變量*/char f2(int x, int y) int a,b; main() int m,n; p、q的作用的作用范圍范圍全局全局變量變量i、j的作用的作用范圍范圍47全局變量的使用說明全局變量的使用說明在程序設(shè)計(jì)中,應(yīng)盡量在程序設(shè)計(jì)中,應(yīng)盡量避免使用避免使用全局變量。全局變量。n全局變量在程序的全部執(zhí)行過程中都占用存全局變量在程序的全部執(zhí)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度專業(yè)自駕旅游包車代駕服務(wù)合同
- 2025年度棚改項(xiàng)目回遷房買賣合同范本
- 2025年桉樹種植基地環(huán)保設(shè)施建設(shè)與運(yùn)營(yíng)合同3篇
- 2025版智能城市基礎(chǔ)設(shè)施建設(shè)招投標(biāo)與合同管理指導(dǎo)文件2篇
- 萬科旅游房產(chǎn)買賣合同(2024年專用)3篇
- 二零二五年度專業(yè)配音演員獨(dú)家聘用合同范本4篇
- 二零二五年度太陽能熱水系統(tǒng)施工合同規(guī)范文本4篇
- 二零二五年度創(chuàng)業(yè)公司股權(quán)激勵(lì)及期權(quán)授予合同3篇
- 二零二五年度團(tuán)隊(duì)旅游數(shù)據(jù)共享合同
- 2025年度寫字樓退租合同(含辦公家具設(shè)備退還明細(xì))4篇
- 企業(yè)文化融入中華傳統(tǒng)文化的實(shí)施方案
- 9.1增強(qiáng)安全意識(shí) 教學(xué)設(shè)計(jì) 2024-2025學(xué)年統(tǒng)編版道德與法治七年級(jí)上冊(cè)
- 《化工設(shè)備機(jī)械基礎(chǔ)(第8版)》全套教學(xué)課件
- 人教版八年級(jí)數(shù)學(xué)下冊(cè)舉一反三專題17.6勾股定理章末八大題型總結(jié)(培優(yōu)篇)(學(xué)生版+解析)
- 2024屆上海高考語文課內(nèi)古詩(shī)文背誦默寫篇目(精校版)
- DL-T5024-2020電力工程地基處理技術(shù)規(guī)程
- 初中數(shù)學(xué)要背誦記憶知識(shí)點(diǎn)(概念+公式)
- 駕照體檢表完整版本
- 農(nóng)產(chǎn)品農(nóng)藥殘留檢測(cè)及風(fēng)險(xiǎn)評(píng)估
- 農(nóng)村高中思想政治課時(shí)政教育研究的中期報(bào)告
- 20100927-宣化上人《愣嚴(yán)咒句偈疏解》(簡(jiǎn)體全)
評(píng)論
0/150
提交評(píng)論