printf("%d,%d\n",max,min);
}
13.有以函数y=x(x<1);2x-1(1<=x<10);3x-11(x>=10).写一程序,输入x,输出y.
#include
voidmain()
{intx,y,m,n
m=2*x-1;
n=3*x-11;
scanf("%d",&x);
if(x<1)printf("y=%d\n",x);
if(x>1&&x<=10)prinft("%y=%d",m);
if(x>=10)prinft("y=%d",n);
}
14.给定一个不多于5的正整数,要求:
(1)求它是几位数;
(2)分别打印出每一位数字(3)按逆序打印出各位数字.
#include
voidmain()
{longintnum;
intindiv,ten,hundred,thousand,ten_thousand,place;
sacnf("%ld",&num);
if(num>9999)place=5;
elseif(num>999)place=4;
elseif(num>99)place=3;
elseif(num>9)place=2;
elseplace=1;
printf("place=%d\n",place);
ten_thousand=num/10000;
thousand=(int)(num-ten_thousand*10000)/1000;
hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;
ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;
indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);
switch(place)
{case5:
printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv);
printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand);
break;
case4:
printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);
printf("%d%d%d%d\n",indiv,ten,hundred,thousand);
break;
case3:
printf("%d,%d,%d",hundred,ten,indiv);
printf("%d%d%d\n",indiv,ten,hundred);
break;
case2:
printf("%d,%d",ten,indiv);
printf("%d%d\n",indiv,ten);
break;
case1:
print("%d",indiv);
printf("%d\n",indiv);
break;
}
}
15.编写程序,要求输入整数a和b.若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。
#include
voidmain()
{inta,b,c;
scanf("%d%d",&a,&b;
c=a*a+b*b;
if(c>100);
printf("%d\n",c/100);
elseprintf("%d\n",a+b);
}
16.根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型
#include
#include
voidmain()
{floata,b,c,t,s,area,m;
scanf("%f,%f,%f",&a,&b,&c);
if(a+b>c&&b+c>a&&a+c>b);
s=(1.0/2)(a*b*c)
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%6.2f",area);
if(a
if(aif(bm=(b*b+c*c-a*a)/2*b*c;
if(m==0)printf("zhijiao");
elseif(m>0)printf("ruijiao");
elseif(m<0)printf("dunjiao");
}
17.判断输入的正整数是否既是5又是7的整倍数。
若是,则输出yes,否则输出no
#infclude
#include
voidmain()
{intm;
sacnf("%d",&m);
if(m%5==0&&m%7==0)
printf("yes\n",m);
elseprintf("no\n");
}
18.输入4个整数,求4个数中的偶数之和.
#include
#include
voidmain()
{ints[4],m,i;
for(i=0;i<4;i++)
scanf("%d,&s[i]);
m=0;
{if(s[i]%2)==0)m+=s[i]}
printf("m=%d",m);
}
19.输入4个整数,求4个数中的奇数之和
#include
#include
voidmain()
{ints[4],n,i;
for(i=0;i<4;i++)
scanf("%d,&s[i]);
n=0;
{if(s[i]%2)!
=0)n+=s[i]}
printf("n=%d",n);
}
20.假设奖金税率如下(a代表奖金,r代表税率)a<500r=0%;500<=a<1000r=5%;1000<=a<2000r=8%;
2000<=a<3000r=10%;3000<=ar=15%编写程序用if语句实现:
对输入的一个资金数,求税率和应交税款以及实际奖金数(扣除奖金税后)。
#include
voidmian()
{floata,r,t,b;
intc;
scanf("%f",&a);
if(a>=3000)c=6;
elsec=int(a/500);
switch(C)
{case0:
r=0;break;
case1:
r=0.05;break;
case2:
case3:
r=0.08;break;
case4:
case5:
r=0.1;break;
case6:
r=0.15;break;}
t=a*r;
b=a-t;
printf("r=%f,t=%f,b%f",r,t,b);
}
21.输入一个字符,如果是大写字母,转换为小写,如果不是不转换。
最后输出。
#include
voidmain()
{charc;
scanf("%c",&c);
c=(c>='A'&&c<='Z')?
c+32:
c;
printf("%c",c);
}
22.键盘上输入三角形三边a,b,c的值,计算三角形面积,并输出三角形的三边a,b,c及面积area的值。
三角形面积的公式:
s=(a+b+c)/2area=sqrt[s(s-a)(s-b)(s-c)].
#include
voidmain()
{floata,b,c,s,area;
sacnf("%f,%f,%f",&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",a,b,c,s);
printf("area=%7.2f\n",area);
}
23.编写一个程序,根据用户输入的一个字母判定它是星期几。
要求用switch语句实现程序控制,当第一个字母相同时,如:
T(t)uesday和T(t)hursday故需要进一步输入U或u或H或h确认。
#include
voidmain()
{chara,b,c;
scanf("%c",&a);
switch(a)
case'M':
printf("Monday");break:
case'T':
scanf("%c",&b);
if(b=='U')printf("Tuesday");
elseprintf("thursday");break;
case'W':
printf("wednesday");break:
case'F':
printf("Friday");break:
case's':
scanf("%c",&c);
if(c=='A')printf("Saterday");
elseprintf("Sunday");break;
}
24.编写一个程序:
输入某年某月,判断这一月有多少天?
#include
voidmain()
{intyear,month,t=0,leap=0;
scanf("%d,%d",&year,&month);
if((year%4==0&&year%100!
=0||year%400==0)
leap=1;
t=28+leap;
switch(month)
case2:
printf("%d\n",t);break;
case1:
printf("31\n");break;
case3:
printf("31\n");break;
case5:
printf("31\n");break;
case7:
printf("31\n");break;
case8:
printf("31\n");break;
case10:
printf("31\n");break;
case12:
printf("31\n");break;
case4:
printf("30\n");break;
case6:
printf("30\n");break;
case9:
printf("30\n");break;
case11:
printf("30\n");break;
}
25.从键盘上输入字母或0~9的数字,编写程序对其进行分类。
字母可分为大写字母和小写字母,数字可分为奇数和偶数。
#include
voiamain()
{chara[120],i;
scanf("%s,a);
for(i=0;i<=19;i++)
if('0'<=a[i]&&a[i]<='9')
if(a[i]/2==0
printf("%d\n",a[i]);
elseprintf("%d\n",a[i]);
for(i=0;i<=19;i++)
if('a'<=a[i]&&a[i]<='z')
printf("%c",a[i]);
printf("\n");
for(i=0;i<=19;i++)
if('A'<=a[i]&&a[i]<='Z')
printf("%c",a[i]);
}
26.编写程序:
加密数据,方法:
对给定数值,每一位数字均加2,且在[0,9]范围内,若加密后某位数字大于9,则取其被10除的余数.
#include
voidmain()
{inti,a[20],m,k;
scanf("%d",&m);
for(i=0;m>o;i++)
{a[i]=m%10;
m=m%10;
k=i;}
k=k+1;
for(i=0;i{a[i]+=2;
if(a[i]>9)
a[i]=a[i]%10;
for(i=k-1;i>0;i--)
printf("%d\n",a[i]);
}
27.编写程序:
计算从1995年1月1日至2000年12月10日共有多少天。
闰年的2月有29天.闰年满足如下条件:
能被400整除或能被4整除但不能被100整除。
#include
voidmain()
{intyear,i=0,s;
for(year=1995;year<=2000;year++)
if((year%4==0&&year%100!
=0)||year%400==0)
i++;
s=365*6+i-21;
printf("%d",s);
}
28.编程求解一元二次方程ax2+bx+c=0的根。
#include
#include
voidmain()
{floata,b,c,disc,x1,x2,realpart,imagpart;
scanf("%f,%f,%f",a&,b&,&c);
if(fabs(a)<=1e-6)
printf("isnotaquadratic\n");
else
{disc=b*b-4*a*c;if(fabs(disc)<=1e-6printf("hastwoequalroots:
%8.4f\n",-b/2*a);
else
if(disc>1e-6)
{x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);
printf("hasdistinctraelroots:
%8.4fand%8.4f\n",x1,x2);
}
else
{realpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a);
printf("hascomplexroots:
\n");
printf("%8.4f+%8.4fi\n",raelpart,imagpart);
printf("%8.4f-%8.4fi\n",realpart,imagpart);
}
}
}
29.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?
都是多少?
#include
voidmain()
{inti,j,k,n;
for(i=1;1<5;i++)
for(j=0;j<5;j+=)
for(k=0;k<5;k++)
if(i!
=j&&i!
=k&&k!
=j)
{printf("%d",100*i+10*j+k);n++}
printf("%d",n);
}
30.求(1+2!
+…+20!
).
#include
voidmain()
{inti,s=0,t=1;
for(i=1;i<=20;i++)
{t=t*i;
s=s+t;}
printf("%ld",s);
}
31.已知abc+cba=1333,其中a、b、c均为一位数,编写一个程序求出a、b、c分别代表什么数字。
#include
voidmain()
{inta,b,c;
for(a=1;a<10:
a++)
for(b=0;b<10;b++)
for(c=1;c<10;c++)
if(a*100+b*10+c+c*100+b*10+a==1333)
printf("%d,%d,%d,a,b,c);
}
32.鸡兔共有30只,脚共有90只,编写一程序计算鸡兔各有多少只。
#include
voidmain()
{inti,j;
for(i=1;i<30;i++)
{j=30-i;
if(2*i+4*j==90)
printf("%d,%d",i,j);
}
33.输入两个正整数m和n,求其最大公约数和最小公倍数.
#include
voidmain()
{intp,r,n,m,temp;
scanf("%d,%d",&n,&m);
if(n{temp=n;n=m;m=temp;}
p=n*m;r=n%m;
while(r!
=0)
{r=n%m;n=m;m=r;}
printf("%d",m);
printf("%d,p/m);
}
34.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
见87题
35.一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如6=1+2+3.编程:
找出1000以内的所有完数。
#include
voidmain()
inti=1,j,sum;
for(;i<1000;i++)
{for(sum=0,j=1;j
{if(i%j==0)sum+=j;}
if(sum==i)
printf("%d\n",i);
}
36.猴子吃桃问题:
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘了多少.
#include
voidmain()
{inta[10],i;
a[9]=1;
for(i=8;i>=0;i--)
a[i]=(a[i+1]+1)*2;
printf("%d",a[10]);
}
37.有一分数序列:
2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和.
#include
voidmain()
{inta=2,b=1,i,t;
floats=0
for(i=0;i<20;i++)
{s+=a/b;t=a;a=a+b;b=t;}
printf("%f",s);
}
38.编写一个程序显示ASCII码65~90(十进制)的字符对照表。
并输出6个数换一行。
#include
voidmain()
{inti,flag=1;charj;
for(i=65;i<=90;i++,flag++)
{printf("%4d,%c",i,j);
if(flag%6==0)
printf("%\n");}
}
39.已知xyz+yzz=532,其中x、y、z都是数字,编写一个程序求出x、y、z分别代表什么数字。
#include
voidmain()
{intx,y,z;
for(x=1;x<=5;x++)
for(y=1;y<=9;y++)
for(z=1;z<=6;z++)
if(100*x+10*y+z+100*y+11*z==532)
printf("x=%d,y=%d,z=%d",x,y,z);
}
40.已知四位数a2b3能被23整除,编写一程序求此四位数。
#include
voidmain()
{inta,b,s;
for(a=1;a<=