C++函數(shù)編程20道習(xí)題匯總含其詳細(xì)程序解答_第1頁
C++函數(shù)編程20道習(xí)題匯總含其詳細(xì)程序解答_第2頁
C++函數(shù)編程20道習(xí)題匯總含其詳細(xì)程序解答_第3頁
C++函數(shù)編程20道習(xí)題匯總含其詳細(xì)程序解答_第4頁
C++函數(shù)編程20道習(xí)題匯總含其詳細(xì)程序解答_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第1題:編寫兩個(gè)函數(shù),函數(shù)功能分別是:求兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù),要求輸入輸出均在主函數(shù)中完成。樣例輸入:15 25樣例輸出:5 75#include<iostream.h>int gys(int a,int b)int i;for(i=a;i>0;i-)if (a%i=0&&b%i=0) return i;break;第2題:編寫函數(shù)factors(num,果沒有該因子則返回0,int gbs(int a,int b)int a,b,c,d;int i;cin>>a>>b;for(i=a;i+)c=gys(a,b);if(i%

2、a=0&&i%b=0)d=gbs(a,b); return i;cout<<c<<' '<<d;break;return 0;int main()k),函數(shù)功能是:求整數(shù)num中包含因子k的個(gè)數(shù),如例如:32=2X2X2X2X2,則 factors(32,2)=5O要求輸入輸出均在主函數(shù)中完成樣例輸入:4 2樣例輸出:樣例輸入:8 3樣例輸出:0#include<iostream.h> int factors(int num,int k) int n=0,a;a=num%k;while(a=0)n+;第3題:編寫函

3、數(shù),函數(shù)功能是:計(jì)算num=num/k; a=num%k;return n; int main() int num,k,b;cin>>num>>k;b=factors(num,k);cout<<b<<endl;return 0;n的階乘,要求輸入輸出均在主函數(shù)中完成。樣例輸入:5樣例輸出:120、#include<iostream.h>return b;int jc(int n)int main()int a,b=1;int n,s;for(a=1;a<=n;a+)cin>>n;b=a*b;第4題:s=jc(n);c

4、out<<s; return 0;編寫函數(shù),函數(shù)功能是:計(jì)算k以內(nèi)(包括k)最大的10個(gè)(不足10個(gè)則是所 有的)能被13或17整除的自然數(shù)之和。要求輸入輸出均在主函數(shù)中完成。樣例輸入:500樣例輸出:4622#include<iostream.h> int sum(int k) int n,c=0,s=0;for(n=k;n>0;n-) if(n%13=0|n%17=0)c+;s+=n;cin>>k;if(c>=10)s=sum(k);break;cout<<s<<endl;return s;return 0;int m

5、ain()int k,s;第5題: 編寫函數(shù),函數(shù)功能是:根據(jù)下列公式求冗的值(直到某一項(xiàng)的值小于給定精度 e為止),精度e由鍵盤輸入,要求輸入輸出均在主函數(shù)中完成。JI112123 1234=1 + + M + 一尺X + - * 乂 X + *,,23353573579樣例輸入:0.0005樣例輸出:3.14058#include<iostream.h>double pai(double e) double s,a,k,p;s=1;a=1/3.0;for(k=2;k+)第6題:編寫程序求s+=a;a=a*(k/(k*2+1); if(a<e) break; p=s*2;r

6、eturn p; int main()double e,p;cin>>e;p=pai(e); cout<<p<<endl;return 0;要求使用函數(shù),函數(shù)功能是:求某個(gè)數(shù)的階乘。n由鍵盤輸入,輸入輸出均在主函數(shù)中完成。注意:0!=1。樣例輸入:3樣例輸出:10#include<iostream.h> int jc(int a)int s=1,i;if(a=0)s=1;elsefor(i=1;i<=a;i+) s=s*i;return s; int main() int n,k,s;double sum=0;cin>>n;fo

7、r(k=0;k<=n;k+) s=jc(k);sum+=s; cout<<sum<<endl;return 0;第7題: 求數(shù)列要求使用函數(shù)計(jì)算該序列的前 N項(xiàng)和Sn,直到Sn大于q為止,q由鍵盤輸入,輸 入輸出均在主函數(shù)中完成。樣例輸入:50樣例輸出:50.4167、#include<iostream.h> float sumfloat q) float s=0,a,n;for(n=1;s<=q;n+) a=(n+1.0)/n;s+=a; return s; int main()float q,s;cin>>q;s=sum(q);c

8、out<<s<<endl;return 0;第8題:求數(shù)列的前n項(xiàng)和3 = 1 + - 1+2 1+2+31+2+3+要求使用函數(shù),函數(shù)功能是:計(jì)算數(shù)列的每 入輸出均在主函數(shù)中完成。樣例輸入:50樣例輸出:1.96079十門-項(xiàng),n由鍵盤輸入。累加過程和輸#include<iostream.h>a=1.0/s;float myx(int n)return a;float a;int main()int i,s=0;int n,i;for(i=1;i<=n;i+)float s=0;s+=i;cin>>n;for(i=1;i<=n;i+

9、) s+=myx(i);cout<<s<<endl; return 0;第9題:編寫函數(shù)fun(num),其中num是一個(gè)n位數(shù),函數(shù)功能是:求整數(shù)num的后n-1位,如果num是一位數(shù)則返回0,要求輸入輸出均在主函數(shù)中完成。樣例輸入:9樣例輸出:0樣例輸入:6734樣例輸出:734樣例輸入:1000 樣例輸出:0 樣例輸入:10101樣例輸出:101#include<iostream.h>#include<math.h> int jw(int x) int a,n,m;if(x<10)a=0;elseint x,c;n=int(log10

10、(x)+1;cin>>x;m=x%int(pow(10,n-1);c=jw(x);a=m;cout<<c<<endl;return a;return 0;int main()第10題: 編寫函數(shù),函數(shù)功能是:判斷輸入的字符是否為數(shù)字字符。 如果是,則輸出YES 否則輸出NQ要求輸入輸出均在主函數(shù)中完成。樣例輸入:5樣例輸出:YES樣例輸入:B樣例輸出:NO#include<iostream>elseusing namespace std;flag=0;int pdsz(char n)return flag;int flag;int main()i

11、f(n>='0'&&n<='9')char n;flag=1;n=getchar();if(pdsz(n)=1) cout<<"yes" else cout<<"no"return 0;第11題: 編寫函數(shù),函數(shù)功能是:將兩個(gè)兩位數(shù)的正整數(shù) a、b合并成一個(gè)整數(shù)c,合并 規(guī)則是將a的十位和個(gè)位分別放在c的千位和個(gè)位,將b的十位和個(gè)位分別放在 c的百位和十位。a、b由鍵盤輸入,輸入輸出均在主函數(shù)中完成。樣例輸入:45 12樣例輸出:4125#include<iostr

12、eam.h>#include<math.h> int hb(int a,int b) int q,g,m,c;q=a/10;return 0;第12題:求數(shù)列的前n項(xiàng)和g=a%10;m=b*10;c=q*1000+m+g;return c; int main()int a,b,c; cin>>a>>b; c=hb(a,b); cout<<c<<endl;1x21 1 12x3 3x4 4x5(T產(chǎn)要求使用函數(shù),函數(shù)功能是:計(jì)算數(shù)列的每一項(xiàng), 入輸出均在主函數(shù)中完成。樣例輸入:10n由鍵盤輸入。累加過程和輸樣例輸出:0.38217

13、9 #include<iostream.h> #include<math.h> double dx(double n) double a,b,c;a=pow(-1,n+1);b=n*(n+1);第13題:求數(shù)列的前n項(xiàng)和c=a/b;return c; int main() double n,s=0,i,a; cin>>n;for(i=1;i<=n;i+)a=dx(i);s+=a; cout<<s<<endl;return 0;要求使用函數(shù),函數(shù)功能是:計(jì)算數(shù)列的每一項(xiàng), 入輸出均在主函數(shù)中完成。樣例輸入:3n由鍵盤輸入。累加過程

14、和輸樣例輸出:123#include<iostream.h> #include<math.h> int an(int n) int s=0,m,a,i;for(i=1;i<=n;i+) m=int(pow(10,i-1);a=m;s+=a;return s; int main()int n,i,a,sum=0;cin>>n;for(i=1;i<=n;i+)a=an(i);sum+=a; cout<<sum<<endl;return 0;第14題: 求滿足F+2+3,+ /我的n的最大值,要求使用函數(shù),函數(shù)功能是:計(jì)算n的立

15、方,k由鍵盤輸入。累加過程和輸入輸出均在主函數(shù)中完成。樣例輸入:10000樣例輸出:13求數(shù)列2!3!疝一同 +1) xn#include<iostream.h>return a;a=lf(i);#include<math.h>int main()s+=a;int lf(int x)int k,s=0,i,n=0,a;n=i-2;int a;cin>>k;cout<<n<<endl;a=x*x*x;for(i=1;s<k;i+)return 0;第15題:直到相鄰兩項(xiàng)之差的絕對(duì)值小于1E-6為止。要求使用函數(shù),函數(shù)功能是:計(jì)算

16、數(shù)列的每一項(xiàng),x由鍵盤輸入。累加過程和輸入輸出均在主函數(shù)中完成。樣例輸入:0.21樣例輸出:1.1n+;p=sn(x,n);q=sn(x,n+1);if(fabs(q-p)<1E-6) break; cout<<p<<endl;return 0;#include<iostream.h>#include<math.h> float sn(float x,float n) float s=1,i,a=1,b=1,m; for(i=1;i<=n;i+) a=a*(0.5-(i-1);b=b*i;第16題:利用級(jí)數(shù)展開式計(jì)算m=1/b;s+=

17、a*m*pow(x,i); return s; int main()float x,k,n=0,p,q;cin>>x;for(k=1;k+)cosx斗+(-1)1sXX XCDS X = 1H2: 4! Q直到某一項(xiàng)的絕對(duì)值小于0.00001為止。要求使用函數(shù),函數(shù)功能是:計(jì)算數(shù)列 的每一項(xiàng),x由鍵盤輸入。累加過程和輸入輸出均在主函數(shù)中完成。樣例輸入:0 樣例輸出:1 樣例輸入:3 樣例輸出:-0.989992c*=k;#include<iostream.h>d=1/c;#include<math.h>e=a*b*d;double an(double x,d

18、ouble n)return e;double a,b,k,c=1,d,e;int main()a=pow(-1,n);double x,s=1,i,p;b=pow(x,2*n);cin>>x;for(k=1;k<=2*n;k+)for(i=1;i+)p=an(x,i);s+=p;if(fabs(p)<0.00001) break; cout<<s<<endl;return 0;第17題:利用級(jí)數(shù)展開式計(jì)算sinxsin x = x3!41一產(chǎn)1+ +一 D 7h7!O -1)1直到某一項(xiàng)的絕對(duì)值小于的每一項(xiàng), 樣例輸入: 樣例輸出: 樣例輸入:

19、 樣例輸出:x由鍵盤輸入。00.00001為止。要求使用函數(shù),函數(shù)功能是:計(jì)算數(shù)列 累加過程和輸入輸出均在主函數(shù)中完成。0.14112#include<iostream.h>#include<math.h>double an(double x,double n) double f,a,b,i,c=1,d;a=pow(-1,n+1);b=pow(x,2*n-1);for(i=1;i<=(2*n-1);i+)c=c*i;for(i=1;i+)d=1/c;p=an(x,i);f=a*b*d;s=s+p;return f;if(fabs(p)<0.00001)int

20、 main()break;double x,s=0,i,p;cout<<s<<endl;cin>>x;return 0;第18題:編寫程序求Fibonacci數(shù)列的前n項(xiàng)階乘之和,即1!+1!+2+3!+5!+。要求使用函 數(shù),函數(shù)功能是:求某個(gè)數(shù)的階乘。n由鍵盤輸入,輸入輸出均在主函數(shù)中完成。注意:.一 -#include<iostream.h>#include<math.h>int jc(int x)int a=1,k;for(k=1;k<=x;k+) a*=k;return a;樣例輸入:6樣例輸出:40450int ma

21、in()int n,i,a,b,s,j,k;cin>>n;a=1;b=1;s=2;for(i=3;i<=n;i+)j=a+b;k=jc(j);s+=k;a=b;b=j; cout<<s<<endl;return 0;第19題:求數(shù)列其中分母為n以內(nèi)(包括n)的素?cái)?shù)。要求使用函數(shù),函數(shù)功能是:計(jì)算數(shù)列的 每一項(xiàng),n由鍵盤輸入。累加過程和輸入輸出均在主函數(shù)中完成。樣例輸入:50樣例輸出:1.66165#include<iostream.h>if(a=1)#include<math.h>d=1.0/n;float an(int n)e

22、lse d=0;return d;float a,b=0,c,d;int i;int main()a=0;for(i=1;i<n;i+)float s=0,n,a;if(n%i=0)int i;a+;cin>>n;for(i=1;i<=n;i+)a=an(i);s+=a;cout<<s<<endl;return 0;第20題:編寫程序求m和n之間(包括m和n, m<=ij所有素?cái)?shù)的平方根之和。要求使用函數(shù),函數(shù)功能是:判斷某一個(gè)數(shù)是否為素?cái)?shù) 出均在主函數(shù)中完成。樣例輸入:100 999樣例輸出:3157.48m和n由鍵盤輸入,要求輸入輸#i

23、nclude<iostream.h>#include<math.h>int pd(int n)int i,m=0,flag=0;for(i=1;i<=n;i+)if(n%i=0)m+;第21題:編寫函數(shù)digit(num,if(m=2)flag=1;return (flag);int main()double m,n,s=0,b,k;cin>>m>>n;for(k=m;k<=n;k+)k),函數(shù)功能是:求整數(shù)b=pd(k);if(b) s=s+sqrt(k); cout<<s<<endl;return 0;nu

24、m從左邊開始的第k位數(shù)字的值,如果num位數(shù)不足k位則返回0。要求輸入輸出均在主函數(shù)中完成樣例輸入:4647 3樣例輸出:4樣例輸入:23523 7樣例輸出:0int num,k,t; cin>>num>>k; t=digit(num,k); cout<<t<<endl; return 0;#include<iostream.h>#include<math.h> int digit(int x,int k) int n,s,a,b;n=int(log10(x)+1; if(n<k)s=0;elsea=x/int(po

25、w(10,n-k);b=a%10;return b; int main()第1題:編寫函數(shù),將字符串中的大寫字母變成對(duì)應(yīng)的小寫字母,小寫字母變成對(duì)應(yīng)的大寫字母,其它字符不變。在主函數(shù)中調(diào)用該函數(shù),完成任意字符串的轉(zhuǎn)換,并輸 出結(jié)果。輸入字符串(允許包含空格),輸出處理后的結(jié)果。樣例輸入:How Are You?樣例輸出:hOW aRE yOU?#include<iostream>using namespace std;#include<string.h>void exc(char a口,int l) int i;for(i=0;i<l;i+)if(ai>=&

26、#39;A'&&ai<='Z')ai=ai+32;else if(ai>='a'&&ai<='z') ai=ai-32;elseai=ai; int main() char a50;int l;gets(a);l=strlen(a);exc(a,l); puts(a);return 0;第2題: 編寫函數(shù),形成n階楊輝三角形。在主函數(shù)中調(diào)用該函數(shù),形成楊輝三角形,并 輸出結(jié)果。輸入階數(shù)n,輸出處理后的結(jié)果。樣例輸入:5樣例輸出:for(j=0;j<n;j+) for(i=0;i<

27、;=j;i+) cout<<a皿i<<"" cout<<endl; return 0;#include<iostream.h> #include<math.h> void yh(int a50,int l) int i,j,k;for(k=0;k<l;k+)ak0=1;ak止1;for(i=2;i<l;i+)for(j=1;j<i;j+)aij=ai-1j-1+ai-1j; int main()int a5050,n,i,j;cin>>n;yh(a,n);第3題: 編寫函數(shù),求一個(gè)字符

28、串的長度。在主函數(shù)中調(diào)用該函數(shù),輸出結(jié)果。輸入字符 用(允許包含空格),輸出字符串的長度。樣例輸入:How Are You?樣例輸出:12#include<iostream>using namespace std;#include<string.h> int len(char a口) int l;l=strlen(a); return l; int main() char a50; int l;gets(a);l=len(a); cout<<l<<endl;return 0;第4題:編寫函數(shù),將字符數(shù)組s2中的前n個(gè)字符復(fù)制到字符數(shù)組si中,不允

29、許使用 strcpy函數(shù)。在主函數(shù)中調(diào)用該函數(shù),完成任意字符串的復(fù)制,并輸出結(jié)果。輸入分2行,第一行為字符用(不包含空格),第二行為 n的值,輸出處理后的 結(jié)果。樣例輸入:Hello,world!8樣例輸出:Hello,wo#include<iostream.h>void cp(char a口,char b口,int n)int i;for(i=0;i<n;i+)bi=ai;第5題:bn尸0,;int main()char a50,b50;int n;cin>>a>>n;cp(a,b,n);cout<<b<<endl;retur

30、n 0;編寫函數(shù),函數(shù)功能是:統(tǒng)計(jì)整數(shù) n的各位上出現(xiàn)數(shù)字1、2、3的次數(shù)。要求輸 入輸出均在主函數(shù)中完成。樣例輸入:123114350樣例輸出:312#include<iostream>b0+;else if(ai='2')b1+;else if(ai='3')b2+;else continue; int main() char a50;using namespace std;#include<string>void cs(char a,int b口,int l)int i;b0=0;b1=0;b2=0;for(i=0;i<l;i

31、+)if(ai='1')第6題:int b50,l;gets(a);l=strlen(a);cs(a,b,l);cout<<b0<<" "<<b1<<" "<<b2<<endl;return 0;編寫程序完成進(jìn)制轉(zhuǎn)換,要求使用函數(shù),函數(shù)功能是:十進(jìn)制轉(zhuǎn)換為二進(jìn)制,輸 入輸出均在主函數(shù)中完成。樣例輸入:125樣例輸出:1111101#include<iostream.h>ai=x%2;x=x/2;int zh(int a口,int x)int i=-1;wh

32、ile(x!=0)i+;return i; int main() int a32,m,n,k;cin>>m;n=zh(a,m);for(k=n;k>=0;k-) cout<<ak; return 0;第7題: 編寫兩個(gè)函數(shù),將n個(gè)正整數(shù)中的素?cái)?shù)按升序排序。函數(shù)功能分別是:判斷一個(gè) 數(shù)是否為素?cái)?shù),以及對(duì)數(shù)組進(jìn)行排序。輸入分 2行:第一行為n的值,第二行為 n個(gè)整數(shù)。要求輸入輸出均在主函數(shù)中完成。樣例輸入:9 9 8 7 6 5 4 3 2 1樣例輸出:2 3 57#include<iostream.h> int order(int a,int b,int

33、 l) int i,m,j,k=0,q,w;for(i=0;i<l;i+)m=0;for(j=1;j<=ai;j+) if(ai%j=0)m+;if(m=2)return 0;bk=ai;k+;for(i=0;i<k-1;i+)q=i;for(j=i+1;j<k;j+)if(bq>bj)q=j;if(q!=i)w=bq;bq=bi,bi=w;return k; int main() int a40,b40,n,l,q;cin>>n;for(l=0;l<n;l+) cin>>al;q=order(a,b,n);for(l=0;l<

34、q;l+) cout<<bl<<""第8題: 編寫函數(shù),功能是交換數(shù)組中的最大數(shù)和最小數(shù)的位置, 并計(jì)算所有數(shù)之和。例 如數(shù)組a有5個(gè)元素3、4、1、5、2,將最大數(shù)5和最小數(shù)1的位置交換后得到 3、4、5、1、2,總和為15。程序中用到的主函數(shù)為:int main()<int aSO,n,lfsun;cin»n;For(i=0;i<n;i+1cin»ai;For(i=B;i<n;i*+)ccut«ai<<H '<:cout«er»dl«5un<<endl;return O;)#include<iostream.h>int fun(int a,i

溫馨提示

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