华中科技大学标准C语言程序的设计及应用习题答案.docx
《华中科技大学标准C语言程序的设计及应用习题答案.docx》由会员分享,可在线阅读,更多相关《华中科技大学标准C语言程序的设计及应用习题答案.docx(40页珍藏版)》请在冰豆网上搜索。
华中科技大学标准C语言程序的设计及应用习题答案
第二章
一.选择题
1.C2.BD3.A4.A5.D
6.C7.D8.C9.A10.D
11.B12.D13.C14.D15.A
16.B17.A18.B100011001111
二.判断题
1.错
2.错
3.错
4.错
三.填空题
1.B66
2.n1=%d\nn2=%d\n
3.0
四.计算
1
(1)x|y=0x002f
(2)x^y=0x0026
(3)x&y=0x0009;
(4)~x+~y=0xffc6
(5)x<<=30x0068
(6)y>>=40x0002
2
(1)6
(2)50
(3)1
(4)–16
(5)1
(6)20
3
(1)0
(2)1
(3)1
(4)4
(5)8
(6)1
4
(1)12
(2)0
(3)1
(4)27
(5)1
(6)6
(7)24
(8)27
(9)–29
5
(1)0
(2)1
(3)1
(4)–3
(5)2
五.程序分析题
程序1
b=20a=3600
程序2
第三章
一.填空题
1.s=6
2.96
3.
(1)scanf("%c",&c);
(2)c-32更好的答案:
c-('a'-'A')
2.1
main()
{
inta,b;
printf("pleaseinputa&b:
");
scanf("%d%d",&a,&b);
printf("\nmaxis%d\n",(a>b)?
a:
b);
}
2.2
intmax(intx,inty);
main()
{
inta,b,c,max;
printf("pleaseinputa&b&c:
");
scanf("%d%d%d",&a,&b,&c);
max=a>b?
a:
b;
max=c>max?
c:
max;
printf("\nmaxis%d\n",max);
}
2.3
main()
{
inti=0,sum=0;
while(i<=100)
{
sum+=i;
i++;
}
printf("1+2+3+......+100=%d\n",sum);
}
2.4
main()
{
inti;
inta=10,b=-3;
intc;
printf("%6d%6d",a,b);
for(i=2;i<10;i++)
{
c=3*b+a;
printf("%6d",c);
a=b;
b=c;
}
printf("\n");
}
2.5
main()
{
inti;
while
(1)
{
printf("pleaseinputadata(0:
exit):
");
scanf("%d",&i);
if(i==0)
break;
if(i%2==0)
printf("thedata%disaevennumber.\n",i);
else
printf("thedata%disaoddnumber.\n",i);
}
}
2.6
#include
main()
{
inti;
inta=8,b=1;
intsum=0;
for(i=0;i<10;i++)
{
b+=3;
sum+=a;
a+=b;
printf("a%8db:
%8d\n",a,b);
}
printf("TheSumOfIs:
%d\n",sum);
}
2.7
#include
main()
{
floatx,y;
printf("pleaseinputx:
");
scanf("%f",&x);
if(x<1.0)
y=x;
elseif(x<10)
y=2*x-1;
else
y=3*x-11;
printf("y=%f\n",y);
}
2.8
#include
main()
{
longa,i,b,a1;
while
(1)
{
printf("pleaseinputdata(1-99999):
");
scanf("%ld",&a);
printf("a:
%ld\n",a);
if(a<=0||a>=100000)
break;
i=0;
a1=0;
while(a!
=0)
{
b=a%10;
printf("%8d",b);
a/=10;
i++;
a1=a1*10+b;
}
printf("\ni:
%lda1:
%ld\n",i,a1);
}
}
2.9
#include
#include
#include
main()
{
inta,b,i,k=0;
randomize();
a=random(1001);/*createarandomdata(0-1000)*/
for(i=0;i<20;i++)
{
printf("pleaseguessanumber:
");
scanf("%d",&b);
if(a>b)
{
k++;
printf("\n%d:
Smaller,guessagain!
\n",k);
}
elseif(a
{
k++;
printf("\n%d:
Bigger,guessagain!
\n",k);
}
else
{
printf("\nYouguessright,congraturation!
");
printf("\nYouhaveguessed%dtimes",k);
break;
}
}
if(k==20)
printf("\nsorry,youfailed!
");
}
2.10
#include
main()
{
inta,b,c;
intnum;
for(a=0;a<10;a++)
{
for(b=0;b<10;b++)
{
for(c=1;c<10;c++)
{
num=a*100+b*10+c;
if((num%3==0)&&(a==5||b==5||c==5))
printf("%8d",num);
}
}
}
printf("\n\n\n");
}
2.11
#include
main()
{
inti;
inta,b;
printf("pleaseinputa,b:
");
scanf("%d%d",&a,&b);
for(i=a
a:
b;i>0;i--)
{
if(a%i==0&&b%i==0)
{
printf("Themax=%d",i);
break;
}
}
for(i=a>b?
a:
b;i>0;i++)
{
if(i%a==0&&i%b==0)
{
printf("\nThemin=%d",i);
break;
}
}
2.12
#include
main()
{
inta,k=0;
printf("pleaseinputdata:
");
scanf("%d",&a);
while(a%2==0)
{
a=a/2;
k++;
}
printf("\nthenumberoffactor
(2)is%d",k);
}
2.13
main()
{
longi,t=1;
longsum=0;
for(i=1;i<=10;i++)
{
t*=i;
sum+=t;
printf("%ld!
=%ld\n",i,t);
}
printf("sum:
%ld\n",sum);
}
2.14
#include
voidmain()
{
inti,x=0;
for(i=9;i>=1;i--)
{
x=2*(x+1);
}
printf("Thefirstday:
%d",x);
}
2.15
#include
#definePI3.141593
main()
{
floatr,h;
floatv;
printf("pleaseinputr,h:
");
scanf("%f%f",&r,&h);
v=1.0/3*PI*r*r*h;
printf("V=%.2f",v);
}
2.16
#include
#include
main()
{
longintsn=0;
longintm=0,t=0;
inta,n,i;
printf("pleaseinputan:
");
scanf("%d%d",&a,&n);
for(i=0;i{
m=m*10+a;
sn+=m;
}
printf("a+aa+aaa+...+aa...a=%ld\n\n",sn);
}
2.17
#include
main()
{
intk;
printf("pleaseinputk:
");
do
{
scanf("%d",&k);
if(k>=0&&k<=6)
break;
}while
(1);
switch(k)
{
case0:
printf("Sunday.\n");break;
case1:
printf("Monday.\n");break;
case2:
printf("Tuesday.\n");break;
case3:
printf("Wednesday.\n");break;
case4:
printf("Thursday.\n");break;
case5:
printf("Friday.\n");break;
case6:
printf("Saturday.\n");break;
}
}
2.18
#include
main()
{
inti;
doublex,a,b=1,sum=1;
printf("pleaseinputx:
");
scanf("%lf",&x);
a=x;
for(i=1;a/b>=1e-6;i++)
{
sum=sum+a/b;
a=a*x;
b=(i+1)*b;
}
printf("\nsum=%lf",sum);
}
2.19
#include
#include
main()
{
floata,x1,x2;
printf("inputa:
");
scanf("%f",&a);
x1=1.0;
while
(1)
{
x2=1.0/2*(x1+a/x1);
if(fabs(x2-x1)<1e-5)
break;
x1=x2;
}