![C語(yǔ)言中常見的功能函數(shù)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/30d75bff-1c2b-4be3-8db9-ee600a747bb7/30d75bff-1c2b-4be3-8db9-ee600a747bb71.gif)
![C語(yǔ)言中常見的功能函數(shù)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/30d75bff-1c2b-4be3-8db9-ee600a747bb7/30d75bff-1c2b-4be3-8db9-ee600a747bb72.gif)
![C語(yǔ)言中常見的功能函數(shù)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/30d75bff-1c2b-4be3-8db9-ee600a747bb7/30d75bff-1c2b-4be3-8db9-ee600a747bb73.gif)
![C語(yǔ)言中常見的功能函數(shù)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/30d75bff-1c2b-4be3-8db9-ee600a747bb7/30d75bff-1c2b-4be3-8db9-ee600a747bb74.gif)
![C語(yǔ)言中常見的功能函數(shù)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/30d75bff-1c2b-4be3-8db9-ee600a747bb7/30d75bff-1c2b-4be3-8db9-ee600a747bb75.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C語(yǔ)言中常見的功能函數(shù)(應(yīng)掌握的編程)1 、兩個(gè)變量值的交換voidexchang(float*x,float*y)/*形參為兩個(gè)變量的地鐵(指針)*/floatz;z=*x;*x=*y;*y=z;voidmain()floata,b;scanf(“%f%f”,&a,&b);exchang(&a,&b);/*因?yàn)樾螀⑹侵羔?,所以?shí)參必須給變量的地址,不能給變量名*/printf(“a=%f,b=%f”,a,b);2 、判斷一個(gè)整數(shù)的奇偶intjou(intn)/*如果是奇數(shù)返回1,否則返回0*/if(n%2=0)return0;return1;3 、小寫字符轉(zhuǎn)換
2、成大寫字符根據(jù)實(shí)參傳給形參的字母,判斷是否是小寫字母,如果是小寫字母,則轉(zhuǎn)換成大寫字母,否則不進(jìn)行轉(zhuǎn)換,函數(shù)返回轉(zhuǎn)換后或原來(lái)的字符。本函數(shù)仿照toupper()庫(kù)函數(shù)的功能編寫(toupper(c)是將變量c字母轉(zhuǎn)換成大寫字母,如果不是小寫字母不轉(zhuǎn)換)chartoupper1(charch)if(ch>=a&&ch<=z)ch-=32;/*小寫字母比對(duì)應(yīng)的大寫字母ASCII碼值大32*/returnch;4 、判斷一個(gè)字符是否是字母(或數(shù)字)根據(jù)實(shí)參傳給形參的字符,判斷是否是字母(或數(shù)字),如果是字母(或數(shù)字)返回1,否則返回0。此函數(shù)是根據(jù)庫(kù)函數(shù)isalpha()
3、(或isdigit()來(lái)編寫的。intisalpha1(charch)/*判斷是否是字母*/if(ch>=A&&ch<=Z|ch>=a&&ch<=z)return1;elsereturn0;intisdigit1(charch)/*判斷是否是數(shù)字字符*/if(ch>=0&&ch<=9)return1;elsereturn0;5 、根據(jù)學(xué)生成績(jī),返回其等級(jí)charfun(floatcj)charc;switch(int)cj/10)case10:case9:c=A;break;case8:c=B;break;ca
4、se7:c=C;break;case6:c=D;break;default:c=Ereturnc;6、求1+2+.+n(1)用循環(huán)intsum(intn)inti;for(i=1;i<=n;i+)s+=i;(2)使用遞歸longsum(intn)if(n=1)return1;elsereturnsum(n-1)+n;根據(jù)本題擴(kuò)展:求s=1+(1+2)+(1+2+3)+.+(1+2+n)voidmain()longs=0,s1=0;inti,n;scanf(“%d”,&n);for(i=1;i<=n;i+)s1+=i;/*計(jì)算出每一項(xiàng)的值,通過(guò)累加得到*/s+=s1;/*將每
5、一項(xiàng)的值累加到結(jié)果中去*/printf(“s=%ld”,s);7 、求n!(1)用循環(huán)longjiec(intn)inti;longs=1;for(i=1;i<=n;i+)s*=i;returns;(2)使用遞歸longjiec(intn)if(n=1)return1;elsereturnjiec(n-1)*n;根據(jù)本題擴(kuò)展:求s=1!+2!+3!+.+n!n的值最好不要太大voidmain()longs=0,s1=1;inti,n;long 型存不下,輸出時(shí)會(huì)輸出一個(gè)負(fù)數(shù)*/scanf(“%d”,&n);/*輸入n的值不要太大,否則結(jié)果for(i=1;i<=n;i+)s1
6、*=i;/*計(jì)算出每一項(xiàng)的值,通過(guò)累乘得到*/s+=s1;/*將每一項(xiàng)的值累加到結(jié)果中去*/printf(“s=%ld”,s);8 、求某整數(shù)的因子之和intinz(intn)/*計(jì)算數(shù)n的因子之和(包括1和n本身),函數(shù)返回因子之和*/ints=0,i;for(i=1;i<=n;i+)/*通過(guò)本循環(huán),將1-n的數(shù)一個(gè)一個(gè)拿來(lái)看是否能被n整除,如果是真因子的話,就不包括1和n本身*/if(n%i=0)s+=i;/*一個(gè)數(shù)的因子,就是能被其整除的數(shù)*/returns;9 、判斷一個(gè)整數(shù)是否是素?cái)?shù)intss(intn)/*如果是素?cái)?shù)返回1,否則返回0*/inti;for(i=2;i<n
7、/2;i+)if(n%i=0)return0;return1;10 、求一個(gè)整數(shù)的反序數(shù)longfxs(longn)/*函數(shù)返回反序數(shù),形參需要原來(lái)的數(shù)*/longfan=0;while(n!=0)fan=fan*10+n%10;n/=10;returnfan;11 、判斷一個(gè)數(shù)是否是回文數(shù)longhw(longn)/*如果是回文數(shù)函數(shù)返回1,否則返回0*/longfan=0,m=n;while(n!=0)fan=fan*10+n%10;n/=10;if(fan=m)return1;elsereturn0;12 、判斷一個(gè)數(shù)是否是水仙花數(shù)intsxh(longn)/*判斷任意位數(shù)的整數(shù)是否是水
8、仙花數(shù),是水仙花數(shù)返回1,不是返回0*/longg,i,s=0,m=n;while(n!=0)/*通過(guò)本循環(huán)語(yǔ)句,將數(shù)n從個(gè)位數(shù)字開始一個(gè)個(gè)位數(shù)的數(shù)字的立方累加到變量s中*/g=n%10;s=g*g*g;n/=10;if(s=m)return1;elsereturn0;13 、計(jì)算x的y次方本函數(shù)用于計(jì)算x的y次方(x,y為整型,函數(shù)返回值為long型)。仿照庫(kù)函數(shù)pow()(pow(x,y)是用于計(jì)算x的y次方的庫(kù)函數(shù),不過(guò)該函數(shù)的形參x,y和返回值均為double類型)編寫。longpow1(intx,inty)longs=1;inti;for(i=1;i<=y;i+)/*將變量x的
9、值累乘y次*/s*=x;/*每次將上次累乘的結(jié)果再乘以x*/returns;14 、計(jì)算n個(gè)n(n為一位十進(jìn)制數(shù))本函數(shù)用于計(jì)算n個(gè)n的值,比如:333(3個(gè)3),4444(4個(gè)4)。longmm(intn)/*n為一個(gè)十進(jìn)制數(shù)字*/inti;longs=0;for(i=1;i<=n;i+)s=s*10+n;returns;本函數(shù)可以應(yīng)用于這樣的題目:求s=1-1/22+1/333-1/4444+1/55555-1/666666主函數(shù)可以寫成:voidmain()doubles=0;inti,sign=1;/*sign用來(lái)處理每項(xiàng)的符號(hào)(正或負(fù))*/for(i=1;i<=6;i+)
10、s+=sign*mm(i);/*因?yàn)閙m()函數(shù)返回的值是長(zhǎng)整型,所以必須用,而不能用1,因?yàn)檎统哉?,結(jié)果是整型*/sign=-sign;/*每次變換一下sign的符號(hào)(正或負(fù))*/這樣的題目包括:求s=a+aa+aaa+aaaa+aa.aa(n個(gè)a),a和n者B在1-9之間。longfun(inta,intn)longs=0,t=0;inti;for(i=1;i<=n;i+)t=t*10+a;s+=t;returns;/*或者return(s);*/15 、求兩個(gè)整數(shù)的最大公約數(shù)(1)輾轉(zhuǎn)相除法intfun(intm,intn)intt,r;if(m<n)t=m;m=n;n
11、=t;/*保證m>n,如果m<n,則交換兩個(gè)變量的值*/r=m%n;while(r!=0)m=n;n=r;r=m%n;returnn;/*n為最大公約數(shù)*/(2)窮舉法(按數(shù)學(xué)定義)intfun(intm,intn)/*此方法可以求多個(gè)數(shù)的最大公約數(shù)*/inti,min,gys;if(m<n)min=m;/*找出兩個(gè)數(shù)中的最小數(shù)*/elsemin=n;for(i=1;i<min;i+)if(m%i=0&&n%i=0)gys=i;returngys;16 、計(jì)算Fibonacci數(shù)列的第n項(xiàng)本函數(shù)完成的功能:計(jì)算出該數(shù)列的第n項(xiàng)的值,并返回。遞歸方法lon
12、gfbnc(longn)if(n=1|n=2)return1;elsereturnfbnc(n-1)+fbnc(n-2);/*從第三項(xiàng)開始,后一項(xiàng)是前面兩項(xiàng)之和*/17 、數(shù)組的輸入一維數(shù)值型數(shù)組的輸入:voidintput1(floata,intn)/*n為數(shù)組a中元素的個(gè)數(shù),此函數(shù)以float型數(shù)組為例*/inti;for(i=0;i<n;i+)scanf(“%f”,&ai);二維數(shù)值型數(shù)組的輸入:voidintput2(floata3,intn)/*n為數(shù)組a中元素的行數(shù),此函數(shù)以float型數(shù)組為例,形參定義時(shí),如果是二維數(shù)組,則第二維(列)的數(shù)字不能少,比如本例中的3*
13、/inti,j;for(i=0;i<n;i+)/*表示行的外循環(huán)*/for(j=0;j<3;j+)/*表示列的內(nèi)循環(huán)*/scanf(“%f”,&aij);18 、數(shù)組的輸出一維數(shù)值型數(shù)組元素的輸出:voidoutput1(floata,intn)/*n為數(shù)組a中元素的個(gè)數(shù),此函數(shù)以float型數(shù)組為例*/inti;for(i=0;i<n;i+)printf(“%”,ai);二維數(shù)值型數(shù)組元素的輸出:voidoutput2(floata3,intn)/*n為數(shù)組a中元素的行數(shù),此函數(shù)以float型數(shù)組為例,形參定義時(shí),如果是二維數(shù)組,則第二維(列)的數(shù)字不能少,比如本例
14、中的3*/inti,j;for(i=0;i<n;i+)/*表示行的外循環(huán)*/for(j=0;j<3;j+)printf(“%”,aij);printf(“n”);/*按行輸出,所以每一行輸出后,輸出一個(gè)換行符*/19 、二分查找/*在有序數(shù)組a中查找值為x的,找到返回找到的數(shù)下標(biāo),沒(méi)找到返回-1*/intfind(floata,floatx,intn)/*有序數(shù)組a中的數(shù)是從小到大,n為數(shù)組中數(shù)的個(gè)數(shù)*/intlow,high,mid;low=0;high=n-1;while(high>=low)mid=(low+high)/2;if(amid=x)returnmid;els
15、eif(amid>x)high=mid-1;elselow=mid+1;return-1;20 、冒泡排序/*對(duì)存放在數(shù)組a中的n個(gè)數(shù)進(jìn)行排序,(或者對(duì)從地址a開始的n個(gè)數(shù)進(jìn)行排序),排序是從小到大)*/voidsort1(inta,intn)inti,j,t;for(i=0;i<n-1;i+)/*排序趟數(shù)*/for(j=0;j<n-1-i;j+)if(aj>aj+1)/*從小到大排序,如果是從大到小排序,則將大于號(hào)改成小于號(hào)*/t=aj;aj=aj+1;aj+1=t;/*不符合小到大的進(jìn)行交換*/21 、直接選擇排序voidsort1(inta,intn)/*對(duì)以地址
16、(指針)a開始的n個(gè)數(shù),按從小到大進(jìn)行排序*/inti,j,k,t;for(i=0;i<n-1;i+)/*排序趟數(shù)*/k=i;for(j=i+1;j<n-1-i;j+)if(aj<ak)k=j;/*從小到大排序,如果是從大到小排序,則將大于號(hào)改成小于號(hào)*/if(k!=i)t=ai;ai=ak;ak=t;/*如果找的極值不在下標(biāo)為i,則進(jìn)行交換*/22 、求字符串長(zhǎng)度本函數(shù)是仿照庫(kù)函數(shù)strlen()的功能編寫的。(1)常歸方法intstrlen1(chars)/*字符串第一個(gè)0的下標(biāo)就是字符串的長(zhǎng)度*/inti;for(i=0;si!=0;i+);/*循環(huán)體中只有一個(gè)空語(yǔ)句,
17、即只有;,沒(méi)有表達(dá)式,本循環(huán)退出時(shí),si!=0為假,即si=0,則i就是字符0的下標(biāo)*/returni;(2)使用指針?lè)椒╥ntstrlen1(chars)char*p1,*p2;p1=s;for(p2=p1;*p2!=0;p2+);/*循環(huán)體中只有一個(gè)空語(yǔ)句,循環(huán)結(jié)束后,指針p2指向0這個(gè)字符*/returnp2-p1;/*兩個(gè)指針相減即為字符串長(zhǎng)度*/23 、字符串拷貝本函數(shù)是仿照庫(kù)函數(shù)strcpy()的功能編寫的。voidstrcpy1(chats1,chars2口)/*將字符串s2拷貝到字符串si中*/inti;for(i=0;s2i!=0;i+)s1i=s2i;s1i=0;/*因上述
18、循環(huán)沒(méi)有將字符串結(jié)束標(biāo)志0拷貝到s1中,所以需要加一個(gè)字符串結(jié)束標(biāo)志0*/24 、字符串連接本函數(shù)是仿照庫(kù)函數(shù)strcat()的功能編寫的。#include<>voidstrcat1(chars1,chars2)/*將字符串s2連接到字符串s1后面*/inti,len=strlen(s1);for(i=0;s2i!=0;i+)s1i+len=s2i;s1i+len=0;/*因上述循環(huán)沒(méi)有將字符串結(jié)束標(biāo)志0拷貝到s1中,所以需要加一個(gè)字符串結(jié)束標(biāo)志0*/25 、字符串比較比較字符串s1與s2的大小,如果s1大于s2返回1,如果s1小于s2返回-1,否則返回0。intstrcmp1(chars1,chars2)inti;for(i=0;s1i!=0|s2i!=0;i+)/*如果有一個(gè)字符串先到0,則用0(ASCII碼為0的字符)與另一個(gè)字符串進(jìn)行比較,0肯定小于任何其他字符*/if(s1i>s2i)return1;elseif(s1i<s2i)return-1;if(s1i=0&&s2i=0)return0;/*說(shuō)明兩個(gè)字符串一樣長(zhǎng),并且前面沒(méi)有比較出誰(shuí)大誰(shuí)小(即前面的字符都
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度車間租賃安全協(xié)議書(含安全生產(chǎn)責(zé)任險(xiǎn))
- 二零二五年度茶業(yè)投資合作框架協(xié)議
- 2025年度解除婚約協(xié)議書(情感修復(fù)與法律支持)
- 二零二五年度油茶種植基地承包與生態(tài)修復(fù)協(xié)議
- 2025年度食堂食品安全風(fēng)險(xiǎn)評(píng)估與監(jiān)督執(zhí)行協(xié)議
- 施工現(xiàn)場(chǎng)施工防生物污染制度
- 施工日志填寫中的施工材料消耗記錄方法
- 個(gè)人商鋪抵押借款合同范本
- 云服務(wù)器托管服務(wù)合同(三)
- 二手廠房買賣合同
- GB/T 45107-2024表土剝離及其再利用技術(shù)要求
- 五年級(jí)上冊(cè)脫式計(jì)算100題及答案
- 大模型在航空航天領(lǐng)域的應(yīng)用:智能探索宇宙的無(wú)限可能
- 酒店行業(yè)客源渠道分析
- 2024年中國(guó)陪診服務(wù)行業(yè)市場(chǎng)發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告-智研咨詢重磅發(fā)布
- AVL-CRUISE-2019-整車經(jīng)濟(jì)性動(dòng)力性分析操作指導(dǎo)書
- 腸道醫(yī)學(xué)解剖和生理學(xué)
- 人教版九年級(jí)英語(yǔ)動(dòng)詞時(shí)態(tài)專項(xiàng)練習(xí)(含答案和解析)
- 蘭州市規(guī)范醫(yī)療服務(wù)價(jià)格項(xiàng)目基準(zhǔn)價(jià)格表
- 火災(zāi)隱患整改登記表
- 普通地質(zhì)學(xué)教材
評(píng)論
0/150
提交評(píng)論