50道C++编程练习题及解答

上传人:ji****72 文档编号:116022431 上传时间:2019-11-15 格式:DOC 页数:8 大小:76KB
返回 下载 相关 举报
50道C++编程练习题及解答_第1页
第1页 / 共8页
50道C++编程练习题及解答_第2页
第2页 / 共8页
50道C++编程练习题及解答_第3页
第3页 / 共8页
50道C++编程练习题及解答_第4页
第4页 / 共8页
50道C++编程练习题及解答_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《50道C++编程练习题及解答》由会员分享,可在线阅读,更多相关《50道C++编程练习题及解答(8页珍藏版)》请在金锄头文库上搜索。

1、<p>&lt;p&gt;&amp;lt;p&amp;gt;&amp;amp;lt;p&amp;amp;gt;50道C/C+编程练习题81、输入3个数,求最大值int main() int a,b,c,m; cin&amp;amp;amp;gt;&amp;amp;amp;gt;a&amp;amp;amp;gt;&amp;amp;amp;gt;b&amp;amp;amp;gt;&amp;amp;amp;gt;c; m=a; if(b&amp;amp;amp;gt;m) m=b; if

2、(c&amp;amp;amp;gt;m) m=c; cout&amp;amp;amp;lt;&amp;amp;amp;lt;m; 2、编程序,求方程ax2+bx+c=0的根#include&amp;amp;amp;lt;iostream&amp;amp;amp;gt;#include&amp;amp;amp;lt;cmath&amp;amp;amp;gt;using namespace std;int main() double a,b,c,d,x1,x2; cin&amp;amp;amp;gt;&amp;amp;amp;

3、gt;a&amp;amp;amp;gt;&amp;amp;amp;gt;b&amp;amp;amp;gt;&amp;amp;amp;gt;c; if(a=0) if(b=0) cout&amp;amp;amp;lt;&amp;amp;amp;lt;&amp;amp;amp;quot;errorn&amp;amp;amp;quot; else cout&amp;amp;amp;lt;&amp;amp;amp;lt; &amp;amp;amp;quot;x=&amp;amp;amp;quot;&

4、amp;amp;amp;lt;&amp;amp;amp;lt;-c/b&amp;amp;amp;lt;&amp;amp;amp;lt;endl; else d=b*b-4*a*c; if(fabs(d)&amp;amp;amp;lt;=1e-6) cout&amp;amp;amp;lt;&amp;amp;amp;lt;&amp;amp;amp;quot;x1=x2=&amp;amp;amp;quot;&amp;amp;amp;lt;&amp;amp;amp;lt;-b/(2*a)&amp;amp;amp;l

5、t;&amp;amp;amp;lt;endl; else if(d&amp;amp;amp;gt;1e-6) x1=(-b+sqrt(d)/(2*a); x2=(-b-sqrt(d)/(2*a); cout&amp;amp;amp;lt;&amp;amp;amp;lt;&amp;amp;amp;quot;x1=&amp;amp;amp;quot;&amp;amp;amp;lt;&amp;amp;amp;lt;x1&amp;amp;amp;lt;&amp;amp;amp;lt;&amp;amp;amp;quo

6、t;,x2=&amp;amp;amp;quot;&amp;amp;amp;lt;&amp;amp;amp;lt;x2&amp;amp;amp;lt;&amp;amp;amp;lt;endl; else cout&amp;amp;amp;lt;&amp;amp;amp;lt;&amp;amp;amp;quot;方程无实根n&amp;amp;amp;quot; 3、输入一个成绩,打印相应的等级int main() int a; cin &amp;amp;amp;gt;&amp;amp;amp;gt; a; if

7、(a&amp;amp;amp;gt;=90) cout&amp;amp;amp;lt;&amp;amp;amp;lt;&amp;amp;amp;quot;A&amp;amp;amp;quot; else if(a&amp;amp;amp;gt;=80) cout&amp;amp;amp;lt;&amp;amp;amp;lt;&amp;amp;amp;quot;B&amp;amp;amp;quot; else if(a&amp;amp;amp;gt;=70) cout&amp;amp;amp;lt;&

8、amp;amp;amp;amp;lt;&amp;amp;amp;quot;C&amp;amp;amp;quot; else if(a&amp;amp;amp;gt;=60) cout&amp;amp;amp;lt;&amp;amp;amp;lt;&amp;amp;amp;quot;D&amp;amp;amp;quot; else cout&amp;amp;amp;lt;&amp;amp;amp;lt;&amp;amp;amp;quot;E&amp;amp;amp;quot;4、输入3个double类型的值,

9、判断这3个值是否可以表示一个三角形的三条边。int main() double a,b,c; cin&amp;amp;amp;gt;&amp;amp;amp;gt;a&amp;amp;amp;gt;&amp;amp;amp;gt;b&amp;amp;amp;gt;&amp;amp;amp;gt;c; if(a+b&amp;amp;amp;gt;c &amp;amp;amp;amp;&amp;amp;amp;amp; b+c&amp;amp;amp;gt;a &amp;amp;amp;amp;&amp

10、;amp;amp;amp; c+a&amp;amp;amp;gt;b) cout&amp;amp;amp;lt;&amp;amp;amp;lt;&amp;amp;amp;quot;可以构成三角形&amp;amp;amp;quot; else cout&amp;amp;amp;lt;&amp;amp;amp;lt;&amp;amp;amp;quot;不可以构成三角形&amp;amp;amp;quot;5、输入20个数,求其最大、最小和平均值 int main() int i; int a,max,min,s; cin&

11、;amp;amp;amp;gt;&amp;amp;amp;gt;a; max=min=a; s=a; for(i=1;i&amp;amp;amp;lt;20;i+) cin&amp;amp;amp;gt;&amp;amp;amp;gt;a; if(a&amp;amp;amp;gt;max) max=a; if(a&amp;amp;amp;lt;min) min=a; s=s+a; cout&amp;amp;amp;lt;&amp;amp;amp;lt;max&amp;amp;amp;lt;&amp;amp;amp;

12、lt;&amp;amp;amp;quot;,&amp;amp;amp;quot;&amp;amp;amp;lt;&amp;amp;amp;lt;min&amp;amp;amp;lt;&amp;amp;amp;lt;&amp;amp;amp;quot;,&amp;amp;amp;quot;&amp;amp;amp;lt;&amp;amp;amp;lt;s/20.0&amp;amp;amp;lt;&amp;amp;amp;lt;endl; 6、输入若干个数,设输入的第一个数为后面要输入的数的个数,求平均

13、值及最大值。int main() int a,m,s=0; cin&amp;amp;amp;gt;&amp;amp;amp;gt;n; cin&amp;amp;amp;gt;&amp;amp;amp;gt;a; m=a; s=a; for(int i=1; i&amp;amp;amp;lt;n; i+) cin&amp;amp;amp;gt;&amp;amp;amp;gt;a; s +=a; if(a&amp;amp;amp;gt;m) m=a; cout&amp;amp;amp;lt;&amp;amp;amp;l

14、t;&amp;amp;amp;quot;平均值:&amp;amp;amp;quot;&amp;amp;amp;lt;&amp;amp;amp;lt;(double)s/n&amp;amp;amp;lt;&amp;amp;amp;lt;&amp;amp;amp;quot;,最大值:&amp;amp;amp;quot;&amp;amp;amp;lt;&amp;amp;amp;lt;m&amp;amp;amp;lt;&amp;amp;amp;lt;endl; 7、输入若干个数,输入-999表示结束,求平均

15、值及最大值。#include&amp;amp;amp;lt;iostream&amp;amp;amp;gt; #include&amp;amp;amp;lt;iomanip&amp;amp;amp;gt;#include&amp;amp;amp;lt;cstdlib&amp;amp;amp;gt; using namespace std; int main() int n, count, sum, max; double ave; count = 0; cin &amp;amp;amp;gt;&amp;amp;amp;gt; n;

16、 sum = 0; max = n; while( n != -999 ) sum = sum + n; if( n &amp;amp;amp;gt; max ) max = n; count+; cin &amp;amp;amp;gt;&amp;amp;amp;gt; n; if( count != 0 ) ave=static_cast&amp;amp;amp;lt;double&amp;amp;amp;gt;(sum) / count; cout&amp;amp;amp;lt;&amp;amp;amp;lt;setiosflags(

17、ios:fixed) &amp;amp;amp;lt;&amp;amp;amp;lt;setprecision(2); cout&amp;amp;amp;lt;&amp;amp;amp;lt;&amp;amp;amp;quot;平均值为:&amp;amp;amp;quot;&amp;amp;amp;lt;&amp;amp;amp;lt;ave&amp;amp;amp;lt;&amp;amp;amp;lt;&amp;amp;amp;quot; 最大值为:&amp;amp;amp;quot;&a

18、mp;amp;amp;lt;&amp;amp;amp;lt;max&amp;amp;amp;lt;&amp;amp;amp;lt;endl; 8、求和 s=1*1 + 2*2 + 3*3 +.+ 100*100int main() int i,t; double s=0; for(i=1; i&amp;amp;amp;lt;=100; i+) t=i*i; s=s+t; 9、印度国王的奖励,求和 s=20 + 21 + 22 +.+ 263 int main() double t=1,s=0; for(int i=0; i&amp;amp;amp;lt;

19、=63; i+) s=s+t; t=2*t; cout&amp;amp;amp;lt;&amp;amp;amp;lt;s/1.4e8&amp;amp;amp;lt;&amp;amp;amp;lt;endl; 10、求和 s=1! + 2! + 3! +.+ 10! int main() int i; long t,s; t=1; s=0; for(i=1; i&amp;amp;amp;lt;=10; i+) t=t*i; s=s+t; 11、求 e=1 + 1/1! + 1/2! + 1/3! + .int main() int i; double t,

20、e; i=1; t=1; e=1; while(t&amp;amp;amp;gt;=1e-7) t=t/i; e=e+t; i=i+1; cout&amp;amp;amp;lt;&amp;amp;amp;lt;e; 12、求PI值,PI/4 = 1 - 1/3 + 1/5 - 1/7 + . int main() int i,k; double pi,t; i=1; t=1; pi=0; k=1; while(fabs(t)&amp;amp;amp;gt;1e-8) pi=pi+t; i=i+2; k=-k; t=double(k)/i; cout&am

21、p;amp;amp;lt;&amp;amp;amp;lt;4*pi; 13、求PI值,PI/2 = 1 + 1/3 + 1/3*2/5 + 1/3*2/5*3/7 + . #include&amp;amp;amp;lt;iostream&amp;amp;amp;gt; #include&amp;amp;amp;lt;cstdlib&amp;amp;amp;gt; int main() int i,j; double pi,t; i=0; j=1; t=1; pi=0; while(t&amp;amp;amp;gt;1e-18) pi=pi+t;

22、i=i+1; j=j+2; t=t*i/j; cout&amp;amp;amp;lt;&amp;amp;amp;lt;setprecision(17)&amp;amp;amp;lt;&amp;amp;amp;lt;2*pi; 14、输入20个数,统计其中正数、负数和零的个数。int main() int a,n=0,m=0,s=0; for(int i=1; i&amp;amp;amp;lt;=20; i+) cin &amp;amp;amp;gt;&amp;amp;amp;gt; a; if(a&amp;amp;amp;gt;0

23、) n+; else if(a&amp;amp;amp;lt;0) m+; else s+; cout&amp;amp;amp;lt;&amp;amp;amp;lt;n&amp;amp;amp;lt;&amp;amp;amp;lt;&amp;amp;amp;quot; &amp;amp;amp;quot;&amp;amp;amp;lt;&amp;amp;amp;lt;m&amp;amp;amp;lt;&amp;amp;amp;lt;&amp;amp;amp;quot; &amp;amp;am

24、p;quot;&amp;amp;amp;lt;&amp;amp;amp;lt;s;15、输入若干个整数,计算其中的奇数之和与偶数之和,假设输入0表示结束。int main() int a,n=0,m=0; cin&amp;amp;amp;gt;&amp;amp;amp;gt;a; while(a!=0) if(a%2 = 0) n += a; else m += a; cin &amp;amp;amp;gt;&amp;amp;amp;gt; a; cout&amp;amp;amp;lt;&amp;amp;amp;lt;n&

25、amp;amp;amp;lt;&amp;amp;amp;lt;&amp;amp;amp;quot; &amp;amp;amp;quot;&amp;amp;amp;lt;&amp;amp;amp;lt;m;16、写一函数,计算x的y次方(假设x、y都为正整数)。int pow(int x, int y) int s=1; for(int i=1; i&amp;amp;amp;lt;=y; i+) s = s * x; return s;17、求水仙花数(一个三位数,其各位数字立方和等于该数字本身)int main() int i,a,b,c; fo

26、r(i=100;i&amp;amp;amp;lt;=999;i+) a=i/100; b=i/10%10; c=i%10; if(i=a*a*a+b*b*b+c*c*c) cout&amp;amp;amp;lt;&amp;amp;amp;lt;i&amp;amp;amp;lt;&amp;amp;amp;lt;endl; int main() int i,a,b,c; for(a=1;a&amp;amp;amp;lt;=9;a+) for(b=0;b&amp;amp;amp;lt;=9;b+) for(c=0;c&amp;amp;a

27、mp;lt;=9;c+) i=a*100+b*10+c; if(i=a*a*a+b*b*b+c*c*c) cout&amp;amp;amp;lt;&amp;amp;amp;lt;i&amp;amp;amp;lt;&amp;amp;amp;lt;endl; 18、编写一个函数,确定一个整数是否为完全数(一个数,等于他的因子之和)。用这个函数确定和打印1到1000之间的所有完全数。int perfect(int n) int i,s=1; for(i=2;i&amp;amp;amp;lt;=n/2;i+) if(n%i=0) s=s+i; if(s=n) r

28、eturn 1; else return 0;int main() int n; for(n=2;n&amp;amp;amp;lt;=1000;n+) if perfect(n) cout&amp;amp;amp;lt;&amp;amp;amp;lt;n&amp;amp;amp;lt;&amp;amp;amp;lt;endl; 19、写一函数,求斐波那契数列的第n项。int fib(int n) int i,f1,f2,f; if(n=1|n=2) return 1; f1=1; f2=1; for(i=3; i&amp;amp;amp;lt;=

29、n; i+) f=f1+f2; f1=f2; f2=f; return f;20、写一个函数,取一个整数值并返回将此整数的各数字反序的数值int reverse(int n) int s=0; while(n) s = s * 10 + n % 10; n /= 10; ; return s;21、写一个函数,将一个整数的各位数字的反序打印void show(int n) while(n) cout &amp;amp;amp;lt;&amp;amp;amp;lt; n % 10 &amp;amp;amp;lt;&amp;amp;amp;lt; &amp;

30、amp;amp;quot; &amp;amp;amp;quot; n /= 10; ;void show(int n) if(n &amp;amp;amp;lt; 10) cout &amp;amp;amp;lt;&amp;amp;amp;lt; n; else cout &amp;amp;amp;lt;&amp;amp;amp;lt; n % 10 &amp;amp;amp;lt;&amp;amp;amp;lt; &amp;amp;amp;quot; &amp;amp;amp;quot; show(n / 10)

31、; 22、写一个函数,将一个整数的各位数字的按顺序打印出来void show(int n) int k = 1, m = n; while(m &amp;amp;amp;gt; 10) k *= 10; m /= 10; while(n) cout &amp;amp;amp;lt;&amp;amp;amp;lt; n / k &amp;amp;amp;lt;&amp;amp;amp;lt; &amp;amp;amp;quot; &amp;amp;lt;/p&amp;amp;gt;&amp;lt;/p&amp;gt;&lt;/p&gt;</p>

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号