C++50题答案Word下载.docx
- 文档编号:19368396
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:39
- 大小:90.86KB
C++50题答案Word下载.docx
《C++50题答案Word下载.docx》由会员分享,可在线阅读,更多相关《C++50题答案Word下载.docx(39页珍藏版)》请在冰豆网上搜索。
endl;
}
已阅,请放心食用
2.编写一个程序,用户输入年份及月份两个数据,程序输出该月份的天数。
(提示:
对2月要考虑是否闰年,闰年年份要么能被4整除且不能被100整除,要么能被400整除,除次之外都不是闰年)。
voidmain()
intyear,month,days;
请输入年份,月份:
year>
month;
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
days=31;
year<
年"
month<
月有"
days<
天\n"
elseif(month==4||month==6||month==9||month==11)
days=30;
elseif((year%4==0&
&
year%100!
=0)||year%400==0)
else
days=29;
days=28;
3.某大桥按不同型号征收车辆过桥费:
自行车免费,摩托车2元,小汽车5元,大客车与货车8元,货柜车12元。
编写一个程序,按车辆的不同型号计算通过该大桥应征的过桥费。
(提示:
可以用整数对不同型号的车辆进行编码)
//收过桥费
intkind;
1.自行车\n"
2.摩托车\n"
3.小汽车\n"
4.大货车或客车\n"
5.货柜车\n"
请输入汽车种类:
kind;
switch(kind)
case1:
费用:
0元"
break;
case2:
2元"
case3:
5元"
case4:
8元"
case5:
12元"
default:
错误!
4.输入一位同学的考试成绩,若是90~100分,输出“Excellent”,80~89输出“Verygood”,70~79输出“Good”,60~69输出“Pass”,60分以下输出“NoPass”。
#include<
intmarks;
输入考试成绩:
marks;
switch(marks/10)
case10:
case9:
Excellent\n"
case8:
VeryGood\n"
case7:
Good\n"
case6:
Pass\n"
default:
NoPass\n"
5.旅行社的订票量小于10张时,航空公司给予10%的折扣;
订票量大于或等于10张且小于20张时,航空公司给予15%的折扣;
订票量大于或等于20张且小于30张时,航空公司给予30%的折扣;
订票量大于或等于30张时,航空公司给予最高的45%的折扣。
编程输入订票张数及单张机票票价,程序输出折扣率及应付款额。
//旅行社折扣#include<
intnum,price;
floatdiscount,total_price;
输入购买张数和单价:
num>
price;
switch(num/10)
case0:
discount=0.1;
discount=0.15;
discount=0.3;
discount=0.45;
total_price=num*price*(1-discount);
总价格为:
total_price<
6.用户输入一个整数流(输入1000表示数据输入结束),如411306-51-17-12190100
编写程序统计输入流中-1、0和+1的个数。
//输入数流#include<
inta[100],i,j,x=0,y=0,z=0;
输入数流(以1000结束):
if(a[i]==1000)break;
for(j=0;
a[j]!
=1000;
j++)
if(a[j]==-1)x++;
if(a[j]==0)y++;
if(a[j]==1)z++;
该数流中含-1:
x<
项\n"
该数流中含0:
y<
该数流中含1:
z<
7.编写一个程序,求一个自然数中含有多少个2的因子。
如,6含1个2的因子,8含3
个2的因子,11不含2的因子。
(提示,程序应检查用户输入的合法性)。
//求2因子#include<
intx,i,n;
do{
输入整数:
x;
}while(x<
=0);
n=x;
n%2==0;
n/=2;
整数"
含有"
i<
个2因子"
8.编写一个程序解决爱因斯坦台阶问题:
有人走以台阶,若以每步走2级则最后剩1级;
若每步走3级则最后剩2级;
若以每步走4级则最后剩3级;
若以每步走5级则最后剩4级;
若以每步走6级则最后剩5级;
若以每步走7级则最后刚好不剩。
问台阶共有几级?
inti;
if(i%2==1&
i%3==2&
i%4==3&
i%5==4&
i%6==5&
i%7==0)break;
最小可能值是:
9.公鸡5元1只,母鸡3元1只,小鸡1元3只,花了100元钱买100只鸡,问公鸡、母鸡、小鸡各多少只?
//百元买百鸡#include<
intcock,hen,chicken,price;
for(cock=0;
cock<
=20;
cock++)
for(hen=0;
hen<
=33;
hen++)
chicken=100-cock-hen;
if(chicken%3==0&
5*cock+3*hen+chicken/3==100)
公鸡"
只,母鸡"
只,小鸡"
chicken<
只\n"
10.编程实现解决下述问题的算法:
一位顾客在购物时,如果买4个苹果剩下4角钱.如果买5个苹果则缺5角钱,请问,该顾客带了多少钱?
多少钱可以头一个苹果?
intmoney,money1,money2,i,m,n;
for(i=1;
if(4+4*i==5*i-5)
money=4+4*i;
money1=money/10;
money2=money-10*money1;
顾客带了"
money1<
元"
money2<
角,苹果价格为每个"
角\n"
break;
11.编写程序.计算100之内可以被13整除的自然数之和。
inti,sum=0;
=100;
if(i%13==0)
sum+=i;
100以内可以被13整除的自然数之和为:
sum<
12.键盘输入m和n(10<
m<
n≤32000),求出m~n间所有素数且按每行8个数形式输出。
//求m到n的素数#include<
iomanip.h>
intf(inti)
intl;
for(l=2;
l<
i;
l++)
if(i%l==0)
return0;
return1;
intm,n,x,i,j;
intk=0;
do{
输入m,n(其中10<
n≤32000):
m>
n;
}while(m<
=10||m>
=n||n>
32000);
for(i=m;
=n;
if(f(i))
setw(6)<
k++;
if(k%8==0)cout<
13.编写程序打印乘法口诀表。
//打印乘法口诀表#include<
inta,b,t;
=9;
for(j=1;
j<
=i;
'
*'
='
i*j<
\t"
14.编程实现求解最大公约数的欧几里德算法,用户输入两个任意正整数,程序输出他们
的最大公约数。
算法如下:
步骤1:
如果p<
q,则交换p和q。
步骤2:
令r是p/q的余数。
步骤3:
如果r=0,则令g=q并终止;
否则令p=q,q=r并转向步骤2
14.
//求最大公约数#include<
intp,q,r;
输入两个整数:
p>
q;
if(p<
q)
r=q;
q=p;
p=r;
r=p%q;
while(r!
=0)
p=q;
q=r;
r=p%q;
最大公约数是:
q<
15.求不超过正整数n的2的最大幂值,如输入17,程序应输出4(24=16<
17)。
intn,t=1,i;
请输入正整数n:
i++,t*=2)
if(t>
n)
i-1<
\n"
各种取值对根的影响
//二次方程求解#include<
math.h>
floata,b,c,x1,x2,t;
请输入a,b,c:
a>
b>
c;
t=b*b-4*a*c;
if(a==0&
b==0)
根为一切实数\n"
elseif(a==0)
根为"
-c/b<
\n'
elseif(t<
0)
无根\n"
elseif(t==0)
-b/(2*a)<
elseif(t>
(-b+sqrt(t))/(2*a)<
和"
(-b-sqrt(t))/(2*a)<
18.编写一个程序,输入全班同学某门课考试成绩,计算平均成绩并找出其中最高分与最低分。
批量数据通常不事先规定输入的数据数量,而是以一个特殊的标志作为输入结束。
程序根据结束标志统计人数)
//班级分数
inta[100],i,max,min,s=0;
输入同学成绩(以1000结束):
if(a[i]==1000)break;
if(i==0)
max=a[0];
min=a[0];
max=max>
a[i]?
max:
min=min<
min:
s+=a[i];
该班同学成绩中最高分为:
max<
最低分为"
min<
平均分为
s/i<
19.编一程序模拟整数加、减、乘、除四则运算。
当你在键盘上输入
5+6
后,程序将输出=11,当你在键盘上输入11*7后,程序将输出=77。
//模拟四则运算#include<
floata,b;
charx;
请输入算式:
x>
if(x=='
+'
)
="
a+b<
elseif(x=='
-'
a-b<
a*b<
elseif(x=='
/'
a/b<
error!
!
20.把一张1元钞票换成1分、2分和5分的硬币,每种至少有1枚,问有多少种换法?
inti,j,k,m=0;
=50;
k=100-5*i-2*j;
if(k>
=1)
m+=1;
i="
j="
k="
k<
共有"
种结果\n"
21.求自然对数底(e)的近似值。
e的近似值计算公式为:
e111
1!
2!
1r
(n1)!
当余项rn<
ε时停止计算。
设ε=1e-8#include<
main()
doubletemp=1,sum=0;
for(i=1;
temp>
=1e-8;
sum+=temp;
temp/=i;
e=1+1/1!
+1/2!
+1/3!
+.="
setprecision(9)<
}(控制输出流显示浮点数的有效数字个数)
7
22.S=i!
=1!
+2!
++7!
i1
intsum=0,n=1,i;
=7;
n*=i;
sum+=n;
}已阅,请放心食用
23.S=1×
2+3×
4+5×
6++39×
40
//求1×
2+3×
4+5×
6++39×
inti,s=0;
=39;
i+=2)
s+=i*(i+1);
结果是:
s<
24.Y=X-
XX5X7
3
+-
3!
5!
7!
++(-1)n+1
X2n
(2n
1
1)!
+的值,精确到10-6。
//求值,精确到10e-6#include<
inti,x;
输入整数x:
doubletemp=x,s=0;
fabs(temp)>
=1e-6;
s+=temp;
temp=temp*(-x*x)/((float)(i+1)*(i+2));
结果是:
25.编制一个程序,读入一个正整数,并反向输出。
例如,读入123,输出是321。
25.
//反向输出#include<
intx,i,j;
i++)if(x/(int)pow(10,i)==0)break;
inta[100];
j++){
a[j]=(x%(int)pow(10,j+1))/((int)pow(10,j));
反向输出为:
for(intb=0;
b<
b++)cout<
a[b];
/*#include<
charx[100];
输入整数:
x[i];
i++;
for(i-=1;
i>
i--)
int(x[i]-48);
}*/
26.水仙花数问题:
水仙花数是一种三位数,它的值等于每个数字的立方和。
例如,
153=13+53+33。
编程输出小于999的水仙花数。
//水仙花数#include<
inti,a,b,c;
for(i=100;
=999;
a=i/100;
b=(i-100*a)/10;
c=i-100*a-10*b;
if(i==a*a*a+b*b*b+c*c*c)cout<
27.求一整数的等差数列,该数列满足下述条件:
头4项数的和值为26,积值为880。
该数列公差为正整数,否则数列将出现负数;
该数列的首项必须小于5,且其公差也小于5,否则头四项数的和将大于26。
//等差数列
intk=1,d,a1,a2,a3,a4;
boolb=false;
for(k=1;
k++)
for(d=0;
d<
k;
d++)
a1=k-d;
a2=2*k-d;
a3=3*k-d;
a4=4*k-d;
if(a1+a2+a3+a4==26&
a1*a2*a3*a4==880)
该数列通项为:
an="
n-"
b=true;
if(b)break;
已阅,请放心食
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 50 答案