C++经典编程练习题.docx
- 文档编号:26879271
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:15
- 大小:17.45KB
C++经典编程练习题.docx
《C++经典编程练习题.docx》由会员分享,可在线阅读,更多相关《C++经典编程练习题.docx(15页珍藏版)》请在冰豆网上搜索。
C++经典编程练习题
C++经典编程例题
(1)
1、(已验证!
)计算铁路运费。
已知从甲地到乙地,每张票托运行李不超过50公斤时,按每公斤0.13元,超过50公斤,超过部分按每公斤0.2元计算。
输入行李重量w,计算运费y.
#include
usingnamespacestd;
voidmain()
{
floatmoney=0,weight;
cout<<"请输入货物重量(单位:
千克):
";
cin>>weight;
if(weight<0)
cout<<”数据错误!
”< if(weight<=50) money=weight*0.13; elseif(weight>50) money=50*0.13+(weight-50)*0.2; cout<<"\n总费用是: "< } 2、(已验证! )根据一元二次方程a*x*x+b*x+c=0求解方程。 输入a、b、c的值,求x1、x2的实根. #include #include usingnamespacestd; voidmain() { doublea,b,c,p,x1,x2,D; cout<<"请输入3个数: "< cout<<"a="; cin>>a; cout<<"b="; cin>>b; cout<<"c="; cin>>c; cout<<"方程为: "< D=b*b-4*a*c; if(D<0) cout<<"方程无解! "< if(D==0) { p=-b/(2*a); x1=p+sqrt(D)/(2*a); cout<<"方程有两个相同的实根。 "< cout<<"x1=x2="< } if(D>0) { p=-b/(2*a); x1=p+sqrt(D)/(2*a); x2=p-sqrt(D)/(2*a); cout<<"方程有两个不同的实根。 "< cout<<"x1="< } } 3、(已验证! )分别使用for和while求n! .注解n! =1*2*3*...*n,n由键盘输入。 For: #include usingnamespacestd; voidmain() { inti,n,s; s=1; cout<<"inputn: "; cin>>n; for(i=1;i<=n;i++) s=i*s; cout< } While: #include usingnamespacestd; voidmain() { inti,n,s; s=1; i=1; cout<<"inputn: "; cin>>n; while(i<=n) { s=i*s; ++i; } cout< } 4、(已验证! )百钱买百鸡。 1只公鸡5元,1只母鸡3元,3只小鸡1元,现有100元钱要买100只鸡,有什么解法。 分别使用三重循环和二重循环来解. 鸡翁,鸡婆,鸡雏各: 12、4、84只 鸡翁,鸡婆,鸡雏各: 8、11、81只 鸡翁,鸡婆,鸡雏各: 4、18、78只 鸡翁,鸡婆,鸡雏各: 0、25、75只 (1).三重循环: #include usingnamespacestd; voidmain() { constintcock=20,hen=33,chicken=100; intc,h,ck; for(c=0;c<=cock;c++){ for(h=0;h<=hen;h++){ for(ck=0;ck<=chicken;ck++){ if(((c+h+ck)==100)&&((c*5+h*3+ck/3)==100)&&((ck%3)==0)) cout<<"鸡翁,鸡婆,鸡雏各: "< } } } } (2).两重循环: #include usingnamespacestd; voidmain() { intc,h,ck; for(h=0;h<33;h++) for(ck=0;ck<100;ck++){ c=100-h-ck; if(5*c+h*3+ck/3==100&&ck%3==0&&h+ck<=100) cout<<"鸡翁,鸡婆,鸡雏各: "< } } 5、(已验证! )求所有水仙花数。 所谓水仙花数是指三位数,其各位数立方和等于该数。 如153=1*1*1+5*5*5+3*3*3. (153370371407) #include usingnamespacestd; voidmain() { inta,b,c,d; for(d=100;d<1000;d++) { a=d/100;//分解出百位 b=d/10%10;//分解出十位 c=d%10;//分解出个位 if(d==a*a*a+b*b*b+c*c*c) { cout< } } cout< } 6、(已验证! )解数学灯迷。 有以下算式 ABCD-CDC=ABC,其中ABCD均为一位非负整数,求ABCD的值。 (1098) #include usingnamespacestd; voidmain() { inta,b,c,d,e; for(e=1000;e<10000;e++) { a=e/1000; b=e/100%10; c=e/10%10; d=e%10; if(e-(c*100+d*10+c)==a*100+b*10+c) { cout< } } cout< } 7、(已验证! )从键盘输入一个整数,判断此数是否为回文数。 所谓回文数就是从左到右读与从右到左读是一样的数。 如12321、7887等。 #include usingnamespacestd; boolifn(intx) { intm=0,n; n=x; while(n) { m=m*10+n%10; n=n/10;} if(m==x) returntrue; if(m! =x) returnfalse; } voidmain() { inta; cout<<"输入一个数: "; cin>>a; if(ifn(a)) cout< "< else cout< "< } 8、(已验证! )使用函数计算y=2*x+3,输入x,求y的值。 #include usingnamespacestd; floaty(intx) { return2*x+3; } voidmain() { intx; cout<<"输入X: "; cin>>x; cout<<"Y="< } 9、(已验证! )使用递归函数,求99+97+95+...+3+1之和。 (和是2500。 ) #include usingnamespacestd; intsum(longn,longm) { if(n==m) return(m); else return(m+sum(n,m-2)); } voidmain() { intn,m; cout<<"输入范围: (n~m): "< cout<<"n="; cin>>n; cout<<"m="; cin>>m; cout<<"从"< "< } 10、(已验证! )已知杨辉三角 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10105 1 1 6 1520156 1 .输出前13行的值. #include usingnamespacestd; voidmain() { inta[11],i,j; a[1]=1; for(i=1;i<=13;i++) { a[i]=1; for(j=i-1;j>=2;j--) a[j]=a[j]+a[j-1]; for(j=1;j<=i;j++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 经典 编程 练习题
![提示](https://static.bdocx.com/images/bang_tan.gif)