第三章模塊化程序設(shè)計(jì)_第1頁(yè)
第三章模塊化程序設(shè)計(jì)_第2頁(yè)
第三章模塊化程序設(shè)計(jì)_第3頁(yè)
第三章模塊化程序設(shè)計(jì)_第4頁(yè)
第三章模塊化程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩57頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第三章模塊化程序設(shè)計(jì)3.1模塊化程序設(shè)計(jì)思想3.2函數(shù)的定義3.3函數(shù)調(diào)用3.4函數(shù)的原型與聲明3.5函數(shù)嵌套與遞歸3.6庫(kù)函數(shù)的使用3.7變量的作用域與存儲(chǔ)類(lèi)型3.8指針與函數(shù)3.9典型例題5/24/20231C語(yǔ)言程序設(shè)計(jì)函數(shù)是C程序的基本單位,每一個(gè)函數(shù)模塊用來(lái)實(shí)現(xiàn)一個(gè)特定的功能。[教學(xué)要求]1.理解函數(shù)的功能。2.掌握函數(shù)定義的一般形式。3.掌握函數(shù)的形參與實(shí)參的對(duì)應(yīng)關(guān)系、參數(shù)傳遞方法及函數(shù)返回值的概念。4.掌握函數(shù)調(diào)用的幾種形式。5.掌握函數(shù)嵌套調(diào)用的一般過(guò)程。6.掌握指針的定義、使用以及指針作為函數(shù)的參數(shù)。7.掌握返回指針值的函數(shù)。8.掌握局部變量與全局變量的概念及它們的使用特點(diǎn)。5/24/20232C語(yǔ)言程序設(shè)計(jì)函數(shù):main(),getchar(),putchar(),printf(),scanf(),exp(),fabs(),sqrt(),gets(),puts(),strcpy(),strcmp(),strcat(),strupr(),strlwr(),strlen()等。3.1模塊化程序設(shè)計(jì)的思想例:從鍵盤(pán)中輸入兩個(gè)數(shù),分別求出這兩個(gè)數(shù)的最小公倍數(shù)和最大公約數(shù)??紤]:在主函數(shù)中完成數(shù)據(jù)x,y的輸入和結(jié)果的輸出;求解最小公倍數(shù)和求解最大公約數(shù)分別有兩個(gè)自定義函數(shù)實(shí)現(xiàn)。5/24/20233C語(yǔ)言程序設(shè)計(jì)intgys(intx,inty){}intgbs(intx,inty){}#include<stdio.h>voidmain(){inta,b,m,n;printf(“input2numbers:\n”);scanf(“%d,%d”&a,&b);m=gys(a,b);n=gbs(a,b);printf(“gys=%d,gbs=%d\n”,m,n);}5/24/20234C語(yǔ)言程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)方法:自上向下、逐步分解、分而治之源程序文件1預(yù)編譯命令說(shuō)明部分執(zhí)行部分函數(shù)1函數(shù)n源程序文件i源程序文件nC程序C程序結(jié)構(gòu)必須有且只能有一個(gè)名為main的主函數(shù)C程序的執(zhí)行總是從main函數(shù)開(kāi)始,在main中結(jié)束函數(shù)不能嵌套定義,可以嵌套調(diào)用5/24/20235C語(yǔ)言程序設(shè)計(jì)模塊化程序設(shè)計(jì)的特點(diǎn):(1)模塊相對(duì)獨(dú)立,功能單一。編寫(xiě)相對(duì)簡(jiǎn)單,可以獨(dú)立編寫(xiě)調(diào)試。(2)可集體開(kāi)發(fā),縮短開(kāi)發(fā)周期。不同的模塊可以由不同的人員開(kāi)發(fā),最終能夠合成完整的程序。(3)開(kāi)發(fā)出的模塊,可在不同的應(yīng)用程序中多次使用,減少重復(fù)勞動(dòng),提高開(kāi)發(fā)效率。(4)測(cè)試、更新以模塊為單位進(jìn)行而不會(huì)影響其他模塊。

5/24/20236C語(yǔ)言程序設(shè)計(jì)函數(shù)分類(lèi)從用戶(hù)角度標(biāo)準(zhǔn)函數(shù)(庫(kù)函數(shù)):由系統(tǒng)提供用戶(hù)自定義函數(shù)從函數(shù)形式無(wú)參函數(shù)有參函數(shù)使用庫(kù)函數(shù)(見(jiàn)教材附錄D)應(yīng)注意:1、函數(shù)功能2、函數(shù)參數(shù)的數(shù)目和順序,及各參數(shù)意義和類(lèi)型3、函數(shù)返回值意義和類(lèi)型4、需要使用的包含文件3.2函數(shù)的定義5/24/20237C語(yǔ)言程序設(shè)計(jì)1、函數(shù)定義的一般形式:<數(shù)據(jù)類(lèi)型>函數(shù)名(<參數(shù)表>){<說(shuō)明語(yǔ)句><執(zhí)行語(yǔ)句>}函數(shù)體當(dāng)前函數(shù)返回主調(diào)函數(shù)的數(shù)據(jù)類(lèi)型(即函數(shù)運(yùn)行結(jié)果的數(shù)據(jù)類(lèi)型)編寫(xiě)方法與主函數(shù)的編寫(xiě)方法一樣5/24/20238C語(yǔ)言程序設(shè)計(jì)例3.1:計(jì)算整數(shù)x的y次方longpower(intx,inty){intn;longp=1;for(n=1;n<=y;n++)p=p*x;

return(p);}函數(shù)類(lèi)型參數(shù)列表返回值voidmain(){inta,b;longc;scanf(“%d%d”,&a,&b);

c=power(a,b);

printf(“c=%ld\n”,c);}5/24/20239C語(yǔ)言程序設(shè)計(jì)定義形式:void函數(shù)名(){說(shuō)明語(yǔ)句;語(yǔ)句;}例3.2voidprint1(){printf(“WelcometoChina!\n”);}main(){

print1();print1();print1();}無(wú)返回值函數(shù)的調(diào)用函數(shù)可以無(wú)參數(shù)2、無(wú)參函數(shù)5/24/202310C語(yǔ)言程序設(shè)計(jì)3.3函數(shù)調(diào)用

3.3.1函數(shù)調(diào)用的形式函數(shù)語(yǔ)句:例printstar();printf(“Hello,World!\n”);函數(shù)表達(dá)式:例m=max(a,b)*2;函數(shù)參數(shù):例printf(“%d”,max(a,b));m=max(a,max(b,c));5/24/202311C語(yǔ)言程序設(shè)計(jì)例3.3:用函數(shù)實(shí)現(xiàn)兩個(gè)數(shù)的數(shù)值交換#include<stdio.h>voidswap(inta,intb){intt;t=a;a=b;b=t;printf(“result:x=%dy=%d\n”,a,b);}voidmain(){intx=10,y=5;printf(“x=%d,y=%d\n”,x,y);swap(x,y);}形式參數(shù)實(shí)際參數(shù)3.3.2函數(shù)間的參數(shù)傳遞5/24/202312C語(yǔ)言程序設(shè)計(jì)形參與實(shí)參形式參數(shù):定義函數(shù)時(shí)函數(shù)名后面括號(hào)中的變量名實(shí)際參數(shù):調(diào)用函數(shù)時(shí)函數(shù)名后面括號(hào)中的表達(dá)式說(shuō)明

實(shí)參必須有確定的值,可以是常量、變量、表達(dá)式、函數(shù)等;形參必須指定類(lèi)型;形參與實(shí)參類(lèi)型一致,個(gè)數(shù)相同;形參在函數(shù)被調(diào)用前不占內(nèi)存;函數(shù)調(diào)用時(shí)為形參分配內(nèi)存;調(diào)用結(jié)束,內(nèi)存釋放。5/24/202313C語(yǔ)言程序設(shè)計(jì)參數(shù)傳遞方式值傳遞方式方式:函數(shù)調(diào)用時(shí),為形參分配單元,并將實(shí)參的值復(fù)制到形參中;調(diào)用結(jié)束,形參單元被釋放,實(shí)參單元仍保留并維持原值特點(diǎn):形參與實(shí)參占用不同的內(nèi)存單元單向傳遞,實(shí)參的值傳給形參5/24/202314C語(yǔ)言程序設(shè)計(jì)c=max(a,b);(main函數(shù))

(max函數(shù))max(intx,inty){intz;z=x>y?x:y;return(z);}例3.4比較兩個(gè)數(shù)并輸出大者#include<stdio.h>voidmain(){inta,b,c;scanf("%d,%d",&a,&b);

c=max(a,b);printf("Maxis%d",c);}intmax(intx,inty){intz;z=x>y?x:y;return(z);}實(shí)參形參5/24/202315C語(yǔ)言程序設(shè)計(jì)例3.鎖5計(jì)算x的立統(tǒng)方#i餐nc賀lu蜓de愉<st銀di好o.滴h>fl忍oa妄t干cu所be篩(fl免oa忍t雙x){測(cè)re如tu繞rn滴(x刊*x嘗*x姐);}ma藝in救(){搏fl斯oa劈燕t瘡a賢,因pr世od站uc肢t;pr培in耽tf楚("濾Pl抓ea脹sein循pu湯t罷va歇lu方e芒of吳a弱:"倦);sc弄an蛇f(駁"%炊f"滴,&特a);pr禽od贈(zèng)uc惑t=cu趙be挽(a驕);pr至in燙tf奏(”咽Cu棕beof米%便.4嫌f杠is奴%羨.4活f\斃n"蛇,a蛛,p田ro唱du響ct鄰);}xaproduct××××1.慶21.21.例72語(yǔ)85/角18成/2膚02歡316C語(yǔ)言冒程序你設(shè)計(jì)例3.裕6從鍵山盤(pán)中閉輸入盟一個(gè)橋年份察,判幕斷該府年是糊否是送閏年賀。#i僅nc休lu棗de丘<st呢di耳o.睛h>vo茂id咳m育ai反n(免){蝕i謙ntye罩ar衣,s氣t;pr枯in父tf沸(“仁In膚pu蔥ta藝ye和ar宰:疼\n脅”)涌;sc輛an斗f(綿“%梁d”請(qǐng),&挖ye霧ar);st=l橋ea煙p(攏ye駱ar老);if編(s繳t==森1)pr俊in永tf便(“輝\n甩%disru橋nn萄ia虧n\芳n”貝,y沈ea斥r);el勤sepr艱in惑tf研(“慚\n換%dis蹦n酬otru借nn顆ia賄n\節(jié)n”縱,y桿ea離r);}in漆t(yī)le料ap(i筋ntye廈ar岡){截i貫ntst;if臨(y激ea驕r%遍4=滅=0互&&語(yǔ)y斧ea仰r%鼓10獎(jiǎng)0!暖=0爸||娛ye幸ar注%4做00劇==突0)st=1行;el皆sest=0禽;re寺tu息rn市(s群t);}函數(shù)深調(diào)用自定紗義函部數(shù)實(shí)際參數(shù)形式參數(shù)5/趕18芝/2患02灑317C語(yǔ)言灘程序香設(shè)計(jì)3.俘3.市3函數(shù)昌的返無(wú)回值形式:re峰tu鼓rn中(表達(dá)成式)剛;或re須tu否rn表達(dá)演式;或re稿tu瀉rn罷;功能:使掙程序微控制巡壽從被沈調(diào)用兆函數(shù)釘返回偽到調(diào)奶用函平數(shù)中方,同灘時(shí)把幟返值貞帶給水調(diào)用楊函數(shù)說(shuō)明:函數(shù)抗中可茶有多攤個(gè)re禍tu臣rn語(yǔ)句,一旦大遇到穩(wěn)一個(gè)re塞tu院rn語(yǔ)句扮,就慌立即奮返回蓮到主桂調(diào)函莖數(shù)。若無(wú)re奮tu耕rn語(yǔ)句辨,遇}時(shí),疫自動(dòng)卷返回核調(diào)用色函數(shù)若函月數(shù)類(lèi)避型與re醉tu淘rn語(yǔ)句仿中表壘達(dá)式駝值的孩類(lèi)型鄙不一鍋致,扎按前蹤蝶者為鄉(xiāng)豐準(zhǔn),黃自動(dòng)是轉(zhuǎn)換良--漁--朋--函數(shù)血調(diào)用摸轉(zhuǎn)換vo戒id型函煎數(shù)in預(yù)tma懇x(隊(duì)in車(chē)tx,卵in間ty){i鋸f(禽x>巖y)re袋tu劑rn姐(x酸);re快tu箱rn徐(y氣);}vo倍id趕m臺(tái)ai兔n(寬){i緣瑞nt健a有,b虎,c午;sc備an拔f(蛾“%悲d,徑%d素”,霜&a夏,&想b);c=笑ma撥x(粘a,岡b)伏;pr偏in怪tf羨(“賽ma說(shuō)xis弊%食d”潛,c剝);}5/奇18棟/2棕02榮318C語(yǔ)言撓程序割設(shè)計(jì)例3.才7函數(shù)晴返回僑值類(lèi)生型轉(zhuǎn)披換#i謀nc葡lu擔(dān)de賴(lài)<st貫di盤(pán)o.面h>in俊tma昌x(f蔬lo塊atx,樹(shù)f寶lo蔽at繼y脖){省fl復(fù)oa待t掩z;z=販x>y?查x:格y;re認(rèn)tu食rn緒(z);}vo英id潑m圍ai僚n(恩){密fl落oa味t菌a,互b;in復(fù)tc;sc范an婆f(摘"%賄f,饒%f職",乘&a胳,&示b);c=準(zhǔn)ma撿x(驚a,淘b)線(xiàn);pr襪in隔tf舟("糠Ma通xis歌%覺(jué)d\攀n"煙,c財(cái));}輸入腥:23著.0堡,6華6.福0輸出漫:665/苦18錯(cuò)/2雖02哥319C語(yǔ)言銳程序耗設(shè)計(jì)例3.或8:從遇鍵盤(pán)嚴(yán)中輸驢入兩毫個(gè)數(shù)武,分計(jì)別求娘出這家兩個(gè)暫數(shù)的州最小弟公倍尾數(shù)和躬最大欲公約豆數(shù)。in福tgy晶s(公in寧tx,錢(qián)in搖ty){}in萬(wàn)tgb紹s(麥in把tx,艦in蝦ty){}re蠻tu泥rn騾(x敢*y/齡gy識(shí)s(得x,什y))扶;in謙t朱s;s=筋x說(shuō)*y/弟gy美s(剩x,持y);re牌tu貴rn牽(s里);in掩t皂t,嘴s;if郊(x艙>y野){t旬=x制;x殃=y旱;y鎮(zhèn)=t跨;}wh肥il掉e(伙(s圈=y羽%x際)!截=0擇){y惑=x伙;x全=s殖;}re畢tu政rn聾(x屯);函數(shù)累嵌套蝴調(diào)用5/剩18修/2瞇02替320C語(yǔ)言吵程序六設(shè)計(jì)一、沃一般隆形式:函數(shù)望類(lèi)型取函數(shù)拼名(形參杏類(lèi)型[形參掘名],劣….竭.通)作用:告訴碼編譯兩系統(tǒng)函數(shù)針類(lèi)型桿、參飾數(shù)個(gè)紫數(shù)及累類(lèi)型材,以屆便檢矛驗(yàn)3.饞4函數(shù)討的原煙型與怎聲明函數(shù)渡聲明禽中,僻由于劃編譯便系統(tǒng)憤不檢紫查參扣數(shù)名狂,所娃以可鋼以只拔寫(xiě)形鑼參的揚(yáng)數(shù)據(jù)耐類(lèi)型常,而獎(jiǎng)不寫(xiě)趟形參漆名5/見(jiàn)18橡/2筐02綁321C語(yǔ)言畜程序剪設(shè)計(jì)二、糾說(shuō)明1、函數(shù)除定義與函數(shù)坡聲明不同若。2、函數(shù)課聲明剝位置:程序定的數(shù)剃據(jù)說(shuō)疾明部莖分,蒜(1)在賓主調(diào)寸函數(shù)乓中;順(2)在救所有予函數(shù)仍的外肌部(身推薦移使用曾)。3、下列鉤情況從下,尖可不宇作函選數(shù)聲明(1)若屑函數(shù)裹返值界是ch鳥(niǎo)ar或in絕t型,系統(tǒng)遠(yuǎn)自動(dòng)像按in辭t型處瓣理(2)被調(diào)壩用函讓數(shù)定鑰義出棒現(xiàn)在跟主調(diào)漿函數(shù)汁之前有些風(fēng)系統(tǒng)(如Bo拔rl礦an媽d喝C+蠻+)要求經(jīng)函數(shù)翻聲明封指出晃函數(shù)慈返值評(píng)類(lèi)型歌和形抽參類(lèi)物型,鵝并且揚(yáng)對(duì)vo虜id和in燈t型函潑數(shù)也賤要進(jìn)癥行函量數(shù)聲呼明5/拾18京/2災(zāi)02步322C語(yǔ)言方程序扛設(shè)計(jì)例3.厲9函數(shù)粘聲明華舉例#include<stdio.h>voidmain(){inta,b;intc;scanf("%f,%f",&a,&b);c=max(a,b);printf("Maxis%d\n",c);}intmax(intx,inty){intz;z=x>y?x:y;return(z);}int型函數(shù)可不作函數(shù)聲明(BorlandC++不行)#include<stdio.h>floatadd(floatx,floaty){floatz;z=x+y;return(z);}voidmain(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);printf("sumis%f",c);}被調(diào)函數(shù)出現(xiàn)在主調(diào)函數(shù)之前,不必函數(shù)聲明#include<stdio.h>voidmain(){floatadd(float,float);/*函數(shù)聲明*/floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);printf("sumis%f",c);}floatadd(floatx,floaty){floatz;z=x+y;return(z);}或floatadd(floatx,floaty);函數(shù)聲明在主調(diào)函數(shù)中#include<stdio.h>doubletest1(inta,intb);inttest2(charc,intd);chartest3(doublee,floatf);voidmain(){…/*調(diào)用函數(shù)test1,test2,test3*、}doubletest(inta,intb){…}inttest2(charc,intd){…}chartest3(doublee,floatf){…}函數(shù)的外部聲明5/頑18虜/2劫02著323C語(yǔ)言偶程序也設(shè)計(jì)上節(jié)滾回顧函數(shù)揀的組仙成部車(chē)分?如何握確定群函數(shù)窯的數(shù)烏據(jù)類(lèi)伍型?函數(shù)震調(diào)用柱的方瘋法有齡哪幾醋種?簡(jiǎn)述但參數(shù)獵的“口值傳屠遞方栗式”編?<數(shù)據(jù)喪類(lèi)型>函數(shù)膊名(<參數(shù)終表>){<說(shuō)明沖語(yǔ)句><執(zhí)行飽語(yǔ)句>}當(dāng)前貢函數(shù)組返回等主調(diào)代函數(shù)托的數(shù)據(jù)捎類(lèi)型挎(即猜函數(shù)廉運(yùn)行起結(jié)果的秤數(shù)據(jù)通類(lèi)型歷)函數(shù)抬語(yǔ)句:例pr客in洽ts要ta旗r()同;pr唯in湊tf駁(“快He善ll是o,椒Wo賽rl支d!曬\n”)弱;函數(shù)舍表達(dá)奏式:例m=休ma濤x(炸a,呀b)鞋*2繩;函數(shù)伯參數(shù):例pr錯(cuò)in弓tf樹(shù)(“面%d貸”,忌ma善x(霜a,意b))旱;m=往ma貌x(胡a,煮ma昌x(蛇b,遵c)曾);函數(shù)述調(diào)用僑時(shí),為形僅參分圖配單賽元,并將墓實(shí)參的值復(fù)制到形駕參中勒;調(diào)升用結(jié)皺束,筆形參同單元被炸釋放味,實(shí)校參單由元仍握保留勿并維早持原聽(tīng)值5/落18音/2珍02朽324C語(yǔ)言總程序距設(shè)計(jì)5、函赤數(shù)定傘義的壘一般良形式僅:<數(shù)據(jù)梳類(lèi)型>函數(shù)珍名(<參數(shù)朗表>){<說(shuō)明反語(yǔ)句><執(zhí)行妙語(yǔ)句>}函數(shù)體當(dāng)前徐函數(shù)逐返回寬主調(diào)賓函數(shù)扎的數(shù)湯據(jù)類(lèi)專(zhuān)型(微即函婦數(shù)運(yùn)率行結(jié)第果的北數(shù)據(jù)尖類(lèi)型屋)編寫(xiě)使方法且與主胃函數(shù)胃的編召寫(xiě)方推法一肥樣6、函報(bào)數(shù)生惰命的荒一般碗格式函數(shù)植類(lèi)型弱函數(shù)個(gè)名(形參泉類(lèi)型[形參蟲(chóng)名],蓄….孝.翁)5/基18離/2且02渠325C語(yǔ)言作程序況設(shè)計(jì)3.賽5函數(shù)筋嵌套屑與遞要?dú)w一、碰函拉數(shù)的填嵌套營(yíng)調(diào)用C規(guī)定牙:函數(shù)罩定義晨不可翠嵌套,但可以朵嵌套版調(diào)用函數(shù)main()調(diào)用函數(shù)a結(jié)束a函數(shù)b函數(shù)調(diào)用函數(shù)b5/驚18團(tuán)/2柜02叛326C語(yǔ)言慘程序唉設(shè)計(jì)例3.爪10求三復(fù)個(gè)數(shù)某中最魂大數(shù)舌和最想小數(shù)哪的差事值#i泊nc姥lu敞de胃<st忙di想o.捉h>in山tdi屯f(深in永tx,崖in輝ty,注in貍tz)辜;in醉tma枕x(封in默tx,顯in冰ty,放in鑄tz)商;in桿tmi宗n(銹in惱tx,富in頑ty,電in批tz)劫;vo撐id倘m越ai尋n(筑){in瞞ta,鵲b,趨c,自d;sc卵a(bǔ)n府f(塞"%杰d%榜d%鼻d"舍,&限a,來(lái)&b胖,&叫c);d=號(hào)di叉f(宗a,意b,舊c)川;pr無(wú)in鼻tf余("滴Ma波x-M存in棚=%增d\灣n"濤,d共);}in稅tdi惱f(經(jīng)in厲tx,圓in幼ty,菊in筐tz){婆r基et托ur弟n垂ma任x(財(cái)x,貍y,鞏z)量-m詢(xún)in撈(x載,y枕,z鞋);荒}in菜tma拘x(醒in繡tx,艙in拘ty,掙in猛tz){射i寬nt戒r音;r=榜x>億y?肥x:慨y;re胖tu膜rn桃(r蠅>z漸?r槐:z屑);}in抬tmi蟲(chóng)n(移in腔tx,炮in倒ty,醋in閑tz){in損tr;r=襲x<悉y?璃x:敢y;re嘉tu蒙rn膏(r久<z萬(wàn)?r傭:z墻);}main()調(diào)用函數(shù)dif輸出結(jié)束dif函數(shù)max函數(shù)調(diào)用函數(shù)max調(diào)用函數(shù)minmin函數(shù)5/序18償/2輝02疏327C語(yǔ)言漆程序唱設(shè)計(jì)二、策拓?fù)滢k算法——遞歸定義宇:函淚數(shù)直嘴接或鹽間接仰的調(diào)它用自叨身叫陳函數(shù)谷的遞柱歸調(diào)葵用f()調(diào)f調(diào)f2調(diào)f1f1()f2()in吉tf(悄in駱tx){掃i祝nt眨y資,z公;……z=社f(毛y)體;……素.re喬tu第rn帆(2反*z親);}intf1(intx){inty,z;……

z=f2(y);…….return(2*z);}intf2(intt){inta,c;……

c=f1(a);…….return(3+c);}5/經(jīng)18港/2前02仁328C語(yǔ)言圍程序哀設(shè)計(jì)例3.訴11唇_1求n的階貧乘(采用癢非遞積歸算練法)#i穗nc養(yǎng)lu說(shuō)de警<st喘di利o.拔h>in軍tfa北c(災(zāi)in沈tn){強(qiáng)in杠t青f,脾i;f=辜1;fo牢r然(i銳=備1;鎮(zhèn)i<煩=n嫌;i謙++膨)f=墓f*勉i;re堅(jiān)tu絲式rn餡(f乎);}vo煮id副m酸ai朱n(鴨){in搭tn,丟y沖;pr艘in交tf飛("圈In洪pu著ta附in拐te顧ge擦r餡nu父mb尚er枕:"閘);sc切an遲f(奶"%刺d"弦,&艇n);y=fa姨c(百n);pr涌in悄tf辱("串%d!拾=%辯15績(jī)d"扛,n繳,y揀);}5/宅18屯/2櫻02餡329C語(yǔ)言節(jié)程序祥設(shè)計(jì)[分析]一般撲來(lái)說(shuō)鴉,將n!描述專(zhuān)成為桿:n!溫=1寧*2嶄*3則….層*(突n-辮1)定*n但是奪,只字要稍倆稍變益換一藝下,窄就可遮以將迅其描寫(xiě)述成核為:n!晃=n擔(dān)*(n性-1勺)…選.3抹*2危*1=n禮*(n-已1)!這樣評(píng),一涌個(gè)整課數(shù)的戶(hù)階乘謎就被拉描述錦成為袖一個(gè)規(guī)模括較小沒(méi)的階當(dāng)乘與一胞個(gè)數(shù)的積昨。同性樣,陶可以咳將(n-姜1)!描述狀成(n-碎1)*短(n-停2)!。依次磨類(lèi)推晉。于寬是,推一個(gè)丈問(wèn)題瘡就被恨描述裝成了末一個(gè)徐較小盞規(guī)模星的同嬌樣類(lèi)覽型的婚問(wèn)題屑了。5/促18屆/2晉02鄉(xiāng)豐330C語(yǔ)言塌程序交設(shè)計(jì)用遞屆歸的去方法叨求n!非法n<01n=0,1n*(n-1)!n>0

n!=遞歸勞的終睬止條獲件遞歸起方式4!告=4冶*(4既-1鐘)!返回蹄值6返回漸值2返回閃值13!法=3去*(凡3-驕1)視!2!愚=2捎*(風(fēng)2-診1)參!1!卵=1主調(diào)能函數(shù)返回垮值24調(diào)用5/錦18犯/2陡02燭331C語(yǔ)言陷程序屯設(shè)計(jì)例3.滴11究_2求n的階宮乘(采用蔬遞歸嗎算法)#i飾nc拐l(shuí)u悔de繡<st熄di事o.宮h>in間tfa棋c(匆in兩tn){大in狀t錦f;if奸(n揀<0暢)pr膜in聯(lián)tf梯("柏n<0山,d斯at欠a谷er林ro深r!汽")劇;el調(diào)se蠻i叔f(匯n=貴=0箱||霜n=搜=1是)加f乞=1緩;el兄sef=卷fa惜c(鞋n-篇1)金*n輝;re董tu暴rn鈴(f急);}ma以in滑(){窩in氣t染n,被y責(zé);pr談in奏tf赴("撞In馳pu蹤蝶ta端in絮te過(guò)ge擱r查nu虎mb臂er挎:"速);sc惠an混f(瓜"%咳d"返,&騎n);y=fa鼓c(丘n);pr榮in俗tf意("床%d!鴉=%蘿15簽d"隙,n繁,y涼);}5/艷18閃/2喉02察332C語(yǔ)言創(chuàng)程序則設(shè)計(jì)ma目in函數(shù)輸入m藥③y=fa淘c(昆m)輸出y宋⑥調(diào)用fa蛾cmn敵③因3!滲=0命,1f=董3*fa丈c(特3-傲1)返回f抗⑥調(diào)用fa艷cmn能②返回f萍②返回f同①因2!宇=0芝,1f=欲2*fa燒c(嗽2-越1)調(diào)用fa凱cmn呼①因1=襖=1f=棋1結(jié)束遞歸龍調(diào)用浩過(guò)程:5/吹18羅/2備02擦333C語(yǔ)言愉程序蹤蝶設(shè)計(jì)ma寧in雷()侍fa綿c(擔(dān)3)獄f脫ac玩(2埋)璃f獲ac尖(1炕)fa諸c(熱3)暫*4眉fa遞c(塞2)牌*3妥fa公c(胞1)競(jìng)*2621結(jié)果塔:245/叮18帖/2超02規(guī)334C語(yǔ)言瞧程序磚設(shè)計(jì)3.惱6庫(kù)函話(huà)數(shù)的懸使用驢(自赤學(xué))使用庫(kù)函萌數(shù)應(yīng)注醬意:1、函棕?cái)?shù)功闖能2、函惑數(shù)參毀數(shù)的幅數(shù)目糧和順渾序,格及各炭參數(shù)島意義撇和類(lèi)發(fā)型3、函妻數(shù)返齊回值雁意義微和類(lèi)拳型4、需喊要使防用的健包含均文件見(jiàn)教偏材例贈(zèng)附錄A5/某18撞/2右02啞335C語(yǔ)言旦程序嘉設(shè)計(jì)3.董7變量鞠的作春用域豬與存撒儲(chǔ)類(lèi)也型3.恩7.吃1變量榨的作四用域所謂棟變量等的作戰(zhàn)用域昆是指爬該變鄰量有回效的壟區(qū)域畜。按縫照變巧量的愉作用盾域,告將C語(yǔ)言恨的變堡量分醉為局務(wù)部變耽量和伙全局給變量慌。一、塊局部巧變量--缸-內(nèi)部刊變量位于賞一對(duì)窄花括冠號(hào)之國(guó)間的外所有要語(yǔ)句喉稱(chēng)為應(yīng)一個(gè)燒代碼器塊(衡也稱(chēng)翅為復(fù)棚合語(yǔ)留句)伙。定義:出鏟現(xiàn)在薪代碼森塊開(kāi)核始位也置的宰變量蛛。說(shuō)明:局部診變量惰的作閘用域窄僅限假于定芒義它研的代戲碼塊第內(nèi)ma且in中定序義的記變量箏只在ma迷in中有葬效不同亞函數(shù)額中同疼名變準(zhǔn)量,軋占不濤同內(nèi)纖存單唇元形參控屬于禿局部蜻變量可定筆義在斤復(fù)合室語(yǔ)句區(qū)中,且只狂在該股復(fù)合廟語(yǔ)句序中有效均的變喪量floatf1(inta){intb,c;…….}charf2(intx,inty){inti,j;……}main(){intm,n;…….}a,b,c有效x,y,i,j有效m,n有效5/換18串/2挽02蕉336C語(yǔ)言棋程序挖設(shè)計(jì)運(yùn)行粒結(jié)果派:ma錯(cuò)in鐵:a調(diào)=3愚,b耀=4su匪b:片a=悉6,卻b=網(wǎng)7ma年in念:a局=3駁,b逆=4#include<stdio.h>voidmain(){inta,b;a=3;b=4;printf("main:a=%d,b=%d\n",a,b);voidsub();printf("main:a=%d,b=%d\n",a,b);}voidsub(){inta,b;a=6;b=7;printf("sub:a=%d,b=%d\n",a,b);}例3.12不同函數(shù)中相同的變量5/亮18輸/2坐02塞337C語(yǔ)言兵程序愁設(shè)計(jì)例3.13復(fù)合語(yǔ)句中變量#include<stdio.h>#defineN5voidmain(){inti;inttemp=0;inta[N]={1,2,3,4,5};for(i=0;i<N/2;i++)

{

inttemp; temp=a[i]; a[i]=a[N-i-1]; a[N-i-1]=temp;

}for(i=0;i<N;i++)printf("%d",a[i]);printf(“\n%d\n”,temp);}運(yùn)行露結(jié)果串:4怒3駛2勾1te押mp雷=05/馳18飄/2繭02甚338C語(yǔ)言托程序懷設(shè)計(jì)定義:任全何在舒所有責(zé)代碼庭塊之熔外定從義的優(yōu)變量右。有效衛(wèi)范圍:從定義哭變量齒的位答置開(kāi)妥始到本遮源文播件結(jié)謀束應(yīng)盡亭量少謀使用雖全局繩變量積,因鳳為:全局疊變量技在程乖序全術(shù)部執(zhí)妙行過(guò)經(jīng)程中尿占用參存儲(chǔ)四單元降低棗了函礎(chǔ)數(shù)的紹通用壇性、況可靠香性,積可移鉆植性降低性程序骨清晰絡(luò)性,預(yù)容易沸出錯(cuò)注意艷:若慶全局國(guó)變量童與局疲部變暑量同材名,聲則全怎局變?cè)缌勘煌肫帘慰?!二、巨全局星變?-蠢-外部貪變量說(shuō)明:全局霉變量伶的作約用是多增強(qiáng)鉆函數(shù)蒸之間材聯(lián)系送的渠翻道為便腐于區(qū)或分全瓶局與熱局部笛變量攔,將犯全局賴(lài)變量伶名的伍第一港個(gè)字節(jié)母大云寫(xiě)5/池18斬/2刻02求339C語(yǔ)言渠程序怎設(shè)計(jì)上節(jié)攤回顧1、函廉?dāng)?shù)嵌處套調(diào)零用:ma忍in蔽(揚(yáng))調(diào)用抗函數(shù)a結(jié)束a函數(shù)b函數(shù)調(diào)用炕函數(shù)b函數(shù)b(去){開(kāi)}函數(shù)a(擔(dān)){函數(shù)b;}ma栽in暖(){函數(shù)a;}5/跳18糟/2炊02梯340C語(yǔ)言朱程序贈(zèng)設(shè)計(jì)#i析nc情lu另de脆<st從di韻o.蜂h>in禽tfa晌c(而in挨tn){旋in哨t濫f;if葡(n檢<0炸)pr杠in登tf楚("戀n<0碼,d浪at藏a尊er木ro怎r!備")叉;el度se奸i充f(縱n=川=0宴||說(shuō)n=約=1共)遞f孕=1緣瑞;el矛sef=戀fa價(jià)c(損n-毛1)鉆*n師;re荒tu赴rn外(f蟲(chóng));}ma杯in諒(){鈴in潤(rùn)t癥n,嗓y久;pr言in歸tf稠("芬In智pu拌ta肌in聾te廢ge直r歷nu牢mb敢er逆:"套);sc樓an榮f(處"%行d"咽,&遺n);y=fa腔c(機(jī)n);pr怪in禽tf痰("星%d!顛=%裹15纖d"仗,n躲,y冰);}2、函趴數(shù)遞夸歸調(diào)港用:ma鋒in腥()級(jí)f已a(bǔ)c欠(3但)圖fa豎c(飄2)孫fa啟c(惜1)fa價(jià)c(殺3)箭*4服fa賢c(鬼2)理*3民fa讀c(罪1)勉*26復(fù)2鋼1結(jié)果暗:245/斗18雄/2阻02賢341C語(yǔ)言蒸程序橡設(shè)計(jì)3、局司部變何量和葵全局爛變量ma排in中定邁義的剃變量茄只在ma望in中有常效不同材函數(shù)香中同萄名變虧量,隆占不狐同內(nèi)瓜存單鍵元形參暑屬于路局部沾變量可定還義在尸復(fù)合蜘語(yǔ)句丑中,且只悉在該躺復(fù)合急語(yǔ)句掠中有效神的變決量定義:在函數(shù)內(nèi)定義,只在本函數(shù)內(nèi)有效定義:在函數(shù)外定義,可為本文件所有函數(shù)共用5/駛18偏/2膚02綱342C語(yǔ)言貧程序脖設(shè)計(jì)#i修nc垮lu料de胸<st豎di妹o.驢h>fl淡oa長(zhǎng)t疫M(jìn)a為x=旨0,云Mi戶(hù)n=汁10性0;fl抱oa追tav殿er但ag通e(望in疾tn){泳in館t晃i;鬧f暮lo濾at據(jù)s,壓av邀er粉1,咳su篇m=上0;fo群r(知i=嫩1;鋼i<具n;項(xiàng)i+達(dá)+){sc拍an攔f(獅“%穩(wěn)f”張,&躁s);懇/*輸入瘡一個(gè)袖學(xué)生弄成績(jī)句*/if來(lái)(s宇>M閱ax敢)Ma漿x=s疫;el導(dǎo)se添i谷f(wàn)(始s<刃Mi繭n)Mi嗚n=s酒;su郊m+師=s進(jìn);}re庸tu宮rn暖(s魚(yú)um病/n劍);}vo蘆id儀m賊ai駛n(牛){in嗽tn;駕f懷lo猾at劫a顧ve預(yù)r2唯;sc胖an責(zé)f(銅“%傍d”永,&伯n);族/*輸入寫(xiě)班級(jí)媽人數(shù)妙*/av侍er艦2=av氧er壟ag恨e(似n)援;pr艙in設(shè)tf振(“嘩Ma蠟x=%悉6.鎖2f絞\n摧Mi沃n=率%6懲.2賤f\柔nav素er狀ag遵e=便%6貫.2倘f(wàn)\干n"袖,Ma依x,度Mi救n,av含er汁2)利;}作用域MaxMin例3.丸145/址18湊/2裁02軟343C語(yǔ)言失程序介設(shè)計(jì)例3.頭15全局梅變量進(jìn)定義哀與聲劣明#i晉nc權(quán)l(xiāng)u當(dāng)de腦<st兆di接o.按h>in韻tma叨x(譜in士tx,梨i滅nt筆y不){善i柱nt婦z誘;z=市x>端y?息x:雷y;re煮tu你rn駐(z電);}vo勻id概m振ai乒n(惜){pr福in兵tf枝("漿ma鳴x=%企d"箏,ma罷x(詢(xún)a,綿b)囑);}in獲t洗a=傻13儲(chǔ),b以=-引8;運(yùn)行哥結(jié)果寇:ma坐x=副13#i搖nc妄lu聚de邀<st落di這o.陡h>in膛t糧a=駕13具,b涂=-希8;in軋tma猜x(強(qiáng)){味i蘿nt斗z熱;z=a>億b?庭a:計(jì)b;re盒tu獲rn中(z奪);}vo太id戶(hù)m劇ai刪n(吸){pr持in皺tf搶("盛ma堤x=%重d"拿,m臺(tái)ax擁()與);}編譯戚出錯(cuò)5/運(yùn)18猛/2汽02服344C語(yǔ)言匯程序蘆設(shè)計(jì)#i于nc搬lu宮de撒<st夫di接o.盛h>in代t埋a=監(jiān)3,螺b=繼5;in而tma卻x(in餡ta,涌i亦nt搭b){棗in禿t數(shù)c;c=串a(chǎn)>誦b?歇a:繼b;re泛tu歷rn啞(c炒);}vo良id籍m好ai給n(際){in欲t配a=貓8;pr豆in揮tf附("品ma頸x=%渴d"銅,m便ax錫(a態(tài),b拖))豬;}例3.盒16全局叫變量沙與局窮部變奇量重掃名時(shí)運(yùn)行境結(jié)果壟:ma咽x=胞8a,棋b為全致局變抹量a,冤b為局效部變家量a為局燈部變倘量局部變量a全局變量b作用范圍行參a、b作用范圍5/唱18中/2紐奉02膜345C語(yǔ)言乒程序觸設(shè)計(jì)#i涂nc竭lu類(lèi)de魄<st冬di較o.勸h>in概t根i旱;vo蹄id襯m四ai鐵n(浩){紐奉vo狠idpr捕t()冤;fo葵r(雞i=修0;匆i<郵5;俱i+趴+)pr灑t()典;}vo西idpr凳t(){fo釣r(形i=躺0;酸i<債5;灑i+餡+)pr煌in趁tf(“丸*”手);pr挨in聯(lián)tf汽(“爬\n”)拐;}例3.松17全局膽變量枯副作盒用運(yùn)行唱結(jié)果駕:?**燃**勾*5/賓18掉/2偵02草346C語(yǔ)言蹈程序痛設(shè)計(jì)3.慌7.鬼2變量顛的存歪儲(chǔ)類(lèi)奴型變量疲的存葬儲(chǔ)類(lèi)女型:存與儲(chǔ)變報(bào)量值六的內(nèi)議存類(lèi)賤型。變量槽的存啟儲(chǔ)類(lèi)蝕型決商定變歡量何狡時(shí)創(chuàng)箏建、縣何時(shí)痛銷(xiāo)毀蘇及它安的值且將保賊持多包久。分為鐘:靜態(tài)袍存儲(chǔ)和動(dòng)態(tài)魯存儲(chǔ)兩種孟類(lèi)型1、自脂動(dòng)變哭量(au脾to變量黑)C語(yǔ)言級(jí)中使模用最出廣泛辜的一緒種類(lèi)樣型。想函數(shù)籍內(nèi)凡魄是未磁加類(lèi)亦型說(shuō)錢(qián)明的塌變量舅均視全為自咳動(dòng)變梯量。5/肥18吩/2劉02葵347C語(yǔ)言飄程序唐設(shè)計(jì)例如腳:in短tx,牙y編;等價(jià)罰于:au考toin譯tx,脈y礙;說(shuō)明:①營(yíng)自動(dòng)陵變量稿的作它用域仍?xún)H限矛于定慕義該鏡變量漸的個(gè)秋體內(nèi)鋼。②叢當(dāng)程科序執(zhí)季行到淘定義冬自動(dòng)持變量遵的代酸碼塊藍(lán)時(shí),味該自惕動(dòng)變?cè)辛坎沤K被創(chuàng)勞建,文當(dāng)程沒(méi)序的灑執(zhí)行撤離開(kāi)踏該代杯碼塊處時(shí),掉這些嫌自動(dòng)警變量每便自抹行銷(xiāo)攏毀,打所以嗽自動(dòng)才變量墳屬于表動(dòng)態(tài)脖存儲(chǔ)主方式京。③膏函數(shù)忽的形源式參業(yè)數(shù)也仔是自肅動(dòng)變哄量。5/晉18絮/2護(hù)02油348C語(yǔ)言芳程序霧設(shè)計(jì)2、寄烈存器功變量夠(re緞gi腿st綁er變量隱)以前情介紹淺的變獵量都唇存放設(shè)在內(nèi)踏存里聚。當(dāng)一雞個(gè)變萍量頻踐繁讀撫寫(xiě)時(shí)主,要袍反復(fù)篇訪(fǎng)問(wèn)視內(nèi)存吃,從蹲而花卻費(fèi)大吐量的舌存取槐時(shí)間紋。C語(yǔ)言追提供捕另一監(jiān)種變倒量,煎即寄存填器變?nèi)懒?。存放政在CP銹U中,踢使用雞時(shí)不宿訪(fǎng)問(wèn)逝內(nèi)存設(shè),而鑰直接劑從寄館存器疑中讀匯寫(xiě)。5/院18悶/2喊02紀(jì)349C語(yǔ)言?shī)W程序獵設(shè)計(jì)例如錦:re聽(tīng)gi嚇st嫁erin乓tx,崇y;說(shuō)明鍬:①寄筍存器剩變量齊屬于特動(dòng)態(tài)極存儲(chǔ)快方式孟,只駐有局露部自皇動(dòng)變袍量和形形式肆參數(shù)糕才可紛以定底義為奮寄存楊器變住量。②石由于CP欣U中寄追存器奸的個(gè)鞭數(shù)是洲有限教的,逢所以弓編譯專(zhuān)器可攜以忽天略re街gi煙st咸er關(guān)鍵普字,梨當(dāng)有損太多瓶的變松量聲欠明為re永gi初st各er時(shí),辮只有刊個(gè)別粥的變廳量會(huì)未存儲(chǔ)芝在寄慮存器伯中,丈其余犁的編晝譯器澤會(huì)按套普通仔自動(dòng)加變量醬處理降。在鐮變量亂的定義意中,一般垮并不糟需要遲使用re勁gi弦st社er關(guān)鍵鬧字。5/魂18腸/2陵02咱350C語(yǔ)言支程序彼設(shè)計(jì)3、靜討態(tài)st訪(fǎng)at尖ic靜態(tài)截變量岔賦初狠值,培只執(zhí)對(duì)行一婆次再濫次調(diào)并用函嫂數(shù)時(shí)血保留古上次蠢函數(shù)說(shuō)調(diào)用睡結(jié)束燃時(shí)的旨值。例如陣:編奇寫(xiě)一衡個(gè)函箏數(shù)實(shí)刷現(xiàn)值殼自增1。在克主函賀數(shù)中貓循環(huán)妥調(diào)用貢三次滅該函曲數(shù),怖并輸栽出結(jié)牧果。#i供nc喬lu藥de聚<st書(shū)di敲o.擾h>in懂t收ad找d(須)給;vo姜id煌m俊ai予n(篩){in飄t紋i,睡r鉆es氏ul睛t;fo杏r(末i=1右;渠i<墨=3濁;剃i+耗+){re等su招l(wèi)t擁=秤a擊dd涉()進(jìn);pr犁in籃tf呼("肢%d",拒r影es朗ul剝t)莖;}}in家t的ad乏d(幻玉){au醬to盒i胸nt問(wèn)n埋um紹=虎5縣;芽/刪/自動(dòng)粒局部瞇變量nu糠m+們+;re壯tu昌rn袋n賢um音;}#i頓nc貿(mào)lu標(biāo)de淹<st勾di件o.巖h>in講t聲ad押d(島)殼;vo鄭id燥m舅ai喚n(顫){in止t既i,悠r場(chǎng)es謀ul免t;fo比r(殃i=1楚;狠i<出=3弊;幅i+通+){re陪su誕lt偷=沒(méi)a敢dd程()稻;pr美in董tf碑("錯(cuò)%d",夕r化es荒ul瞇t)心;}}in校t擱ad野d(馬){st啟at辯ic訂i燃nt輪n店um座=王5水;陪/*靜態(tài)艇局部球變量臣*/nu自m+漫+;re膝tu送rn移n勝u(mài)m欺;}結(jié)果跑:6到6謹(jǐn)6結(jié)果希:6左7荒85/舞18跟/2帥02猜351C語(yǔ)言脅程序損設(shè)計(jì)說(shuō)明爪:①靜庸態(tài)局囑部變幕量在嚼函數(shù)怪內(nèi)定藝義,需始終租占用亦內(nèi)存尸空間所,直撿到整邊個(gè)源喜程序啦退出折時(shí)才效釋放馳。②靜誤態(tài)局益部變釋量?jī)H系賦一蹦次初爆值。③助靜態(tài)痕局部舞變量恒雖然日在整銹個(gè)源披程序捉都存北在,甘但是索其作偶用域島仍與恨自動(dòng)誘變量匙相同有,即搖只能洽在定冒義該袋變量摸的函奴數(shù)內(nèi)央使用兩該變頑量。站退出狂該函神數(shù)后菌,盡泳管該氏變量蘇還繼置續(xù)存妙在,摧但不數(shù)能使商用它蝴。④驕靜態(tài)僵局部蔽變量完若在斗聲明春時(shí)未選賦初開(kāi)值,揪則系密統(tǒng)自家動(dòng)初功始化節(jié)為0(對(duì)拐數(shù)值奮型變寇量)墨或’\0粱’(對(duì)戴字符杯變量憶)。5/柏18把/2骨02珠352C語(yǔ)言絡(luò)程序磁設(shè)計(jì)⑤如果翅一個(gè)揮文件合中的伍全局捷變量愈不允綁許其猴他文汁件的學(xué)函數(shù)穿引用另,則削該變?nèi)塘恳捎胹t云at泡ic聲明桌?;蛐д哒f(shuō)啦一個(gè)璃文件琴中的宿靜態(tài)叢全局喇變量隔不允糊許其變它文莖件中嶺的函也數(shù)引答用。⑥如果籠一個(gè)沃函數(shù)寬前用st牙at吐ic聲明么,則增這個(gè)華函數(shù)替不能砌被其邊他文奪件中籌的函科數(shù)調(diào)容用,尊稱(chēng)為內(nèi)部哲函數(shù)抱或靜侮態(tài)函涂數(shù)。staticintsort;main(){……}file1.c5/港18縫/2破02岔353C語(yǔ)言鴨程序疑設(shè)計(jì)4、外杜部聲無(wú)明ex塘te紀(jì)rn外部樂(lè)變量覽是在甚函數(shù)悔的外駐部定駁義的銷(xiāo)全局酸變量醬。(1)如擾果想起在定餃義之蓋前的償函數(shù)僵中引陷用全示局變踢量,鞠則在棒函數(shù)頂中用色關(guān)鍵趣字ex稍te緩rn聲明定。#i晶nc筍lu飾de粗<st謙di某o.督h>vo僅id絹m尚ai云n(碼){近e煩xt肌er殊n茅in舅t魔a,再b;pr養(yǎng)in慣tf睛(”株%d想”,剃ma獄x(鑒a,叼b);}in殊ta=角13蓬,b溜=-規(guī)8;a,校b的作場(chǎng)用域槳擴(kuò)展竿到整夜個(gè)ma磚in函數(shù)5/羞18賭/2揉02銳354C語(yǔ)言初程序侵設(shè)計(jì)(2)、脂如果凍一個(gè)C程序譯有多舌個(gè)源劈燕程序往文件室組成志,則闖一個(gè)撤文件循定義師了全立局變怠量,則另矩一個(gè)示文件酷如果看要引字用它皂的全扶局變捧量,南就要鴿用ex簽te白rn作聲險(xiǎn)明;file1.cfile2.cintsort;main(){……}externintsort;intfunc(){……}5/定18彼/2運(yùn)02跨355C語(yǔ)言勝程序鑼設(shè)計(jì)(3)、并如果狗一個(gè)天函數(shù)叨前用ex遼te嗚rn聲明膨,則眉這個(gè)卷函數(shù)棵可以糾被其蔽他文兇件中絕的函余數(shù)調(diào)蓮用,對(duì)稱(chēng)為外部頸函數(shù)緊。例:/*file1.c*/main(){intc,a=2;

externintfac(intx);……c=fac(a);……}/*file2.c*/externintfac(intx){……}5/斷18推/2肆02催356C語(yǔ)言舍程序戶(hù)設(shè)計(jì)3.咱8指針棟與函偷數(shù)3.瞞8.漆1指針令作為州函數(shù)添參數(shù)值傳療遞地址竊傳遞指針薪變量就是庫(kù)存放浪變量季地址增的變渴量。變量栗的指日針就是秩變量惹的地災(zāi)址。舉例冷:in其t由*猴p1議,曠*p能2,a;fl仗oa強(qiáng)t桐*p巷3,b;例3.鍋3vo膠idsw餅ap嗎(i喇nta,寺in拋tb){謝in僑t誓t;t=糞a;霜a=魯b;泡b=宰t;pr準(zhǔn)in巷tf血("維re獄su序lt:x欣=%仆d移y=鍋%d耍\n授",腦a,暖b)貍;}vo雜id汗m危ai斑n(洞){錄i瞧nt種x捕=1鴨0,陪y=戒5;pr并in敏tf述("忽x=%拌d,村y=受%d太\n責(zé)",纏x,拔y)再;sw匯ap鄰(x妹,y顏);}例3.3-1#include<stdio.h>main(){intx=7,y=11;printf("x=%d,\ty=%d\n",x,y);printf("swapped:\n");swap(x,y);printf("x=%d,\ty=%d\n",x,y);}swap(inta,intb){inttemp;temp=a;a=b;b=temp;}輸出:?5/學(xué)18未/2描02茄357C語(yǔ)言樸程序綠設(shè)計(jì)指針退變量眨作為造函數(shù)候的參騎數(shù):類(lèi)型非名撞函數(shù)懇名(顛類(lèi)型害名孩*形攔式參齊數(shù)1,類(lèi)危型名愈*隊(duì)形式克參數(shù)2,…){說(shuō)明嬸部分俘;語(yǔ)句奪;}說(shuō)明參數(shù)久的傳茅遞是雷值傳白遞,諒單向酒的(跌從實(shí)舍參到源形參期)。掙那么雷如何槳理解罰通過(guò)蔬指針雀作為宮參數(shù)曲可以蛙改變海主調(diào)回函數(shù)臉中變問(wèn)量的嚼值呢熊?形參圍得到穿實(shí)參震的值淚即一戲個(gè)地床址,掌函數(shù)辜中可糊以通索過(guò)形愉參引缺用該爪地址丹,從動(dòng)而可釘以改隙變?cè)撍牡刂妨飳?duì)應(yīng)替變量預(yù)的值超。5/讓18豎/2胃02趟358C語(yǔ)言錫程序僑設(shè)計(jì)711x:y:調(diào)用前:調(diào)用結(jié)束:711x:y:#i犬nc篩lu握de叛<st勿di孟o.爆h>ma客in字(){統(tǒng)in芝t減x=弦7,冬y=酷11沫;pr描in銳tf腐("進(jìn)x=%d,伶\t竿y=%屢d\坑n"妥,x誓,y娘);pr簡(jiǎn)in約tf卸("潛sw公ap躲pe憶d:殃\n")篇;sw湯ap讀(x錫,y湖);pr刺in竊tf飲("焰x=%d,料\t騙y=%渠d\棍n"屈,x摟,y掃);}sw葛ap櫻(i槽nta,欺in驚tb){彩in甘t肌te浮mp蠶;te扭mp松=a抗;稈a=水b;少b魔=t探em附p;}調(diào)用:711a:b:711x:y:swap:711x:y:117a:b:temp例3.莖185/室18辯/2睡02槳359C語(yǔ)言詠程序下設(shè)計(jì)例3.榮18交換儲(chǔ)兩個(gè)鴉數(shù)的蟻值#i駝nc胃lu板de投<st賄di市o.躁h>ma仍in投(){狹in尖t鋼x=鋤7,輸y=饞11億;pr劣in修tf蠻(“偶Sw彩ap眾pe茫d:念\n")雅;sw帶ap牽(x誰(shuí),y茂);pr馬in睬tf辰("終x=%青d,振y=侵%d陰\n境",別x,爐y)掠;}sw昆ap森(i槐nta,熄in艦tb){幸in方t倒te偏mp年;te蟲(chóng)mp祥=a未;盼a=鋪b;敞b熊=t貝em竊p;}輸出?。篠w進(jìn)ap裕pe唉d:x=獅7,勸y=會(huì)11#i奴nc確lu亡de友<st左di炮o.波h>vo指idsw翅ap會(huì)(i騾nt*px唐,i相nt*py){狡i現(xiàn)nt挺t徒em靈p;te助mp哨=*px;討*px=*py;室*py=t拜em芽p;}ma末in融(){in拾tx=但7,紗y=沸11重,*盞p1幫,*螺p2逐;p1例=&城x;豆p2鼓=&限y;pr涂in嚼tf纖(“第x=%寇d,族y=舒%d如”,勿x,袖y)務(wù);pr彈in青tf睜(“餐Sw消ap診pe蹄d:嚇\n”)任;sw思ap歌(p門(mén)1,較p2端);pr五in封tf龍(“顛x=%美d,村y=籠%d淺”,樸x,易y)投;}Sw幼ap蠶pe份d:x=租11隨,y啊=75/增18茅/2流02淋360C語(yǔ)言搖程序勢(shì)設(shè)計(jì)例3.蒼19求三垮個(gè)數(shù)再中的村最大視值和忌平均耐值用憂(yōu)函數(shù)泡實(shí)現(xiàn)笨:vo拜idma封v(象in妄ta,賴(lài)in幼tb,握in臂tc,廣in柳t*p鐵1,鈔fl牢oa速t削*p膀2){*p勿1=丟a;if植(*掠p1嫌<b規(guī))采*p紹1=費(fèi)b;if英(*撲p1沸<c麗)勸*舞p1立=c足;*p胳2=友(a搶+b株+c停)/破3.飛0;Re升tu紫rn索;}ma雜in早(){照in投t令a,蒸b,唱c,精ma頃x,徐*p隊(duì)1;fl笑oa搞tav辮e,*催p2拒;sc耕an鉤f(吊“%喇d%盛d%猛d”塔,&偶a,牢&b沙,&洞c);P1議=&遇ma堅(jiān)x;讓P2分=&av喇e;mav(糖a,扇b,快c,長(zhǎng)p1創(chuàng),p點(diǎn)2)律;Pr耀in歇tf晨(“徐ma錢(qián)x=%墳d,av去e=%勝f”,ma辜x,av迫e);}主函擦數(shù)的公變量耍:1257子函敏數(shù)的劑變量誦:&av周e&m喪ax7512&av東e&m騙axacbap2p1cbp2p1av歌ema慨x128.賀0舉例5/趕18若/2毯02剃361C語(yǔ)言芹程序芹設(shè)計(jì)上節(jié)宇回顧(1曉)指針壺變量(2墻)變量麗的指梢針(3院)in仗t貧a=鼠4,攤*境s;s=鞠&a畝;則,勉*s=盤(pán)?(4炸)值傳螞遞方漫式vs地址慎傳遞瓶方式就是絞存放鎮(zhèn)變量柜地址慣的變轉(zhuǎn)量。就是托變量稅的地尺址。4#i搬nc沈lu現(xiàn)de嬌<st印di扛o.格h>vo添idsw芝ap簽(i蹄nt*px,i童nt*py){率i蟲(chóng)nt次t磚em結(jié)p;te璃mp襲=*px;澤*px=*py;打*py=t急em命p;}ma跪in悉(){in紐奉tx=難7,梨y=菌11概,*嫌p1涂,*低p2縣;p1造=&膜x;業(yè)p2盒=&品y;pr稱(chēng)in曠tf案(“榆x=%州d,庭y=漂%d載”,的x,鬧y)纏;pr涂in叫tf默(“削Sw走ap憤pe呢d:舊\n”)裹;sw謀ap浪(p1,p2);pr箏in丸tf辱(“蓋x=%些d,桃y=飛%d洗”,艱x,憤y)踐;}5/來(lái)18卡/2和02霸362C語(yǔ)言燦程序艦設(shè)計(jì)3.嫁8.坑2返回齒指針篇值的橫函數(shù)(自學(xué))一般迎定義嶄形式繭為:類(lèi)型裹名刃*則函數(shù)嬸名(晌類(lèi)型節(jié)名叫*形籃式參像數(shù)1,*娃類(lèi)型寬名雅*形奔式參聯(lián)數(shù)2)例如諸:in級(jí)t豎*a(街in戲tx,森in劣ty)崗;a是函蹄數(shù)名牙,調(diào)得用它手以后渴能得掠到一湯個(gè)指筆向整布型數(shù)吵據(jù)的遭指針食(地暮址)蔥,x、y是函善數(shù)的閱形參自,為臘整型狹。返回嗚指針甜值的象函數(shù):一個(gè)遲函數(shù)罷可以飽帶回樹(shù)一個(gè)圈整數(shù)渾值、嗎字符尖值等法,也上可以曲帶回僻指針雪型的腿數(shù)據(jù)煌,即查地址浩。5/繁18島/2算02都363C語(yǔ)言有程序蘿設(shè)計(jì)例3.書(shū)12編寫(xiě)密一個(gè)忙函數(shù)機(jī)求某推班級(jí)顆學(xué)生土成績(jī)模的最床高分釘、最鼓低分豈和平透均分vo足idfu嫩nc嗓(i丸ntn,局fl陳oa笑t筍*a奧ve王r,筍fl顧oa永t度*m耐ax擁,f壞lo惰at強(qiáng)*庭mi苗n){瘦in雖t柔i;蛙fl踏oa浩t黎s;fo孕r(液i=地1;疏i<牛=n雪;i東++禾){pr犬in掩tf周(“拍in拾pu斗ta羽sc期or勵(lì)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論