c语言上机 颜.docx
《c语言上机 颜.docx》由会员分享,可在线阅读,更多相关《c语言上机 颜.docx(33页珍藏版)》请在冰豆网上搜索。
c语言上机颜
1、请你任意输入一个度数给X,求变量SINX。
已知:
SINX=x-x^3/3!
+x^5/5!
-x^7/7!
。
。
。
。
。
。
。
.要求计算到第十项为止。
#include
#include
voidmain()
{
doubley,i,j,t,x;
printf("请你输入一个度数给变量x:
");
scanf("%lf,&x");
x=(int)(x)%360*3.1415926/180;
y=0,i=0,j=1,t=1;
while(j<=19&&i<=9)
{
y=y+pow(-1,i)*pow(x,j)/t;
i=i+1;
j=j+2;
t=t*(j-1)*j;
}
printf("结果是%lf\n",y);
}
2假设奖金税率如下(a代表奖金,r代表税率)
a<50r=%0
500<=a<1000r=5%
1000<=a<2000r=8%
2000<=a<3000r=10%
3000<=ar=15%
程序功能是:
对输入的一个奖金数,求税率和应交税率以及实得奖金数(扣除奖金税后)
#include
voidmain()
{
doublea,r,x,y;
printf(“任意输入一个奖学金数:
”);
scanf(“%lf”,&a);
if(a<500)r=0.05;
elseif(a>=500&&a<1000)r=0.05;
elseif(a>=1000&&a<2000)r=0.08;
elseif(a>=2000&&a<3000)r=0.1;
elseif(a>=3000)r=0.15;
x=a*r;
y=a-a*r;
printf(“应交税率%lf,实得奖金数%lf”,x,y);
2、判断三边能否构成三角形,若能则求出面积。
。
。
#include
#include
voidmain()
{
doublea,b,c,l,s;
printf("请你任意输入一个数字给变量a:
");
scanf("%lf",&a);
printf("请你任意输入一个数字给变量b:
");
scanf("%lf",&b);
printf("请你任意输入一个数字给变量c:
");
scanf("%lf",&c);
if(a+b>c&&a+c>b&&b+c>a)
{
l=(a+b+c)/2;
s=sqrt(l*(l-a)*(l-b)*(l-c));
printf("面积是%lf\n",s);
}
else
printf("你所输入的三边不能构成三角形\n");
}
*附加功能一:
如果三边能构成三角形,按边的关系进行分类,判断属于下列哪一种?
等腰三角形,等边三角形,普通三角形;
#include
#include
voidmain()
{
doublea,b,c,l,s;
printf("请你任意输入一个数字给变量a:
");
scanf("%lf",&a);
printf("请你任意输入一个数字给变量b:
");
scanf("%lf",&b);
printf("请你任意输入一个数字给变量c:
");
scanf("%lf",&c);
if(a+b>c&&a+c>b&&b+c>a)
{
l=(a+b+c)/2;
s=sqrt(l*(l-a)*(l-b)*(l-c));
printf("面积是%lf\n",s);
if(a==b&&b==c)
printf("此三角形是等边三角形\n");
elseif(a==b||b==c||a==c)
printf("此三角形是等腰三角形\n");
else
printf("此三角形是普通三角形\n");
}
else
printf("你所输入的三边不能构成三角形\n");
}
*附加功能二:
按角度进行分类,锐角,直角,钝角。
。
。
。
。
。
。
。
#include
#include
voidmain()
{
doublea,b,c,l,s;
printf("请你任意输入一个数字给变量a:
");
scanf("%lf",&a);
printf("请你任意输入一个数字给变量b:
");
scanf("%lf",&b);
printf("请你任意输入一个数字给变量c:
");
scanf("%lf",&c);
if(a+b>c&&a+c>b&&b+c>a)
{
l=(a+b+c)/2;
s=sqrt(l*(l-a)*(l-b)*(l-c));
printf("面积是%lf\n",s);
if(a==b&&b==c)
printf("此三角形是等边三角形\n");
elseif(a==b||b==c||a==c)
printf("此三角形是等腰三角形\n");
else
printf("此三角形是普通三角形\n");
if(a*a+b*b==c*c||b*b+c*c==a*a||a*a+c*c==b*b)
printf("直角三角形\n");
elseif(a*a+b*bprintf("钝角三角形\n");
elseif(a*a+b*b>c*c||b*b+c*c>a*a||a*a+c*c>b*b)
printf("锐角三角形\n");
}
else
printf("你所输入的三边不能构成三角形\n");
}
输出以下图形(必须用循环结构程序设计完成)
*
***
*****
*******
*****
***
*
#include
voidmain()
{
intI,j,k;
for(k=1;k<=4;k++)
{
for(i=1;i<=4-k;i++)
printf(““);
printf(“\n”);
}
for(k=1;k<=3;k++)
{
for(i=1;i<=k;i++)
printf(““);
for(j=1;j<=7-2*k;j++)
printf(“*“);
printf(“\n”);
}
}
*输入一个二十四小时制度的时间,输出对应的十二小时制度的时间。
。
。
。
。
。
输入07:
45输出07:
45AM输入19:
38输出07:
38PM
输入00:
45输出12:
45AM输入12:
55输出12:
55PM
#include
voidmain()
{
inthour,minute;
charop;
printf("输入一个二十四小时制的时间:
");
scanf("%d%c%d",&hour,&op,&minute);
if(hour>=1&&hour<=11)
{
if(hour>=10&&hour<=11)
{
if(minute>=10&&minute<=59)
printf("%d%c%dAM\n",hour,op,minute);
else
printf("%d%c0%dAM\n",hour,op,minute);
}
else
{
if(minute>=10&&minute<=59)
printf("0%d%c%dAM\n",hour,op,minute);
else
printf("0%d%c0%dAM\n",hour,op,minute);
}
}
if(hour>=13&&hour<=23)
{
if(hour>=22&&hour<=23)
{
if(minute>=10&&minute<=59)
printf("%d%c%dPM\n",hour-12,op,minute);
else
printf("%d%c0%dPM\n",hour-12,op,minute);
}
else
{
if(minute>=10&&minute<=59)
printf("0%d%c%dPM\n",hour-12,op,minute);
else
printf("0%d%c0%dPM\n",hour-12,op,minute);
}
}
if(hour==0)
{
if(minute>=10&&minute<=59)
printf("%d%c%dAM\n",hour+12,op,minute);
else
printf("%d%c0%dAM\n",hour+12,op,minute);
}
if(hour==12)
{
if(minute>=10&&minute<=59)
printf("%d%c%dPM\n",hour,op,minute);
else
printf("%d%c0%dPM\n",hour,op,minute);
}
}
输入三个数,求最大值。
#include
Voidmain()
{
Inta,b,c,max;
Printf(“请你输入三个数\n”);
Scanf(“%d%d%d”,&a,&b,&c);
If(a>=b&&b>=c)
Max=a;
ElseIf(b>=a&&b>=c)
Max=b;
ElseIf(c>=a&&c>=b)
Max=c;
Printf(“%d”,max);
}
.求解数学中底数e的值,e=1+1/1!
+1/2!
+1/3!
+…+1/20!
#include
voidmain()
{
doubles,i,t;
s=0,t=1,i=1;
while(i<=20);
{
s=s+t;
i=i+1;
t=t*i;
}
printf("%lf\n",s);
}
*出租车。
以永川为例:
输入一个里程数,计算并输出应付多少钱?
1)起步价是3元,2公里以内(不包含2公里)
2)2公里至8公里(不包含8公里),以每公里1.2元计算,但是每500米,加0.6元。
3)8公里以上,以每公里1.6元计算,但是每500米,加0.8元
4)燃油附加费2元。
#include
voidmain()
{
doublei,s;
printf("请你输入一个里程数:
");
scanf("%lf",&i);
if(i>=0&&i<2)
s=3+2;
if(i>=2&&i<8)
s=3+(int)((i-2)/0.5+1)*0.6+2;
if(i>=8)
s=3+1.2*6+(int)((i-8)/0.5+1)*0.8+2;
printf("计费显示%lf元\n",s);
printf("应付%d元\n",(int)(s+0.5));
}
*任意输入一个正整数,判断它属于其中哪一类?
1)能被3,5,7同时整除
2)只能被其中两个整除,必须指出是哪两个
3)只能被其中一个整除,并指出是其中哪个数
#include
voidmain()
{
intx;
printf("输入正整数:
");
scanf("%d",&x);
if(x%3==0&&x%5==0&&x%7==0)
printf("能被3,5,7同时整除\n");
if(x%3==0&&x%5==0&&x%7!
=0)
printf("只能被3,5同时整除\n");
if(x%3==0&&x%5!
=0&&x%7==0)
printf("只能被3,7同时整除\n");
if(x%3!
=0&&x%5==0&&x%7==0)
printf("只能被5,7同时整除\n");
if(x%3==0&&x%5!
=0&&x%7!
=0)
printf("只能被3整除\n");
if(x%3!
=0&&x%5!
=0&&x%7==0)
printf("只能被7整除\n");
if(x%3!
=0&&x%5==0&&x%7!
=0)
printf("只能被5整除\n");
}
或者。
。
。
。
。
#include
voidmain()
{
intx;
printf("输入正整数:
");
scanf("%d",&x);
if(x%3==0&&x%5==0&&x%7==0)
printf("能被3,5,7同时整除\n");
elseif(x%3==0&&x%5==0)
printf("只能被3,5同时整除\n");
elseif(x%3==0&&x%7==0)
printf("只能被3,7同时整除\n");
elseif(x%3!
=0&&x%5==0&&x%7==0)
printf("只能被5,7同时整除\n");
elseif(x%3==0)
printf("只能被3整除\n");
elseif(x%7==0)
printf("只能被7整除\n");
elseif(x%5==0)
printf("只能被5整除\n");
else
printf("不能被3,5,7整除\n");
}
循环结构程序设计:
*用for做s=1+2+3+.、、、+100
#include
voidmain()
{
intn,i;
n=0;
for(i=1;i<=100;i++)
n=n+i;
printf("%d\n",n);
}
*求任意输入2个数字,求两个数字之间所有数字的和:
#include
voidmain()
{
inta,b,i,n;
n=0;
printf("请你任意输入两个数字a:
");
scanf("%d",&a);
printf("请你任意输入两个数字b:
");
scanf("%d",&b);
if(a>=b)
{
for(i=b;i<=a;i++)
n=n+i;
}
else
{
for(i=b;i>=a;i--)
n=n+i;
}
printf("%d\n",n);
}
*一个球从100米的高空垂直下落,以后每次落地后弹起的高度是原来的一半:
1)、第十次落地时,之前一共经历的轨迹是多少米?
2)、第十次落地后,反弹的高度是多少?
#include
voidmain()
{
doublei,n,s;
n=100,s=100;
for(i=1;i<=9;i++)
{
n=n/2;
s=s+2*n;
}
printf("%lf\n",s);
printf("%lf\n",n/2);
}
*12481632求:
依次第64个是多少?
前64个一共是多少?
#include
voidmain()
{
doublei,n,s;
n=1,s=1;
for(i=1;i<=63;i++)
{
n=2*n;
s=s+n;
}
printf("%lf\n",n);
printf("%lf\n",s);
}
#include
voidmain()
#include
{
doublei,s;
s=0;
for(i=1;i<=64;i++)
s=s+pow(2,i-1);
printf("%lf\n",s);
printf("%lf\n",pow(2,63));
}
*以2012为例,请你任意输入今年的某月某日,计算并输出这一天是今年的第几天?
#include
voidmain()
{
intm,d,s,i;
printf("请你任意输入今年的某月m:
");
scanf("%d",&m);
printf("请你任意输入今年的某日d:
");
scanf("%d",&d);
s=0;
for(i=1;i<=m-1;i++)
{
if(m==1||m==3||m==5||m==7||m==8||m==10)
s=s+31;
elseif(m==4||m==6||m==9||m==11)
s=s+30;
elseif(m==2)
s=s+29;
}
s=s+d;
printf("输出天数%d\n",s);
}
*同构数(相同结构的数)如:
5255是同构数;6366;2562525;
求得并输出1->99之间所有的同构数
#include
voidmain()
{
inti;
for(i=2;i<=99;i++)
{
if(i*i%10==i)
printf("%d\n",i);
elseif(i*i%100==i)
printf("%d\n",i);
}
}
*任意输入2个正整数,求他们的最大公约数和最小公倍数。
#include
voidmain()
{
inta,b,n,m;
printf("请你任意输入一个正整数a:
");
scanf("%d",&a);
printf("请你任意输入一个正整数b:
");
scanf("%d",&b);
if(a>b)
m=b;
else
m=a;
for(n=m;n>=1;n--)
{
if(a%n==0&&b%n==0)
{
printf("它的最大公约数是%d\n",n);
break;
}
}
printf("它的最小公倍数是%d\n",a*b/n);
}
或者。
。
。
#include
voidmain()
{
inta,b,n,t;
printf("请你任意输入一个正整数a:
");
scanf("%d",&a);
printf("请你任意输入一个正整数b:
");
scanf("%d",&b);
for(n=1;n<=a;n++)
{
if(a%n==0&&b%n==0)
{
t=n;
}
}
printf("它的最大公约数是%d\n",t);
printf("它的最小公倍数是%d\n",a*b/t);
}
或者。
。
。
#include
voidmain()
{
inta,b,m,s,t;
printf("请你任意输入一个正整数a:
");
scanf("%d",&a);
printf("请你任意输入一个正整数b:
");
scanf("%d",&b);
if(a
{
t=a;
a=b;
b=t;
}
s=a*b;
while(m!
=0)
{
m=a%b;
a=b;
b=m;
}
printf("它的最大公约数是%d\n",a);
printf("它的最小公倍数是%d\n",s/a);
}
*猜车牌,某人在街上见一车牌有4个数字,他发现这四个数字的规律如下:
1、左边两个数字之和等于右边两个数字之和;
2、右边三个数字之和等于左边数字的9被;
3、中间两个数字之和等于边上两个数字之和的3倍;
编程输出该车牌中的4个数字。
#include
voidmain()
{
inta,b,c,d;
for(a=0;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
for(d=0;d<=9;d++)
{
if(a+b==c+d&&b+c==3*(a+d)&&b+c+d==9*a)
printf("车牌号是%d%d%d%d\n",a,b,c,d);
}
}
*田忌赛马,用编程方法实现判断过程并输出赛马表(上等马,中等马,下等马)
有甲乙2个羽毛球队,之间进行友谊赛。
甲队中有A,B,C3位选手;
乙队中有X,Y,Z3位选手;
其中甲队的A因为与乙队的X有仇,坚决不和他PK
其中甲队的C与乙队的X,Z也有仇,坚决不和他两PK
要求编程实现输出对阵表。
#include
voidmain()
{
charads,bds,cds;
for(ads='X';ads<='Z';ads++)
for(bds='X';bds<='Z';bds++)
for(cds='X';cds<='Z';cds++)
{
if(ads!
='X'&&cds!
='X'&&cds!
='Z'&&ads!
=bds&&ads!
=cds&&bds!
=cds)
{
printf("AVS%c\n",ads);
printf("BVS%c\n",bds);
printf("CVS%c\n",cds);
}
}
}
*P5逆序数32514
*要求:
任意输入一个五位数,求它的逆序数。
#include
#include
voidmain()
{
inta[5],i,j,n,x;
n=0;
printf("请你任意输入一个五位数:
");
scanf("%d",&x);
for(i=0;i<=4;i++)
{
a[i]=x/(int)(pow(10,4-i))%10;
}
for(j=0;j<=3;j++)
{
for(i=0;i<=j;i++)
{
if(a[i]>a[j+1])
n=n+1;
}
}
printf("逆序数是%d\n",n);
}
*当任意输入一个任