《C语言程序设计》清华大学出版社书后习题参考答案Word格式文档下载.docx
《《C语言程序设计》清华大学出版社书后习题参考答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》清华大学出版社书后习题参考答案Word格式文档下载.docx(39页珍藏版)》请在冰点文库上搜索。
printf(“当x变量的初值为%d时,进行+=运算后的结果为%d”,x,x+=x);
printf(“当x变量的初值为%d时,进行-=运算后的结果为%d”,x,x-=x);
printf(“当x变量的初值为%d时,进行*=运算后的结果为%d”,x,x*=x);
printf(“当x变量的初值为%d时,进行/=运算后的结果为%d”,x,x/=x);
习题
一、
1、C2、C3、A
二、
5,-4
6,12,20
P18
scanf(“%d%d”,&
x,&
y);
if(x>
y)
printf(“x>
y”);
elseif(x<
printf(“x<
else
printf(“x=y”);
scanf(“%d”,&
x);
0)y=1;
if(x==0)y=0;
if(x<
0)y=-1;
printf(%d”,y);
P21
(1)C
(2)B(3)B(4)0.500000
(5)不能:
main()
intx,y,z,max;
if(z>
{if(z>
x)
max=z;
elsemax=x;
elseif(y>
max=y;
\nmax=%d"
max);
P23略
P24
习题
一、1、D2、D3、C4、D5、B6、B7、B
二、1、y%2==02、&
&
||!
3、(x>
2&
x<
3)||(x<
-10)
4、(ch>
=’A’&
ch<
=’z’)ch=ch-32;
5、1,0
6、F
三、
1、
{inta;
scanf("
%d"
&
a);
if(a%5==0&
a%7==0)
printf("
yes"
);
elseprintf("
no"
}
2、
{intm;
scanf("
qingshuru:
m);
if((m%4==0&
m%100!
=0)||m%400==0)
printf("
%dshirunnian"
m);
%dbushirunnian"
3、
math.h>
{floata,b,c,dise,x1,x2,realpart,imagpart;
scanf(“%f%f%f”,&
a,&
b,&
c);
printf(“Theequation”);
if(fabs(a)<
=0)
printf(“isnotaquadratic\n”);
{dise=b*b-4*a*c;
if(dise<
printf(“hastwoaqualroots:
%8.4f\n”,-b/(2*a));
if(dise>
0)
{x1=(-b+sprt(disc))/(2*a);
x2=(-b-sprt(disc))/(2*a);
printf(“hasdistinctrealroots:
%8.4fand%8.4f\n”,x1,x2);
else
realpart=-b/(2*a);
imagpart=sqrt(-disc)/(2*a);
printf(“hascomplexroots:
\n”);
printf(“%8.4f+%8.4f\n”,realpart,imagpart);
printf(“%8.4f-%8.4f\n”,realpart,imagpart);
P28
5、课堂实践
intkey;
charch;
*****\n"
key);
?
:
\n"
while((ch=getchar())!
='
\n'
)
(ch-key)>
122?
putchar(ch+122-33-key):
((ch-key)<
33?
putchar(ch-122-key):
putchar(ch-key));
{inti;
/*i没有赋值*/inti=1;
printf(“outputtennumbers:
while(i<
=10)
printf(“%3d”);
/*没有输出参数*/{printf(“%3d”,i);
i++;
/*应加{}组成复合语句*/i++;
}
P30
4.课堂实践
{inta,s=0;
do
{scanf(“%d”,&
s+=a;
while(a!
=-1);
printf(“%d”,s);
{inta,b,r,t,maxB;
b);
if(a<
b)
{t=a;
b=t;
r=a%b;
while(r!
{a=b;
b=r;
maxB=b;
printf(“maxBis%d”,maxB);
P33
6.课堂实践
(1)4
①
inti,j;
**九九乘法表**"
for(i=1;
i<
10;
i++)
{for(j=1;
j<
=i;
j++)
%d*%d=%d\t"
j,i,i*j);
printf("
②
inti=1,j;
while(i<
10)
{j=1;
while(j<
=i)
{printf("
j++;
i++;
③
{j=1;
=i);
10);
{intx;
while(x>
x%10);
x/=10;
prtntf("
"
习题【参考答案】
一、1、D2、C3、A4、A5、D6、C7、D8、D9、C10、B
二、1、362、34、135、i<
=10if(j%6!
{inta,sum=0;
for(a=1;
a<
=100;
a++)
if(a%2==1)
sum=sum+a;
sum);
{inti,j,s;
intt;
intk[100];
=1000;
s=0;
t=0;
for(j=1;
i;
if(i%j==0)
{s+=j;
k[t++]=j;
if(i==s)
{
%dshiwanshou%d="
i,i);
for(;
t>
0;
if(t>
1)
%d+"
k[--t]);
elseprintf("
}
3、
{inty,t=0;
for(y=1008;
y<
=2008;
y++)
if(y%4==0&
y%100!
=0||y%400==0)
{printf(“%d\t”,y);
t++;
if(t%5==0)
printf(“\n”);
4、
{intt,i,x,max,min;
t);
max=min=t;
{scanf(“%d”,&
if(max<
=x)
max=x;
if(min>
min=x;
printf(“%d\t%d\n”,max,min);
5、
{inti,j,p;
=4;
{for(p=1;
p<
p++)
printf(“”);
for(j=7;
j>
=2*i-1;
j--)
printf(“*”);
printf(“\n”);
P39
5.课堂实践
(1)floatcompare(floata,b,c)
floatk;
if(a>
=b)
{k=a;
if(a>
=c)
k=a;
else
k=c;
k=b;
if(b<
returnk;
(2)最大公约数:
intzxgys(intm,n)
inti,j,k;
if(m>
=n)
k=n;
k=m;
for(i=1;
=k;
if(m%i==0&
n%i==0)
j=i;
returnj;
最小公倍数:
intzdgbs(inta,intb)
intx,y,k;
for(x=a*b;
x>
x--)
if(x%a==0&
x%b==0)
y=x;
returny;
P41课堂实践
floatzhouchang(floatx)
floatl;
l=2*3.14*x;
returnl;
floatmianji(floaty)
floats;
s=3.14*y*y;
returns;
voidemain()
floatr;
%f"
r);
floatm,n;
m=zhopuchang(r);
n=mianji(r);
m=%f\nn=%f\n"
m,n);
floatadd(floatx,floaty)
Floatz;
Z=x+y;
Returnz;
floatsub(floath,floatk)
{floatw;
w=h-k;
returnw;
floatmul(floatm,n)
{floati;
i=m*n;
returni;
floatdiv(floate,f)
{floatg;
g=e/f;
returng;
voidmain()
{floatp,g;
%f%f"
p,&
g);
chara;
l
%c"
floatj;
if(a=='
+'
{j=add(p,g);
elseif(a=='
-'
{j=sub(p,g)
elseif(a=='
*'
{j=mul(p,g)
/'
{j=div(p,g)
'
5);
P43
一.选择
1.B2.D3.D4.A5.C6.B7.B8.B9.A10.D
二.填空
1.函数首部和函数体
2.voidadd;
floatadd;
3.1,1,1
4.1,2,3;
5.break;
scanf(“%c”,&
ch);
6.x=4y=9z=5
7.first:
14,4,12
second:
26,4,12
third:
26,3,6
8.a+b=9
9.8
10.125
三.
1.
#include<
fun(intx,inty)
intm;
m=x-y;
m=abs(m);
returnm;
2.voiddeb(intx)
{
inti;
for(i=2;
=x;
if(x%i==0)
break;
if(i>
%dissushu\n"
x);
3.略
第二部分程序设计算法示例
P67
6.
(1)
{intb,m,l;
for(b=1;
b<
20;
b++)
{for(m=1;
m<
33;
m++)
{l=100-m-b;
if(5*b+3*m+l/3==100)
%d%d%d\n"
b,m,l)
(2)#include<
{inta,b,c,d;
for(a=1;
{for(b=1;
{for(c=1;
c<
50;
c++)
{d=40-a-b-c;
if(10*a+5*b+2*c+d==100)
%d,%d,%d,%d\n"
a,b,c,d);
P70
5.
(1)
{inta,b,c;
c=2;
for(a=2;
=3;
{if(a==c)
continue;
b=6-a-c;
if(b==c)
if(a==3)
a与z是对手\n"
if(b==1)
b与x是对手\n"
c与y是对手\n"
5.
(2)
main()
intd=5;
inta,b,c,e,f,g;
=7;
if(a==d)
for(b=1;
if(b==a||b==d)
for(c=1;
if(c==a||c==b||c==d)
for(e=1;
e<
e++)
if(e==a||e==b||e==c||e==d)
for(f=1;
f<
f++)
if(f==e||f==d||f==c||f==b||f==a)
g=(23-a-b-c-e-f);
if(g==f||g==e||g==d||g==c||g==b||g==a)
}
a=%d\nb=%d\nc=%d\nd=%d\ne=%d\nf=%d\ng=%d\n"
a,b,c,d,e,f,g);
5.(3)略
P71
1.B
2.D
3.C
4.C,D
二.
1.2*x+4*y==90;
2.14
1.
inta,b,c;
=9;
for(b=0;
for(c=0;
if(a*a*a+b*b*b+c*c*c==100*a+10*b+c)
a,b,c);
2
intbh,mh,lh;
for(bh=1;
bh<
=40;
bh++)
for(mh=1;
mh<
=50;
mh++)
lh=100-bh-mh;
if(3*bh+2*mh+lh/2)
bh=%d\nmh=%d\nlh=%d\n"
P75
5.
floatx1,x2;
x1=1.5;
x2=(x1+1/x1)/2;
while(x1=x2)
{x1=x2;
x2);
P76
5.
(1)略
intday=1;
intx1=0,x=0;
while(x1<
100)
x=day*2;
day++;
x1+=x;
j=x1*0.8/(day-=1);
j);
一
1.
(1)B
(2)D
2.
(1)C
(2)A
二
1.
(1)x1==0
(2)x/0.5-2
2.sum%4==0
三略
P80.
#include<
{longintf1,f2;
inti;
f1=1;
f2=1;
=20;
{printf(“%4ld%4ld”,f1,f2);
if(i%2==0)printf(“\n”);
f1=f1+f2;
f2=f2+f1;
}}
P81.
ints(inta,intb)
{intg;
if(b==0)
g=1;
g=pow(a,b);
return(g);
{intx,y,m;
Scanf(“%d,%d”,&
m=s(x,y);
printf(“%d”,m);
P81.习题
1、
(1)age(n-1)+2
(2)age(n)
2、计算Fibonacci数列第7项元素k=13
二、略
P85.略
P93.
(1)D
(2)C(3)C(4)D
(5)
{inta[5],s[5];
for(i=0;
5;
a[i]);
{s[i]=a[i]+5;
printf(“%d”,s[i]);
P96.
{inta[10]={265,301,751,129,937,863,742,694,76,438};
inti,j,t;
for(j=0;
9;
9-j;
if(a[i]>
a[i+1])
{t=a[i];
a[i]=a[i+1];
a[i+1]=t;
printf(“%d”,a[i]);
(2).