




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第十講Begin:第七章函數(shù)函數(shù)概述函數(shù)的分類與定義函數(shù)調(diào)用的一般形式函數(shù)的參數(shù)函數(shù)的返回值數(shù)組作為函數(shù)參數(shù)第十講Begin:第七章函數(shù)函數(shù)概述7.1函數(shù)概述function函數(shù)也可以說是:功能就是具有一定功能的代碼段到現(xiàn)在為止,我們都是用主函數(shù)中的代碼完成一定的功能函數(shù)7.1函數(shù)概述function函數(shù)到現(xiàn)在為止,我們都7.1函數(shù)概述C語言規(guī)定:可以把程序中的不同的功能寫成不同的函數(shù)即:C語言程序可以由不同功能的函數(shù)組成函數(shù)7.1函數(shù)概述C語言規(guī)定:可以把程序中的不同的功能寫成不同7.1函數(shù)概述函數(shù)組成程序的例子}intmain(){printstar();
print_message();printstar();return0;}#include“stdio.h”voidprintstar(){printf(“**********\n”);}voidprint_message(){printf(“Howdoyoudo?\n”);7.1函數(shù)概述函數(shù)組成程序的例子}#include“stprintstar和print_message就是兩個(gè)函數(shù)7.1函數(shù)概述print_message函數(shù)的功能輸出一行信息
Howdoyoudo?\printstar的功能是輸出一排”*”main是主函數(shù),首先執(zhí)行mainprintstar和print_message就是兩個(gè)函數(shù)7.1函數(shù)概述
一個(gè)C程序由一個(gè)或多個(gè)函數(shù)組成,但至少有一個(gè)主函數(shù)(main函數(shù));main函數(shù)是程序執(zhí)行的入口,可置于程序的任何位置。C語言語法規(guī)范:7.1函數(shù)概述一個(gè)C程序由一個(gè)或多個(gè)函數(shù)組函數(shù)的分類:7.1函數(shù)概述從函數(shù)間的調(diào)用關(guān)系;主調(diào)函數(shù),被調(diào)函數(shù)
從函數(shù)間數(shù)據(jù)傳送的關(guān)系分為:有參函數(shù)、無參函數(shù)、有返回值函數(shù)、無返回值函數(shù);(接下來詳細(xì)講)從用戶的觀點(diǎn)分為:C編譯系統(tǒng)提供的標(biāo)準(zhǔn)庫函數(shù)和用戶自定義函數(shù);函數(shù)的分類:7.1函數(shù)概述從函數(shù)間的調(diào)用關(guān)系;主調(diào)函數(shù),被
[類型符]函數(shù)名稱()
{
數(shù)據(jù)說明語句可執(zhí)行語句
}7.2.2無參函數(shù)的定義函數(shù)頭函數(shù)體7.2函數(shù)定義的一般形式
printstar()和print_message()都是無參函數(shù)7.2.2無參函數(shù)的定義函數(shù)頭函數(shù)體7.2
[類型符]函數(shù)名稱(類型形參1[,···])
{
數(shù)據(jù)說明語句可執(zhí)行語句
}7.2.3有參函數(shù)的定義函數(shù)頭函數(shù)體7.2函數(shù)定義的一般形式7.2.3有參函數(shù)的定義函數(shù)頭函數(shù)體7.2函數(shù)定義的一般形式舉例:floatsum(floatx,floaty){floatz;
z=x+y;
returnz;
}7.2函數(shù)定義的一般形式函數(shù)定義的一般形式舉例:7.2函數(shù)定義的一般形式函數(shù)定義的一般形式說明:(1)float
sum(float
x,float
y){floatz;
z=x+y;
returnz;
}類型說明符:
指明函數(shù)的類型,函數(shù)的類型是指函數(shù)的返回值的類型,函數(shù)返回值所具有的數(shù)據(jù)類型的種類與變量相同。7.2函數(shù)定義的一般形式省略時(shí)則默認(rèn)為int型。若明確表示函數(shù)"不帶回值",可以用"void"作類型符,稱"無類型"或稱"空類型"。
函數(shù)定義的一般形式說明:(1)類型說明符:7.2函數(shù)定義float
sum(float
x,float
y
)
{floatz;
z=x+y;
returnz;
}函數(shù)名:
通常是一個(gè)標(biāo)識(shí)符,在一個(gè)程序中除了主函數(shù)外其余函數(shù)的名字可以任意取,但應(yīng)有意義。
"()"函數(shù)標(biāo)志。7.2函數(shù)定義的一般形式floatsum(floatx,floatyfloatsum(float
x,floaty){floatz;
z=x+y;returnz;
}參數(shù)表(形參表):
函數(shù)定義時(shí)的參數(shù)稱為形式參數(shù),形式參數(shù)彼此間用逗號(hào)分隔。形式參數(shù)省略時(shí)稱無參函數(shù),但此時(shí)函數(shù)名后的圓括號(hào)不能省。形參說明是用來指明各個(gè)形式參數(shù)的類型,它隨形參的存在而存在。7.2函數(shù)定義的一般形式floatsum(floatx,floatyfloatsum(floatx,floaty)
{floatz;
z=x+y;
returnz;
}函數(shù)體:
函數(shù)中最外層一對(duì)花括弧"{·······}"括起來的內(nèi)容,它由若干個(gè)數(shù)據(jù)說明語句和可執(zhí)行語句組成,決定函數(shù)要實(shí)現(xiàn)的功能、完成的任務(wù)。函數(shù)體內(nèi)若無任何語句時(shí),為空函數(shù)。7.2函數(shù)定義的一般形式floatsum(floatx,floaty)格式二:
[類型符]函數(shù)名稱()
{}7.2.4空函數(shù)的定義函數(shù)頭函數(shù)體7.2函數(shù)定義的一般形式voiddummy(){}格式二:7.2.4空函數(shù)的定義函數(shù)頭函數(shù)體7.2實(shí)參(實(shí)際參數(shù))是函數(shù)調(diào)用時(shí)調(diào)用函數(shù)傳送給被調(diào)用函數(shù)參數(shù)的實(shí)際值。實(shí)參可以是常量、變量和表達(dá)式,實(shí)參必須有確定的值。例如:fabs(-2);putchar(c);sqrt((x*x+2)*(y+z));7.3.1形式參數(shù)與實(shí)際參數(shù)7.3函數(shù)的參數(shù)和函數(shù)的值
實(shí)參(實(shí)際參數(shù))是函數(shù)調(diào)用時(shí)調(diào)用函數(shù)傳送給被調(diào)用函數(shù)參數(shù)的實(shí)形參(形式參數(shù))是函數(shù)定義時(shí),參數(shù)表中的參數(shù)。形式參數(shù)只能是變量,數(shù)組等。在函數(shù)定義時(shí),參數(shù)表中的形參并沒有具體的值,系統(tǒng)也不為其分配存儲(chǔ)單元。7.3函數(shù)的參數(shù)和函數(shù)的值
例如:intmax(intx,inty){intz;z=x>y?x:y;returnz;}形參(形式參數(shù))是函數(shù)定義時(shí),參數(shù)表中的參數(shù)。形式參數(shù)只能是例形參和實(shí)參的運(yùn)用7.3函數(shù)的參數(shù)和函數(shù)的值
intmax(intx,inty){intz;z=x>y?x:y;returnz;}voidmain(){inta,b,c;scanf(“%d%d”,&a,&b);c=max(a,b);printf(“maxis%d\n”,c);}例形參和實(shí)參的運(yùn)用7.3函數(shù)的參數(shù)和函數(shù)的值7.3.2函數(shù)的返回值:當(dāng)被調(diào)用函數(shù)在完成一定的功能后,可以將處理的結(jié)果返回到調(diào)用函數(shù)。7.3函數(shù)的參數(shù)和函數(shù)的值
7.3.2函數(shù)的返回值:7.3函數(shù)的參數(shù)和函數(shù)的值7.3.2函數(shù)的返回值方式:return語句作用:將表達(dá)式的值傳給調(diào)用函數(shù),并把控制權(quán)轉(zhuǎn)向調(diào)用函數(shù)實(shí)現(xiàn)函數(shù)的返回。格式:
return[[(]表達(dá)式[)]];7.3函數(shù)的參數(shù)和函數(shù)的值
7.3.2函數(shù)的返回值7.3函數(shù)的參數(shù)和函數(shù)的值
對(duì)于不需要提供返回值的函數(shù)可以直接用void作為函數(shù)類型定義,以表明此函數(shù)返回值為”無類型”或”空類型”。voidprintchar()
{printf("WuhanUniversity\n");}main(){printchar();}void函數(shù)7.3函數(shù)的參數(shù)和函數(shù)的值
對(duì)于不需要提供返回值的函數(shù)可以直接用void作為函數(shù)類型例編寫自定義函數(shù)計(jì)算:分析:確定形參:求c必須知道f的大小,設(shè)形參為temp。確定函數(shù):函數(shù)的返回值即為c的值,設(shè)為實(shí)型。程序:floatftoc(floattemp){floatc;
c=(5./9.)*(temp–32);
returnc;
}7.3函數(shù)的參數(shù)和函數(shù)的值
例編寫自定義函數(shù)計(jì)算:分析:程序:floatftoc(例編寫一個(gè)自定義函數(shù)求n!分析:確定形參:求n!必須知道n的大小,設(shè)形參為n。確定函數(shù):函數(shù)的返回值即為n!的值,設(shè)為實(shí)型。程序:floatfactorial(intn)
{floatx,y;for(x=y=1.0;x<=n;x++)
y*=x;returny;}7.3函數(shù)的參數(shù)和函數(shù)的值
例編寫一個(gè)自定義函數(shù)求n!分析:程序:floatfa7.4函數(shù)的調(diào)用7.4.1函數(shù)調(diào)用的一般形式是:函數(shù)名(實(shí)參表列)說明:實(shí)參與形參的個(gè)數(shù)相等、類型相同、順序一致,呈一一對(duì)應(yīng)的關(guān)系。實(shí)參的求值順序不確定,與所用系統(tǒng)有關(guān)。實(shí)參應(yīng)有確定的值。7.4函數(shù)的調(diào)用7.4.1函數(shù)調(diào)用的一般形式是:說明:函數(shù)調(diào)用時(shí),需要注意的幾點(diǎn):C語言參數(shù)傳遞時(shí),一般采用傳值方式,把各個(gè)實(shí)參值分別順序?qū)?yīng)傳給形參。被調(diào)函數(shù)執(zhí)行中形參值的變化不會(huì)影響主調(diào)函數(shù)中實(shí)參變量的值。函數(shù)調(diào)用也是一種表達(dá)式,其值就是函數(shù)的返回值。7.4函數(shù)的調(diào)用函數(shù)調(diào)用時(shí),需要注意的幾點(diǎn):7.4函數(shù)的調(diào)用自定義函數(shù):
floatfactorial(intn)
{floatx,y;for(x=y=1.0;x<=n;x++)
y*=x;returny;}例調(diào)用自定義函數(shù)求n!調(diào)用:
voidmain(){intn;floatf;printf(“Pleaseinputn:”);scanf(“%d”,&n);f=factorial(n);printf(“n!=%f”,f);}7.4函數(shù)的調(diào)用自定義函數(shù):例調(diào)用自定義函數(shù)求n!調(diào)用:7.4函數(shù)調(diào)用方式
1)函數(shù)語句:
例
printf(”·····”);2)函數(shù)表達(dá)式:
例
c=2*pow(3.5,6);3)函數(shù)參數(shù):
例
c=2*pow(pow(3.5,6),6);
例
printf(”%f\n”,pow(3.5,6));7.4函數(shù)的調(diào)用調(diào)用方式7.4函數(shù)的調(diào)用例:說出下列程序的運(yùn)行結(jié)果fun2(inta,intb){intc;c=a*b%3;returnc;}fun1(inta,intb){intc;a+=a;b+=b;c=fun2(a,b);returnc*c;}main(){intx=11,y=19;printf("%d\n",fun1(x,y));}程序運(yùn)行結(jié)果:47.4函數(shù)的調(diào)用例:說出下列程序的運(yùn)行結(jié)果fun2(inta,int#include<stdio.h>func(inta,intb){intc;c=a+b;returnc;}main(){intx=6,y=7,z=8,r;r=func((x--,y++,x+y),z--);printf(“r=%d\n”,r);}程序運(yùn)行結(jié)果:r=21例:說出下列程序的運(yùn)行結(jié)果7.4函數(shù)的調(diào)用#include<stdio.h>程序運(yùn)行結(jié)果:例:說出下函數(shù)原型:在定義或調(diào)用函數(shù)前,對(duì)該函數(shù)進(jìn)行聲明。作用:將函數(shù)名、函數(shù)類型及形參個(gè)數(shù)、類型、順序等通知編譯系統(tǒng),當(dāng)函數(shù)被調(diào)用時(shí),可對(duì)實(shí)參、形參的類型、個(gè)數(shù)匹配情況進(jìn)行檢查。格式:類型符函數(shù)名(參數(shù)類型1,···);或:
類型符函數(shù)名(類型符形參1,···);7.4.3對(duì)被調(diào)用函數(shù)的說明
函數(shù)原型:在定義或調(diào)用函數(shù)前,對(duì)該函數(shù)進(jìn)行聲明。7.4.37.4.3對(duì)被調(diào)用函數(shù)的說明
自定義函數(shù):
floatfactorial
(intn)
{floatx,y;for(x=y=1.0;x<=n;x++)
y*=x;returny;}例調(diào)用自定義函數(shù)求n!floatfactorial
(intn);/*函數(shù)原型聲明*/
voidmain(){intn;floatf;printf(“Pleaseinputn:”);scanf(“%d”,&n);f=factorial
(n);printf(“n!=%f”,f);}7.4.3對(duì)被調(diào)用函數(shù)的說明自定義函數(shù):例調(diào)用自定例判定素?cái)?shù)。#include"math.h"intisprime(int);
/*函數(shù)原型聲明*/main(){intx=35;if(isprime(x))printf("%d是素?cái)?shù)。\n",x);elseprintf("%d不是素?cái)?shù)。\n",x);}isprime(inta){inti;for(i=2;i<=sqrt((double)a);i++)if(a%i==0)return0;return1;}7.4.3對(duì)被調(diào)用函數(shù)的說明
例判定素?cái)?shù)。#include"math.h"7.4.數(shù)組名可做實(shí)參和形參,傳送的是整個(gè)數(shù)組數(shù)組作為函數(shù)的參數(shù)7.7數(shù)組作為函數(shù)的參數(shù)
在用數(shù)組名做函數(shù)參數(shù)時(shí),實(shí)參和形參都應(yīng)該用數(shù)組。數(shù)組名可做實(shí)參和形參,傳送的是整個(gè)數(shù)組數(shù)組作為函數(shù)的參數(shù)7.7.7數(shù)組作為函數(shù)的參數(shù)
例起泡法排序voidsort(intarray[10],intn)
{inti,j,t;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(array[j]>array[j+1])
{
t=array[j];
array[j]=array[j+1];
array[j+1]=t;
}}數(shù)組作函數(shù)的參數(shù)舉例7.7數(shù)組作為函數(shù)的參數(shù)例起泡法排序數(shù)組作函數(shù)的7.7數(shù)組作為函數(shù)的參數(shù)
例起泡法排序intmain()
{
inti,a[10]={3,1,5,7,26,4,6,8,12,2};
sort(a,10);
for(i=0;i<10;i++)
printf("%d",a[i]);
return1;
}數(shù)組作函數(shù)的參數(shù)舉例7.7數(shù)組作為函數(shù)的參數(shù)例起泡法排序數(shù)組作函數(shù)的數(shù)組名作函數(shù)參數(shù)時(shí)應(yīng)注意:1)數(shù)組名作函數(shù)參數(shù)時(shí),應(yīng)在主調(diào)函數(shù)和被調(diào)函數(shù)中分別定義數(shù)組。7.7數(shù)組作為函數(shù)的參數(shù)
數(shù)組名作函數(shù)參數(shù)時(shí)應(yīng)注意:1)數(shù)組名作函數(shù)參數(shù)時(shí),應(yīng)在主調(diào)函數(shù)組名作函數(shù)參數(shù)時(shí)應(yīng)注意:2)實(shí)參數(shù)組與形參數(shù)組的類型必須相同,但大小可以不同。7.7數(shù)組作為函數(shù)的參數(shù)
數(shù)組名作函數(shù)參數(shù)時(shí)應(yīng)注意:2)實(shí)參數(shù)組與形參數(shù)組的類型必須相數(shù)組名作函數(shù)參數(shù)時(shí)應(yīng)注意:3)形參數(shù)組的一維下標(biāo)可以省略。4)數(shù)組名表示的是數(shù)組元素的首地址,數(shù)組名作函數(shù)參數(shù)時(shí),傳遞的是整個(gè)數(shù)組。實(shí)參與形參之間的數(shù)據(jù)傳遞是地址傳遞。7.7數(shù)組作為函數(shù)的參數(shù)
數(shù)組名作函數(shù)參數(shù)時(shí)應(yīng)注意:3)形參數(shù)組的一維下標(biāo)可以省略。7參數(shù)傳遞小結(jié):實(shí)參形參傳遞數(shù)據(jù)基本變量表達(dá)式數(shù)組元素基本變量傳值數(shù)組名數(shù)組名傳址7.1.7數(shù)組作為函數(shù)的參數(shù)
參數(shù)傳遞小結(jié):實(shí)參形參傳遞數(shù)據(jù)基本上機(jī)實(shí)驗(yàn)內(nèi)容:1、編寫函數(shù)isprime()判斷一個(gè)數(shù)是否素?cái)?shù)。2、給出年、月、日,請(qǐng)編寫函數(shù)sum_day()計(jì)算該日是該年的第幾天?上機(jī)實(shí)驗(yàn)內(nèi)容:#include<stdio.h>sum_day(intyear,intmonth,intday);voidmain(){intyear,month,day;intdays;scanf("%d,%d,%d",&year,&month,&day);days=sum_day(year,month,day);printf("%d\n",days);}staticintday_tab[13]={0,31,28,31,30,31,31,30,31,30,31};sum_day(intyear,intmonth,intday){……}#include<stdio.h>TheEndTheEnd第十講Begin:第七章函數(shù)函數(shù)概述函數(shù)的分類與定義函數(shù)調(diào)用的一般形式函數(shù)的參數(shù)函數(shù)的返回值數(shù)組作為函數(shù)參數(shù)第十講Begin:第七章函數(shù)函數(shù)概述7.1函數(shù)概述function函數(shù)也可以說是:功能就是具有一定功能的代碼段到現(xiàn)在為止,我們都是用主函數(shù)中的代碼完成一定的功能函數(shù)7.1函數(shù)概述function函數(shù)到現(xiàn)在為止,我們都7.1函數(shù)概述C語言規(guī)定:可以把程序中的不同的功能寫成不同的函數(shù)即:C語言程序可以由不同功能的函數(shù)組成函數(shù)7.1函數(shù)概述C語言規(guī)定:可以把程序中的不同的功能寫成不同7.1函數(shù)概述函數(shù)組成程序的例子}intmain(){printstar();
print_message();printstar();return0;}#include“stdio.h”voidprintstar(){printf(“**********\n”);}voidprint_message(){printf(“Howdoyoudo?\n”);7.1函數(shù)概述函數(shù)組成程序的例子}#include“stprintstar和print_message就是兩個(gè)函數(shù)7.1函數(shù)概述print_message函數(shù)的功能輸出一行信息
Howdoyoudo?\printstar的功能是輸出一排”*”main是主函數(shù),首先執(zhí)行mainprintstar和print_message就是兩個(gè)函數(shù)7.1函數(shù)概述
一個(gè)C程序由一個(gè)或多個(gè)函數(shù)組成,但至少有一個(gè)主函數(shù)(main函數(shù));main函數(shù)是程序執(zhí)行的入口,可置于程序的任何位置。C語言語法規(guī)范:7.1函數(shù)概述一個(gè)C程序由一個(gè)或多個(gè)函數(shù)組函數(shù)的分類:7.1函數(shù)概述從函數(shù)間的調(diào)用關(guān)系;主調(diào)函數(shù),被調(diào)函數(shù)
從函數(shù)間數(shù)據(jù)傳送的關(guān)系分為:有參函數(shù)、無參函數(shù)、有返回值函數(shù)、無返回值函數(shù);(接下來詳細(xì)講)從用戶的觀點(diǎn)分為:C編譯系統(tǒng)提供的標(biāo)準(zhǔn)庫函數(shù)和用戶自定義函數(shù);函數(shù)的分類:7.1函數(shù)概述從函數(shù)間的調(diào)用關(guān)系;主調(diào)函數(shù),被
[類型符]函數(shù)名稱()
{
數(shù)據(jù)說明語句可執(zhí)行語句
}7.2.2無參函數(shù)的定義函數(shù)頭函數(shù)體7.2函數(shù)定義的一般形式
printstar()和print_message()都是無參函數(shù)7.2.2無參函數(shù)的定義函數(shù)頭函數(shù)體7.2
[類型符]函數(shù)名稱(類型形參1[,···])
{
數(shù)據(jù)說明語句可執(zhí)行語句
}7.2.3有參函數(shù)的定義函數(shù)頭函數(shù)體7.2函數(shù)定義的一般形式7.2.3有參函數(shù)的定義函數(shù)頭函數(shù)體7.2函數(shù)定義的一般形式舉例:floatsum(floatx,floaty){floatz;
z=x+y;
returnz;
}7.2函數(shù)定義的一般形式函數(shù)定義的一般形式舉例:7.2函數(shù)定義的一般形式函數(shù)定義的一般形式說明:(1)float
sum(float
x,float
y){floatz;
z=x+y;
returnz;
}類型說明符:
指明函數(shù)的類型,函數(shù)的類型是指函數(shù)的返回值的類型,函數(shù)返回值所具有的數(shù)據(jù)類型的種類與變量相同。7.2函數(shù)定義的一般形式省略時(shí)則默認(rèn)為int型。若明確表示函數(shù)"不帶回值",可以用"void"作類型符,稱"無類型"或稱"空類型"。
函數(shù)定義的一般形式說明:(1)類型說明符:7.2函數(shù)定義float
sum(float
x,float
y
)
{floatz;
z=x+y;
returnz;
}函數(shù)名:
通常是一個(gè)標(biāo)識(shí)符,在一個(gè)程序中除了主函數(shù)外其余函數(shù)的名字可以任意取,但應(yīng)有意義。
"()"函數(shù)標(biāo)志。7.2函數(shù)定義的一般形式floatsum(floatx,floatyfloatsum(float
x,floaty){floatz;
z=x+y;returnz;
}參數(shù)表(形參表):
函數(shù)定義時(shí)的參數(shù)稱為形式參數(shù),形式參數(shù)彼此間用逗號(hào)分隔。形式參數(shù)省略時(shí)稱無參函數(shù),但此時(shí)函數(shù)名后的圓括號(hào)不能省。形參說明是用來指明各個(gè)形式參數(shù)的類型,它隨形參的存在而存在。7.2函數(shù)定義的一般形式floatsum(floatx,floatyfloatsum(floatx,floaty)
{floatz;
z=x+y;
returnz;
}函數(shù)體:
函數(shù)中最外層一對(duì)花括弧"{·······}"括起來的內(nèi)容,它由若干個(gè)數(shù)據(jù)說明語句和可執(zhí)行語句組成,決定函數(shù)要實(shí)現(xiàn)的功能、完成的任務(wù)。函數(shù)體內(nèi)若無任何語句時(shí),為空函數(shù)。7.2函數(shù)定義的一般形式floatsum(floatx,floaty)格式二:
[類型符]函數(shù)名稱()
{}7.2.4空函數(shù)的定義函數(shù)頭函數(shù)體7.2函數(shù)定義的一般形式voiddummy(){}格式二:7.2.4空函數(shù)的定義函數(shù)頭函數(shù)體7.2實(shí)參(實(shí)際參數(shù))是函數(shù)調(diào)用時(shí)調(diào)用函數(shù)傳送給被調(diào)用函數(shù)參數(shù)的實(shí)際值。實(shí)參可以是常量、變量和表達(dá)式,實(shí)參必須有確定的值。例如:fabs(-2);putchar(c);sqrt((x*x+2)*(y+z));7.3.1形式參數(shù)與實(shí)際參數(shù)7.3函數(shù)的參數(shù)和函數(shù)的值
實(shí)參(實(shí)際參數(shù))是函數(shù)調(diào)用時(shí)調(diào)用函數(shù)傳送給被調(diào)用函數(shù)參數(shù)的實(shí)形參(形式參數(shù))是函數(shù)定義時(shí),參數(shù)表中的參數(shù)。形式參數(shù)只能是變量,數(shù)組等。在函數(shù)定義時(shí),參數(shù)表中的形參并沒有具體的值,系統(tǒng)也不為其分配存儲(chǔ)單元。7.3函數(shù)的參數(shù)和函數(shù)的值
例如:intmax(intx,inty){intz;z=x>y?x:y;returnz;}形參(形式參數(shù))是函數(shù)定義時(shí),參數(shù)表中的參數(shù)。形式參數(shù)只能是例形參和實(shí)參的運(yùn)用7.3函數(shù)的參數(shù)和函數(shù)的值
intmax(intx,inty){intz;z=x>y?x:y;returnz;}voidmain(){inta,b,c;scanf(“%d%d”,&a,&b);c=max(a,b);printf(“maxis%d\n”,c);}例形參和實(shí)參的運(yùn)用7.3函數(shù)的參數(shù)和函數(shù)的值7.3.2函數(shù)的返回值:當(dāng)被調(diào)用函數(shù)在完成一定的功能后,可以將處理的結(jié)果返回到調(diào)用函數(shù)。7.3函數(shù)的參數(shù)和函數(shù)的值
7.3.2函數(shù)的返回值:7.3函數(shù)的參數(shù)和函數(shù)的值7.3.2函數(shù)的返回值方式:return語句作用:將表達(dá)式的值傳給調(diào)用函數(shù),并把控制權(quán)轉(zhuǎn)向調(diào)用函數(shù)實(shí)現(xiàn)函數(shù)的返回。格式:
return[[(]表達(dá)式[)]];7.3函數(shù)的參數(shù)和函數(shù)的值
7.3.2函數(shù)的返回值7.3函數(shù)的參數(shù)和函數(shù)的值
對(duì)于不需要提供返回值的函數(shù)可以直接用void作為函數(shù)類型定義,以表明此函數(shù)返回值為”無類型”或”空類型”。voidprintchar()
{printf("WuhanUniversity\n");}main(){printchar();}void函數(shù)7.3函數(shù)的參數(shù)和函數(shù)的值
對(duì)于不需要提供返回值的函數(shù)可以直接用void作為函數(shù)類型例編寫自定義函數(shù)計(jì)算:分析:確定形參:求c必須知道f的大小,設(shè)形參為temp。確定函數(shù):函數(shù)的返回值即為c的值,設(shè)為實(shí)型。程序:floatftoc(floattemp){floatc;
c=(5./9.)*(temp–32);
returnc;
}7.3函數(shù)的參數(shù)和函數(shù)的值
例編寫自定義函數(shù)計(jì)算:分析:程序:floatftoc(例編寫一個(gè)自定義函數(shù)求n!分析:確定形參:求n!必須知道n的大小,設(shè)形參為n。確定函數(shù):函數(shù)的返回值即為n!的值,設(shè)為實(shí)型。程序:floatfactorial(intn)
{floatx,y;for(x=y=1.0;x<=n;x++)
y*=x;returny;}7.3函數(shù)的參數(shù)和函數(shù)的值
例編寫一個(gè)自定義函數(shù)求n!分析:程序:floatfa7.4函數(shù)的調(diào)用7.4.1函數(shù)調(diào)用的一般形式是:函數(shù)名(實(shí)參表列)說明:實(shí)參與形參的個(gè)數(shù)相等、類型相同、順序一致,呈一一對(duì)應(yīng)的關(guān)系。實(shí)參的求值順序不確定,與所用系統(tǒng)有關(guān)。實(shí)參應(yīng)有確定的值。7.4函數(shù)的調(diào)用7.4.1函數(shù)調(diào)用的一般形式是:說明:函數(shù)調(diào)用時(shí),需要注意的幾點(diǎn):C語言參數(shù)傳遞時(shí),一般采用傳值方式,把各個(gè)實(shí)參值分別順序?qū)?yīng)傳給形參。被調(diào)函數(shù)執(zhí)行中形參值的變化不會(huì)影響主調(diào)函數(shù)中實(shí)參變量的值。函數(shù)調(diào)用也是一種表達(dá)式,其值就是函數(shù)的返回值。7.4函數(shù)的調(diào)用函數(shù)調(diào)用時(shí),需要注意的幾點(diǎn):7.4函數(shù)的調(diào)用自定義函數(shù):
floatfactorial(intn)
{floatx,y;for(x=y=1.0;x<=n;x++)
y*=x;returny;}例調(diào)用自定義函數(shù)求n!調(diào)用:
voidmain(){intn;floatf;printf(“Pleaseinputn:”);scanf(“%d”,&n);f=factorial(n);printf(“n!=%f”,f);}7.4函數(shù)的調(diào)用自定義函數(shù):例調(diào)用自定義函數(shù)求n!調(diào)用:7.4函數(shù)調(diào)用方式
1)函數(shù)語句:
例
printf(”·····”);2)函數(shù)表達(dá)式:
例
c=2*pow(3.5,6);3)函數(shù)參數(shù):
例
c=2*pow(pow(3.5,6),6);
例
printf(”%f\n”,pow(3.5,6));7.4函數(shù)的調(diào)用調(diào)用方式7.4函數(shù)的調(diào)用例:說出下列程序的運(yùn)行結(jié)果fun2(inta,intb){intc;c=a*b%3;returnc;}fun1(inta,intb){intc;a+=a;b+=b;c=fun2(a,b);returnc*c;}main(){intx=11,y=19;printf("%d\n",fun1(x,y));}程序運(yùn)行結(jié)果:47.4函數(shù)的調(diào)用例:說出下列程序的運(yùn)行結(jié)果fun2(inta,int#include<stdio.h>func(inta,intb){intc;c=a+b;returnc;}main(){intx=6,y=7,z=8,r;r=func((x--,y++,x+y),z--);printf(“r=%d\n”,r);}程序運(yùn)行結(jié)果:r=21例:說出下列程序的運(yùn)行結(jié)果7.4函數(shù)的調(diào)用#include<stdio.h>程序運(yùn)行結(jié)果:例:說出下函數(shù)原型:在定義或調(diào)用函數(shù)前,對(duì)該函數(shù)進(jìn)行聲明。作用:將函數(shù)名、函數(shù)類型及形參個(gè)數(shù)、類型、順序等通知編譯系統(tǒng),當(dāng)函數(shù)被調(diào)用時(shí),可對(duì)實(shí)參、形參的類型、個(gè)數(shù)匹配情況進(jìn)行檢查。格式:類型符函數(shù)名(參數(shù)類型1,···);或:
類型符函數(shù)名(類型符形參1,···);7.4.3對(duì)被調(diào)用函數(shù)的說明
函數(shù)原型:在定義或調(diào)用函數(shù)前,對(duì)該函數(shù)進(jìn)行聲明。7.4.37.4.3對(duì)被調(diào)用函數(shù)的說明
自定義函數(shù):
floatfactorial
(intn)
{floatx,y;for(x=y=1.0;x<=n;x++)
y*=x;returny;}例調(diào)用自定義函數(shù)求n!floatfactorial
(intn);/*函數(shù)原型聲明*/
voidmain(){intn;floatf;printf(“Pleaseinputn:”);scanf(“%d”,&n);f=factorial
(n);printf(“n!=%f”,f);}7.4.3對(duì)被調(diào)用函數(shù)的說明自定義函數(shù):例調(diào)用自定例判定素?cái)?shù)。#include"math.h"intisprime(int);
/*函數(shù)原型聲明*/main(){intx=35;if(isprime(x))printf("%d是素?cái)?shù)。\n",x);elseprintf("%d不是素?cái)?shù)。\n",x);}isprime(inta){inti;for(i=2;i<=sqrt((doub
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 平頂山市舞鋼市2025年三下數(shù)學(xué)期末質(zhì)量跟蹤監(jiān)視試題含解析
- 山東商務(wù)職業(yè)學(xué)院《基礎(chǔ)新聞采寫》2023-2024學(xué)年第二學(xué)期期末試卷
- 麗水學(xué)院《MATLAB基礎(chǔ)與工程數(shù)學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川省眉山市百坡初級(jí)中學(xué)2024-2025學(xué)年初三下學(xué)期第一次檢測(cè)試題考試化學(xué)試題試卷含解析
- 南通科技職業(yè)學(xué)院《電子組裝工藝》2023-2024學(xué)年第二學(xué)期期末試卷
- 電子設(shè)備耐候性與可靠性測(cè)試考核試卷
- 新能源汽車制造過程中的能源優(yōu)化考核試卷
- 皮革護(hù)理中常見問題診斷與解決技巧考核試卷
- 家居裝飾簾幕安裝與選材考核試卷
- 生態(tài)保護(hù)工程生態(tài)旅游產(chǎn)品設(shè)計(jì)考核試卷
- 核電站工程安全倫理案例分析課件
- 5G無線接入網(wǎng)實(shí)訓(xùn)指導(dǎo)書2022年
- 2021年北京回龍觀醫(yī)院醫(yī)護(hù)人員招聘筆試試題及答案解析
- 對(duì)數(shù)的概念說課稿課件
- 地理生物會(huì)考動(dòng)員主題班會(huì)課件
- 農(nóng)產(chǎn)品食品檢驗(yàn)員理論知識(shí)競(jìng)賽題庫
- 山東中醫(yī)藥大學(xué)中醫(yī)學(xué)(專升本)學(xué)士學(xué)位考試復(fù)習(xí)題
- 農(nóng)夫山泉產(chǎn)品陳列手冊(cè)(共45頁).ppt
- 【原創(chuàng)】《“備-教-學(xué)-評(píng)”目標(biāo)一致性的實(shí)施策略》講座PPT
- 【北師大版】六年級(jí)下冊(cè)數(shù)學(xué)教學(xué)設(shè)計(jì)-總復(fù)習(xí)《數(shù)的認(rèn)識(shí)》(1)
- 行政事業(yè)單位財(cái)務(wù)管理制度范文
評(píng)論
0/150
提交評(píng)論