完整C语言新答案.docx
《完整C语言新答案.docx》由会员分享,可在线阅读,更多相关《完整C语言新答案.docx(42页珍藏版)》请在冰豆网上搜索。
完整C语言新答案
第三章习题编程:
(1)有一函数:
编写一程序,输入X,输出Y值。
#include
intmain()
{
doublex,y;
scanf("%lf",&x);
if(x〈1)
y=x;
elseif(x>=1.0&&x〈10)
y=2*x—11;
else
y=3*x—11;
printf("%lf\n",y);
return0;
(2).从键盘上输入3个整数,求最小的数。
#include〈stdio。
h>
intmain()
{
doublex,y,z,min;
scanf("%lf%lf%lf”,&x,&y,&z);
if(x〉y)
min=y;
else
min=x;
if(min>z)
min=z;
printf("min=%lf\n”,min);
return0;
}
(3).输入某人的出生日期,计算并显示其出生的当天是星期几。
#include〈stdio.h〉
intmain()
{
inty,m,d,flag,s=0,w,i;
scanf(”%d%d%d",&y,&m,&d);
flag=(y%4==0&&y%100!
=0||y%400==0);
w=((y—1)*365+(y—1)/4-(y—1)/100+(y—1)/400)%7;
for(i=1;i〈=m;i++)
{
switch(i)
{
case1:
s=d;break;
case2:
s=31+d;break;
case3:
s=59+d;break;
case4:
s=90+d;break;
case5:
s=120+d;break;
case6:
s=151+d;break;
case7:
s=181+d;break;
case8:
s=212+d;break;
case9:
s=243+d;break;
case10:
s=273+d;break;
case11:
s=304+d;break;
case12:
s=334+d;break;
}
}
if(flag==1&&m>2)
s=s+1;
s=(w+s)%7;
if(s==0)
printf("星期日\n”);
else
printf("星期%d\n",s);
return0;
(4).企业发放的奖金根据利润提成:
利润低于或等于10万元时,奖金可提成10%;利润高于10万元低于20万元时,低于10万元的部分按10%提成,高于10万元的部分可提成7。
5%;20万到40万之间时,高于20万元的部分可提成5%;40万到60万之间时,高于40万元的部分可提成3%;60万到100万之间时,高于60万元的部分可提成1.5%;高于100万元时,超过100万元的部分按1%提成。
从键盘输入当月利润,求应发放奖金总数.
#include〈stdio。
h>
intmain()
{
floatp,r;
scanf("%f”,&p);
if(p<=10)
r=p*0.1;
elseif(p>10&&p<=20)
r=10*0.1+(p-10)*0。
075;
elseif(p〉20&&p〈=40)
r=10*0.1+10*0.075+(p—20)*0。
05;
elseif(p〉40&&p<=60)
r=10*0.1+10*0.075+20*0.05+(p—40)*0.03;
elseif(p〉60&&p<=100)
r=10*0.1+10*0.075+20*0.05+20*0.03+(p-60)*0。
015;
elseif(p〉100)
r=10*0。
1+10*0。
075+20*0.05+20*0.03+40*0。
015+(p—100)*0.01;
printf("%f\n",r);
return0;
}
(5).输入字符,并以回车结束.将其中的小写字母转换成大写字母,而其他字符不变。
#include〈stdio.h>
intmain()
{
charc;
while((c=getchar())!
='\n’)
{
if(c>=’a’&&c〈=’z')
c=c—32;
putchar(c);
}
return0;
(6).输入一个正整数,求它的所有素数因子.
#includeh>
intmain()
{
intm,k=2;
printf("输入一个正整数:
\n");
scanf("%d",&m);
while(k〈m)
if(m%k==0)
{
printf(”%4d",k);
m=m/k;
}
else
k++;
printf(”%4d\n",m);
return0;
}
(7).从键盘输入正整数a,求s=a+aa+aaa+……+a……a
#include〈stdio。
h>
intmain()
{
inta,n,s=0,p=0,i;
scanf(”%d%d”,&n,&a);
for(i=1;i〈=n;i++)
{
p=p*10+a;
s=s+p;
}
printf("%d\n",s);
return0;
}
(8).输出用0~9这10个数字能组成的三位数
#include
intmain()
{
inti,j,k;
for(i=1;i〈=9;i++)
for(j=0;j<=9;j++)
for(k=0;k<=9;k++)
printf(”%5d",100*i+10*j+k);
return0;
(9).用二分法求方程在区间(-10,10)之间的根
}
#include〈stdio。
h>
#include