50道C 编程练习题及解答 下载本文

内容发布更新时间 : 2024/5/19 13:46:26星期一 下面是文章的全部内容请认真阅读。

50道C/C++编程练习题

1、输入3个数,求最大值 int main() { int a,b,c,m; cin>>a>>b>>c; m=a;

if(b>m) m=b; if(c>m) m=c; cout<

2、编程序,求方程ax2+bx+c=0的根 #include #include

using namespace std; int main() {

double a,b,c,d,x1,x2; cin>>a>>b>>c; if(a==0)

if(b==0) cout<<\ else cout<< \ else

{ d=b*b-4*a*c;

if(fabs(d)<=1e-6)

cout<<\ else if(d>1e-6)

{ x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a);

cout<<\ }

else cout<<\方程无实根\\n\ } }

3、输入一个成绩,打印相应的等级 int main() { int a; cin >> a;

if(a>=90) cout<<\

else if(a>=80) cout<<\ else if(a>=70) cout<<\ else if(a>=60) cout<<\ else cout<<\}

4、输入3个double类型的值,判断这3个值是否可以表示一个三角形的三条边。 int main() {

double a,b,c; cin>>a>>b>>c;

if(a+b>c && b+c>a && c+a>b) cout<<\可以构成三角形\ else

cout<<\不可以构成三角形\}

5、输入20个数,求其最大、最小和平均值 int main() {

int i;

int a,max,min,s; cin>>a;

max=min=a; s=a; for(i=1;i<20;i++) { cin>>a;

if(a>max) max=a; if(a

cout<

6、输入若干个数,设输入的第一个数为后面要输入的数的个数,求平均值及最大值。 int main() {

int a,m,s=0; cin>>n; cin>>a; m=a; s=a;

for(int i=1; i>a; s +=a;

if(a>m) m=a; }

cout<<\平均值:\,最大值:\}

1

7、输入若干个数,输入-999表示结束,求平均值及最大值。

#include #include #include using namespace std; int main()

{ int n, count, sum, max; double ave; count = 0; cin >> n;

sum = 0; max = n; while( n != -999 ) { sum = sum + n;

if( n > max ) max = n; count++; cin >> n; }

if( count != 0 )

{ ave=static_cast(sum) / count; cout<

<

cout<<\平均值为:\最大值为:\ } }

8、求和 s=1*1 + 2*2 + 3*3 +...+ 100*100 int main() { int i,t; double s=0;

for(i=1; i<=100; i++) { t=i*i; s=s+t; } }

01263

9、印度国王的奖励,求和 s=2 + 2 + 2 +...+ 2 int main()

{ double t=1,s=0;

for(int i=0; i<=63; i++) { s=s+t; t=2*t; }

cout<

2

10、求和 s=1! + 2! + 3! +...+ 10! int main() { int i; long t,s; t=1; s=0;

for(i=1; i<=10; i++) { t=t*i; s=s+t; } }

11、求 e=1 + 1/1! + 1/2! + 1/3! + ... int main() { int i;

double t,e; i=1; t=1; e=1; while(t>=1e-7) { t=t/i; e=e+t; i=i+1; }

cout<

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)>1e-8) { pi=pi+t; i=i+2; k=-k;

t=double(k)/i; }

cout<<4*pi; }

13、求PI值,PI/2 = 1 + 1/3 + 1/3*2/5 + 1/3*2/5*3/7 + ... #include #include int main() {

int i,j; double pi,t;

i=0; j=1; t=1; pi=0;

while(t>1e-18) { pi=pi+t; i=i+1; j=j+2; t=t*i/j; }

cout<

14、输入20个数,统计其中正数、负数和零的个数。

int main() {

int a,n=0,m=0,s=0;

for(int i=1; i<=20; i++) { cin >> a; if(a>0) n++;

else if(a<0) m++; else s++; }

cout<

15、输入若干个整数,计算其中的奇数之和与偶数之和,假设输入0表示结束。 int main()

{ int a,n=0,m=0; cin>>a; while(a!=0)

{ if(a%2 == 0) n += a;; else m += a; cin >> a; }

cout<

16、写一函数,计算x的y次方(假设x、y都为正整数)。

int pow(int x, int y) { int s=1;

for(int i=1; i<=y; i++) s = s * x; return s; }

17、求水仙花数(一个三位数,其各位数字立方和等于该数字本身)

3

int main() { int i,a,b,c;

for(i=100;i<=999;i++) { a=i/100; b=i/10; c=i;

if(i==a*a*a+b*b*b+c*c*c) cout<

int main() { int i,a,b,c;

for(a=1;a<=9;a++) for(b=0;b<=9;b++) for(c=0;c<=9;c++) { i=a*100+b*10+c;

if(i==a*a*a+b*b*b+c*c*c) cout<

for(i=2;i<=n/2;i++) if(n%i==0) s=s+i; if(s==n) return 1; else return 0; }

int main() { int n;

for(n=2;n<=1000;n++) if perfect(n) cout<

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<=n; i++) { f=f1+f2;