C语言程序设计教程 课后习题参考答案文档格式.docx
《C语言程序设计教程 课后习题参考答案文档格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计教程 课后习题参考答案文档格式.docx(49页珍藏版)》请在冰豆网上搜索。
(2)
charch;
ch=getchar();
printf(“%c\n”,ch+32);
(3)
printf(“*\n”);
printf(“***\n”);
printf(“*****\n”);
printf(“*******\n”);
(4)
printf(“%d,%lf\n”,(int)x,x–(int)x);
(5)
doublea=3,b=5;
doubleresult=(-2*a+(4*a–b)/(2*a+b))/((a-4*b)/(a+b));
printf(“%lf\n”,result);
习题3
(1)D
(2)AD(3)C(4)B(5)A
(6)-(10):
BDACB
2.
(1)3.141593,3.1416,3.142
(2)c=K
(3)|123.46|,|123|
(4)x=1.23,y=50.00
(5)0
3.
(1)scanf(%f”,c);
改为:
scanf(“%f”,&
c);
f=(9/5)*c+32;
f=(9.0/5)*c+32;
printf(“摄氏温度%f度相当于华氏温度%f度”,&
c,&
f);
printf(“摄氏温度%f度相当于华氏温度%f度”,c,f);
补充定义:
inth;
h=500/60改为:
h=500/60;
m=500%60改为:
m=500%60;
printf(“500分钟是%d小时%d分钟,”&
h,&
m);
printf(“500分钟是%d小时%d分钟”,h,m);
#include<
charx,y;
scanf(“%c%c”,&
x,&
y);
printf(“%d\n”,(x-‘0’)+(y-‘0’));
charx,y;
chartmp;
printf(“Inputtwocharacters:
”);
printf(“Beforeswap:
x=%c,y=%c\n”,x,y);
tmp=x;
x=y;
y=tmp;
printf(“Afterswap:
printf(“%c\n”,ch-32);
第4章
CAACA
(1)BBB
(2)AAABBBCCC
(3)end
(4)d=20
(5)s=2,t=3
(6)first
third
(7)y=0y=5y=10y=5
(1)y<
zx<
y
(2)ch>
=’A’&
&
ch<
=’Z’
ch>
=’a’&
ch<
=’z’ch=ch-32
(3)x>
2&
x<
=10x>
-1&
=2
(4)t=x;
x=y;
y=t;
intx,y,z,t;
scanf(“%d%d%d”,&
y,&
z);
if(x>
y)
{t=x;
}
if(x>
z)
{t=x;
x=z;
z=t;
}
if(y>
{t=y;
y=z;
z=t;
printf(“%d%d%d\n”,x,y,z);
intscore;
scanf(“%d”,&
score);
if(score<
0||score>
100)
printf(“成绩不合理\n”);
elseif(score>
=90)
printf(“优秀\n”);
=80)
printf(“良好\n”);
elseif(score>
=70)
printf(“中等\n”);
=60)
printf(“及格\n”);
else
printf(“不及格\n”);
intn;
intg,s,b,q;
//各位上的数值
n);
g=n%10;
//个位
s=n/10%10;
//十位
b=n/100%10;
//百位
q=n/1000%10;
//千位
if(n<
10)//一位数
{
printf(“%d\n”,1);
//位数
printf(“%d\n”,g);
//各位上的数值
elseif(n<
100)//两位数
printf(“%d\n”,2);
printf(“%d%d\n”,g,s);
1000)//三位数
printf(“%d\n”,3);
printf(“%d%d%d\n”,g,s,b);
10000)//四位数
printf(“%d\n”,4);
printf(“%d%d%d%d\n”,g,s,b,q);
if(n%3==0&
n%5==0&
n%7==0)
printf(“能同时被3、5、7整除\n”);
elseif(n%3==0&
n%5==0)
printf(“能被3和5整除\n”);
printf(“能被3和7整除\n”);
elseif(n%5==0&
printf(“能被5和7整除\n”);
elseif(n%3==0||n%5==0||n%7==0)
if(n%3==0)
printf(“能被3整除\n”);
elseif(n%5==0)
printf(“能被5整除\n”);
else
printf(“能被7整除\n”);
printf(“不能被3、5、7中任一个数整除\n”);
intcarType;
//车型。
1代表夏利;
2代表富康;
3代表桑塔纳
doublexiali=2.1;
//每公里价格
doublefukang=2.4;
doublesangtana=2.7;
doubledistance;
//距离
doubletotalMoney;
//总的收费
printf("
请输入您乘坐的车型:
3代表桑塔纳:
"
);
scanf("
%d"
&
carType);
请输入您乘车的总路程:
%lf"
distance);
if(carType==1)//夏利
if(distance<
3)
totalMoney=7.0;
totalMoney=7+xiali*(distance–3);
elseif(carType==2)//富康
totalMoney=8.0;
totalMoney=8+fukang*(distance–3);
elseif(carType==3)//富康
totalMoney=9.0;
totalMoney=9+sangtana*(distance–3);
}
(四舍五入)您的车费为:
%.0lf\n"
totalMoney);
(6)
doublea,b,c;
scanf(“%lf%lf%lf”,&
a,&
b,&
if(a+b>
c&
b+c>
a&
c+a>
b)
if(a==b&
b==c)
printf(“等边三角形\n”);
elseif(a==b||b==c||c==a)
printf(“等腰三角形\n”);
printf(“一般三角形\n”);
printf(“不能构成三角形\n”);
第5章
1.
(1)C
(2)C(3)K=36(4)C(5)B
(1)3次
(2)x>
=1&
x<
=10||x>
=200&
210
(3)e==0
(4)6次
(5)10
(1)20,10
(2)16,0
(3)7BAB4BAB1BC
(4)ABABABC
(5)******
******
******
(1)a!
=b
(2)n/10
(3)scanf(“%d”,&
a);
5.(3)行intfac=1,sum=0;
6.
intalpha=0,space=0,digit=0,other=0;
while((ch=getchar())!
=‘\n’)
if(ch>
=’A’&
=’Z’||ch>
=’z’)
alpha++;
elseif(ch>
=’0’&
=’9’)
digit++;
elseif(‘‘==ch)
space++;
other++;
printf(“%d%d%d%d\n”,alpha,digit,space,other);
intm20,m10;
for(m20=1;
m20<
5;
m20++)
for(m10=1;
m10<
10;
m10++)
if(20*m20+10*m10==100)
printf(“%d,%d\n”,m20,m10);
intx,y,z;
for(x=0;
x++)
for(y=0;
y<
y++)
for(z=0;
z<
z++)
if(x*100+y*10+z+y*100+z*10+z==532)
printf(“%d%d%d\n”,x,y,z);
introw,spaceCount,starCount;
for(row=1;
row<
=n;
++row)
for(spaceCount=1;
spaceCount<
=n-row;
++spaceCount)
printf("
"
//打印出某行上星号前的空格
for(starCount=1;
starCount<
=2*row-1;
++starCount)
*"
//打印出某行上的所有星号
printf("
\n"
//换行
//打印下半部分
for(row=1;
row<
n;
row++)
=row;
=2*(n-row)-1;
intt;
g=n%10;
s=n/10%10;
b=n/100%10;
q=n/1000%10;
g=(g+5)%10;
s=(s+5)%10;
b=(b+5)%10;
q=(q+5)%10;
//第1位和第4位交换
t=g;
g=q;
q=t;
//第2位和第3位交换
t=s;
s=b;
b=t;
%d%d%d%d\n"
q,b,s,g);
第6章
1.
(1)无返回值
(2)double2
(3)无限循环(死循环)
(4)result=720
voidprint1(intn);
print1(n);
voidprint1(intn)
introw,col;
for(row=1;
=n;
for(col=1;
col<
=row;
col++)
#"
voidprint2(intn);
print2(n);
voidprint2(intn)
=2*row-1;
@"
intyearOld(intbyear,intbmonth,intbday,intnyear,intnmonth,intnday);
intnowy,nowm,nowd;
intby,bm,bd;
intage;
请输入生日:
%d%d%d"
by,&
bm,&
bd);
请输入现在日期:
nowy,&
nowm,&
nowd);
age=yearOld(by,bm,bd,nowy,nowm,nowd);
age=%d\n"
age);
intyearOld(intbyear,intbmonth,intbday,intnyear,intnmonth,intnday)
age=nyear-byear;
if(nmonth<
bmonth)
age--;
elseif(nmonth==bmonth&
nday>
bday)
returnage;
intsum(intn);
intn,s;
s=sum(n);
s=%d\n"
s);
intsum(intn)
ints=0;
while(n)
s+=n%10;
n/=10;
returns;
doublesumfac(intn);
sumfac(n));
doublesumfac(intn)
doublef=1.0,s=0.0;
inti;
for(i=1;
i<
i++)
{
f*=i;
s+=f;
returnf;
intgcd(intm,intn);
intm,n;
%d%d"
m,&
%d\n"
gcd(m,n));
intgcd(intm,intn)
intt,r;
if(m<
n)
{t=m;
m=n;
n=t;
r=m%n;
while(r)
m=n;
n=r;
r=m%n;
returnn;
(7)
intlcm(intm,intn);
lcm(m,n));
intlcm(intm,intn)
returnm*n/gcd(m,n);
(8)
doublemypower(doublex,inty);
inty;
%lf%d"
%lf\n"
mypower(x,y));
doublemypower(doublex,inty)
doublef=1.0;
i<
=y;
f*=x;
第7章
(1)6
(2)5(3)不能
(4)inta[3][2]={{1,2},{3,4},{5,6}};
(5)69
(6)abcG
voidreverse(inta[],intn);
intmain()
{
intarray[10]={0};
inti;
printf(“请输入10个整数:
for(i=0;
scanf(“%d”,&
array[i]);
reverse(array,10);