中國石油大學(xué)(華東)C語言習(xí)題答案_第1頁
中國石油大學(xué)(華東)C語言習(xí)題答案_第2頁
中國石油大學(xué)(華東)C語言習(xí)題答案_第3頁
中國石油大學(xué)(華東)C語言習(xí)題答案_第4頁
中國石油大學(xué)(華東)C語言習(xí)題答案_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、付子文付子文C語言習(xí)題集 #scanf(%d%d,&m,&n);fun(m,n,zz);for(m=0;mn;m+)printf(%6d,zzm);printf(n);return0;【設(shè)計型】9.5刪除指定字符請編寫函數(shù)fun,其功能是:從字符串中刪除指定的字符。同一字母的大、小寫按照不同的字符處理。#includevoidfun(charstr,charch)inti,j;for(i=0;stri!=0;i+)if(stri=ch)for(j=i;strj!=0;j+)strj=strj+1;intmain()charstr80;charch;gets(str);scanf(%c,&ch)

2、;fun(str,ch);printf(%sn,str);return0;【設(shè)計型】9.6殺雞用牛刀學(xué)習(xí)遞歸嘍背景:哈哈!我們終于學(xué)了遞歸了,現(xiàn)在大家一定感到非常有意思吧,那個典型的“漢諾塔”問題,一個非常短的程序居然可以完成如此復(fù)雜的工作,真是神奇?。戆?,讓我們也動手編寫一個遞歸程序,當(dāng)然,我們要編寫的不可能太復(fù)雜。功能:求整數(shù)n到m區(qū)間的累加和,其中n二m。輸入:區(qū)間的起始點n區(qū)間的終止點m輸出:累加和要求:使用遞歸算法完成。#includeintfun(intn,intm)intsum=0;if(n=m)sum=sum+m;elsesum=n+fun(n+1,m);returnsum;

3、intmain()intm,n,s;scanf(%d%d,&n,&m);s=fun(n,m);printf(%dn,s);return0;遞歸【設(shè)計型】9.7求最大公約數(shù)遞歸請使用遞歸算法計算正整數(shù)n和m的最大公約數(shù)GCD(n,m)。mm=K_an%m=0GCD(ji7rri)=*GCDrri,n)nmGCD(m,n%m)其它輸入:n和m輸出:n和m的最大公約數(shù)#includevoidfun(intn,intm)intr,t;if(m=n&n%m=0)t二m;elser=n%m;while(r!=0)n=m;m=r;r=n%m;t二m;if(nm)fun(m,n);printf(%dn,t);

4、intmain()intn,m;scanf(%d%d,&n,&m);fun(n,m);return0;【設(shè)計型】9.8求數(shù)列的第N項已知整數(shù)數(shù)列第一項和第二項是1,該數(shù)列從第三項開始,如果該項是奇數(shù)項則它是前兩項之和,如果該項是偶數(shù)項,則它是前兩項之差,即:f(n)=1當(dāng)n=1或2時,f(n)=f(n-1)-f(n-2)當(dāng)n是偶數(shù)時,f(n)=f(n-1)+f(n-2)當(dāng)n是奇數(shù)時,編寫一個遞歸函數(shù),求數(shù)列的第N項。#includeintfun(intn)intN;if(n=1|n=2)N=1;elseif(n%2=0)N=fun(n-1)-fun(n-2);elseif(n%2!=0)N=f

5、un(n-1)+fun(n-2);returnN;intmain()intn;scanf(%d,&n);fun(n);printf(%dn,fun(n);return0;【設(shè)計型】9.9偶數(shù)分解編寫程序,輸入若干個大于2的正整數(shù),如果是偶數(shù),則將其分解為兩個素數(shù)并輸出;如果輸入的奇數(shù),則輸出“xxxisoddnumber!”;輸入為0時程序結(jié)束。只有1和它本身這兩個因數(shù)的自然數(shù)叫做素數(shù),0和1既不是素數(shù)也不是和數(shù)。實現(xiàn)分解的過程用函數(shù)實現(xiàn)。輸入:整數(shù)序列,0輸出:偶數(shù)1=素數(shù)A+素數(shù)B(當(dāng)輸入是偶數(shù)時)奇數(shù)1isoddnumber!(當(dāng)輸入是奇數(shù)時)#include#defineN100voi

6、dfun(intxc)inta,b,j,k,m;inttag1=0,tag2=0;for(j=0;j+)if(xcj=0)break;if(xcj%2=0)a=2;b=xcj-2;for(m=1;m+)for(k=2;ka;k+)if(a%k=0)tag1=1;break;elsetag1=0;for(k=2;kb;k+)if(b%k=0)tag2=1;break;elsetag2=0;if(tag1+tag2=0)printf(%d=%d+%dn,xcj,a,b);break;elsea+;b-;elseprintf(%disoddnumber!n,xcj);intmain()intaN,i

7、;for(i=0;i+)scanf(%d,&ai);if(ai=0)break;fun(a);return0;【設(shè)計型】9.10浮點數(shù)四舍五入請編一卒函數(shù)氏口函數(shù)的功能是使實型數(shù)保留2魚小數(shù),并對第三位進行四舍五A(規(guī)定實型數(shù)為正數(shù)$例如:實型數(shù)為123.4.567,則劉數(shù)返回1234.570000;實型數(shù)為1疵25咼則數(shù)返回1234.560000.,#include#includedoublefun(doublea)doubletemp;intm1,m2;temp=a;m1=(int)(a+0.005)*100);m2=(int)(temp*100);if(m2m1)a=(int)(a*10

8、0)+1.0)/100;elsea=(int)(a*100)*1.0)/100;returna;intmain()doublea;scanf(%lf,&a);printf(%lfn,fun(a);return0;【設(shè)計型】9.11長整型截短編寫一個函數(shù)fun,其功能是:將形參n中,各位上為偶數(shù)的數(shù)取出,并按原來從高位到低位的順序組成一個新的數(shù),并作為函數(shù)值返回。#includeintfun(inta)intyu,i,j=1,sum=0;for(i=0;a!=0;i+)yu=a%10;if(yu%2=0)sum=yu*j+sum;j=j*10;a=a/10;returnsum;intmain()

9、intn;scanf(%ld,&n);printf(Theresultis:%ldn,fun(n);return0;【設(shè)計型】9.12公式求解請編寫函數(shù)扛叫其功能是;計算并輸出下列多頂式的值I#includedoublefun(intn)inti,j,jc;doublesum=1;for(i=1;i=n;i+)jc=1;for(j=1;j=i;j+)jc=jc*j;sum二sum+l.O/jc;returnsum;intmain()intn;doubles;scanf(%d,&n);s=fun(n);printf(s=%fn,s);return0;【設(shè)計型】7.1數(shù)的合并請編寫函數(shù)fun,其功

10、能是:將兩個兩位數(shù)的正整數(shù)a、b合并形成一個整數(shù)放在c中。合并的方式是:將a的十位和個位依次存放在c數(shù)的十位和千位上,b的十位和個位依次存放在c數(shù)的個位和百位上。例如:當(dāng)a=45,b=12,調(diào)用該函數(shù)后,c=5241。部分源程序如下,只需要完成fun函數(shù)的編寫即可。#include#includevoidfun(inta,intb,int*pc)*pc=a/10*10+a%10*1000+b/10+b%10*100;intmain()inta,b,c;scanf(%d%d,&a,&b);fun(a,b,&c);printf(%dn,c);return0;【設(shè)計型】7.2數(shù)組中奇偶數(shù)請編一個函數(shù)

11、fun,函數(shù)的功能是分別求出數(shù)組中所有奇數(shù)之和以及所有偶數(shù)之和。形參n給了數(shù)組中數(shù)據(jù)的個數(shù):利用指針odd返回奇數(shù)之和,利用指針even返回偶數(shù)之和。例如:數(shù)組中的值依次為:1,8,2,3,11,6;則利用指針odd返回奇數(shù)之和15;利用指針even返回偶數(shù)之和16。#include#defineN20voidfun(inta,intn,int*podd,int*peven)inti;*podd=0;*peven=0;for(i=0;in;i+)if(ai%2=0)*peven=*peven+ai;else*podd=*podd+ai;intmain()intaN,i,n,odd,even;s

12、canf(%d,&n);for(i=0;in;i+)scanf(%d,&ai);fun(a,n,&odd,&even);printf(Thesumofoddnumbers:%dn,odd);printf(Thesumofevennumbers:%dn,even);return0;【設(shè)計型】7.3浮點數(shù)四舍五入請編一個函數(shù)voidfun(doublea,double*h),函數(shù)的功能是對變量h中的值保留2位小數(shù),并對第三位進行四舍五入(規(guī)定h中的值為正數(shù))。例如:h值為8.32433,則函數(shù)返回8.32;h值為8.32533,則函數(shù)返回8.33。#includevoidfun(doublea,d

13、ouble*ph)doubletemp;intt;temp=a*1000;t=(int)(temp)%10;if(t=5)*ph=(int)(a*100+1)*1.0/100;else*ph=(int)(a*100)*1.0/100;intmain()doublea,h;scanf(%lf,&a);fun(a,&h);printf(Theresult:%lfn,h);return0;【設(shè)計型】7.4字符移動請編一個函數(shù)voidfun(char*s),函數(shù)的功能是把字符串中所有的字符前移一個位置,串中的第一個字符移到最后。例如:原有的字符串為:Mn.123xyZ,則調(diào)用該函數(shù)后,串中的內(nèi)容為:n

14、.123xyZM。部分程序源碼如下:#include#defineN81voidfun(char*pa)inti;chartemp;temp=*pa;for(i=0;*(pa+1)!=0;i+)*pa=*(pa+1);pa+;*pa=temp;intmain()charaN;gets(a);fun(a);printf(%sn,a);return0;【設(shè)計型】7.5生成新數(shù)給定程序中,函數(shù)fun的功能是:將形參n所指變量中,各位上為偶數(shù)的數(shù)去除,剩余的數(shù)按原來從高位到低位的順序組成一個新的數(shù),并通過形參指針n傳回所指變量。例如,輸入一個數(shù):27638496,新的數(shù):為739。#include#i

15、ncludevoidfun(int*pn)inta,sum=0,i=0;doa=*pn%10;*pn=*pn/10;if(a%2!=0)sum=sum+a*pow(10,i);i+;while(*pn!=0);*pn=sum;intmain()intn=-1;while(n99999999|n0)scanf(%d,&n);fun(&n);printf(%dn,n);return0;【設(shè)計型】7.6字符串轉(zhuǎn)換成整數(shù)請編寫一個函數(shù)fun,它的功能是:將一個數(shù)字字符串轉(zhuǎn)換為一個整數(shù)。例如,若輸入字符串T234,則函數(shù)把它轉(zhuǎn)換為整數(shù)值-1234。函數(shù)fun中給出的語句僅供參考。#include#inc

16、ludeintfun(char*ps)intsum=0,x=0,len,i;len=strlen(ps);if(*ps=-)x=1;for(i=x;ilen;i+)sum=sum*10+(*(ps+i)-0);if(x=1)sum=-sum;returnsum;intmain()/*主函數(shù)*/chars10;intn;gets(s);n=fun(s);printf(%dn,n);return0;【設(shè)計型】7.7二維數(shù)組按列優(yōu)先存放請編寫函數(shù)fun,函數(shù)的功能是:將M行N列的二維數(shù)組中的字符數(shù)據(jù),按列的順序依次放到一個字符串中。例如,二維數(shù)組中的數(shù)據(jù)為:WWWWSSSSHHHH則字符串中的內(nèi)容應(yīng)

17、是:WSHWSHWSHWSH。部分源程序如下:#include#defineM3#defineN4voidfun(charsN,char*qa)inti,j,num=0;for(i=0;iN;i+)for(j=0;jM;j+)*(qa+num)=sji;num+;intmain()chara100,wMN=W,W,W,W,S,S,S,S,H,H,H,H;fun(w,a);puts(a);return0;【設(shè)計型】7.8刪除字符串中指定的星號假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,它的功能是:除了尾部的*號之外,將字符串中其它*號全部刪除。在編寫函數(shù)時,不得使用C語言提供的字符串函

18、數(shù)。例如,字符串中的內(nèi)容為:*A*BC*DEF*G*,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是:ABCDEFG*。#includevoidfun(chars,char*p)inti,j;for(i=p-s;i=0;i-)if(si=*)for(j=i;sj;j+)sj=sj+1;intmain()chars81,*t;gets(s);t=s;while(*t)t+;t-;while(*t=*)t-;fun(s,t);puts(s);return0;【設(shè)計型】7.9統(tǒng)計數(shù)字字符請編寫函數(shù)fun,它的功能是:統(tǒng)計形參s所指字符串中數(shù)字字符出現(xiàn)的次數(shù),并存放在形參t#includevoidfun(char*ps,int*t)inti,num=0;for(i=0;*(ps+i)!=0;i+)if(*(ps+i)=0&*(ps+i)=9)num+;*t=num;intmain()chars80;intt;gets(s);fun(s,&t);printf(%dn,t);return0;【設(shè)計型】7.10將兩個串按要求形成一個新串給定程序的函數(shù)fun的功能是:逐個比較p、q所指兩個字符串對應(yīng)位置中的字符,把ASCII值大或相等的字符依次存放到c所指

溫馨提示

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

最新文檔

評論

0/150

提交評論