實(shí)驗(yàn)05函數(shù)結(jié)構(gòu)程序設(shè)計(jì)_第1頁
實(shí)驗(yàn)05函數(shù)結(jié)構(gòu)程序設(shè)計(jì)_第2頁
實(shí)驗(yàn)05函數(shù)結(jié)構(gòu)程序設(shè)計(jì)_第3頁
實(shí)驗(yàn)05函數(shù)結(jié)構(gòu)程序設(shè)計(jì)_第4頁
實(shí)驗(yàn)05函數(shù)結(jié)構(gòu)程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

實(shí)驗(yàn)05函數(shù)結(jié)構(gòu)程序設(shè)計(jì)班級(jí):A學(xué)號(hào):C語言姓名:A第1題第2題第3題第4題第5題總成績第6題第7題第8題第9題第10題選做題一.【實(shí)驗(yàn)?zāi)康摹?、熟練掌握函數(shù)的定義、聲明和調(diào)用。2、熟練掌握使用函數(shù)編寫程序。3、掌握函數(shù)的實(shí)參、形參和返回值的概念及使用。二.【實(shí)驗(yàn)內(nèi)容】1、【程序示例】程序功能:輸入一個(gè)正整數(shù) n,計(jì)算s=1+1/2!+.…+1/n! 的前n項(xiàng)的和(保留4位小數(shù)),要求:定義并調(diào)用函數(shù)fact(n)計(jì)算n的階乘?!敬蜷_“第1題”文件夾中名為proj5_1.c文件,閱讀完善程序并保存】:【解題思路】:A.本題要求采用主函數(shù)調(diào)用子函數(shù)的程序結(jié)構(gòu)。主函數(shù)使用單重循環(huán)結(jié)構(gòu),每次調(diào)用子函數(shù)返回第i項(xiàng)的分母i!并計(jì)算第i項(xiàng),然后累加第i項(xiàng)。子函數(shù)使用單重循環(huán)結(jié)構(gòu),計(jì)算i!并返回計(jì)算結(jié)果。由于循環(huán)次數(shù)已知,一般選用 for語句。B.函數(shù)設(shè)計(jì):子函數(shù)fact:計(jì)算n!并返回計(jì)算結(jié)果。函數(shù)返回值類型:double型。函數(shù)參數(shù):一個(gè)int型參數(shù),代表要計(jì)算階乘的某個(gè)整數(shù)。函數(shù)體:計(jì)算n!。n!=1*2*3*…*n,它是一個(gè)連乘式,使用單重循環(huán)來實(shí)現(xiàn)。計(jì)算式為 product=product*i,product初值為1,i從1變化到n。用類for語句表示如下:product=1;for(i=1;i<=n;i++)product=product*i;主函數(shù)main():計(jì)算多項(xiàng)式s=1+1/2!+1/3!+…+1/n!的前n項(xiàng)和,使用單重循環(huán)實(shí)現(xiàn)。計(jì)算式為sum=sum+item,sum初值設(shè)為0,item從1/1!變化到第1/n!。在求累加和的循環(huán)結(jié)構(gòu)中,每次完成計(jì)算item(即1/i!,i!需調(diào)用fact函數(shù))、累加item兩項(xiàng)操作。用類for語句表示如下:sum=0;for(i=1;i<=100;i++){item=1/fact(i); /*調(diào)用fact函數(shù)計(jì)算i!*/sum=sum+item;}完善的程序段】:產(chǎn)請(qǐng)?jiān)趦蓷l星線之間填入相應(yīng)的代碼,聲明出函數(shù)”/?率??本?**?**,?*申草率奪**■*:Q*?申率*率***申?***事*******//doiiblcfactfinto):-/#事?*本?中阜?****■*?申******鼻■?申.申申字率*********申?申?中?審/力產(chǎn)請(qǐng)?jiān)趦蓷l星線之何填入相應(yīng)的代碼,計(jì)算5=1+1療什…一1后!的值M審中?******€************************#中@********* ******fb《i=l:i<=100:i++){vf*澗川宿ct南敷計(jì)算l!*msiim=suti]^itemib/*****?中*********申*********中**************************中*****<產(chǎn)請(qǐng)?jiān)趦蓷l星線之間嬉入相應(yīng)的代碼.計(jì)嵬n!的值*/*/?卡**拿■******,***?*串*聿*****拿*/******事申率*多事*率事*零尊尊尊**群********<fbi:tproduct=l.i=lii--n..ij+)product*=i:-/*中/爭平*卡?多**#拿充布塞布卡京#事/***事*多中雜本雜*修****雪*考本*布串*竄*羋聿*******尊*/*【調(diào)試、運(yùn)行程序】運(yùn)行結(jié)果:輸入一個(gè)正整數(shù): 51+1/2!+…+1/5!=1.7167【源程序代碼截屏】Vindudo"stdio^h"voidnain()《intiPn;doubleitpma5UR;/*ite時(shí)母衛(wèi)量,5un-天口變量*//叫青在兩條星線之間填入相應(yīng)的代碼.聲明仙M函數(shù)薔// 事?玨番哥哥詈哥哥**香**■***哥野春*尋哥哥哥哥圣不哥哥香哥?!錾?doublefjct(intn);/,事崔41餐—粵曷?$—崔?■?耳注?魯"的訐('輸入一個(gè)正整數(shù)i /*輸入提示7scanfC^d",Rn);/亞青在兩條星線間填入相應(yīng)代碼,首尊釬1TG,■…的值*/八要入調(diào)用函數(shù)/前口國)計(jì)算n的階乘**//H,黃■"看青哥?哥青青哥青障青青青藤■??■替?開看■青??膏譽(yù)景青?青膏餐哥哥圣哥?青sum=M;foreign;l<=iHH;i++)<iten=i/Fact(l);sum-suR+iten:)/*署署長:■■*■勢(shì)*與****,******************呆缶*暑**?**,**菁*/printF(-1+1/2T*--.*Vl(i?-X9*4f\n\n.5un);/*輸出結(jié)果*/)duubleFdcL(intn)八定文本M的函數(shù)*/<doubleproduct;/*連乘芟星*/int1;/武青在兩條星線間填入相應(yīng)代碼.計(jì)算□,*/-<■【運(yùn)行結(jié)果截屏】■1*C:\Userfi'2hu'LDes<top\Debug\pn輸入4正整數(shù);51£/2!七一-1/5kL71S3PrGSS區(qū)口V雇了tocontinue2、【程序模仿】程序功能:輸入一個(gè)正整數(shù) n和一個(gè)實(shí)數(shù)x(x范圍在區(qū)間[-6.28,+6.28]之間),計(jì)算TOC\o"1-5"\h\z0 2 4 6x x x x cos(x)=—————十—————+A的前n項(xiàng)的和(保留4位小數(shù)),要求:定義并調(diào)用函數(shù) fact(n)計(jì)算n0! 2! 4! 6!的階乘,定義并調(diào)用函數(shù) power(x,n)計(jì)算xn?!敬蜷_“第2”題文件夾中名為proj5_2.c文件,在指定位置添加語句,完善程序并保存】 :【解題提示】:認(rèn)真閱讀并理解第1題的解題思路和程序清單,思考以下幾個(gè)問題,尋找本題的解題方法。A.循環(huán)語句選擇問題?選擇for、while還是do-while。B.比較募函數(shù)與階乘函數(shù)的連乘變量初值、連乘式有何不同?

【測(cè)試數(shù)據(jù)】(1)輸入:50輸出:1.0000(2)輸入:51.57輸出:0.0008【源程序代碼截屏】:Uinclude"stdio.h**uoidnuin()(inti,nfFlag;/*口叫-符號(hào)變量,在T交替變化*/dnuhlpxpi^un;/*itpm-J頁變量.sum-和變量*//*i音在兩條星戰(zhàn)之間填入相應(yīng)的代碼.聲明)口吐困數(shù)和pn帕「因數(shù),//果簧展11Htit*集,睡差*******釜*************需鬢*W差**簧*?~?掛4丞rmuhieFactCintn);doublepouter(doublexflotn):prinlFL輸入一個(gè)正整數(shù)n和一個(gè)實(shí)數(shù)幣?,):/*輸入提示*/%canF(2傀lF'.&n,&x);Z青在兩蜃星線間填人理座岱碼,投給定公式求5式0Z青在兩蜃星線間填人理座岱碼,投給定公式求5式0的近似值?//*蓼求]調(diào)用明數(shù)fact求盼乘.謫角函/power求累函數(shù)力,,sum■0;for(1-1;i<-in;£*+)iF(iV?-9HiF(iV?-9Hitem=powerti)/fact(i);else{item=-power(xFi)/fact(i);>sumitem;【運(yùn)行結(jié)果截屏】3、【程序示例】程序功能:輸入兩個(gè)正整數(shù) m【運(yùn)行結(jié)果截屏】3、【程序示例】程序功能:輸入兩個(gè)正整數(shù) m和n,求m和n的最大公約數(shù)。要求:定義并調(diào)用函數(shù)gys(m,n)求m和n的最大公約數(shù)?!敬蜷_“第3”題文件夾中名為proj5_3.c文件,閱讀完善程序并保存】:【解題思路】m和n的最大公約數(shù)。子A.本題要求采用主函數(shù)調(diào)用子函數(shù)的程序結(jié)構(gòu)。主函數(shù)調(diào)用子函數(shù)返回函數(shù)計(jì)算mm和n的最大公約數(shù)。子B.函數(shù)設(shè)計(jì):子函數(shù)gys:求m和n的最大公約數(shù)并返回計(jì)算結(jié)果。函數(shù)返回值類型:int型。函數(shù)參數(shù):兩個(gè)int型參數(shù),代表兩個(gè)求最大公約數(shù)的整數(shù)。函數(shù)體:計(jì)算并返回m和n的最大公約數(shù)。算法思想:設(shè)置變量j代表m和n的最大公約數(shù),其初值等于m和n中較小數(shù),然后循環(huán)檢查m和n是否能同時(shí)整除j,若不能,則將j遞減1,繼續(xù)檢查,直到m和n能同時(shí)整除j為止,此時(shí)j就是最大公約數(shù)。由于循環(huán)次數(shù)未知,選用while或do-while語句。用類while語句表示如下:if(m<n)j=m;elsej=n;while(m%j!=0||n%j!=0) j--;主函數(shù)main():輸入m和n,調(diào)用函數(shù)gys(m,n)求最大公約數(shù),最后輸出結(jié)果。用類for語句表示如下:泮請(qǐng)作兩能星線之間埴凡相應(yīng)由代問,聲明心支函救/********************”******■******************1int外父nk,*****尊1:¥率*率*率****豐中豐率**零***豐*豐害****率*****中豐**,蘆道在兩條星線之間填入相國的代碼,調(diào)用函數(shù)一求m和口的最大公豹數(shù)”/意*量**4=寒4主*******號(hào):*±±*號(hào)毒寺+±4=**金**4:*屏*業(yè)*M士小聿**業(yè)*:W殺不*北主上單堂季承奇米北奉/.j=g^皿11);-1/?本??季富?奉率席京????拿申?霄津■??■用拿串?■?*率由*??拿申卻M■霉?,卓摩???■****,??*率用**J收請(qǐng)?jiān)趦蓷l里躡之何填人相應(yīng)由代崗,求山和L的最大公約數(shù)也^**5F*tttt***f****?*+**** *******t*?*****<********j=tn.ekeju>irhile(m。oj\-0 n%it-Q)j—/宇*¥**尊**率*拿率申****中*陰唯8序*¥****=*****整*#本*****年陰*修**¥*彳*****中,r r*【調(diào)試、運(yùn)行程序】:運(yùn)行結(jié)果:輸入兩個(gè)正整數(shù) m和n:182418與24的最大公約數(shù)是6【源程序代碼截屏】:【源程序代碼截屏】:【源程序代碼截屏】:【源程序代碼截屏】:【源程序代碼截屏】:AlnciudP"stdio-h"voidnainO<intni.n.j:/?it在兩條星線之間填入相應(yīng)的代碼,聲明ws函數(shù)?//*HIHfrJWIhflnltffifr**得餐餐性,款Hr*看景春景景餐?*£景貴餐舞餐?索看£?*事?/intgysfint(:n);/?*?■***"?*?**■****?***■?**■?***,*******,*?*■■,■/prln"C輸入兩個(gè)正整數(shù)疇0%*);/■輸入提示?/5canF《*%d\flM.&n);/*在兩條星線間填入相應(yīng)代碼,調(diào)用函數(shù)qys求印匚口的最大公約數(shù)*//HMM!MMM-MNMMMIIMlN'MHtt-MlIC?MW■M-MMMHNRM-N-R??RHN?M-MWWM?■HMMMRMMMM/j=gys(ni,n);*餐"■?*it法餐*餐餐署或餐或詈W每餐****餐*莖?*各*X**#*翼¥*M*XM*/pdntfr釗與%d的最大公約數(shù)是*d\n\*n,j);八輸出結(jié)具7}intgys(intmtintn) /看定義求閑■的最大公約數(shù)函數(shù)7<Intj;/*i青在兩條星線間艱入相應(yīng)代碼,求酢"的最大公約數(shù)”/***?4?*?*?*?????***?***?*******?*******?*?*?***?*?/1F(iKn>Jyl"j=n;while(nitj*=O||ntjf=O)j—;/ *餐**需**************并**IHt箸*魯******餐*著??魯/returnj:/*返回結(jié)果*/It【運(yùn)行結(jié)果截屏】:111C;\Users\Zhu\PesktopVDebug\prcj53,exe,方入網(wǎng)個(gè)止整數(shù)m和zIS24&與24的最大公均數(shù)是6ressenykeytocontinue4、【程序模仿】程序功能:輸入兩個(gè)正整數(shù) m和n,求m和n的最小公倍數(shù)。要求:定義并調(diào)用函數(shù)gbs(m,n)求m和n的最小公倍數(shù)?!敬蜷_“第4”題文件夾中名為proj5_4.c文件,閱讀完善程序并保存】:【解題提示】:認(rèn)真閱讀并理解第3題的解題思路和程序清單,思考以下幾個(gè)問題,尋找本題的解題方法。A.子函數(shù)gby的設(shè)計(jì):設(shè)置變量j代表m和n的最小公倍數(shù),其初值等于 m和n中較大數(shù),然后循環(huán)檢查j是否能同時(shí)整除m和n,若不能,則將j遞加m與n的較大數(shù),繼續(xù)檢查,直到j(luò)能同時(shí)整除m和n為止,此時(shí)j就是最小公倍數(shù)。B.子函數(shù)循環(huán)語句選擇問題?選擇for、while還是do-while。國prc_5_*i.ttinclude"stdio-h**voidnain()<intE.n,j;/4青在兩條星線之間填入相應(yīng)的代碼,聲明g”畫數(shù)餐//■景景務(wù)番景務(wù)置*簧線—粕資**共捱*丞城檸圣*於差哥*董*款**叁*親差**圣景生**/intgbs(intm,intn);??*???????**?*??**???*/prin訐「輸入兩個(gè)正整數(shù)ntJM"):”輸入提示力scanf(“如散r*.,tun;“在兩條星線間埴入相應(yīng)代碼.調(diào)用函數(shù)gm求/口K的最小公倍數(shù)”/景青貴景章貴腎ifnlHIr景景景皆景景折景***音看景普看景景*量it量量景量能*量景量*送量看量量景景景海景/J-gbs(nBn);,■1?*■/,?,??■■—,?—??杳??*??<*曹青*****■?#?<?******/pTiityrg%的最小公倍數(shù)是疑\y,**j);/*輸出結(jié)臬w>intgbsfintn(intn) /良義求廁■的最小去信數(shù)函數(shù){inttemp,j;/噸青在兩條星線間填入相應(yīng)代碼.求酢?的最小公倍數(shù)”??????????*???????4?*????*4?*????????/if(m>n)j=mttenp=m;elsej=nttenpin;while(j%n^'O||j%n!'G)j*-tp(np;?LUI,T-B【運(yùn)行結(jié)果截屏】:\Users\ZhuXDeskiop\Deb□g\p「oj5_4.exe*|輸入兩i、lL整數(shù)hi和ii:523B與25的最小公倍數(shù)是25?Pressanykeytocontinue5、【程序示例】程序功能:輸入一個(gè)正整數(shù)n,如果它是素?cái)?shù),輸出"YES",否則,輸出"NO"(素?cái)?shù)就是只能被1和自身整除的正整數(shù),1不是素?cái)?shù),2是素?cái)?shù))。要求定義并調(diào)用函數(shù)prime(n)判斷n是否為素?cái)?shù)?!敬蜷_“第5題”文件夾中名為proj5_5.c文件,閱讀完善程序并保存】:【解題思路】:A.本題要求采用主函數(shù)調(diào)用子函數(shù)的程序結(jié)構(gòu)。主函數(shù)調(diào)用子函數(shù)返回判定結(jié)果。子函數(shù)判定整數(shù)n是否素?cái)?shù)并返回判定結(jié)果。B.從輸出結(jié)果程序段if語句中的條件“flag==1"可知,flag是標(biāo)志變量,1代表素?cái)?shù),0代表非素?cái)?shù)。C.函數(shù)設(shè)計(jì):子函數(shù)prime:判定整數(shù)n是否素?cái)?shù)并返回判定結(jié)果。函數(shù)返回值類型:int型。函數(shù)參數(shù):一個(gè)int型參數(shù),代表要判定是否素?cái)?shù)的整數(shù)。函數(shù)體:判定整數(shù)n是否素?cái)?shù)并返回判定結(jié)果。算法步驟如下:a)設(shè)置變量flag的初值,若n是1,則將flag初值置0,表示n不是素?cái)?shù),否則,將flag初值置1。b)循環(huán)檢查n能否被[2,n/2]間的整數(shù)整除,若都不能整除,則 n是素?cái)?shù),否則n非素?cái)?shù),將flag置0并退出循環(huán)。由于循環(huán)次數(shù)已知,選用for語句。用類for語句表示如下:if(n==1)flag=0;elseflag=1;for(i=2;i<=n⑵i++)if(n%i==0){flag=0;break;}c)返回flago主函數(shù)main():輸入n,調(diào)用子函數(shù)prime(n)返回判定結(jié)果,最后根據(jù)返回值輸出結(jié)果?!就晟频某绦蚨巍浚骸?潔止兩條吊線之阿埴人相應(yīng)的代碼.*明prim亡商救小,intprime(intn>>,**********************?*************************/*產(chǎn)請(qǐng)?jiān)趦蓷l星線之間填入相應(yīng)的代碼,調(diào)用函數(shù)piinw利定口是否是素?cái)?shù)3產(chǎn)*****4i*****★?**■?***********常*中■***?**■**?■*雜***充?*?*****11***■卡?lliig-prmidii)<:*****京*******守*********拿**********************眩**********肅******.,產(chǎn)請(qǐng)?jiān)趦蓷l顯線之間填入相應(yīng)的代碼,判定II是否是素?cái)?shù)5/寺***?聿****?**東******拿電市********電**率****尊?***率*拿**:多**八if(1】r=l)flay^O;elseflag-1ibili=2:i<=n2;i^+X1戈】1%=0){fl曄fO;break;)?***********申***巾***********中*********中************M**,.」/*請(qǐng)?jiān)趦蓷l星線之間填入相應(yīng)的代碼,聲明prime函數(shù)*//************************************************/intprime(intn);/************************************************//*請(qǐng)?jiān)趦蓷l星線之間填入相應(yīng)的代碼,調(diào)用函數(shù)/*請(qǐng)?jiān)趦蓷l星線之間填入相應(yīng)的代碼,調(diào)用函數(shù)prime判定n是否是素?cái)?shù)*//****************************************************************/flag=prime(n);/****************************************************************//*請(qǐng)?jiān)趦蓷l星線之間填入相應(yīng)的代碼,判定n是否是素?cái)?shù) *//*****************************************************/if(n==1)flag=0;elseflag=1;for(i=2;i<=n⑵i++)if(n%i==0){flag=0;break;}/*****************************************************/【調(diào)試、運(yùn)行程序】:6NO29YES6NO29YES【源程序代碼截屏】

周卬可5-5工ictn.Hag;/*"知-標(biāo)志變量,1代表素?cái)?shù),M弋表非家數(shù)*,/*音在兩條星線之間慎入相應(yīng)的代碼.聲明PH唯函數(shù)Wintprlnie(intn):/W***,*籍*it*****詈***圣圣*藩**番*M藩*戲海豪M青?量?M<flrW**Jt**?r***?fr裾*^4r/printFC輸入一個(gè)正整數(shù)5“);/*輸入提示*/5canf(IBU*S&n);人在兩條星線間填入相應(yīng)代碼,調(diào)用函數(shù)P這曜判定。是否是素?cái)?shù)'//KKHVIKMMMKMHM<MM?BW?H??H?Bfli?H??MM?MMHMKMHUlfKHHKKHHK<M??/Flag=prin??(n);**M~?W9fr餐*費(fèi)***乘**普普*弄*■**■*開拼?■署普*一*集*******/八輸出結(jié)果*/if(flag-1)prLatF(11YES\nM);elseprbitF(“孫>intprinp(intn) ,*定義判定n是否素?cái)?shù)的因數(shù)”inri.Fiaj;f門的一標(biāo)志變量,i代表素?cái)?shù),M弋表非素?cái)?shù)*</聽著在兩條星線間填入相應(yīng)代碼,判定n是否是素?cái)?shù)■//*??*??**?!*??????*??*??*?*??**?if(n-=1)Flag=*t?”eflag-1;for(1=2;i<"in/2;i*+)1F(mU*"0)(f149"B;bre4k;}/MNMWieMMNM14HMWNIt14 ?H41ItHIItW????????MMttflMK14MMHMMHMMM■fl/returnFlag;/*返回結(jié)果*/【運(yùn)行結(jié)果截屏】:■'IrC:\Uscrs\Zhu\Dcsktop\Dcbug\prJ■!"C:\JseisVhu\Desk:op\D輸入一個(gè)正整數(shù)n:29■!"C:\JseisVhu\Desk:op\D輸入?個(gè)正整散m6koYES輸入?個(gè)正整散m6koPressanvkevtocontinue---if^ #6、【程序模仿】程序功能:輸入兩個(gè)正整數(shù) m和n(1<=m<=n<=500),統(tǒng)計(jì)并輸出m到n之間的素?cái)?shù)個(gè)數(shù)以及這些素?cái)?shù)和(素?cái)?shù)就是只能被 1和自身整除的正整數(shù),1不是素?cái)?shù),2是素?cái)?shù))。要求定義并調(diào)用函數(shù)prime(n)判斷n是否為素?cái)?shù)?!敬蜷_“第6題”文件夾中名為proj5_6.c文件,閱讀完善程序并保存】:【解題提示】:認(rèn)真閱讀并理解第5題的解題思路和程序清單,思考以下幾個(gè)問題,尋找本題的解題方法。A.子函數(shù)prime的設(shè)計(jì):算法提示請(qǐng)參考第 5題,與第5題有何不同?。B.主函數(shù)設(shè)計(jì):如何實(shí)現(xiàn)求計(jì)數(shù)與累加? flag、count、sum幾個(gè)變量的含義?!驹闯绦虼a截屏】國國^includeMstdloah"i,n;int11叫,countcun;“門叫-標(biāo)志變量,1代表素?cái)?shù),咕表非素?cái)?shù)”/4青在兩條星線之間填入相應(yīng)的代娉,聲明Pri皿因數(shù)*,1ntprlnr(Intn);/**景******,***?,*三**餐**鼻胃**胃**********景***,******畀**#*青餐**-餐/p門n”「輸入兩個(gè)正整數(shù)響2伏=水=似=5皿)[”);八輔人提示?/5canf("Zrilfi'^ni^n);I ,噥兩條星線間填入相應(yīng)代碼-統(tǒng)計(jì)庫1|口間的素?cái)?shù)個(gè)數(shù)及素?cái)?shù)和卬/count-O;sup^0;for(l-n;i<-nflag=prime(i):if(flag==1)<co?jr?t+=1Bsum+=i;>}/*>>*?*#????#?#?<#*****?*?#***#?***<**#*<******#***?■>??#<??*//*輸出結(jié)果”、 ^prinlf「Rd到常(I之間的素?cái)?shù)個(gè)數(shù)=V1,拳數(shù)和=%d、n”,“.n.cuuiit.sum);)intprinetintn) /*定義判定槨是否辜數(shù)的臼款一/intijlag;/*flag標(biāo)志變量?1代表素教,哦表非素?cái)?shù)*/“清在兩條星線間填入相應(yīng)代嗎,判定n是否是素?cái)场?■,1【運(yùn)行結(jié)果截屏】:■1"C:\U5e『5\Zhu\Desktc)mbug\p「oj5_6.exe'俞入兩個(gè)正砥數(shù)m和Mk=w〈=M=500);48s到明之間的素?cái)?shù)個(gè)數(shù)=21.求數(shù)和=869ressanykeytocontinue7、【程序示例】程序功能:輸入一個(gè)長整數(shù) m和一個(gè)數(shù)字d,統(tǒng)計(jì)并輸出m中包含數(shù)字d的個(gè)數(shù)。要求定義并調(diào)用函數(shù)countdigit(m,d),統(tǒng)計(jì)整數(shù)m中包含數(shù)字d的個(gè)數(shù)。例如:調(diào)用函數(shù)countdigit(10090,0)返回10090中數(shù)字0的個(gè)數(shù),返回值是3。【打開“第7題”文件夾中名為proj5_7.c文件,閱讀完善程序并保存】:【解題思路】:A.本題要求采用主函數(shù)調(diào)用子函數(shù)的程序結(jié)構(gòu)。主函數(shù)調(diào)用子函數(shù)返回結(jié)果。子函數(shù)統(tǒng)計(jì)長整型m中包含數(shù)字d的個(gè)數(shù)。B.從主函數(shù)輸出結(jié)果程序段可知, in是長整數(shù),d是某數(shù)字,count是in中包括d的個(gè)數(shù)。C.函數(shù)設(shè)計(jì):子函數(shù)countdigit:統(tǒng)計(jì)長整數(shù)m中包含數(shù)字d的個(gè)數(shù)。函數(shù)返回值類型:int型。函數(shù)參數(shù):兩個(gè)參數(shù),一個(gè)long型,一個(gè)int型。函數(shù)體:統(tǒng)計(jì)長整數(shù)m中包含數(shù)字d的個(gè)數(shù)。算法步驟如下:a)設(shè)置計(jì)數(shù)變量count初始值為0。b)假定長整數(shù)m,循環(huán)分離出m的末位數(shù),若末位數(shù)等于數(shù)字 d,則計(jì)數(shù)變量count加1,再去掉m的末位數(shù),直到m等于0為止。由于循環(huán)次數(shù)未知,選用while或do-while語句。用類while語句表示如下:count=0;while(m!=0){count=0;while(m!=0){gw=m%10;if(gw==d)count++;m=m/10;}/*計(jì)數(shù)器變量初始化 *//*當(dāng)m!=0時(shí),執(zhí)行循環(huán) *//*取m的末位數(shù)*//*計(jì)數(shù)*//*去掉m的末位數(shù)*/c)返回count。主函數(shù)main():輸入長整數(shù)in和數(shù)字d,調(diào)用子函數(shù)countdigit(in,d)函數(shù)返回結(jié)果,最后根據(jù)返回值輸出結(jié)果?!菊{(diào)試、運(yùn)行程序】:運(yùn)行結(jié)果:輸入一個(gè)長整數(shù) m和一個(gè)數(shù)字d:10103401 110103401中包含數(shù)字1的個(gè)數(shù)3【源程序代碼截屏】:*1nclude"stdio.h"voidMint)<intcount?<l;longin;/*請(qǐng)?jiān)趦蓷l星線之間埴入相應(yīng)的代碼,聲明cuinitdigit函數(shù)?//****?-?*,*——立-*??:?*****MrftIt許★#得***集***■******?*-?,,?婚一—inicQ(intdiqit(longn,intd);「門口小廣揄入一個(gè)長整數(shù)而一個(gè)數(shù)字北“尺八輸入提示-/xWBgr.cdii.&ih/嘴近兩條星線間填入相應(yīng)代科.統(tǒng)廿代整型變量余中包含數(shù)字。的個(gè)數(shù)"八要求:countdigit(num)Bjdigi。函赳*//狂棄M*■每看握系手為翼振甜鼻掘索法獨(dú)疏球餐或硅餐陪睢餐睢譬殺塞并毒叁殺?雪¥圣東*****=養(yǎng)短番痛就看權(quán)武或架/count-countdigit(in,d);printH'%"中包含數(shù)字如的個(gè)數(shù)*d\n”,i*d,count);)intcountdigit(longm,intd) /*定義countdigit(m,d)函數(shù)*/{,intdigit,count;,旺青在兩條星線間填入相應(yīng)的代碼,求整數(shù)。中包含數(shù)字d的介數(shù)”/***>?-*>??*■*<>■???-*<**?*-***<*?*<<ik*>**--***■***-**■?*?*???/count=0;whil?(Rt"6)<8、【程序模仿】程序功能:輸入兩個(gè)正整數(shù) m和n(1<=m<=n<=1000),輸出m到n間所有滿足各位數(shù)字的立方和等于它本身的數(shù)并統(tǒng)計(jì)這些數(shù)的個(gè)數(shù)與總和。要求定義并調(diào)用函數(shù) is(number),判斷number的各位數(shù)字之立方和是否等于它本身?!敬蜷_“第8題”文件夾中名為proj5_8.c文件,閱讀完善程序并保存】:【解題提示】:認(rèn)真閱讀并理解第7題的解題思路和程序清單,思考以下幾個(gè)問題,尋找本題的解題方法。A.子函數(shù)is的設(shè)計(jì)問題:算法請(qǐng)參考第7題,與第7題有何不同?B.主函數(shù)的設(shè)計(jì)問題:計(jì)數(shù)與累加和如何實(shí)現(xiàn)?【源程序代碼截屏】:uolo帽:Ln。<int1Bm.n;intcount?sutn;/*c—nt-計(jì)數(shù)變量,w-累加和爽量?//4青在兩條星線之間填入相應(yīng)的代碼,聲明人函數(shù)*//*餐*■青*餐***餐*青*片餐蚌餐餐/*冊(cè)幡*************青餐******/iritis(intnumber);/■■■貨**4*"1t**-187#*1*1***■幄*******★—*****it*餐*,餐/量餐/prints*輸入兩個(gè)壑?jǐn)?shù)??陂T;");/*輸入提示*/scanf &m,&n);“在兩條星罐間埴入相良代碼,洵貨唯m間所有滿足各位數(shù)字的立方和等于它本身的教“/年統(tǒng)計(jì)豉咚數(shù)的個(gè)裁與裊和,要SO包做i5(nuitber).//NINlfNNXHKMMIKNKMMKMMMNMMMMItNIMKflllllNttNHNNSMKjtNHRNltNMMttNRItMMNMNMNNltMMMINitNNKNKMtMKNycounted;sum-0;For(i-m;i<,-n;i?*)(iF(is(i)--i)<printFC%dp'Si);count**;sum+-i;/善斗—酈善黑■科■W1看善注善禱看梅梅格?梅?*<<***?*<<#**#>>*?***#?務(wù)?-?>=?番*M■?■■■?事?■萎事■★?<1?■?■/“輸出統(tǒng)計(jì)費(fèi)*/ 一一幺八… Fppin訐r\n就劊紀(jì)可滿足條件的數(shù)的個(gè)數(shù)等于電明累加和等于*d\rr?m.n.c(MJnt.5Uin》;>intis(intnuntier)/,定, numberIJI【運(yùn)行結(jié)果截屏】:■J1C:\User$\Zhu\Desktop\Debug\prcj58.exe"輸入兩個(gè)整數(shù)卬和n:100200153,100到其0間滿足條件的數(shù)的個(gè)數(shù)等于L累加和好于153Pressanykeytocontinue9、【程序示例】程序功能:定義遞歸函數(shù) fact(n)計(jì)算表達(dá)式t=n!的值(n>=0)。在主函數(shù)中輸入n,調(diào)用遞歸函數(shù)fact(n)求出t的值,最后輸出t值。程序運(yùn)行結(jié)果如下圖。苗相「5值二535?的值;12g【打開“第9題”文件夾中名為proj5_9.c文件,閱讀完善程序并保存】:【解題思路】:A.本題采用主函數(shù)調(diào)用子函數(shù)的程序結(jié)構(gòu)。子函數(shù)計(jì)算n!。B.子函數(shù)fact設(shè)計(jì):使用遞歸函數(shù)實(shí)現(xiàn)求 n!。遞歸函數(shù)設(shè)計(jì)應(yīng)抓住一下兩個(gè)關(guān)鍵點(diǎn)。遞歸出口:即遞歸的結(jié)束條件,本例為當(dāng) n=0或1時(shí),n!等于1.【源程序代碼截屏】【源程序代碼截屏】【源程序代碼截屏】【源程序代碼截屏】if結(jié)構(gòu)表示如下:if(n==011n==1) s=1;elses=n*fact(n-1);returns;/*if結(jié)構(gòu)表示如下:if(n==011n==1) s=1;elses=n*fact(n-1);returns;/*遞歸出口*//*遞歸式*//*返回結(jié)果*/完善的程序段】:/*請(qǐng)?jiān)趦蓷l星線之間填入相應(yīng)的代叫調(diào)用fhct函數(shù)求t的值F/窣辛隼字等字半拿辛軍豐辛辛宇零字零半字豐奉豐字孝辛豐華豐辛*辛辛字零辛*字字字字窣半半字半字學(xué)字字軍羋軍辛辛字宰At=fact(u);-/******本;t*****4;***志**********************************#***/,產(chǎn)請(qǐng)?jiān)趦蓷l星線之間填入相應(yīng)的代碼,要使用遞歸舞法『麻林琳*&**2*****小*********曲廿*******!* **************{遛11=1)8=1;,elses=n*fect(n-l);(jrehunsn*東東本*卡本*東**聿*卡*京**★*木木,*******■本***率***太*1****;*/(【調(diào)試、運(yùn)行程序】:運(yùn)行結(jié)果:請(qǐng)輸入n值:5t=5!的值:120遞歸式:遞歸表達(dá)式,本例為n!=n*(n-1)!。遞歸函數(shù)的具體實(shí)現(xiàn)可借助分支結(jié)構(gòu)實(shí)現(xiàn),本例用類 iE)E)?include<stdlo.h>voidmain])<liitn;doublet;doublefdctfintn);prints”請(qǐng)輸入n值二,);scanf("ltd",Gn);,4青在兩條星線之間填入相應(yīng)的代碼,調(diào)用「師函數(shù)求t的值”yN1N?NMMM-MMWMHMNNHMMItNNtlHNWNMNNNKaMKHINKMMHHMMMMMMHMKM/t-fact(n);pTntF(”t-和I,的值:teW,nft);)“定義遞歸函數(shù),求t?n,T*2.…?n的值*/doubleFact(intn){doublesj,旺青在兩條星線之間填入相應(yīng)的代碼《注;要使用遞歸算法〉"/立■??音■***景分番*******番羌***暑善*看*餐******現(xiàn)番?暑餐?景注音/ifCn-^OI|n-1)s^1;elses=n?Fact(n-1);y■基獸*抽?■??***?****?獸餐?餐餐?景?獸圣餐詈餐?圣餐"務(wù)餐量梅?圣?魯量return£;【運(yùn)行結(jié)果截屏】|請(qǐng)輸入口值:【運(yùn)行結(jié)果截屏】|請(qǐng)輸入口值:5也=5!的值:1.200000e+002Pressanykeytocontinue10、【程序模仿】程序功能:定義遞歸函數(shù) fun(n)計(jì)算表達(dá)式t=1*3*5*7*…*(2n-1)的值(n>=1)。在主函數(shù)中輸入n,調(diào)用遞歸函數(shù)fun(n)求出t的值,最后輸出t值。程序運(yùn)行結(jié)果如下圖。求士■1*3*5*7*…*<2nT>的[直請(qǐng)輸入力值:5的1r直:94區(qū)【打開“第10題”文件夾中名為proj5_10.c文件,閱讀完善程序并保存】:【解題提示】:認(rèn)真閱讀并理解第9題的解題思路和程序清單,思考以下幾個(gè)問題,尋找本題的解題方法。A.子函數(shù)fun的設(shè)計(jì):請(qǐng)參考第9題,與第9題有何不同?遞歸公式如下:1t=1t=f(n)=*f(n-2),當(dāng)n=1時(shí)當(dāng)n.1時(shí)B.cin和cout是C++4的輸入與輸出操作。【源程序代碼截屏】國中—工fflnciude<stdinuni(1nain()(longt;intn;lonqfun(lntn);prii吐 求t?1*3蜃5*7?…的值、n**):printF("請(qǐng)輸入n喳:“);scanf("^d'\Gn);/M音在兩條星線之間埴入相應(yīng)的代碼,調(diào)用仙n函數(shù)求I的值,/t=Fun(n);/**,**********************餐****餐?****??**?**********★/printer1*8i如的值:-n”.2*nT,t);>/母定義遞歸函數(shù),求7"3*5至7—?(而?力的值?/Lofiqfunfintn)(lung5;/』青在兩條星線之間埴入相應(yīng)的代碼(注.要使用鐳歸算法),/,■■修■修?餐■■■■1■事??餐?■?■?餐?事■■■■■??也???■■■■?■■■■■?■/iF(n*-1)s*1;elses-(2*?-1)?fun(n-1);/*it幡?*景■像■?景?,it-景?景it?廿餐-It『*?*,■?**WMitMMttitMMUNMHitit*Ntt?iM/return5;【運(yùn)行結(jié)果截屏】O'C:\User&\Zhu\De^ktop\Debug\proi5_10.exe求廣1噂3*5*7*,***(2口-1)的位.語輸入n值:6L*3*3*U的值;10395Pressanykeytocontinue11、【選作獨(dú)立編程題】程序功能:輸入兩個(gè)正整數(shù)m和n(1<=m<=n<=10000),輸出第m項(xiàng)至第n項(xiàng)之間所有的Fibonacci數(shù)。Fibonacci序列(第1項(xiàng)起):1123581321…。要求定義并調(diào)用函數(shù)fib(n),它的功能是返回第n項(xiàng)Fibonacci數(shù)。例如,fib(7)的返回值是13。程序運(yùn)行結(jié)果如下圖。

【編程實(shí)現(xiàn)程序功能,然后以 pro5_11.c為文件名保存在“第11題”文件夾中】:【解題提示】:認(rèn)真閱讀并理解第1題、第3題、第5題、第7題的解題思路和程序清單,思考以下幾個(gè)問題,尋找本題的解題方法。A.程序結(jié)構(gòu)問題:主函數(shù)調(diào)用子函數(shù)結(jié)構(gòu)。B.子函數(shù)fib(n)設(shè)計(jì):遞推法,從前往后遞推,遞推公式: fn=fn-1+fn-2,即根據(jù)前兩項(xiàng)推出下一項(xiàng)。采用單重循環(huán)結(jié)構(gòu)實(shí)現(xiàn),從第3項(xiàng)開始,逐項(xiàng)推出第n項(xiàng)。注意:遞推過程需要迭代:設(shè)計(jì)三個(gè)變量a1、a2和a,其中a1代表第n-2項(xiàng),a2代表第n-1項(xiàng),a表示第n項(xiàng),

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論