课后习题参考答案教材第三版第七章以后只有选择填空题答案.docx
《课后习题参考答案教材第三版第七章以后只有选择填空题答案.docx》由会员分享,可在线阅读,更多相关《课后习题参考答案教材第三版第七章以后只有选择填空题答案.docx(26页珍藏版)》请在冰豆网上搜索。
课后习题参考答案教材第三版第七章以后只有选择填空题答案
第一章习题参考答案
一、单项选择题
1.C2.B3.B4.C5.D
6.A7.C8.A
二、填空题
1.判断条件2.面向过程编程
3.结构化4.程序
5.面向对象语言6.基本功能操作控制结构
7.有穷性8.直到型循环结构
9.算法10.可读性
11.模块化12.对问题的分解和模块的划分
第二章习题参考答案
一、单项选择题
1.B2.D3.C4.B5.A
6.A7.B8.C
二、填空题
1.主2.C编译系统
3.函数一个主函数和若干函数4.输入输出
5.以.h为扩展名的头文件6..obj
7.库函数8.文本
第三章习题参考答案
一、单项选择题
1.D2.B3.A4.C5.C
6.D7.B8.D9.B10.C
11.A12.D13.C14.C15.C
16.C17.B18.C19.C20.D
21.A22.D23.D24.DA25.D
26.A
二、填空
1.补码2.取绝对值为10-308~1030815~16位
3.0或14.赋值右向左
5.函数调用6.65,89
三、应用题
1.109
2.11
0
0
12
1
3.区别是:
求负:
单目,右结合-a+b
减法:
双目,左结合a-b
取地址:
单目,右结合&a
按位与:
双目,左结合a&b
第四章习题参考答案
一、单项选择题
1.D2.C3.D4.A5.D
6.B7.A8.C9.B10.B
二、填空题
1.一条;
2.5.169000
3.
(1)-2002500
(2)i=-200,j=2500
(3)i=-200
j=2500
4.a=98,b=765.000000,c=4321.000000
5.三种可能的输入是:
(1)100<回车>25.81<回车>1.89234<回车>
(2)100<空格>25.81<空格>1.89234<回车>
(3)10025.811.89234<回车>
6.0,0,3
7.3
8.输入语句是:
scanf("%lf%lf%lf",&a,&b,&c);
9.1313.00000013.000000
10.3种方法:
(1)增加一个临时变量t。
t=a;a=c;c=t;
(2)b=a;a=c;c=b;
(3)a=a+c;c=a-c;a=a-c;
三、编程题
1.
#include
intmain()
{printf("***************************\n");
printf("verygood!
\n");
printf("***************************\n");
}
2.
#include
intmain()
{inthour,min;
scanf("%d,%d",&hour,&min);
min=60*hour+min;
printf("%d\n",min);
}
3
#include
intmain()
{floatc,f;
scanf("%f",&c);
f=32+9.0*c/5;
printf("%f\n",f);
}
按题目要求分别输入-10,0,15和34计算相应的华氏温度。
4
#include
intmain()
{floatr,l,s;
scanf("%f",&r);
l=2*3.141592*r;
s=3.14159*r*r;
printf("r=%f,l=%f,s=%f\n",r,l,s);
}
5
#include
#include
intmain()
{floata,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
if((a+b>c)&&(a+c>b)&&(b+c>a))/*判断两边之和大于第三边*/
{s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));/*调用开方函数,计算面积*/
printf("area=%f\n",area);
}
}
6
#include
intmain()
{inta=3,b=4,c=5;
floatd=1.2,e=2.23,f=-43.56;
printf("a=%3d,b=%-4d,c=**%d\n",a,b,c);
printf("d=%3.1f\ne=%6.2f\nf=%-10.4f**\n",d,e,f);
}
7
#include
intmain()
{inta,b,c,t;
scanf("%d,%d,%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d\n",a,b,c);
t=a;
a=b;
b=c;
c=t;
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
8
#include
intmain()
{floata,b,c,aver;
printf(“Pleaseinputthreenumbers:
\n”);
scanf("%f,%f,%f",&a,&b,&c);
aver=(a+b+c)/3;
printf("averageof%5.2f,%5.2fand%5.2fis%5.2f\n",a,b,c,aver);
}
9
#include
intmain()
{inta,b,c,x,y;
scanf("%d%d%d",&a,&b,&c);
x=a*b;y=x*c;
printf("a=%d,b=%d,c=%d\n",a,b,c);
printf("x=%d,y=%d\n",x,y);
}
第五章习题参考答案
一、单项选择题
1.B2.D3.C4.B5.B
6.D7.A8.B9.D
二、填空题
1.非00
2.k==0或!
k!
=0
3.if(x>4||x<-4)printf("%d",x);elseprintf("error!
");
或:
(x>4||x<-4)?
printf("%d",x):
printf("error!
");
或:
if(fabs(x)>4)printf("%d",x);elseprintf("error!
");
4.if((x%2!
=0)&&((x>=1&&x<=10)||(x>=200&&x<=210)))
printf(“%d”,x);
5.1
6.k=1
7.10!
Right!
11
8.$$$a=0
9.a=2,b=1
10.a>0&&a
三、编程题
1.
main()
{inta,b,c;
scanf("%d,%d,%d",&a,&b,&c);
if((a>b)&&(a>c))
if(belseprintf("min=%d\n",c);
elseif(a<=b)
if(aelseprintf("min=%d\n",c);
elseif(a
elseprintf("min=%d\n",c);
}
2:
本程序使用goto语句,仅供参考,请勿模仿。
#include
intmain()
{longa;
intk;
scanf("%ld",&a);
printf("%ld\n",a);
loop:
if(a!
=0)
{k=a%10;
printf("%d",k);
a=a/10;
gotoloop;
}
return0;
}
3.
(1)用简单的if结构
#include
intmain()
{intx,y;
scanf("%d",&x);
if(x<0&&x>-5)
y=x;
if(x<5&&x>=0)
y=x-1;
if(x>=5&&x<10)
y=x+1;
printf("%d,%d\n",x,y);
return0;
}
(2)用嵌套的if结构
#include
intmain()
{intx,y;
scanf("%d",&x);
if(x<5)
if(x<0)
if(x>-5)
y=x;
else
y=x-1;
else
if(x<10)
y=x+1;
if(x>=10&&x<=-5)
printf("%derror!
\n",x);
else
printf("%d,%d\n",x,y);
return0;
}
(3)用if-else分支结构
#include
intmain()
{intx,y;
scanf("%d",&x);
if(x>=10&&x<=-5)
printf("%derror!
\n",x);
elseif(x<0)
y=x;
elseif(x<5)
y=x-1;
else
y=x+1;
printf("%d,%d\n",x,y);
return0;
}
(4)用switch()结构
#include
intmain()
{intx,y,k;
printf("Pleaseinputx:
-----10\n");
p:
scanf("%d",&x);
if(x>=10&&x<=-5)
{printf("%derror!
Inputagain!
\n",x);
gotop;
}
if(x<0)
k=-1;
else
k=x/5;
switch(k)
{case1:
y=x+1;break;
case0:
y=x-1;break;
case-1:
y=x;break;
}
printf("%d,%d\n",x,y);
return0
}
4.
#include
intmain()
{inty0,m0,d0,y1,m1,d1,age;
printf("Pleaseinputcurrentday:
\n");
scanf("%d,%d,%d",&y1,&m1,&d1);
printf("Pleaseinputbirthday:
\n");
scanf("%d,%d,%d",&y0,&m0,&d0);
age=y1-y0;
if(m1age--;
elseif(m1==m0&&d1age--;
printf("age=%d\n",age);
return0;
}
5.
#include
intmain()
{inta,b,c;
printf("Pleaseinputa,b,c:
\n");
scanf("%d,%d,%d",&a,&b,&c);/*输入三角形的三条边*/
if(a+b>c&&a+c>b&&b+c>a)/*判断两边之和大于第三边*/
if(a==b&&b==c)/*判断等边三角形*/
printf("等边三角形\n");
elseif(a==b||a==c||b==c)/*判断等腰三角形*/
printf("等腰三角形\n");
else
printf("一般三角形\n");
else
printf("不能组成三角形\n");
return0;
}
6.
main()
{intx,y,k;
scanf("%d",&x);
k=x/10;
if(k<1)
k=1;
switch(k)
{case1:
y=1;break;
case2:
y=2;break;
case3:
y=3;break;
case4:
y=4;break;
case5:
y=5;break;
default:
y=6;
}
printf("x=%d,y=%d\n",x,y);
return0;
}
7.
#include
intmain()
{intm,k;
floatn;
printf("Pleaseinput购买金额m:
\n");
scanf("%d",&m);
k=m/100;
switch(k)
{case0:
n=0;break;
case1:
n=0.015;break;
case2:
n=0.025;break;
case3:
n=0.035;break;
case4:
n=0.045;break;
case5:
n=0.055;break;
default:
n=0.06;
}
printf("%5d,%7.2f,%7.2f",m,m-n*m,m*n);/*输出购买金额、实际支付金额和返还金额*/
return0;
}
8.本程序使用goto语句实现,仅供参考,请勿模仿。
#include
intmain()
{intyear=1995,month,days=0;
loop:
if(year<=2000)
{days=days+7*31+4*30+28;/*每年增加365天*/
if(year%4==0&&year%100!
=0||year%400==0)/*判断闰年*/
days++;
year++;
gotoloop;
}
days=days-21;/*仅计算到2000年12月10日*/
printf("Thetotaldaysis:
%d\n",days);
return0;
}
9.本程序使用goto语句实现,仅供参考,请勿模仿。
#include
intmain()
{longa;
intb,k=0,m;
printf("Pleaseinputa<99999:
\n");
scanf("%ld",&a);
b=a%10;
m=a;
loop:
if(m!
=0)
{k++;
m=m/10;
gotoloop;
}
}
printf("%ld,%d\n",a,k);
return0;
}
10:
本程序使用goto语句实现,仅供参考,请勿模仿。
#include
#include
intmain()
{longa,m,n=0;
inti=0,k;
scanf("%ld",&a);
m=a;
loop:
if(m!
=0)
{k=m%10;
k=k+2;
if(k>=9)
k=k%10;
m=m/10;
n=k*pow(10,i)+n;
i++;
gotoloop;
}
printf("%ld,%ld\n",a,n);
return0;
}
第六章习题参考答案
一、选择题
1.B2.C3.C4.B5.C6.B7.C8.A
二、填空题
1.无数次2.83.204.11
5.2.4000006.*#*#*#$7.852
8.①d=1.0②k++③k<=n9.①x>=0②x三、编程题
1.
#include
intmain()
{inti,k,s=0;
k=1;
for(i=1;i<=101;i+=2)
{s+=k*i;
k=-k;
}
printf("s=%d\n",s);
return0;
}
2.
#include
intmain()
{inti,k,s1=0,s2=0;
for(i=1;i<=10;i++)
{scanf("%d",&k);
if(k>=0)
s1+=k;
else
s2+=k;
}
printf("s1=%d,s2=%d,s1+s2=%d\n",s1,s2,s1+s2);
}
_
3.
#include
intmain()
{inti,k;
scanf("%d",&k);
while(k>0)
{printf("%d,",k%10);
k=k/10;
}
}
4.
#include
intmain()
{inti=1,x,y,a=1;
scanf("%d,%d",&x,&y);
while(i<=y)
{a=a*x%1000;
i++;
}
printf("%d\n",a%1000);
return0;
}
5.
#include
intmain()
{inti,j,x;floatav,s;
for(i=1;i<=6;i++)/*对6个学生循环*/
{s=0;
for(j=1;j<=5;j++)/*输入每个学生的5门课成绩,并输出*/
{scanf("%d",&x);
printf("%5d",x);
s=s+x;
}
av=s/5;/*计算每个学生的平均成绩av*/
printf("\nNO.%d:
av=%f\n",i,av);/*输出每个学生的平均成绩*/
}
}
_6.
#include
intmain()
{inti,n;
doublet=1,e=0;
/*
(1)计算前n项*/
scanf("%d",&n);
for(i=1;i<=n;i++)
{t=t*i;/*i!
*/
e+=1/t;
}
printf("n=%d,e=%f\n",n,e);
/*
(2)*/
t=1,e=0;i=1;
while(1/t>=1e-4)
{e+=1/t;
i++;
t=t*i;/*i!
*/
}
printf("e=%f\n",e);
}
7.
#include
intmain()
{intj,n,x1,x2,x3,x;
scanf("%d",&n);
printf("%8d%8d%8d\n",x1=1,x2=2,x3=3);
for(j=4;j<=n;j++)
{x=x1+x2+x3;
x1=x2;
x2=x3;
x3=x;
printf("%8d",x);
if(j%3==0)
printf("\n");
}/*3个数一行*/
printf("\n");
/*改进的方法,一次产生3个数
printf("**%8d%8d%8d\n",x1=1,x2=2,x3=3);
for(j=4;j<=n;j+=3)
{x1=x1+x2+x3;
x2=x1+x2+x3;
x3=x1+x2+x3;
printf("**%8d%8d%8d\n",x1,x2,x3);
}
*/
return0;
}
_8.
方法1:
#include
intmain()
{inti,j,k,n,p,t,u=0;
for(i=1012;i<=9998;i+=2)
{j=i/1000;
k=i/100%10;
n=i/10%10;
p=i%10;
if(j!
=k&&j!
=n&&j!
=p&&k!
=n&&k!
=p&&n!
=p)
printf(“%d\n”,i);
}
return0;
}
方法2:
#include
intmain()
{inti,j,k,n,p,t,u=0;
for(i=1;i<10;i++)
{for(j=0;j<10;j++)
{if(i==j)
continue;
for(k=0;k<10;k++)
{if(i==k||j==k)
continue;
for(p=0;p<9;p+=2)
{if(i==p||j==p||k==p)
continue;
t=i*1000+j*100+k*10+p;
printf("%8d",t);/*输出满足条件的4位偶数,8个数一行*/
u++;
if(u%8==0)
printf("\n");
}
}
}
}
return0;
}
9.
#include
intmain()
{inti,j,k;
for(i=1;i<10;i++)
for(j=1;j<90;j++)
{k=100-i-j;
if(40*i+4*j+2*k==400)
printf("%d,%d,%d\n",i,j,k);
}
return0;
}
_
10.