C語言與程序設(shè)計(jì)試驗(yàn)0--函數(shù)_第1頁
C語言與程序設(shè)計(jì)試驗(yàn)0--函數(shù)_第2頁
C語言與程序設(shè)計(jì)試驗(yàn)0--函數(shù)_第3頁
C語言與程序設(shè)計(jì)試驗(yàn)0--函數(shù)_第4頁
C語言與程序設(shè)計(jì)試驗(yàn)0--函數(shù)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)六函數(shù)一、實(shí)驗(yàn)?zāi)康?.熟練掌握函數(shù)的定義、函數(shù)的類型和返回值。2,熟練掌握形式參數(shù)與實(shí)際參數(shù)、參數(shù)值的傳遞。3 .掌握函數(shù)的嵌套調(diào)用與遞歸調(diào)用。4 .學(xué)會(huì)使用指向函數(shù)的指針變量。5 .了解指向指針的指針的概念及帶參數(shù)的main函數(shù)。6,掌握局部變量和全局變量。7,掌握變量的存儲(chǔ)類型。8,了解內(nèi)部函數(shù)和外部函數(shù)。二、實(shí)驗(yàn)學(xué)時(shí):8課時(shí)三、預(yù)習(xí)知識(shí)1.標(biāo)準(zhǔn)庫(kù)函數(shù)標(biāo)準(zhǔn)庫(kù)函數(shù)是C系統(tǒng)提供的,這些庫(kù)函數(shù)定義了一些基本的、常用的功能,用戶可以使用這些庫(kù)函數(shù),但是在使用庫(kù)函數(shù)之前需要用預(yù)編譯命令#include將該庫(kù)函數(shù)所在的頭文件包含進(jìn)來。2,自定義函數(shù)定義函數(shù)一般有兩種形式形式1:存儲(chǔ)類型類型符函數(shù)名

2、(類型符形參1,類型符形參2,)(說明語句執(zhí)行語句形式2:存儲(chǔ)類型類型符函數(shù)名(形參1,形參2,形參類型說明(說明語句執(zhí)行語句說明:形參表中即使沒有參數(shù),函數(shù)名后的一對(duì)圓括號(hào)也不能省略。函數(shù)名前的類型符是用來說明函數(shù)返回值的數(shù)據(jù)類型(也作為函數(shù)的數(shù)據(jù)類型)。當(dāng)函數(shù)值為整型時(shí),類型符可以省略。當(dāng)函數(shù)只完成某一特定操作不需要返回值時(shí),可用類型標(biāo)識(shí)符void說明,將函數(shù)定義成空類型。C規(guī)定:不允許在一個(gè)函數(shù)內(nèi)部再定義另外一個(gè)函數(shù),即函數(shù)不允許嵌套定義。函數(shù)的存儲(chǔ)類型:函數(shù)的存儲(chǔ)類型有extern和static兩種。extern型的函數(shù)除了可以被本程序中其它函數(shù)調(diào)用外,還可以被其它文件中的函數(shù)調(diào)用,這

3、種函數(shù)稱為外部函數(shù),如果定義函數(shù)時(shí)省略extern,則隱含為外部函數(shù)。static型的函數(shù)只能被本源程序文件中的函數(shù)調(diào)用,稱為內(nèi)部函數(shù)(靜態(tài)函數(shù))。3,函數(shù)的參數(shù)(1)在定義函數(shù)時(shí)函數(shù)名后面括號(hào)中的變量稱為形參(形式參數(shù)),如果有兩個(gè)以上形參,形參之間以逗號(hào)分隔。形參是函數(shù)的內(nèi)部變量,只在函數(shù)內(nèi)部才有意義。在未出現(xiàn)函數(shù)調(diào)用時(shí),形參不占內(nèi)存。對(duì)每個(gè)形參必須指明其名字和數(shù)據(jù)類型。(2)函數(shù)調(diào)用時(shí)作為參數(shù)的數(shù)據(jù)稱為實(shí)參。實(shí)參的個(gè)數(shù)、數(shù)據(jù)類型必須與對(duì)應(yīng)的形參一致,實(shí)參可以是常量、變量或表達(dá)式,并且有確定的值。在對(duì)實(shí)參表求值時(shí),存在一個(gè)順序問題,即從左往右依次求實(shí)參的值,還是從右往左求值,TurboC中

4、規(guī)定是從右往左求值。4 .函數(shù)調(diào)用(1)對(duì)被調(diào)用函數(shù)的說明如果被調(diào)用函數(shù)為用戶自己定義的函數(shù),且該函數(shù)與調(diào)用它的函數(shù)在同一個(gè)源文件中,應(yīng)該在主調(diào)函數(shù)中對(duì)被調(diào)用函數(shù)的類型進(jìn)行說明,說明的形式為:存儲(chǔ)類型類型符函數(shù)名();對(duì)函數(shù)的類型說明與函數(shù)的定義有著本質(zhì)的區(qū)別:函數(shù)的類型說明只是對(duì)函數(shù)返回值類型的說明,通知系統(tǒng),在編譯時(shí),對(duì)函數(shù)的調(diào)用作合法性檢查。函數(shù)的定義是一個(gè)完整而獨(dú)立的函數(shù)單元,包括函數(shù)類型、函數(shù)名、形參名、形參類型說明及函數(shù)體等。對(duì)被調(diào)用函數(shù)的說明,在以下幾種情況下可以省略:函數(shù)的返回值為整型或字符型時(shí),可以不進(jìn)行類型說明,系統(tǒng)按整型處理。被調(diào)用函數(shù)定義在主調(diào)函數(shù)之前。若在所有函數(shù)的定

5、義之前,對(duì)函數(shù)的類型進(jìn)行了說明。(2)函數(shù)可以被多次調(diào)用函數(shù)調(diào)用的一般形式:函數(shù)名(實(shí)參1,實(shí)參2,實(shí)參3,)5 .函數(shù)的實(shí)參與形參之間的數(shù)據(jù)傳遞C規(guī)定:實(shí)參與形參“按值”傳送。(1)當(dāng)常量、基本類型的變量、表達(dá)式作實(shí)參時(shí),相應(yīng)的形參應(yīng)是同類型的變量。在發(fā)生函數(shù)調(diào)用時(shí)為形參分配內(nèi)存,將實(shí)參的值復(fù)制到形參中,形參有自己的存儲(chǔ)空間用來存放其值,在函數(shù)內(nèi)部,對(duì)形參進(jìn)行加工處理。一且函數(shù)執(zhí)行完畢,形參所占存儲(chǔ)單元將被釋放。這種數(shù)據(jù)傳遞方式的特點(diǎn):在函數(shù)內(nèi)部對(duì)形參的任何操作,其結(jié)果只影響形參的值,而不影響實(shí)參的值。也就是說:實(shí)參對(duì)形參的數(shù)據(jù)傳遞是“單向值傳遞”。(2)地址傳送方式傳遞數(shù)據(jù)將數(shù)據(jù)的存儲(chǔ)地址

6、作為實(shí)參傳遞給形參,相應(yīng)的形參應(yīng)該是同類型的,例如:當(dāng)數(shù)組名作函數(shù)的實(shí)參時(shí),實(shí)參數(shù)組的首地址傳遞給相應(yīng)的形參數(shù)組,兩個(gè)數(shù)組共占用一段內(nèi)存,因此,在調(diào)用函數(shù)中對(duì)形參數(shù)組元素的改變也使實(shí)參數(shù)組的元素隨之改變。6 .函數(shù)的返回值由return語句帶回。return語句的一般形式:return表達(dá)式;或return(表達(dá)式);或return;說明:一個(gè)函數(shù)中可以有多個(gè)return語句,但是在一次調(diào)用函數(shù)時(shí)只能執(zhí)行其中的一個(gè),當(dāng)執(zhí)行到某個(gè)return語句時(shí),程序的控制流程返回到調(diào)用函數(shù),并將return語句中表達(dá)式的值作為函數(shù)值帶回。若函數(shù)體內(nèi)沒有return語句,就一直將函數(shù)體執(zhí)行完,再返回到調(diào)用函數(shù)

7、,有一個(gè)不確定的函數(shù)值帶回。return語句中表達(dá)式的類型應(yīng)該與函數(shù)的類型一致,如果不一致,則以定義該函數(shù)時(shí)所指定的函數(shù)類型為準(zhǔn)。如果不要求帶回函數(shù)值,則應(yīng)該將函數(shù)定義為viod類型,也就不能使用函數(shù)的返回值了。7 .C語言中函數(shù)的調(diào)用可以嵌套,即在調(diào)用一個(gè)函數(shù)的過程中可以再調(diào)用另外一個(gè)函數(shù)。8 .C語言允許函數(shù)遞歸調(diào)用,即在調(diào)用一個(gè)函數(shù)的過程中,又出現(xiàn)直接或問接地調(diào)用該函數(shù)本身,這種函數(shù)稱為遞歸函數(shù)。9、指向函數(shù)的指針指向函數(shù)的指針變量的定義形式是:類型名指針變量名)();如:int(*p)();它表示p指向一個(gè)返回整型值的函數(shù)。C語言中,一個(gè)函數(shù)由一系列指令組成,占用內(nèi)存中的一片存儲(chǔ)單元,

8、它有一個(gè)起始地址,即函數(shù)的入口地址,這個(gè)地址稱為函數(shù)的指針。函數(shù)名就是這個(gè)入口地址。P=fun;表示p指向函數(shù)funo使用函數(shù)的指針調(diào)用函數(shù)的方式是:指針變量名)(實(shí)參表)如:(*p)(a,b),它相當(dāng)于fun(a,b)。10、指向指針的指針指向指針的指針是“指向指針型數(shù)據(jù)的指針變量”的簡(jiǎn)稱。它的定義方式為:類型名*指針變量名;如:inta=3,*p1,*p2;p1=&a;(使p1指向變量a)p2=&p1;(是p2指向變量p1)11 .局部變量與全局變量(1)局部變量:是在函數(shù)內(nèi)部或復(fù)合語句內(nèi)部定義的變量,其作用域是定義變量的函數(shù)內(nèi)或復(fù)合語句內(nèi)。形參也是局部變量。(2)全局變量

9、:是在函數(shù)外部定義的變量,其有效范圍是從變量定義的位置開始到本源文件結(jié)束止。說明:一個(gè)函數(shù)即可以使用全局變量,也可以使用本函數(shù)的局部變量,若局部變量與全局變量同名,則在局部變量的作用范圍內(nèi),全局變量被隱蔽,不起作用。12 .變量的存儲(chǔ)類別從變量的生存周期來看,變量可分為動(dòng)態(tài)存儲(chǔ)變量和靜態(tài)存儲(chǔ)變量。在程序運(yùn)行期間根據(jù)需要進(jìn)行臨時(shí)動(dòng)態(tài)分配存儲(chǔ)空間的變量稱為動(dòng)態(tài)存儲(chǔ)變量;在程序運(yùn)行期間占有固定存儲(chǔ)空間的變量稱為靜態(tài)存儲(chǔ)變量。在C語言中每一個(gè)變量有兩種屬性:數(shù)據(jù)類型和存儲(chǔ)類型。存儲(chǔ)類型指的是數(shù)據(jù)在內(nèi)存中的存儲(chǔ)方式。通過存儲(chǔ)分類符可以通知編譯系統(tǒng)如何存儲(chǔ)變量,即靜態(tài)存放或動(dòng)態(tài)存放,C語言提供了4個(gè)存儲(chǔ)分

10、類符,它們是auto(稱為自動(dòng)的)、register(稱為寄存器的)、static(稱為靜態(tài)的)、extern(稱為外部的)。存儲(chǔ)分類符用在定義變量之前,其一般形式為:存儲(chǔ)分類符類型符變量名;四、實(shí)驗(yàn)內(nèi)容(一)閱讀程序題1.以下程序的運(yùn)行結(jié)果main()floata,b,c;floatmax();/*函數(shù)調(diào)用的說明*/scanf("%f%f",&a,&b);c=max(a,b);/*printf("MAX=%f",c);floatmax(x,y)/*floatx,y;/*floatz;z=x>y?x:y;return(z);/*調(diào)用

11、函數(shù),返回值賦值給c變量*/函數(shù)值是float型*/形參類型說明*/二/*定義函數(shù)*/A帶回返回值*/勘測(cè)1孟.;則試.main.cNoSelection1#include<stdio,h>intmain!)(floatafbfc;4 floatmax();/*函數(shù)調(diào)用的說明*/5 printff"H);6 scant('*f&ar&b);1c=max(afb);/*調(diào)用函數(shù),返回值賦值給c變量*/8 printff"MAX=%fn°,c);9 10 floatmax(XjV)/常困數(shù)值是fl0at型*/11 floatXjy;

12、/*形參類型說明*/12 (floatz;/*定義函數(shù)*/z=x>y?x:y;return(z);15 16日,2.345567*4547MAX=5.457000Programendedwithexitcode:&2.以下程序的運(yùn)行結(jié)果。#include<stdio.h>voidfun()staticintx=0;inty=0;printf("x=%d,y=%dn",+x,+y);)main()intk=0;while(k+<3)fun();)注意:局部靜態(tài)變量和局部自動(dòng)變量的區(qū)別Finis11,則UV/j則UV/11IcllII,t:|1U

13、II1 #include<stdio*h>2 voidfun()3 (staticintx=0;5 inty=0;6 printf("x=y=%dn"f+x,+y);7 intmain()9 (10 intk=0;11 while(k+<3)12 fun();13 U回,x=l.v=1x=2fy=1x=3fy=1Programendedwithexitcode:03.運(yùn)行以下程序,輸出結(jié)果是。#include<stdio.h>main()inta=1,b=2;printf("%d,",f(a,b);printf("

14、%d”,f(a,b);f(intx,inty)staticinta=3,b=4;a+=b*2;b=a+x+y;returnb;品<>勘測(cè)試測(cè)試main.cNoSelection1 #include<stdio-h>2 voidfun()3 staticintx=0;inty=0;4 printf("x=y=dn111+xt+y);7 intmain()9 (intk=6;11 while(k+<3)12 fun();13 14 Ix =lfy=1xi =2fy=1xii =3fy=1Programendedwithexitcode:04.以下程序的運(yùn)行結(jié)

15、果是。voidsub(chars) staticintk=3;sk+;k+;)main() charstr80="abcDEFG;intifor(i=0;i<3;i+)sub(str);printf("%sn",str);)注意:數(shù)組名作函數(shù)的參數(shù)§8<庭;則試5.測(cè)試cmain©N#include<stdio.h>zvoidsub(chars)3 Staticintk=3;sk+;6 k+;7 8 intmain()10 11 charstr80=HabcDEFGH;12 inti;13 for(i=0;i<3;

16、i+)14 15 sub(str);16 printf("%sn'*(str);1718 19 20回abcEEFGabcEFFGabcEFGGProgramendedwithexitcode:05.寫出以下段程序的運(yùn)行結(jié)果。longfib(intg)switch(g)case1case2:return1;)return(fib(g-1)+fib(g-2);/*函數(shù)的遞歸調(diào)用*/)main()longk;k=fib(5);printf("k=%dn",k);測(cè)試衛(wèi)MyMacFinished|6|測(cè)試測(cè)試jcmain.cQmam1 #include<s

17、tdio.h>longfibdntg)4 switchtg)5 case1:case2:return1;8 9 return(fib(g-1)+fib(g-2);/*函數(shù)的10 11 intmain()12 long|k;13 k=fib(5);14 printf(11k=%dn",k);15 16回k=5Programendedwithexitcode:06.以下程序的運(yùn)行結(jié)果。intx=0;voidf();main()if(x=0)/*全局變量x*/intx=2;/*局部變量x*/printf("%d,",x)printf("%d,"

18、,x)f();printf("%d,",x)voidf()x=3;printf("%d,"/*局部變量x*/;/*全局變量x*/;/*全局變量x*/x);/*全局變量x*/圖<>青C工程測(cè)試Uc工程測(cè)試cmainx>Qf1 #include<stdioth>2 intx=0;3 voidf();intmain()(if(x=0)/*全局變量x*/7 intx=2;/*局部變量x*/910 printt("%df11,x);/*局部變量x*/11 12 printfl"%dJ,x);/*全局變量x*/13

19、f();14 printf("%dr"fx);/*全局變量x*/15 1617 voidf()|18 19 x=3;20 printf("%d,";x);/*全局變量x*/21 22回,2f0f3t3rProgramendedwithexitcode:0注意:一個(gè)函數(shù)即可以使用全局變量,也可以使用本函數(shù)的局部變量,若局部變量與全局變量同名,則在局部變量的作用范圍內(nèi),全局變量被隱蔽,不起作用。7,下列程序執(zhí)行后輸出結(jié)果是.intd=1;fun(intp)intd=5;d+=p+;printf("%d",d);)main()inta=3;

20、fun(a);d+=a+;printf("%d",d);gg<>昌C工程測(cè)試C工程測(cè)試Cmain.c#include<stdio.h>I2intd=l;>3fun(intp)&I5intd=5;6d+=p+;I7printf("?idMfd);8return明沒有返回|I9I1011 intmain()I1213 inta=3;14 fun(a);15 d+=a+;16 printf("%dn"td);I1718回84Programendedwithexitcode:08.下列程序執(zhí)行后輸出結(jié)果是intm=

21、13;intfun(intx,inty)intm=3;return(x*y-m);)main()inta=7,b=5;printf("%dn",fun(a,b)/m);C工程測(cè)試C工程測(cè)試Cma1 #include<stdio.h>2 intm=13;intfun(intxtinty)intm=3;return7 intmain()9 inta=7fb=5;10 printf("%dn*',fun(atb)/m);11 12S,2Programendedwithexitcode:09,下列程序執(zhí)行后輸出結(jié)果是.main()intx=6;prin

22、tf(n1-%d,%d,%dn”,x+,x+,x+);printf(2-%d”,x);)S8<>陶C工程測(cè)試Bc工程測(cè)試CmainxQmair1 #include<stdio*h>2 main()3 I4intX=6;5printf("|1x+,x+fx+);|6printf("2%dn"x);7 8回16f7.829Programendedwithexitcode:0注意:在對(duì)實(shí)參表求值時(shí),存在一個(gè)順序問題,即從左往右依次求實(shí)參的值,還是從右往左求值,不同的機(jī)器系統(tǒng)處理的方式不同,TurboC中規(guī)定:按從右往左的順序求值。10、用指向函數(shù)

23、的指針變量調(diào)用函數(shù)。max(intx,inty)intz;if(x>y)z=x;elsez=y;return(z);)main()inta,b,c,(*p)();scanf("d%d,&a,&b);p=max;c=(*p)(a,b);pritnf("max=%drf,c);§§<>iC工程測(cè)試3C工程測(cè)試Cmain.c)QmaiII#include<stdio,h>2 intmax(intx,inty)3 4 intz;if(x>y)z=x;elsez=y;7 return(z);8 9 intmain

24、t)10 11 intb#cf(*p)(intfint);12 printf("”);13 scanft,%d%dut&ar&b);p=max;c=(*p)(a,b);1617 printf(nmax=%dn",c);1819 20 /10.用指向函數(shù)的指針變量調(diào)用函數(shù)。1243max=43Programendedwithexitcode:611.用梯形法求函數(shù)(1+x)在區(qū)間0到1上的積分(x是自變量)floatf1(floatx) floatf;f=1+x;return(f);floatintegral(float(*fun)(),floata,floa

25、tb) floats,h,y;intn,i;s=(*fun)(a)+(*fun)(b)/2;n=100;h=(b-a)/n;for(i=1;i<n;i+)s=s+(*fun)(a+i*h);y=s*h;return(y);)main()floaty;y=integral(f1,0,1);printf("y=%fn”,y);)明酶C工程測(cè)試)C工程測(cè)試cmain.cQmain#include<stdioh>2floatfl(floatx)1 3floatf;I4f=l+x;I5return(f);I6floatintegralflost(*fun)()ffloata,

26、floattI8I9floatsfhfy;I10intn,i;s=(*fun)(a)+(*fun)(b)/2;I12n=100;h=(b-a)/n;I14for(i=l;i<n;i+)15 s=s+(*fun)(a+i*h);17 )I18y=s*h;I19return(y);I2021 intmain()I23floaty;y=integral(fl,0f1);I25printf('yfXn",y);26 27y=0.000000Programendedwithexitcode:0|12. main函數(shù)帶參數(shù)的程序的運(yùn)行main(intargc,char*argv)w

27、hile(argc>1)+argv;printf("sn”,*argv);-argc;把上面的程序存盤并命名為file.c,并運(yùn)行該程序退出TurboC,在DOS犬態(tài)下輸入數(shù)據(jù):fileShenyangBeijing/則程序的運(yùn)行結(jié)果為:ShenyangBeijing(二)、完善程序題1 .以下程序計(jì)算10名學(xué)生1門課成績(jī)的平均分,請(qǐng)?zhí)羁?include<stdio.h>floataverage(floatarray10) inti;floataver,sum=array0;for(i=1;i<10;i+)sum+=arrayi;aver=sum/10;ret

28、urn(aver);main() floatscore10,aver;inti;for(i=0;i<10;i+)scanf(%f",&scorei);aver=average(score);printf("naveragescoreis%5.2fn",aver);C工程測(cè)試RC工程測(cè)試Cmainx)Qmain|11以下程序計(jì)算18名學(xué)生1門課成績(jī)的平均分,請(qǐng)?zhí)羁铡?include<stdioih>floataverage(floatarray19)4inti;floataver!sum=array0;7for(i=l;i<10;i+

29、)/sum+=arrayi;/aver=sum/10;returntaver);11intmain()13floatscoret16taver;inti;16printf(*hn");for(1=0;i<10;i+)18 19 scant("%f"fasecreti);20 21 (與core);,這不明白哦慣例不是average(scoreti)|22printf(h,naveragescoreis2fnMtaver);24 25SD234567893averagescoreis4.8。Programendedwithexitcode:02.以下程序的功能

30、是對(duì)數(shù)組的元素進(jìn)行排序,實(shí)參表為且二main()inta5=5,10,-7,3.7,i;sort(a);_for(i=0;i<=4;i+)printf("%d,",ai);)voidsort(inta)inti,j,t;for(i=0;i<4;i+)for(j=0;j<4-i;j+)if(aj>aj+1)t=aj;aj=aj+1;aj+1=t;)310.0)NoSeIec567O0-q1011121314151617181920212324252627282g30,請(qǐng)選擇正確的答案填#include<stdio«h>voidSo

31、rt(inta)intitj,t;for(i=0;i<4;i+)(for(j=0;j<4-i;j+)if(aj>aj4-l)t=aj;aj=aj+l;aj+l=t;intmain()(inta5=5f10,-7#3,7f1Sort(a);for(i=e;i<=4;i+)(printf(u%d,n,ai);printf("n*);回A-7,3,5,7,1%Programendedwithexitcode:03.函數(shù)yanghui能夠按以下形式構(gòu)成一個(gè)楊輝三角形入程序空白處.11112113311464115101051#defineN11yanghui(inta

32、N)inti,j;for(i=1;i<N;i+)ai1=1;aii=1;for(i=3;i<N;i+)for(j=2;j<i;j+)aij=ai-1j-1+ai-1j;main()intaNN;inti,j;yanghui(a);for(i=1;i<N;i+)for(j=1;j<=i;j+)printf("%d",aij);printf("n");C工程測(cè)試C工程測(cè)試cmain.cNoSelection#defineN112 voidYanghui(intaN)3 4 inti,j;5 for(i=l;i<N;i+)6

33、 ail=l;7 aii=l;8 9 for(i=3;i<N;i+)10 11 for(j=2;j<i;j+)12 13 aij=ai-lj-l+ai-lj;14 15 16 17 intmain()18 19 intaNN;20 inti,j;21 Yanghui(a);22 for(i=l;i<N;i+)23 24 for(j=l;j<=i;j+)25 2627 printf("%d",aij);Implicitlydeclaring28 29 printf(,n");30 31 32 |回,11112 113 311464115101

34、0511561352171193684126126843691Programendedwithexitcode:04.下面函數(shù)的功能是求字符串的字符串長(zhǎng)度。#include"stdio.h"intfun(charx) intn;n=0;while(xn)n+;return(n);main() chary80;gets(y);printf("n%d",fun(y);I曲C工程測(cè)試C工程測(cè)試cmdin.cNoSelection1 tfincludestdio.h112 intfun(charx)3 4 intn;5 n=0;while(xn)7 n+;ret

35、urn(n);910intmain()12 (13 chary80;14 gets(y);15 printffXn%d",fun(y);1617 18叵DD合£1方一山warning:thisprogramusesgets()twhichisunsafe.5.下面程序的功能是計(jì)算斐波拉契數(shù)列(Fibonacci)返回的值。運(yùn)行結(jié)果是k=13。函數(shù)的形參表是intg0longfib(intg)switch(g)case0:return0;case 1 :case 2 :return1;)return(fib(g-1)+fib(g-2);)main()longk;k=fib;p

36、rintf("k=%dn",k);)gg<>iC工程測(cè)試C工程測(cè)試cmainx>NoSeLI1#includeMstdio,hM2longfibtintg):3switch(g)case0:return0;case1 :case2 :return1;8I9return(fib(g-l)+fib(g-2);I1011 intmain()12 13 longk;14 k=fib(7);I15printf("k=dn"fk;16 17 |S,k=13Programendedwithexitcode:0(三)編程實(shí)驗(yàn)題1、編寫一個(gè)能夠判斷一個(gè)數(shù)

37、是否是素?cái)?shù)的函數(shù),輸出是否是素?cái)?shù)的信息代碼:#include<stdio.h>intSS(intm)inti;if(m=1)return0;for(i=2;i<m;i+)(if(m%i=0)return0;)return1;)voidmain()(intn,c;printf("");scanf("%d",&n);c=SS(n);if(c=1)printf("是素?cái)?shù)n");elseprintf("不是素?cái)?shù)n");)截圖:mainx)SS題<>豳C工程測(cè)試>二C工程測(cè)試C1#

38、include<stdio.h>I2intSS(intm)I4int1;I5if(m=l)return0;&for(i=2;i<m;i+)I8I9if(m%i=0)return0;I10I11return1;12 voidmain()一,intntc;I16printt("n");I17scant(;c=SS(n;I19if(c=l)I20printt”是素?cái)?shù)n”);I21else|22口出口計(jì)不是素?cái)?shù)門,,;23 24回2是素?cái)?shù)Programendedwithexitcode:102、編寫一個(gè)函數(shù),輸入一個(gè)十六進(jìn)制數(shù),輸出相應(yīng)的十進(jìn)制數(shù)代碼:#i

39、nclude<stdio.h>intDDA(intx)(printf("%d",x);returnx;intmain()(intx,d;printf("請(qǐng)輸入十六進(jìn)制數(shù)值:n");scanf("%x",&x);d=DDA(x);printf("n");)截圖:gg<>的C工程測(cè)試)匚C工程測(cè)試)|cmain.cNoSelectio|1"2、編寫一個(gè)函數(shù),輸入一個(gè)十六進(jìn)制數(shù),輸出相應(yīng)的十進(jìn)制數(shù).#include<stdio*h>3 intDDAtintx)4 (5

40、 printf("%dn,x);returnx;7 89 intmain()10 (11 intxfd;1213 pri口tf("請(qǐng)輸入十六進(jìn)制數(shù)值:n“);14 scant(j&x);I15d=DDA(X);17 printf(unn);18 19叵,請(qǐng)輸入十六進(jìn)制數(shù)值:8c140Programendedwithexitcode:6|3.編寫一個(gè)遞歸函數(shù)求給定值n的階乘,并按下述公式求Cnm的值。代碼:#include<stdio.h>intN(intx)(if(x=0)return1;elsereturnx*N(x-1);intmain()(intn

41、,M;printf("請(qǐng)輸入n的值:");scanf("%d",&n);M=N(n);printf("%d!=%dn",n,M);截圖1 編寫一個(gè)遞歸函數(shù)求給定值n的階乘,并按下述公式求Cnm的值。|2#include<stdio.h>3 intN(intx)4 (if(x=0)return1;elsereturnx*N(x-1);8 ?9 intmain()10 11 intnfM;12 printf(“請(qǐng)輸入n的值:");13 “anf(;14 M=N(n);15 printf("%d!-%

42、dn",n;M);16 I17回請(qǐng)輸入n的值:661=720Programendedwithexitcode:04、編寫一個(gè)函數(shù),求1+1/2+1/3+1/4+1/n的值。代碼:#include<stdio.h>floatS(floata,intb)(b+;a+=a/b;return(a);)intmain()(intn,m,i,j;floatz;n=1;m=1;z=0;printf("請(qǐng)輸入:n");scanf("%d",&j);for(i=1;i<j;i+)z+=S(n,m);printf("%1.4fn

43、",z);)截圖:Igg<>®C工程測(cè)試)C工程測(cè)試Cmain.c)NoJ11編寫一個(gè)函數(shù),求1+1/2+1/3+1/4+.+2 #include<stdio.h>3 floatS(floatafintb)6 7 b+;8 a+=a/b;9 returnta);10 11 intmain()12 13 intri,m,i,j;14 floatz;15 n=l;m=l;z=0;16 printf"請(qǐng)輸入:n");17 scantH%d"f);18 for(i=l;i<j;i+)19 z+=S(Hjin);20 printf(,z);21 ?I20請(qǐng)輸入:1216<5000Programendedwithexitcode:05、編寫一個(gè)打印n個(gè)空格函數(shù)。代碼:#include<stdio.h>voidDY(intx)(inti;for(i=0;i<x;i+)(printf("空格)intmain()intn;printf("請(qǐng)輸入數(shù)量:");scanf("%d",&n);DY(n);printf("n共打印了%d個(gè)空格n",n);)截圖:gg<>,C工程測(cè)試C工程測(cè)試c

溫馨提示

  • 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)論