铁道版C语言主要课后习题答案(一)
第二单元
15,试用条件运算编写程序,要求输入两个字符,输出其中较小的字符,输出其中较小字符的ASCII码值.
#include
void main()
{char a,b,min;
printf("请输入两个字符:");
scanf("%c%c",&a, &b);
min=a
printf("%d",min);}
第四单元:
6,从键盘输入五个数字,编程求五个数中的偶数之和。
#include
void main()
{int i,j,a[10][10];
for(i=0;i<10;i++)
{a[i][0]=1;
a[i][i]=1;}
for(i=2;i<10;i++)
for(j=1;j
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<10;i++)
{ for(j=0;j<=i;j++)
printf("%d ",a[i][j]);
printf("\n");}
}
7, 编程判断某数N是否能被K整除。
#include
void main()
{float n,k;
printf("请输入被除数N和除数K:");
scanf("%f%f",&n,&k);
if(n%k==0) printf("\n%f能被%f整除!",n,k);
else printf("\n%f不能被%f整除!",n,k);}
8,输入三个数a,b,c,要求按从从小到大的顺序输出。
#include
void main()
{float a,b,c,t;
scanf("%f%f%f",&a,&b,&c);
if(a>b) {t=a;a=b;b=t;}
if(a>c) {t=a;a=c;c=t;}
if(b>c) {t=b;b=c;c=t;}
printf("%4f%4f%4f",a,b,c);}
9,编制一个计算y=f(x)的程序,其中
y=-x+2.5 (0<=x<2)
=2-1.5(x-3)(x-3) (2<=x<4)
=x/2-1.5 (4<=x<6)
#include
void main()
{float x,y;
printf("请输入数字:");
scanf("%f",&x);
if(x<0||x>=6) printf("数字超过计算范围!");
else {if(x>=0&&x<2) y=-x+2.5;
else if(x>=2&&x<4) y=2-1.5*(x-3)*(x-3);
else (x>=4&&x<6) y=x/2-1.5;}
printf("%f",y);
}
10,编程.输入成绩,输出成绩和级别
A级90-100
B级80-89
C级60-79
D级0-59
#include
void main()
{int y;
float x;
printf("输入成绩: ");
scanf("%f",&x);
if(x<0||x>100.0) printf("错误成绩——超出范围!");
else{y=x/10;
switch(y)
{case 10:
case 9: printf("%f A",x);break;
case 8: printf("%f B",x);break;
case 7:
case 6: printf("%f C",x);break;
default: printf("%f D",x);
}} }
11,编程,输入三个整数,判断他们是否能够构成三角形,若能构成三角形,则输入三角形的类型.
#include
void main()
{int a,b,c;
printf("请输入三角形的三边:");
scanf("%d%d%d",&a,&b,&c);
if((a+b<=c)||(a+c<=b)||(b+c<=a))
printf("不能!");
else{if (a==b&&b==c)
printf("等边!");
else if(a==b||a==c||b==c)
printf("等腰!");
}
else printf("一般!");
}
12,
#include
void main()
{float a,b,c;
printf("请输入本金和期限:");
scanf("%f%f",&a,&b);
if (b=1) c=a*(1+0.0063);
if (b=2) c=a*(1+0.0066);
if (b=3) c=a*(1+0.0069);
if (b=5) c=a*(1+0.0075);
if (b=8) c=a*(1+0.0084);
printf("本息和为:%f",c);
}
13,输入两个整数,若他们的平方和大雨100,则输入该平方和的百位数以上的各位数字,否则输入两个整数的和.
#include
void main()
{int a,b,m;
printf("请输入两个整数:");
scanf("%d%d",&a,&b);
if(a*a>100) m=(a*a+b*b)/100;
else m=a+b;
printf("%d",m);
}
14,编程,输入一个不超过5位数的正整数,输出他的个位数,并指出它是几位数.
#include
void main()
{int a,b,c;
printf("输入一个不超过五位的正整数:");
scanf("%d",&a);
if(a>0&&a<10) b=a,c=1;
if(a>9&&a<100) b=a%10,c=2;
if(a>99&&a<1000) b=a%10,c=3;
if(a>999&&a<10000)
b=a%10,c=4;
printf("它的个位数是%d,它是%d位数。",b,c);
}
15,编程,加密数据。方法:对给定的4位整数值.每一个数字均加2.且在[0,9]
范围内.若加密后那位数字大于9,则取其被10除的余数.如6789加密后为8901
#include
void main()
{int x,a,b,c,d;
printf("请输入一个四位正整数:");
scanf("%d",&x);
a=x/1000;
b=x/100%10;
c=x/10%10;
d=x%10;
a=a+2;b=b+2;c=c+2;d=d+2;
a=a%10;b=b%10;c=c%10;d=d%10;
printf("加密后的数字为%d",a*1000+b*100+c*10+d);}
16,输入年份和月份,求该月有多少天.
#include
void main()
{int a,b,c;
printf("请输入年份和月份:");
scanf("%d%d",&a,&b);
switch(b)
{case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:printf("该月有31天!");break;
case 4:
case 6:
case 9:
case 11:printf("该月有30天!");break;
case
2:if((a%4==0&&a%100!=0)||(a%400==0))
printf("该月有29天!");
else printf("该月有28天!");
}
}
17,编程,输入一个学生的生日,并输入当前的日期,输出该生的实际年龄.
#include
void main()
{int y0,m0,d0,y1,m1,d1;
printf("请输入生日和当前日期:");
scanf("%d%d%d",&y0,&m0,&d0);
scanf("%d%d%d",&y1,&m1,&d1);
if(m1>=m0)
printf("%d岁零%d个月",y1-y0,m1-m0);
else
printf("%d岁零%d个月",y1-y0-1,m1-m0+12);}
18,编写一个简单的计算器程序,输入格式为:data1 op
data2.其中data1和data2是参加运算的两个数字,op为运算符.
#include
void main()
{float d1,d2;
char op;
printf("请输入:");
scanf("%f%c%f",&d1,&op,&d2);
switch(op)
{case '*':printf("%f",d1*d2);break;
case '/':printf("%f",d1/d2);break;
case '+':printf("%f",d1+d2);break;
case '-':printf("%f",d1-d2);break;
}
}
第五单元:
5:
#include
void main()
{int a,i,s=1;
printf("请输入一个整数:");
scanf("%d",&a);
for(i=1;i<=a;i++)
s=s*i;
printf("%d",s);
}
6:
#include
void main()
{int i;
for(i=10;i<100;i++)
{if(i%15==0)
printf("%d ",i);}
}
7:
#include
void main()
{int i,a,b,c,d;
for(i=1010;i<=9999;i++)
{a=i/1000;b=i/100%10;c=i/10%10;d=i%10;
if((i%2==0)&&(a!=b)&&(a!=c)&&(a!=d)&&(b!=c)&&(b!=d)&&(c!=d))
printf("%d\n",i);
}
}
8:
#include
void main()
{float a=1.0,i=1.0,x;
scanf("%f",&x);
while(1/a>0.000001)
{a=a*x;i=i+1/a;}
printf("%f",i);}
9:
#include
void main()
{int i=100,a,b,c;
for(;i<999;i++)
{a=i/100;
b=i/10%10;
c=i%10;
if(i==a*a*a+b*b*b+c*c*c)
printf("%d ",i);}
}
10:
#include
void main()
{int i,n;
scanf("%d",&n);
for(i=2;i
if(n%i==0)
printf("不是");
else printf("是");
}
11:
#include
void main()
{int x,y,a,m,n;
scanf("%d%d",&x,&y);
m=x;n=y;
while(x%y!=0)
{a=x%y;x=y;y=a;}
printf("最大公约数为%d最小公倍数为%d",y,m*n/y);
}
12:
#include
#include
void main()
{float a,b,t;
int c=1000;
scanf("%f",&a);
do{b=0.5*(c+a/c);t=c-b;c=b;}
while(abs(t)>0.000001);
printf("%f",b);
}
15:
#include
void main()
{int a;
for(a=7;a<=1000;a++)
if(a%2==1&&a%3==2&&a%5==4&&a%6==5&&a%7==0)
printf("\n%d",a);}
17:
#include
void main()
{int a=5,d=1;
for(d=1;d<=2;d++)
if((a-2*d)*(a-d)*a*(a+d)*(a+2*d)==945)
printf("%d %d %d %d %d",a-2*d,a-d,a,a+d,a+2*d);}
18:
#include
void main()
{int i,a,b,c,d,e;
for(i=1;i<100;i++)
{e=5*i+1;
d=5*e/4+1;if(e%4!=0)continue;
c=5*d/4+1;if(d%4!=0)continue;
b=5*c/4+1;if(c%4!=0)continue;
a=5*b/4+1;if(b%4==0)break;}
printf("%d",a);}
19:
#include
void main()
{int a,b,i,c;
for(a=0;a<=9;a++)
for(b=0;b<=9;b++)
{for(i=0;i<100;i++)
if(a*1100+b*11==i*i)
c=a*1100+b*11;}
printf("%d",c);}
20:
#include
void main()
{int a,b,c,d;
for(a=1;a<5;a++)
{for(b=1;b<5;b++)
{if(a!=b)for(c=1;c<5;c++)
{d=10-a-b-c;
if((a==1)+(b==4)+(c==3)==1)
if((b==1)+(a==4)+(c==2)+(d==3)==1)
if((b==4)+(a==3)==1)
if((c==1)+(d==4)+(b==2)+(a==3)==1)
if(a*b*c*d==24)
printf("洞庭湖第%d,洪泽湖第%d,鄱阳湖第%d,太湖第%d",a,b,c,d);
}}
}}
21:
#include
void main()
{int i,j,k;
for(i=1;i<=5;i++)
{{for(j=1;j<=6-i;j++)
printf("%d",j+i-1);
if(i==1&&j==5)printf("\n");}
{for(k=1;k<=i-1;k++)
printf("%d",k);
printf("\n");}}}
22:
#include
void main()
{int n,m,i;
for(n=1;n<=6;n++)
{for(i=1;i<=6-n;i++)
printf(" ");
for(m=1;m<=6;m++)
printf("*");
printf("\n");}}
23:
#include
void main()
{int i,j;
for(i=0;i<9;i++)
{for(j=0;j<9;j++)
{if(i-j==0||i+j==8)
printf("*");
else printf(" ");}
printf("\n");}}
24:
#include
void main()
{int i,j;
for(i=1;i<=5;i++)
{for(j=1;j<=5;j++)
if(i>=2&&i<=4)
{if(i+j==6)
printf("*");
else printf(" ");}
else printf("*");
printf("\n");}}
杨辉三角:
#include
void main()
{int i,j,a[10][10];
for(i=0;i<10;i++)
{a[i][0]=1;
a[i][i]=1;}
for(i=2;i<10;i++)
for(j=1;j
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<10;i++)
{ for(j=0;j<=i;j++)
printf("%d ",a[i][j]);
printf("\n");}
}
绝对内参,禁止外泄!!!