C++編程基礎(chǔ)題訓(xùn)練答案.doc
《C++編程基礎(chǔ)題訓(xùn)練答案.doc》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《C++編程基礎(chǔ)題訓(xùn)練答案.doc(30頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、1、輸入3個(gè)數(shù),求最大數(shù)。#include using namespace std;int main()int a,b,c,max;cout請(qǐng)輸入三個(gè)數(shù)字:abc;max=(ab)?a:b;if(cmax)max=c;cout最大值:maxendl;return 0;2、韓信點(diǎn)兵:有一個(gè)數(shù),用3除余2;用5除余3;用7除余2;求滿(mǎn)足條件的最小數(shù)。#include using namespace std;int main()int a;for(a=1;a1000;a+)if(a%3=2&a%5=3&a%7=2)couta;break;return 0;3、求1+2+3+100#include u
2、sing namespace std;int main()int s=0; int a=1;do s=s+a; a=a+;while(a101);coutsendl;return 0;4、 求1-2+3-4+-100#include using namespace std;int main()int a,s=0,s1=0,s2=0;for(a=1;a-101;a=a-2)s2=s2+a;s=s1+s2;coutsendl;return 0;5、 求1+1/2+1/3+1/100#include using namespace std;void main()float a,m;float s=0
3、;for(a=1;a101;a+)m=1/a;s=s+m;couts=sendl;6、 求輸入n,求n?。ㄐ枧袛鄋的合法性)遞歸調(diào)用#include using namespace std;int fac(int n)if(n=0)return 1;elsereturn fac(n-1)*n;int main()while(1) int x,y,n; coutx; fac(x); coutfac(x)endl;break;return 0;7、 求1!+2!+3!+10!#include using namespace std;int main()int s=0;int t=1;int n;f
4、or(n=1;n11;n+)t=t*n;s=s+t;cout1!+2!+3!+.+10!=sendl;return 0;8、求1+1/2!+1/3!+1/n!,直到1/n!1E-5為止第一種方法:#include using namespace std;void main()double s=0;double t=1;double n=1;dot=t*n;s=s+1/t;n+;while (t1e5);cout1/1!+1/2!+1/3!+.+1/n!=sendl;第二種方法:#include using namespace std;void main()double sum=0.0; /結(jié)果
5、double now=1.0; /現(xiàn)在的1n!double cnt=2.0; /現(xiàn)在的nwhile(now=1e-5)sum+=now;now/=cnt;cnt+=1.0;coutsumendl;9、 用公式求ex=1+x+x2/2!+x3/3!+xn/n!。n取20。#includeusing namespace std;int pow(int x, int n);int f1(int n);int main(int argc, char* argv) int x, n; double ex = 1; cin x; cin n; for (int i=1; i=n; i+) ex += po
6、w(x, i) / (f1(i) * 1.0); cout ex endl; system(pause); return 0;int f1(int n) int s = 1; for (int i=2; i=n; i+) s *= i; return s;int pow(int x, int n) int s = 1; for (int i=1; i=n; i+) s *= x; return s;10、假定f1=1,f2=1;fn=fn-1+fn-2。輸出前50項(xiàng)的值,且要求每行輸出5個(gè)值#include #includeusing namespace std; int f(int n)in
7、t sum;if (n=2)return 1;else sum=f(n-1)+f(n-2);return sum;coutn;f(n);for(i=1;i=n;i+)coutf(i): f(i) ;if(i%5=0)coutendl;return 0; 11、 判斷一個(gè)數(shù)是否為素?cái)?shù)方法1:# include# includeusing namespace std;int main()int i,n,k;cout請(qǐng)輸入一個(gè)數(shù):n;k=sqrt(n);for(i=2;ik)coutn是素?cái)?shù)。endl;else coutn不是素?cái)?shù)。endl;return 0;方法2:#include #includ
8、eusing namespace std; int main() int i,n,m;cout請(qǐng)輸入一個(gè)數(shù):n;m=sqrt(n);for(i=2;im) coutn是素?cái)?shù)。endl; else coutn不是素?cái)?shù)。endl;return 0; 12、 輸出2-1000中的素?cái)?shù)及個(gè)數(shù)。且要求每行輸出8個(gè)素?cái)?shù)。 方法1:#include #include int main() int n=0, i, j,w,k; for(i=2;i=2000; i+) w=1; k=sqrt(i);for (j=2; j=k; j+) if (i%j=0) w=0;break; if (w) +n; if (n
9、%8=0)coutiendl; elsecouti ; coutendl;cout個(gè)數(shù)n=nendl;return 0;方法2:#include #include using namespace std;int main()int i,j,n=0;for(i=2;i2001;i+) for(j=2;j=i;j+) if(j=i) couti ; n+; if(n%8=0) coutendl; if(i%j=0) break; coutendl;cout個(gè)數(shù)為n:nendl;return 0;13、 輸入兩個(gè)整數(shù),求最大公約數(shù)和最小公倍數(shù)。#includeusing namespace std;
10、int fun1(int a,int b);int fun2(int a,int b);int main()int a,b;cout請(qǐng)輸入兩個(gè)整數(shù):ab;int fun1(int a,int b);int fun2(int a,int b); cout最大公約數(shù):fun1(a,b)endl;cout最小公倍數(shù):fun2(a,b)endl;return 0;int fun1(int a,int b)int m,i; m=a=1;i-) if(a%i=0&b%i=0) break; return i;int fun2(int a,int b) int n,j; n=ab?a:b; for(j=n;
11、j=a*b;j+) if(j%a=0&j%b=0) break; return j;14、 輸入一個(gè)非0的一位整數(shù)x,輸入一個(gè)整數(shù)n。輸出n位整數(shù)x x xx。#include#includeusing namespace std;int main()int m,i,s,x,n,j; cout輸入一個(gè)整數(shù)x:x; cout輸入一個(gè)整數(shù)n:n;s=0;for(i=0;i=n;i+) j=pow(10,i); s=s+j;m=x*s;cout結(jié)果:mendl;return 0;15、 輸入n、a。求sn=a+aa+aaa+aa,其中a是一個(gè)非0的一位整數(shù)。#include#includeusing
12、 namespace std;int fun(int a,int b);int main()int n,a,s,i,k;cout輸入一個(gè)整數(shù)n:n; cout輸入一個(gè)整數(shù)a:a;s=0;for(i=0;in;i+)k=fun(a,i);s=s+k;coutSn=sendl;return 0;int fun(int a,int b)int m,i,s,j; s=0;for(i=0;i=b;i+) j=pow(10,i); s=s+j;m=a*s;return m;16、 輸入任意的正整數(shù),將其各位分離出來(lái);求它是幾位數(shù),求各位上數(shù)字的和,求其逆值。#include#includeusing na
13、mespace std;void main()int x,y,m,n,i,j=1,k=0,a20;coutm;y=m;coutendl;for(i=1;i+) j*=10; n=m/j; ai=n; k+; if(n1) break;cout您輸入的位數(shù)是:kendl;int b=1,c,d=0;for(i=1;i=k;i+) b*=10; /coutbendl; cout0;i-) b=b/10; c=m/b; m=m-c*b; d+=c; coutc ;coutendl;/cout你輸入的數(shù)字是k位數(shù)n;cout各位上的數(shù)字之和為:dendl;x=0;do x=x*10+y%10; y=y
14、/10;while(y!=0);cout逆序輸出為:x;coutendl;17、一個(gè)正整數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)稱(chēng)為“完數(shù)”,如6=1+2+3。求1000以?xún)?nèi)所有的完數(shù),每行5個(gè)。#include #include using namespace std;int main()int m,i;cout1000以?xún)?nèi)的完數(shù)有:;for(m=1;m1001;m+)int c=0,n=0; for(i=1;im;i+)if(m%i=0)c=c+i;if (c=m)n+;coutc ;if(n%5=0)coutendl;coutendl;return 0;18、 用迭代法求x=a的平方根。求平方
15、根的迭代公式為xn+1=0.5(xn+a/xn) 。要求前后兩次求出的x的差的絕對(duì)值小于1e-5為止。#include #include #include using namespace std;int main()double x1,x2,a,b;x2=0;x1=1.0;b=1.0;cina;while(b=1e-5)x2=(x1+a/x1)/2;b=fabs(x2-x1);x1=x2;coutx2endl;return 0;19、 用牛頓迭代法求方程在1.5附近的根 2x3-4x2+3x-6=0#include #include #include using namespace std;i
16、nt main()double x=1.5,x0,f,f1;do x0=x;f=2*x0*x0*x0-4*x0*x0+3*x0-6;f1=6*x0*x0-8*x+3;x=x0-f/f1; while(fabs(x-x0)=1e-5);coutx0=x0endl;return 0;20、 用二分法求上面的方程在(-10,10)之間的根#include using namespace std;double fun(double x)return 2*x*x*x-4*x*x+3*x-6;double judge(double e,double a,double b)double c;c=(a+b)/
17、2;if(b-a=e) return c;elseif(fun(c)=0)return c;else if(fun(a)*fun(c)0)/b=c;return judge(e,a,c);else/a=c;return judge(e,c,b);int main()double e; cout請(qǐng)輸入精確度:e; coutjudge(e,-10,10)endl; return 0;21、 打印形狀為直角三角形的九九乘法表。#include using namespace std;int main()int i,j,k;for(i=1;i=9;i+) for(j=1;j=i;j+) coutjxi
18、=; k=i*j; coutk ; if(i=j) coutendl; return 0;22、 百馬百擔(dān)問(wèn)題。有100匹馬,馱100擔(dān)貨,大馬馱3擔(dān),中馬馱2擔(dān),兩匹小馬馱1擔(dān),問(wèn)有大中小馬多少匹,共有多少組解?#include using namespace std;int main()int x,y,z;int m=0;for(x=1;x100;x+) for(y=1;y100;y+) for(z=1;z100;z+) if(x+y+z=100)&(6*x+4*y+z=200) m+; cout第m種方案。endl; cout大馬:x ; cout中馬:y ; cout小馬:zendl;
19、 return 0;23、 數(shù)列1,2,2,3,3,3,4,4,4,4,5, 問(wèn)第100是多少?#include using namespace std;int main()int i,m,n=0; for(i=1;i101;i+) for(m=1;m=i;m+) n+; if(n=100) cout第100個(gè)數(shù):iendl; return 0;24、 求任意一個(gè)整數(shù)的十位上的數(shù)字。#include using namespace std;int main()int m,n,x;coutm;n=m%10;m=(m-n)/10;x=m%10;coutendl;cout其十位數(shù)為:xendl;re
20、turn 0;25、 輸入三個(gè)實(shí)數(shù),判斷能否構(gòu)成三角形;若能,再說(shuō)明是何種類(lèi)型的三角形。#include using namespace std;int main()int a,b,c;coutabc;if(a+b)c&(a+c)b&(b+c)a&(a-b)c&(a-c)b&(b-c)a) if(a=b|a=c|b=c)cout是等腰三角形;else if(a=b&a=c)cout是等邊三角形;else if(a*a+b*b=c*c|a*a+c*c=b*b|b*b+c*c=a*a)cout是直角三角形;else cout是普通三角形;else cout不可以構(gòu)成三角形。endl;return
21、0;26、 輸入任意的a,b,c求一元二次方程ax*x+bx+c=0的根。#include #include using namespace std;int main()int a,b,c;cout請(qǐng)輸入任意三個(gè)數(shù)a,b,c:abc; float x1,x2,d; d=sqrt(b*b-4*a*c); if(d=0) x1=(-b+d)/(2*a); x2=(-b-d)/(2*a); coutx1=x1endl; coutx2=x2endl; else cout無(wú)解endl;return 0;27、 將百分制成績(jī)轉(zhuǎn)換為五級(jí)制成績(jī)#include using namespace std;int
22、main()int s; couts;if(s100|s0)cout0&s60)cout=60&s80) cout=80&s90) cout=90&s=100) cout優(yōu)秀; return 0;28、 輸入年月日,判斷它是該年的第多少天。#include using namespace std;int main()int year,month,day,days=0,i;cout請(qǐng)輸入年月日endl;coutyear;coutmonth;coutday; if(year10000|year0|month13|day31) cout有誤!endl; else if(year%4=0&year%1
23、00=0|year%400=0) for(i=1;imonth;i+) if(i=1|i=3|i=5|i=7|i=8|i=10|i=12) days+=31; else if(i=4|i=6|i=9|i=11) days+=30; else days+=29; else for(i=1;imonth;i+) if(i=1|i=3|i=5|i=7|i=8|i=10|i=12) days+=31; else if(i=4|i=6|i=9|i=11) days+=30; else days+=28; cout它是該年的第days+day天。endl;return 0;29、 假定2007年的一月一日
24、是星期三,求2009年的4月20日是星期幾。#include using namespace std;long alldays(int year,int month,int day);long alldays(int year,int month,int day)int i;long d=0;for(i=1;iyear;i+)if(year%4=0&year%100=0|year%400=0)d+=366;elsed+=365;for(i=1;imonth;i+)if(i=1|i=3|i=5|i=7|i=8|i=10|i=12)d+=31;else if(i=4|i=6|i=9|i=11)d+
25、=30;else if(year%4=0&year%100=0|year%400=0) d+=29;else d+=28; return d+day;int main()int date,i,d;long x=alldays(2007,1,1);long y=alldays(2009,4,20); long z=alldays(2009,4,20)-alldays(2007,1,1)+1;coutendl;date=3;cout間隔z天;coutendl;d=z%7;for(i=1;i7)date=date-7;cout星期date;coutendl;return 0;30、 我國(guó)古代著名的孫
26、子定理也稱(chēng)韓信點(diǎn)兵。 /用現(xiàn)代語(yǔ)言講是:有一個(gè)數(shù),用3除余2,用5除余3,用7除余2,求滿(mǎn)足條件的最小數(shù)。#include using namespace std;int main()int i;for(i=1;i+)if(i%3=2&i%5=3&i%7=2)break;else;coutiendl;return 0;31、 求一個(gè)整數(shù)的各個(gè)數(shù)位上的數(shù)字之和并反序輸出。#include using namespace std;int main()int m1,m2,j=10,i,d=0,a20;cout請(qǐng)輸入任意一個(gè)數(shù)m1;m2=m1;cout反序輸出各位數(shù)endl;for(i=1;i+)m1
27、=m2%j;m2=m2/j;ai=m1; coutm1 ; d+=m1;if(m21)break;coutendl;cout各位數(shù)之和為dendl;return 0;32、 求1+2+3+前n項(xiàng)的和。#include using namespace std;int main()int i,n,s=0;cout請(qǐng)輸入一個(gè)n值:n;for(i=1;i=n;i+)s+=i;cout前n項(xiàng)和為:sendl;return 0;33、 求1-3+5-7+的前100項(xiàng)的和。方法1:#include using namespace std;int main()int i,n=1,m=3,s,s1=0,s2=0
28、;for(i=1;i=100;i+)s1+=n; n+=2; for(i=1;i=50;i+)s2+=m;m+=4;s=s1-2*s2;cout前100項(xiàng)和為:sendl;return 0;方法2:#include void main() int a=1,b=-1,i,j; int m=1,n=1,sum=0; for(i=1;i=100;i+) a*=b; n=m*a; sum+=n; m+=2; cout-sum; coutendl; 34、 求1+(1+2)+(1+2+3)+(1+2+3+4)+的前n項(xiàng)的和#include using namespace std;int main()in
29、t i,n,s=0,s1=0;cinn;for(i=1;i=n;i+)s1+=i; s+=s1;cout前n項(xiàng)和:sendl;35、 求n!#include using namespace std;int main()int i,n;cinn;for(i=n-1;i=1;i-)n*=i; coutn!:nendl;return 0;36、 求1!+2!+3!+n!#include using namespace std;int main()int i,n,s=0,m=1;cinn;for(i=1;i=n;i+) m*=i;s+=m; cout1!+2!+.+n!=sendl;return 0;
30、37、 求1!-3!+5!-7!+前n項(xiàng)的和#include using namespace std;int main()int m,n=1,x=1,y=-1,sum=0;double a,b=1,s=0;cinm;for(int i=1;i=m;i+)n=2*i-1;a=1;for(int j=1;j=n;j+)x*=y;a*=j;b=a*(-x);sum+=b;coutsum endl;return 0;38、 求1*2+2*3+3*4+前n項(xiàng)的和#include using namespace std;int main() int m,i,n,s=0; cinn;for(i=1;i=n;
31、i+)m=i*(i+1);s+=m;couts endl;return 0;39、 從鍵盤(pán)輸入一個(gè)整數(shù),判斷它是否為素?cái)?shù)#include using namespace std;int main()int n,i,m;cinn;for(i=2;in;i+)m=n%i;if(m=0)break;if(m=0)cout不是素?cái)?shù)。endl; elsecout是素?cái)?shù)。endl;return 0;40、 求3到1000之間的所有素?cái)?shù)的和。#include #include using namespace std;int main()int n,i,k,s=0,j=0;for(n=3;n=1000;n+)
32、 k=sqrt(n); for(i=2;ik) coutn ; s+=n; j+; if(j%8=0) coutendl; coutendl;couts=sendl;return 0;41、 驗(yàn)證哥德巴赫猜想:一個(gè)大于2的偶數(shù)總可以分解成兩個(gè)素?cái)?shù)的和。#include #include using namespace std;int f(int x);int f(int a)/判斷是否是素?cái)?shù) int i,j; j=sqrt(a); for(i=2;ij) return 1; else return 0;void main()int n,m,i,k;cout請(qǐng)輸入一個(gè)大于2偶數(shù):m;if(m2|
33、m%2!=0)cout輸入有誤!endl; else cout偶數(shù)m可以拆成兩個(gè)素?cái)?shù)之和endl; for(i=1;i=m/2;i+) n=i; k=m-i; if(f(n)&f(k) cout n kendl; 42、 設(shè)s=1+1/2+1/3+1/n,求與8最接近的s的值及與之對(duì)應(yīng)的n值。#include #include using namespace std;void main()float i,n,s=0;for(i=1;i;i+)n=1/i;s+=n;if(fabs(s-8)=1E-3)break;coutsendl;coutiendl;43、 假定2007年的一月一日是星期三,打
34、印出該年的日歷(仿照臺(tái)歷或掛歷樣式)#include #include using namespace std;void main()cout2007年的日歷endl;int xq=1;for(int i=1;i13;i+)couti月n;cout星期日t星期一t星期二t星期三t星期四t星期五t星期六tendl; if(i=1) xq=1; for(int ii=1;ii=xq;ii+) coutt; else if(xq=7) ; else for(int jj=1;jj=xq;jj+) coutt; if(i=1|i=3|i=5|i=7|i=8|i=10|i=12) for(int j=1
35、;j=31;j+) coutjt; xq+; if(xq=7) coutendl; if(xq=8) xq=1; else if(i=4|i=6|i=9|i=11) for(int k=1;k=30;k+) coutkt; xq+; if(xq=7) coutendl; if(xq=8) xq=1; elseif(i=2) for(int l=1;l=28;l+)coutlt; xq+; if(xq=7) coutendl; if(xq=8) xq=1; coutendl;44、 雞兔同籠一共有40只腳,求雞兔各有多少只,總共有多少種組合。#include #include using nam
36、espace std;void main()int a,b,s,sum;for(a=1;a20;a+)for(b=1;b10;b+)sum=2*a+4*b; if(sum=40) cout雞a只t兔b只t;s=a+b; couts=sendl; 45、 換零錢(qián).把一元錢(qián)全兌換成硬幣(1分2分5分),有多少種兌換方法#include #include using namespace std;void main()int a,b,c,s=0,sum;for(a=1;a=100;a+)for(b=1;b=50;b+)for(c=1;c=20;c+)sum=a+2*b+5*c; if(sum=100) cout一分at; cout兩分bt; cout五分ctendl; s+; cout共有s種方法。endl;
- 溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 川渝旅游日記成都重慶城市介紹推薦景點(diǎn)美食推薦
- XX國(guó)有企業(yè)黨委書(shū)記個(gè)人述責(zé)述廉報(bào)告及2025年重點(diǎn)工作計(jì)劃
- 世界濕地日濕地的含義及價(jià)值
- 20XX年春節(jié)節(jié)后復(fù)工安全生產(chǎn)培訓(xùn)人到場(chǎng)心到崗
- 大唐女子圖鑒唐朝服飾之美器物之美繪畫(huà)之美生活之美
- 節(jié)后開(kāi)工第一課輕松掌握各要點(diǎn)節(jié)后常見(jiàn)的八大危險(xiǎn)
- 廈門(mén)城市旅游介紹廈門(mén)景點(diǎn)介紹廈門(mén)美食展示
- 節(jié)后開(kāi)工第一課復(fù)工復(fù)產(chǎn)十注意節(jié)后復(fù)工十檢查
- 傳統(tǒng)文化百善孝為先孝道培訓(xùn)
- 深圳城市旅游介紹景點(diǎn)推薦美食探索
- 節(jié)后復(fù)工安全生產(chǎn)培訓(xùn)勿忘安全本心人人講安全個(gè)個(gè)會(huì)應(yīng)急
- 預(yù)防性維修管理
- 常見(jiàn)閥門(mén)類(lèi)型及特點(diǎn)
- 設(shè)備預(yù)防性維修
- 2.乳化液泵工理論考試試題含答案