C++题目和答案(1)
第1题:
输入圆的半径和圆柱的高,依次输出圆周长、圆面积、圆球表面积、圆柱体积(以空格分隔,π取3.14)。
样例输入:1.5 3
样例输出:9.42 7.065 28.26 21.195
第1题:
#include
int main()
{float s,c,d,v,r,h;
cin>>r>>h;
c=3.14*2*r;
s=3.14*r*r;
d=4*3.14*r*r;
v=s*h;
cout
}
第2题:
输入一个华氏温度,要求输出摄氏温度。公式为:c=5/9*(F-32)。 样例输入:100
样例输出:37.7778
第2题:
#include
int main()
{float c,f;
cin>>f;
c=5.0/9*(f-32);
cout
}
第3题:
输入三角形的三条边长a ,b ,c (要求能构成三角形),求三角形面积。 样例输入:3.2 4.4 5.6
样例输出:7.02624
第3题:
#include
#include
int main()
{float a,b,c,area,s;
cin>>a>>b>>c;
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
cout}
第4题:
输入大写字母,输出对应的小写字母。
样例输入:B
样例输出:b
第4题:
#include
int main()
{char c1,c2;
cin>>c1;
c2=c1+32;
cout
第5题:
输入一个正整数n (100
样例输入:153
样例输出:1 5 3
第5题:
#include
int main()
{
int n,a,b,c;
cin>>n;
a=n/100;
n=n-a*100;
b=n/10;
n=n-b*10;
c=n;
cout}
第1题:
输入5个小写字母,将其译成密码。密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,输入‚ahoux ‛,‘a ’->‘b ’->‘c ’
->‘d ’->‘e ’,所以字母‘a ’后面第4个字母是‘e ’,用‘e ’代替‘a ’;字母‘x ’后面不足4个字母,则从‘a ’开始补充,‘x ’->‘y ’->‘z ’->‘a ’->‘b ’,所以字母‘x ’后面第4个字母是‘b ’,用‘b ’代替‘x ’。因此,‚ahoux ‛应译为‚elsyb ‛。
样例输入:ahoux
样例输出:elsyb
第1题:
#include
int main()
{char a;
int i;
for(i=1;i
{
cin>>a;
if(a+4
coutif(a+4>122)
cout}
return 0;}
第2题:
有一分段函数如下,请编写程序,输入x 值,输出y 值。
样例输入:-2
样例输出:14.5
样例输入:1
样例输出:0.393654
样例输入:6
样例输出:0.848872
第2题:
#include
#include
int main()
{
float x,y;
cin>>x;
if(x
y=3*x*x-(5/x);
else if(x
y=1/(2+cos(x));
else
y=sqrt(sin(x)+1);
cout
}
第3题:
有一分段函数如下,请编写程序,输入x 值,输出y 值。
样例输入:0.5
样例输出:0.5
样例输入:1
样例输出:1
样例输入:15
样例输出:34
第3题:
#include
int main()
{
float x,y;
cin>>x;
if(x
y=x;
else if(x
y=2*x-1;
else
y=3*x-11;
cout
}
第4题:
输入一个不多于5位的正整数,要求分3行输出以下信息,第1行输出它是几位数;第2行从高位到低位依次输出每一位数字(以空格分隔,下同);第3行从低位到高位依次输出每一位数字。
样例输入:32100
样例输出:
5
3 2 1 0 0
0 0 1 2 3
样例输入:40
样例输出:
2
4 0
0 4
第4题:
#include
int main()
{int x,a,b,c,d,e;
cin>>x;
a=x/10000;
b=(x-a*10000)/1000;
c=(x-a*10000-b*1000)/100;
d=(x-a*10000-b*1000-c*100)/10;
e=x-a*10000-b*1000-c*100-d*10;
if(a>0)
coutelse if(b>0)
cout0)
cout
else if(d>0)
cout
else
cout
第5题:
输入三角形的三条边a 、b 、c ,如果能构成三角形,求三角形面积和周长,如果不能构成三角形则输出Error 。
样例输入:4.5 5.6 6.7
样例输出:12.4875 16.8
样例输入:1 2 3
样例输出:Error
5题:
#include
#include
int main()
{
float a,b,c,d,l,s;
cin>>a>>b>>c;
if(a+b>c&&a+c>b&&b+c>a)
{d=(a+b+c)/2.0;
l=2*d;
s=sqrt(d*(d-a)*(d-b)*(d-c));
cout
else
cout
}
第6题:
有一分段函数如下,请编写程序,输入x 值,输出y 值。
样例输入:-1
样例输出:-1.84147
样例输入:6.5
样例输出:23204.8
样例输入:12
样例输出:0.048737
第6题:
#include
#include
int main()
{float x,y;
cin>>x;
if(x
y=x*x+2/x+sin(x);
else if(x
y=2*x*x*x*x*x-cos(x);
else
y=1/(sqrt(3*x*x-11));
cout
}
第7题:
输入年份year ,判断是否是闰年,若不是,输出NO ,否则输出YES 。 样例输入:2012
样例输出:YES
第7题:
#include
int main()
{int year,a,b,c;
cin>>year;
a=year%4,b=year%100,c=year%400;
if ((a==0)&&(b!=0)||(c==0))
cout
else
cout
}
第8题:
判断一个数是否为‚水仙花数‛,如果是则输出YES ,否则输出NO 。所谓‚水仙花数‛是指一个3位数, 其各位数字的立方和等于该数本身。例如,153是一个‚水仙花数‛,因为153=1+5+3。
样例输入:1
样例输出:NO
样例输入:153
样例输出:YES
第8题:
#include
#include
int main()
{
int a,b,c,d,e;
cin>>a;
if (a>99&&a
{b=a/100;
c=(a-b*100)/10;
d=a-b*100-c*10; 333
e=b*b*b+c*c*c+d*d*d;
if(a==e)
cout
else cout
else cout
}
第9题:
有一分段函数如下,请编写程序,输入x 值,输出y 值。
样例输入:-2
样例输出:7
样例输入:1
样例输出:2
样例输入:11
样例输出:0.222681
第9题:
#include
#include
int main()
{float x,y;
cin>>x;
if(x
y=3*sqrt(fabs(x)+2)+1;
else
if(x>10)
y=sqrt((x+1)/(2*x*x));
else
y=x*x*x*x*x+1;
cout
}
第10题:
有一分段函数如下,请编写程序,输入x 值,输出y 值。
样例输入:-1
样例输出:-1.4597
样例输入:-0.5
样例输出:1.5874
样例输入:1.57
样例输出:0.999999
第10题:
#include
#include
int main()
{float x,y;
cin>>x;
if(x
y=2*x+cos(x);
else if(x>=1)
y=sin(x)*sin(x);
else
y=1/(pow((x+1),2.0/3));
cout
}
1题:
输入两个正整数m 和n ,编写程序求其最大公约数和最小公倍数。 样例输入:15 25
样例输出:5 75
#include
int main ()
{
int m,n,a,b,r,y;
cin>>m>>n;
a=m,b=n,r=m%n;
while (r!=0)
m=n,n=r,r=m%n;
y=(a*b)/n;
cout
}
第2题:
输出所有大于给定数n 的‚水仙花数‛,n 由键盘输入。所谓‚水仙花数‛是指一个3位数, 其各位数字的立方和等于该数本身。例如,153是一个‚水仙花数‛,因为153=1+5+3。
样例输入:100
样例输出:153 370 371 407
#include
int main()
{
int n,a,b,c,k;
cin>>n;
k=n+1;
for(k=n+1;k
{
a=k/100;
b=k%100/10;
c=k%10;
if(k==a*a*a+b*b*b+c*c*c)
cout
}
} 333
第3题:
一个数恰好等于它的因子之和,这个数就称为‚完数‛。例如,6的因子为1、2、3,并且6=1+2+3,因此6是‚完数‛。编写程序找出小于给定数n 的所有‚完数‛,n 由键盘输入。
样例输入:1000
样例输出:6 28 496
#include
int main()
{
int n,j,l,s,k;
cin>>n;
for(k=1;k
{s=0;
for(j=1;j
{l=k%j;
if(l==0)
s=s+j;
}
if(s==k)
cout
}
}
第4题:
一个数恰好等于它的因子之和,这个数就称为‚完数‛。例如,6的因子为1、2、3,并且6=1+2+3,因此6是‚完数‛。编写程序判断一个数是否为‚完数‛,如果是则输出YES ,否则输出NO 。
样例输入:1
样例输出:NO
样例输入:6
样例输出:YES
#include
int main()
{
int n,j,l,s,k;
cin>>n;
if(n==1)
cout
else
{s=0;
for(j=1;j
{l=n%j;
if(l==0)
s=s+j;
}
if(s==n)
cout
else
cout
}
}
第5题:
任何一个大于1的数如果只能被1和这个数自身整除,这个数就称为‚素数‛或‚质数‛。例如,2、3、5是‚素数‛。编写程序判断一个数是
否为‚素数‛,如果是则输出YES ,否则输出NO 。
样例输入:1
样例输出:NO
样例输入:2
样例输出:YES
#include
int main()
{
int n,j,l,s,k;
cin>>n;
j=0;
for(k=1;k
{
if(n%k==0)
j++;
}
if(j==2)
cout
else
cout
}
第6题:
任何一个大于1的数如果只能被1和这个数自身整除,这个数就称为‚素数‛或‚质数‛。例如,2、3、5是‚素数‛。输入m 和n (m
样例输入:1 10
样例输出:17
#include
#include
int main()
{int i,m,n,j,a,s;
cin>>m>>n;
s=0;
for(i=m;i
{a=0;
for(j=1;j
{if(i%j==0)
a++;}
if(a==2)
cout
}
第7题:
有一分数序列,
计算该序列的前n 项和,n 由键盘输入。
样例输入:20
样例输出:32.6603
#include
int main()
{float a=2,b=1,c,d,i,n,sum=0;
cin>>n;
c=a/b;
for(i=1;i
{sum+=c;
d=b;
b=a;
a=b+d;
c=a/b;
}
cout
}
第8题:
求数列
计算该序列的前n 项和,n 由键盘输入。
样例输入:2
样例输出:0.5
#include
int main()
{
int i,n,a,b;
float c,s;
cin>>n;
s=0;
for(i=1;i
{a*=-1;
b=i;
c=a*1.0/b;
s+=c;}
cout
}
第9题:
编写程序找出一个正整数n 的各位数字中最大的数字,n 由键盘输入。 样例输入:1234
样例输出:4
#include
int main()
{ int n,a,m;
cin>>n;
for(a=0;n>0;n=n/10)
{ m=n%10;
if (m>a)
a=m;
}
cout}
第10题:
编写程序求m 到n 之间(包括m 和n ,m
样例输入:1 10
样例输出:4 4.25
样例输入:8 10
样例输出:NO
#include
int main()
{
float m,n,t,g,sum;
int i,j;
cin>>m>>n;
sum=0;
g=0;
for (i=m;i
{
t=0;
for (j=1;j
{ if (i%j==0)
t+=1;
}
if (t==2)
{
g+=1;
sum=sum+i;
}
}
if (g==0)
cout
else
cout
} */
#include
int main()
{int i,j,k,m,n,l=0;
float pj,sum=0;
cin>>m>>n;
for(i=m;i
{ k=0;
for(j=1;j
{ if(i%j==0)
k++;
}
if(k==2)
{l++;
sum=sum+i;
}
}
if(l==0)
cout
else
{pj=sum/l;
cout
}
}
第11题:
编写程序求n 的阶乘,n 由键盘输入,注意:
样例输入:10
样例输出:3.6288e+006
#include
int main()
{
int n,i;
float a;
cin>>n;
a=1;
for(i=1;i
{
a=a*i;
}
cout} 。
第12题:
编写程序求n 以内(包括n )能被3或7整除的所有自然数的倒数之和。 样例输入:21
样例输出:1.07857
#include
#include
int main ()
{int n,i;
float s;
cin>>n;
s=0;
for(i=1;i
{if(i%3==0||i%7==0)
s=s+1.0/(i*1.0);}
cout
第13题:
编写程序求所有满足下列条件不大于给定数n (100
样例输入:999
样例输出:45
#include
int main()
{int n,t,i,a,b,c;
cin>>n;
t=0;
for(i=100;i
{a=i%10;
b=i/10%10;
c=i/100;
if(b==a+c)
t++;
}
cout
return 0;
}
第14题:
求数列
计算该序列的前n 项和,n 由键盘输入。
样例输入:50
样例输出:1.96079
#include
int main()
{
int i,n,a;
float b,s;
cin>>n;
s=0;
a=0;
for(i=1;i
{a+=i;
b=1.0/a;
s+=b;}
cout
}
第15题:
求数列
计算该序列的前N 项和,N 由键盘输入。
样例输入:10
样例输出:4.03791e+006
#include
int main()
{
int n,i;
float a,s;
cin>>n;
s=0;
a=1;
for(i=1;i
{
a=a*i;
s=s+a;
}
cout
}
第16题:
编写程序,从n 个整数中找到最小的数并输出。输入分2行:第一行为n 的值,第二行为n 个整数。
样例输入:
5
1 5 3 2 0
样例输出:0
#include
int main()
{ int a,m,n,i;
cin>>n;
cin>>m;
a=m;
for(i=1;i
{ cin>>m;
if(m
a=m;
}
coutreturn 0;
}
第17题:
编写程序求 a + aa + aaa + aaaa +…+ aaa…a (n 个a )之和,其中a
和n 由键盘输入。
样例输入:8 5
样例输出:98760
#include
int main()
{
int i,n,a,b,s;
cin>>a>>n;
s=0;
b=a;
for(i=1;i
{s+=b;
a*=10;
b+=a;}
cout
}
第18题:
求数列
计算该序列的前n 项和,
样例输入:2
样例输出:2.5
#include
int main()
{
int i,n,a;
float b,s;
cin>>n;
s=1;
a=1;
for(i=1;i
{a*=i;
b=1.0/a;
s+=b;}
cout
}
第19题:
求数列 n 由键盘输入。
其中分母为n 以内(包括n )的素数,计算该序列之和,n 由键盘输入。 样例输入:10
样例输出:1.17619
#include
#include
int main()
{int i,n,a,j;
float s;
cin>>n;
s=0;
for(i=1;i
{a=0;
for(j=1;j
{if(i%j==0)
a++;}
if(a==2)
s+=1.0/i;}
cout
}
第20题:
求数列
输入正整数n 和任意数x ,计算该序列的前n 项和。
样例输入:5 0.5
样例输出:1.39349
#include
int main()
{
int i,n,a,c;
float x,b,s,d;
cin>>n>>x;
s=1;
a=-1;
b=1;
c=1;
for(i=1;i
{a*=-1;
b*=x;
c*=i;
d=a*b/c;
s+=d;
}
cout
}离作业结束还有
第1题:
编写程序,从任意n 个数中找出最大数和最小数,并将它们相互交换后输出。输入分2行:第一行为n 的值,第二行为n 个数。
样例输入:
5
1 5 3 2 0
样例输出:1 0 3 2 5
#include
int main()
{
int n,a[100],s,k,max,min,i;
cin>>n;
cin>>a[0];
max=a[0];
min=a[0];
s=0;
k=0;
for(i=1;i
{
cin>>a[i];
if(a[i]>max)
{ max=a[i];
s=i;
}
if(a[i]
{ min=a[i];
k=i;
}}
a[s]=min;
a[k]=max;
for(i=0;i
cout
}
第2题:
编写程序,将任意n 个数按从大到小的顺序排序。输入分2行:第一行为n 的值,第二行为n 个数。
样例输入:
5
1 5 3 2 0
样例输出:5 3 2 1 0
#include
int main()
{int a[32],i,j,n,t;
cin>>n;
for(i=0;i
cin>>a[i];
for(j=0;j
{for(i=0;i
if(a[i]
{ t=a[i];
a[i]=a[i+1];
a[i+1]=t;}
}
for(i=0;i
cout}
第3题:
编写程序,利用折半查找法从一个升序排列的数列中查找某数是否存在,如果存在则输出该数的下标,否则输出NO 。输入分3行:第一行为n 的值,代表数列中数的个数,第二行为n 个数(升序排列),第三行为要查找的数。
样例输入:
5
0 1 2 3 5
3
样例输出:3
样例输入:
5
0 1 2 3 5
4
样例输出:NO
#include
int main()
{
int n,a[100],i,f,x,m;
cin>>n;
for(i=0;i
cin>>a[i];
cin>>x;
for(i=0;i
{
if(a[i]==x)
{
m=i;
f=1;
}
}
if(f==1)
cout
else
cout
}
第4题:
编写程序,将一个数组中的数循环左移。输入分2行:第一行为n 的值,第二行为n 个数。
样例输入:
5
1 5 3 2 0
样例输出:5 3 2 0 1
#include
int main()
{
int n,i,f,a[100],t;
cin>>n;
for(i=0;i
cin>>a[i];
f=a[0];
for(i=0;i
{
a[i]=a[i+1];
}
a[n-1]=f;
for(i=0;i
cout}
第5题:
编写程序,从任意n 个数中找出素数并输出。输入分2行:第一行为n 的值,第二行为n 个整数。
样例输入:
5
1 3 5 2 0
样例输出:3 5 2
#include
int main()
{int n,i,j,a[100],t;
cin>>n;
for(i=0;i
{cin>>a[i];
t=0;
for(j=1;j
{
if(a[i]%j==0)
t=t+1;
}
if (t==2)
cout}
}
第6题:
编写程序,将一个字符串首尾互换,并与原字符串连接后输出。输入字符串(不包含空格),输出处理后的结果。
样例输入:china
样例输出:chinaanihc
#include "iostream.h"
#include "string.h"
int main()
{char aa[100],n,i;
cin>>aa;
n=strlen(aa);
for(i=0;i
aa[n+i]=aa[n-i-1];
aa[2*n]='\0';
cout
return 0;}
第7题:
输入n 个数,找出其中的偶数并计算平均值后输出。输入分2行:第一行为n 的值,第二行为n 个数;输出分2行:第一行为其中的偶数,第二行为所有偶数的平均值。
样例输入:
5
1 5 3 2 0
样例输出:
2 0
1
#include
int main()
{
int a[50],n,i,s,p;
double t;
cin>>n;
s=0;
p=0;
for(i=0;i
{cin>>a[i];
if(a[i]%2==0)
{s++;
p=p+a[i];
cout}
}
cout
t=p*1.0/s;
cout
return 0;
}
第8题:
编写程序求Fibonacci 数列前n 项和,n 由键盘输入。
样例输入:5
样例输出:12
#include
int main()
{
int a[100],b,i,n;
cin>>n;
a[0]=1;
a[1]=1;
b=0;
i=2;
while(i
{a[i]=a[i-1]+a[i-2];
i++;}
for(i=0;i
{b=b+a[i];}
cout
}
第9题:
编写程序,输入若干学生的成绩,计算平均分,并输出低于平均分的学生成绩。输入分2行:第一行为n 的值,第二行为n 个数;输出分2行:第一行为平均分,第二行为低于平均分的成绩。
样例输入:
5
60 70 80 90 100
样例输出:
80
60 70
#include
int main()
{int s,i,n,a[100];
float j,c;
cin>>n;
s=0;
c=0;
for(i=0;i
{cin>>a[i];}
for(i=0;i
{s=s+a[i];
c=c+1;}
j=s/c;
cout
for(i=0;i
{if(a[i]
cout第10题:
编写程序,从任意n 个数中找出素数,计算素数之和,并按从大到小顺序排序。输入分2行:第一行为n 的值,第二行为n 个整数;输出分2行:第一行为素数之和,第二行为素数排序结果。
样例输入:
5
1 3 5 2 0
样例输出:
10
5 3 2
#include
int main()
{int a[100],b[100],c,d,r,i,j,n,m=0,k=0;
cin>>n;
for(i=0;i
{cin>>a[i];}
for(i=0;i
{c=0;
for(j=1;j
{if(a[i]%j==0)
c++;}
if(c==2)
{b[k]=a[i];
k++;}}
for(i=0;i
{m=m+b[i];}
cout
for(i=0;i
{for(j=1;j
{if(b[j-1]
{d=b[j-1];
b[j-1]=b[j];
b[j]=d;}}}
for(i=0;i
{cout
}
第11题:
编写程序,计算两个矩阵(均为2行3列)之和。输入分2*2行:前两行为第一个矩阵,后两行为第二个矩阵。
样例输入:
1 2 3
4 5 6
3 5 9
1 7 6
样例输出:
4 7 12
5 12 12
#include
int main()
{
int a[2][3],b[2][3],c[2][3],i,j;
for(i=0;i
{
for(j=0;j
cin>>a[i][j];
}
for(i=0;i
{
for(j=0;j
cin>>b[i][j];
}
for(i=0;i
{
for(j=0;j
c[i][j]=a[i][j]+b[i][j];
}
for(i=0;i
{
for(j=0;j
{
cout
}
cout
}
}
第12题:
编写程序,输入由数字字符构成的字符串,分别统计该字符串中数字字符对应的数字中奇数和偶数的个数。
样例输入:7843028503
样例输出:4 6
#include
#include
int main()
{
char a[1000];
int b,c=0,d=0,i;
cin>>a;
b=strlen(a);
for(i=0;i
{if(a[i]%2==0)
c++;
else
d++;}
cout
}
第13题:
编写程序,输入字符串(包含多个‘
外的‘*’。
样例输入:*******A*BC*DEF*G****
样例输出:*******ABCDEFG****
#include
#include
int main()
{char a[100],b[100];
int c,d,e,i,j,k,n,m;
cin>>a;
for(i=0;a[i]=='*';i++)
{b[i]=a[i];}
n=i;
for(j=strlen(a)-1;a[j]=='*';j--)
m=j;
for(j=n;j
{if(a[j]!='*')
{b[i]=a[j];
i++;} *’),删除所有除前导和尾部以
}
for(j=m;a[j]=='*';j++)
{b[i]=a[j];
i++;}
b[i]=0;
cout
}
第14题:
编写程序,输入n 个正整数,按这些数的因子(包括这个数自身)个数从小到大排序,如果因子个数相等,则从大到小排序。例如:输入五个数1,2,3,4,5,因子个数分别为1,2,2,3,2,则排序结果为
1(1),5(2),3(2),2(2),4(3),括号内为这个数的因子个数。其中2,3,5的因子个数均为2,所以从大到小排序为5,3,2。输入分2行:第一行为n 的值,第二行为n 个数。
样例输入:
9
1 2 3 4 5 6 7 8 9
样例输出:1 7 5 3 2 9 4 8 6
#include
int main()
{
int a[20],b[20];
int i,k,t,n;
cin>>n;
for(i=0;i
cin>>a[i];
for(i=0;i
{
b[i]=0;
for(k=1;k
if(a[i]%k==0)
b[i]++;
}
for(k=0;k
for(i=0;i
if(b[i]>b[i+1])
{t=b[i];b[i]=b[i+1];b[i+1]=t;
t=a[i];a[i]=a[i+1];a[i+1]=t;}
else if(b[i]==b[i+1]&&a[i]
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
for(k=0;k
cout}
第15题:
输入n 名学生的学号和一门课的成绩,求出平均分并输出;把高于平均分的学生学号和成绩打印出来。
#include
int main()
{ int i,n,t,s=0,a[20],b[20];
float m;
cin>>n;
for(i=0;i
{ cin>>a[i];
cin>>b[i];
s=s+b[i];}
m=(float)s/n;
cout
for(i=0;i
{ if(b[i]>m)
cout}
}