poj上交题.docx

上传人:b****7 文档编号:8869291 上传时间:2023-02-02 格式:DOCX 页数:85 大小:36.25KB
下载 相关 举报
poj上交题.docx_第1页
第1页 / 共85页
poj上交题.docx_第2页
第2页 / 共85页
poj上交题.docx_第3页
第3页 / 共85页
poj上交题.docx_第4页
第4页 / 共85页
poj上交题.docx_第5页
第5页 / 共85页
点击查看更多>>
下载资源
资源描述

poj上交题.docx

《poj上交题.docx》由会员分享,可在线阅读,更多相关《poj上交题.docx(85页珍藏版)》请在冰豆网上搜索。

poj上交题.docx

poj上交题

CH0408、请编写程序,用scanf输入圆半径r,圆柱高h,输出圆周长l,圆面积s,圆球表面积sq,圆球体积vq,圆柱体积vz。

#definePI3.141592

#include"stdio.h"

voidmain()

{

doubler,h,l,s,sq,vq,vz;

scanf("%lf%lf",&r,&h);

l=PI*r*2;

s=PI*r*r;

sq=4*PI*r*r;

vq=4.0/3*PI*r*r*r;

vz=PI*r*r*h;

printf("l=%.2f\n",l);

printf("s=%.2f\n",s);

printf("sq=%.2f\n",sq);

printf("vq=%.2f\n",vq);

printf("vz=%.2f\n",vz);

}

T0401、编写程序输入学生的数学,英语,和C语言的成绩,输出该学生这三门课的总成绩和平均成绩。

#include

voidmain()

{

doublemath,english,C,sum,aver;

scanf("%lf%lf%lf",&math,&english,&C);

sum=math+english+C;

aver=sum/3;

printf("sum=%f,aver=%f\n",sum,aver);

}

T0402、假设m是一个三位数,编写程序输出由m的个位,十位,百位反序而成的三位数。

#include

#include

voidmain()

{intnum,indiv,ten,hundred;

scanf("%d",&num);

hundred=num/100;

ten=(num-hundred*100)/10;

indiv=(num-hundred*100-ten*10);

printf("k=%d%d%d",indiv,ten,hundred);

}

T0403、输入两个数的正整数a,b,编写程序将a,b合并成一个整数放在c中,合并的方式是:

将a的十位和个位数依次放在c数的百位和个位上,b的十位和个位数依次放在c数的十位和千位上,输出c的结果。

#include

#include

voidmain()

{inta,b,indiv,ten,hundred,thousand;

scanf("%d%d",&a,&b);

hundred=a/10;

indiv=a-hundred*10;

ten=b/10;

thousand=b-ten*10;

printf("c=%d%d%d%d",thousand,hundred,ten,indiv);

}

T0405、编写按“时:

分:

秒”格式输入时间,将这个时间转换成以秒为单位的时间值输出。

#include

voidmain()

{

longa,b,c,d;

scanf("%ld:

%ld:

%ld",&a,&b,&c);

d=a*3600+b*60+c;

printf("%02d:

%02d:

%02d=%ds",a,b,c,d);

}

T0408、编写程序求下图所示的正五边形的面积(输入整型边长,输出实型面积保留六位小数)。

#include

#include

voidmain()

{

doubles,q=3.1415926;inta;

scanf("%d",&a);

s=(5.0/4)*(a*a)/(tan(1.0/5*q));

printf("%lf",s);

}

SXC01、对函数要求输入x值,求y值。

#include

#include

voidmain()

{

doublex,y;

scanf("%lf",&x);

if(x<0)y=-x;

if(x>=0&&x<10)y=x*x;

if(x>=10)y=sqrt(x);

printf("y=%lf",y);

}

SXC03、某单位要加工资,增加金额取决于工龄和现工资两个因素:

工龄不少于20年的,如果现工资高于2000,加200,否则加180;对于工龄小于20年的,如果现工资高于1500,加150,否则加120。

工龄和现工资从键盘输入,输入加工资后的员工工资。

#include

voidmain()

{

doublex,y;

scanf("%lf%lf",&x,&y);

if(x>=20&&y>2000)y=y+200;

if(x>=20&&y<=2000)y=y+180;

if(x<20&&y>1500)y=y+150;

if(x<20&&y<=1500)y=y+120;

printf("%lf",y);

}

SXC04、钟表的时针和分针任何时刻都有一定的夹角,现已知某时刻,编程求该时刻时针和分针的夹角c(<=180,输入格式“小时:

分”)

#include"stdio.h"

voidmain()

{

inta,b,c1,c2,c;

scanf("%d:

%d",&a,&b);

c1=a*30+b/2;

c2=b*6;

c=c1-c2;

if(c>-360&&c<-180)c=c+360;

elseif(c>=-180&&c<0)c=-c;

elseif(c>=0&&c<=180);

elsec=360-c;

printf("c=%d\n",c);

}

SXC05、比较两个分数的大小,不能用计算这两个分数的值的方式来求解。

(输入分数形式X/Y)

#include"stdio.h"

voidmain()

{

inta,b,c,d,m,n;

scanf("%d/%d%d/%d",&a,&b,&c,&d);

m=a*d;

n=c*b;

if(m>n)

printf("%d/%d>%d/%d\n",a,b,c,d);

elseif(m

printf("%d/%d<%d/%d\n",a,b,c,d);

else

printf("%d/%d=%d/%d\n",a,b,c,d);

}

CH0505、有一函数:

编写程序,输入X值,输出Y值。

#include"stdio.h"

voidmain()

{

intx,y;

scanf("%d",&x);

if(x<1)

printf("y=%d\n",x);

elseif(x>=1&&x<10)

printf("y=%d\n",2*x-1);

else

printf("y=%d\n",3*x-11);

}

CH0510、有4个圆塔,圆心分别为(2,2)、(-2,2)、(2,-2)、(-2,-2),圆半径为1。

这4个塔的高度为10M,塔以外无建筑物。

编写程序,输入任一点的坐标,求该点的建筑高度。

#include"stdio.h"

voidmain()

{

doublex,y;inth;

scanf("%lf%lf",&x,&y);

if((x-2)*(x-2)+(y-2)*(y-2)<=1||(x-2)*(x-2)+(y+2)*(y+2)<=1||(x+2)*(x+2)+(y+2)*(y+2)<=1||(x+2)*(x+2)+(y-2)*(y-2)<=1)

h=10;

else

h=0;

printf("h=%d\n",h);

}

T0501、编写程序任意输入三角形三条边(a、b、c为实型),若能构成三角形,则计算三角形面积,否则输出标志“NO”。

(计算公式:

#include

#include

voidmain()

{

doublea,b,c,t,s;

scanf("%lf%lf%lf",&a,&b,&c);

if(a>0&&b>0&&c>0&&a+b>c&&a+c>b&&b+c>a)

{t=(a+b+c)/2;

s=sqrt(t*(t-a)*(t-b)*(t-c));

printf("s=%f\n",s);

}

elseprintf("NO\n");

}

T0502、编写程序输入月份和日期,给出对应的星座。

3.21—4.20白羊

4.21—5.20金牛

5.21—6.20双子

6.21—7.22巨蟹

7.23—8.22狮子

8.23—9.22处女

9.23—10.22天秤

10.23—11.22天蝎

11.23—12.22人马

12.23—1.20摩蟹

1.21—2.20宝瓶

2.21—3.20双鱼

#include

voidmain()

{

inta,b,x;

scanf("%d%d",&a,&b);

x=a*100+b;

if(321<=x&&x<=420)printf("%d月%d日为白羊座",a,b);

elseif(421<=x&&x<=520)printf("%d月%d日为金牛座",a,b);

elseif(521<=x&&x<=620)printf("%d月%d日为双子座",a,b);

elseif(621<=x&&x<=722)printf("%d月%d日为巨蟹座",a,b);

elseif(723<=x&&x<=822)printf("%d月%d日为狮子座",a,b);

elseif(823<=x&&x<=922)printf("%d月%d日为处女座",a,b);

elseif(923<=x&&x<=1022)printf("%d月%d日为天秤座",a,b);

elseif(1023<=x&&x<=1122)printf("%d月%d日为天蝎座",a,b);

elseif(1123<=x&&x<=1222)printf("%d月%d日为人马座",a,b);

elseif((0

elseif(121<=x&&x<=220)printf("%d月%d日为宝瓶座",a,b);

elseif(221<=x&&x<=320)printf("%d月%d日为双鱼座",a,b);

}

SXD02、有一堆零件(100-200之间),如果以4个一组进行分组,多出2个零件;如果7个一组则多出3个;9个一组分组多出5个。

编写程序求零件总数。

#include

voidmain()

{

inti;

for(i=100;i<=200;i++)

{if(i%4==2&&i%7==3&&i%9==5)

printf("%d",i);

}

}

SXD03、编写程序求任意两个整数之间的所有素数。

(输入的两整数大小任意)

#include

voidmain()

{

inta,b,t,i,j,len;

scanf("%d%d",&a,&b);

if(a>b){a=a;b=b;}

if(b>a){t=a;a=b;b=t;}

for(i=b;i<=a;i++)

{for(len=0,j=2;j<=i-1;j++)

if(i%j==0)len++;

if(len==0)printf("%d",i);

}

}

SXD04、分数列2/1,3/2,5/3,8/5,13/8,21/13,。

求出数列前20项和。

#include"stdio.h"

voidmain()

{

inti;

doublef1,f2,sum;

f1=f2=1.0;sum=0;

for(i=1;i<=10;i++)

{

f2=f1+f2;

sum=sum+f2/f1;

f1=f1+f2;

sum=sum+f1/f2;

}

printf("%.6lf\n",sum);

}

SXD06、假设银行整存整取不同期限月息利率分别为:

0.63%1年0。

66%2年0。

69%3年0。

75%5年0。

84%8年

利息=本金*月息利率*12*存款年限

现某人手中有2000元,请计算选择一种存款方案,使钱存入银行20年后得到的利息最多。

#include"stdio.h"

voidmain()

{

inti1,i2,i3,i5,i8,a1,a2,a3,a5,a8,i;

doublep,max=2000;

for(i8=0;i8<=2;i8++)

for(i5=0;i5<=(20-i8*8)/5;i5++)

for(i3=0;i3<=(20-i8*8-i5*5)/3;i3++)

for(i2=0;i2<=(20-i8*8-i5*5-i3*3)/2;i2++)

for(i1=0;i1<=(20-i8*8-i5*5-i3*3-i2*2);i1++)

{

if(i8*8+i5*5+i3*3+i2*2+i1==20)

{

p=2000;

for(i=1;i<=i8;i++)

p=p+p*0.0084*12*8;

for(i=1;i<=i5;i++)

p=p+p*0.0075*12*5;

for(i=1;i<=i3;i++)

p=p+p*0.0069*12*3;

for(i=1;i<=i2;i++)

p=p+p*0.0066*12*2;

for(i=1;i<=i1;i++)

p=p+p*0.0063*12;

}

if(p>max)

{

max=p;

a8=i8;a5=i5;a3=i3;a2=i2;a1=i1;

}

}

printf("8年=%d5年=%d3年=%d2年=%d1年=%d\n",a8,a5,a3,a2,a1);

printf("最大收益=%.2lf\n",max);

}

CH0603、编程求Sn=a+aa+aaa+……的值,其中a是一个数字(a,n由键盘输入)

#include

voidmain()

{

inta,n,i,j,k=1;longs=0,sum;

scanf("%d%d",&a,&n);

for(i=1;i<=n;i++)

{sum=0;for(j=1;j<=i;k=k*10)

{sum=sum+a*k;j++;}

s=s+sum;k=1;

}

printf("a+aa+aaa+...=%ld",s);

}

CH0607、一个数如果恰好等于他的因子之和,这个数就称为完数。

如6的因子为1、2、3,而6=1+2+3,所以6是完数。

编程找出1000以内的所有完数。

#include

voidmain()

{

ints=0,i,j;

for(i=2;i<1001;i++)

{

s=0;

for(j=1;j

{if((i%j)==0)s=s+j;}

if(s==i){printf("%d=1",i);

for(j=2;j

{if((i%j)==0)printf("+%d",j);

}

printf("\n");

}

}

}

CH0611、编程,用迭代法求x=

#include

#definen1000

voidmain()

{

doublex,a,h;inti;

scanf("%lf",&a);

x=a/2;

for(i=0;i<=n;i++)

{h=x;

x=(x+a/x)/2;

if((x-h)>=1e-5&&(x-h)<=-1e-5)break;

}

printf("x=%.5lf",x);

}

CH0613、编程用二分法求下面方程在(-10,10)之间的根:

#include

#include

voidmain()

{doublex0,x1,x2,fx0,fx1,fx2;

do

{scanf("%lf%lf",&x1,&x2);

fx1=x1*((2*x1-4)*x1+3)-6;

fx2=x2*((2*x2-4)*x2+3)-6;

}while(fx1*fx2>0);

do

{x0=(x1+x2)/2;

fx0=x0*((2*x0-4)*x0+3)-6;

if((fx0*fx1)<0)

{x2=x0;

fx2=fx0;

}

else

{x1=x0;

fx1=fx0;

}

}

while(fabs(fx0)>=1e-5);

printf("x=%.2f\n",x0);

}

CH0615、两乒乓球队比赛,各出三人,甲队为A,B,C;乙队为X、Y、Z。

已抽签决定比赛名单,A说不和X比,C说不和Z,X比,编程找出3对比赛选手的对手名单。

#include

voidmain()

{chari,j,k;

for(i='x';i<='z';i++)

for(j='x';j<='z';j++)

if(i!

=j)

for(k='x';k<='z';k++)

if(k!

=i&&k!

=j)

if(i!

='x'&&k!

='x'&&k!

='z')

printf("a--%cb--%cc--%c\n",i,j,k);

}

T0603、编程输入一个数后,输出七整数部分的为数。

#include

#include

voidmain()

{

doublea;

longb;

intn=0;

scanf("%lf",&a);

if(a<0)a=-a;

b=floor(a);

while(b!

=0)

{

b=b/10;

n++;

}

printf("%d\n",n);

}

T0607、编程计算的近似值:

=4(1—1/3+1/5—1/7+1/9……)(直到最后一项小于为止)

#include

#include

voidmain()

{

ints;

doublen,t,PI;

t=1;PI=0;n=1.0;s=1;

while(fabs(t)>1e-6)

{

PI=PI+t;

n=n+2;

s=-s;

t=s/n;

}

PI=PI*4;

printf("PI=%f\n",PI);

}

T0608、编程求下面级数的前N项和,N从键盘输入。

∑——————

#include

voidmain()

{

intt,j,n;

longm;

doubles,a,b,c;

scanf("%d",&n);

t=1;m=1;s=0;

for(j=1;j<=n;j++)

{

t=t*(-1);

m=m*2;

a=t/(-1)*m;

b=m+t;

c=2*m+t*(-1);

s=s+a/b/c;

}

printf("s=%f\n",s);

}

T0611、编程求500-800内的素数的个数cnt,并按所求的素数的从大到小的顺序,计算其间隔减、加之和,即第一个素数—第2个素数+第三个素数….的和sum

#include

#include

voidmain()

{

intcnt,s,m,n,a,j;

cnt=0;s=0;a=1;

for(n=799;n>=501;n--)

{

m=(int)sqrt(n);

for(j=2;j<=m;j++)

if(n%j==0)break;

if(j>m)

{

cnt++;

s=s+a*n;

a=a*(-1);

}

}

printf("cnt=%d,s=%d\n",cnt,s);

}

T0615、编程验证下列结论:

任何一个自然数N的立方都等仪N个连续奇数之和。

要求程序对每个输入的自然数计算并输出相应的连续奇数。

#include

voidmain()

{longm,i,n,a;

scanf("%ld",&n);

if(n!

=0)

{m=n*n*n;

printf("%d*%d*%d=%ld=",n,n,n,m);

a=n*n-n+1;

for(i=0;i

{if(i

elseprintf("%d\n",a+2*i);}

}

printf("Yes");

}

T0617、编程求一个整数的任意次方的最后三位数。

#include

voidmain()

{

longx,a,b,i;

scanf("%ld%ld",&x,&a);

b=1;

for(i=1;i<=a;i++)

{

b=b*x;

b=b%1000;

}

printf("%d\n",b);

}

T0619、分子为1的分数称为埃及分数,现输入一个真分数,编程将该分数分解为埃及分数。

#include

voidmain(void)

{longinta,b,c;

scanf("%ld%ld",&a,&b);

printf("%d/%d=",a,b);

while

(1)

{

if(b%a!

=0)

c=b/a+1;

else{c=b/a;a=1;}

if(a==1)

{

printf("1/%ld\n",c);

break;

}

elseprintf("1/%ld+",c);

a=a*c-b;

b=b*c;

if(a==3)

{printf("1/%ld+1/%ld\n",b/2,b);

break;

}

}

}

T0621、某级数前两项A1=1,A2=1,以后各项有如下关系:

An=An-2+2An-1;

编程要求依次对M=100,1000,10000求出相对应的n值。

(使其满足SnM,这里S

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1