i++;}
}
cout<<"水仙花数个数:
"<
return0;
}
11.题目:
找出1-200之间的完数及个数n(完数是一个数的因子之和是这个数本身。
例如6=1+2+3)。
#include
usingnamespacestd;
voidmain()
{inti,j,sum;
for(i=2;i<=200;i++)
{sum=0;
for(j=1;j
if(i%j==0)sum+=j;
if(sum==i)
{cout<";
for(j=1;j
if(i%j==0)cout<cout<}
}
12.题目:
编写一个C++函数max,输入参数为3个实数,输出为其中的最大数。
#include
usingnamespacestd;
voidmain()
{
intmax(inta,intb,intc);
inta,b,c,m;
cin>>a>>b>>c;
m=max(a,b,c);
cout<}
intmax(intx,inty,intz)
{
intn;
if(x>y)
{if(x>z)n=x;
elsen=z;}
else
{if(y>z)n=y;
elsen=z;}
return(n);
}
13.题目:
编写一个函数:
intisSushu(intn),判断n是否是素数。
#include
#include
usingnamespacestd;
voidmain()
{
intisSushu(intn);
intn,flag;
cin>>n;
flag=isSushu(int(n));
if(flag==1)cout<<"是素数"<if(flag==0)cout<<"不是素数"<}
intisSushu(intn)
{intq,k,i;
k=int(sqrt(n));
for(i=2;i<=k;i++)
{if((n%i)==0){q=0;break;}
}
if(i>k){q=1;}
return(q);
}
14.题目:
从键盘中分别给两个整形变量x和y赋值为20和10,通过编程使它们的值交换,然后输出交换以后的x和y的值。
#include
usingnamespacestd;
intmain()
{
intx,y,z;
cout<<"请输入x,y的值:
";
cin>>x>>y;
z=x;
x=y;
y=z;
cout<<"x="<return0;
}
15.题目:
利用switch语句将输入的百分制成绩转换成相应的等级。
成绩等级
100~90优秀
89~80良好
79~70中等
69~60及格
59~0不及格
#include
usingnamespacestd;
intmain()
{
floatscore;
cout<<"请输入成绩:
";
cin>>score;
if(score>=0&&score<=100)
switch(int(score)/10)
{
case10:
case9:
cout<优秀"<case8:
cout<良好"<case7:
cout<中等"<case6:
cout<及格"<default:
cout<不及格"<}
else
cout<<"输入数据有误!
"<return0;
}
16.题目:
输入一个自然数num,将该数的每一位数字按反序输出digital。
例如:
输入123456,输出654321。
(要求输入123456)
#include
usingnamespacestd;
voidmain()
{unsignedlongintnum,digital;
cout<<"请输入一个自然数:
";
cin>>num;
do
{
digital=num%10;
num/=10;
cout<}
while(num>0);
cout<}
17.题目:
利用循环语句输出“九九乘法表”。
#include
usingnamespacestd;
intmain()
{
cout<<"\t\t\t九九乘法表"<cout<<"\t\t\t------------------"<for(inti=1;i<=9;i++)
{
for(intj=1;j<=9;j++)
cout<
cout<}
return0;
}
18.题目:
利用for循环和break语句实现:
从键盘上输入若
干个(小于10个)正整数,直到输入负数为止,
计算并输出已输入的正整数之和。
(要求输入:
10,3,9,27,12,-5)
#include
usingnamespacestd;
constintm=10;
intmain()
{
inti,n,sum=0;
cout<<"请输入若干整数(输入负数就结束输入):
"<for(i=0;i{
cin>>n;
if(n<0)break;
sum+=n;
}
cout<<"输入的正整数之和:
"<return0;
}
19.题目:
利用for循环和continue语句实现:
输出100~200之间所有能够被8整除的所有整数。
#include
#include
usingnamespacestd;
intmain()
{
for(inti=100;i<=200;i++)
{
if(i%8!
=0)continue;
cout<}
cout<return0;
}
20.题目:
输入x,计算sin(x)。
计算公式如图片1所示.
当第n项的绝对值小于1e-8时结束,x为弧度,并调用
标准函数sin(x)与求出值进行比较。
(要求输入3.14)
#include
#Include
usingnamespacestd;
constintm=20;
intmain()
{
intn=1;
doublex,t,sinx(0);//变量t保存每一项的值;给sinx变量赋初值0
cout<<"请输入x的值:
";
cin>>x;
t=x;//将求和式的第一项值x赋给t
while(fabs(t)>=0.00000001)
{sinx+=t;
t=-t*x*x/((n+1)*(n+2));
n+=2;
}
cout<<"编程求得的sin("<cout<<"调用标准函数求得的sin("<return0;
}
21.题目:
从键盘上输入a、b、c,计算并输出一元二次方程的解。
#include
#include
usingnamespacestd;
main()
{
floata,b,c,d,x1,x2;
cin>>a>>b>>c;
d=b*b-4*a*c;
if(d<0)
{cout<<"此方程无实根。
"<exit(0);
}
elseif(d==0)
{x1=x2=-b/(2*a);
cout<<"方程有两个相等的根:
"<<"x1=x2="<exit(0);
}
else
{x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
cout<<"方程有两个根:
"<<"x1="<exit(0);
}
return(0);
}
22.题目:
某百货公司为了促销,采用购物打折的优惠办法。
每位顾客一次购物:
(1)在1000元及以上者,按九折优惠
(2)在2000元及以上者,按八折优惠
(3)在3000元及以上者,按七折优惠
(4)在4000元及以上者,按六折优惠
#include
usingnamespacestd;
intmain()
{
floatprice,money;
cout<<"输入购物款数:
"<cin>>money;
switch(int(money)/1000)
{
case0:
price=money;cout<<"优惠价是:
"<case1:
price=money*0.9;cout<<"优惠价是:
"<case2:
price=money*0.8;cout<<"优惠价是:
"<case3:
price=money*0.7;cout<<"优惠价是:
"<default:
price=money*0.6;cout<<"优惠价是:
"<}
return0;
23.题目:
计算PI的近似值,直到最后一项的绝对值小于如图片1
所示的值为止,近似公式如图片2所示.
#include
#include
usingnamespacestd;
intmain()
{
intm,n;
doublepi=0,i;
for(m=1;;m++)
{
if(m%2==0)n=-1;
elsen=1;
i=n*1.0/(2*m-1);
pi=pi+i;
if((1.0/m)<0.00000001)break;
}
cout<<"pi="<<4*pi<return0;
}
24.题目:
根据输入的总行数,输出三角星号。
如果输入5,则输出如下图形:
*
***
*****
*******
*********
(请输入5)
#include
usingnamespacestd;
intmain()
{
intn,i,j;
cin>>n;
for(i=1;i<=n;i++)
{for(j=0;j<=n-i;j++)cout<<"";
for(j=1;j<=2*i-1;j++)cout<<"*";
cout<}
}
25.题目:
鸡、兔共40只,有脚88只,问鸡、兔各多少只。
求解的结果分别存放在变量ji和tu中。
#include
usingnamespacestd;
intmain()
{
intx,y;
for(y=1;y<=22;y++)
{x=40-y;
if(2*x+y*4==88)
cout<<"ji:
"<"<}
return0;
}
26.题目:
输入一个年份,判断该年是否是闰年。
#include
usingnamespacestd;
intmain()
{
intyear;
cout<<"请输入年份:
";
cin>>year;
if((year%4==0&&year%100!
=0)||(year%400==0))
cout<else
cout<return0;
}
27.题目:
根据x的值,计算分段函数y的值。
y的计算公式见课本P40例题2.5所示。
#include
#include
usingnamespacestd;
intmain()
{
doublex,y;
cout<<"请输入x:
";
cin>>x;
if(x<0)y=fabs(x);
elseif(x<10)y=exp(x)*sin(x);
elseif(x<20)y=pow(x,3);
elsey=(3+2*x)*log(x);
cout<<"y="<return0;
}
28.题目:
从键盘上输入一个三角形中三条边a、b、c的长度,请利用下列公式求出三角形的面积。
(注意:
要求程序保证输入的三角形的三条边中的任意两条边大于第三条边)
求面积公式如图片1所示,其中s=(a+b+c)/2。
#include
#include
usingnamespacestd;
intmain()
{
doublea,b,c,s,area;
cin>>a>>b>>c;
if(a+b>c&&b+c>a&&a+c>b)
{s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
cout<<"area="<
}
else
{cout<<"不能组成三角形"<return0;
}
29.题目:
某定义一个C++函数doublefac(int),实现求一个正整数的阶乘。
#include
usingnamespacestd;
longfac(intn)
{longf;
if(n==0)f=1;
elsef=n*fac(n-1);//递归调用,求(n-1)!
returnf;
}
voidmain()
{
longy;
intn;
cout<<"pleaseinputaintegern"<cin>>n;
y=fac(n);//调用fac(n)求n!
cout<="<}
30.题目:
编程求用户输入的两个双精度实数x与y的和(存放在变量he中)、积(存放在变量ji中)。
#include
usingnamespacestd;
doublemain()
{
doublex,y,he,ji;
cin>>x>>y;
he=x+y;
ji=x*y;
cout<<"he="<return0;
}