C语言程序设计课后答案罗朝盛.docx
- 文档编号:9306284
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:62
- 大小:35.13KB
C语言程序设计课后答案罗朝盛.docx
《C语言程序设计课后答案罗朝盛.docx》由会员分享,可在线阅读,更多相关《C语言程序设计课后答案罗朝盛.docx(62页珍藏版)》请在冰豆网上搜索。
C语言程序设计课后答案罗朝盛
第1章习题参考答案
1.(略)
2判断题
1
2
3
4
5
√
×
√
×
√
3填空题
(1)main
(2)函数的首部、函数体
(3){、}
(4)main、main
(5)语句、分号(;)
4选择题
1
2
3
4
5
C
C
C
A
B
5选择题
(1)
#include
main()
{
inta,b,s;
floatt;
printf("EnterA,B=?
\n");
scanf("%d%d",&a,&b);
s=a+b;
t=a*b;
printf("s=%d,t=%f\n",s,t);
}
(2)
#include
main()
{
printf("=================\n");
printf("Hello!
\n");
printf("Howdoyoudo\n");
printf("=================\n");
}
(3)
#include
main()
{
intr,h;
floatv;
printf("EnterR,H=?
\n");
scanf("%d%d",&r,&h);
v=3.1415926*r*r*h;
printf("v=%f\n",v);
}
第2章习题参考答案
一.(略)
二.填空题
(1)
(2)2.5
(3)16
(4)10
(5)16、16、11
(6)4、10、6
(7)18、3、3
(8)sin(65*3.14/180)+2*(3.1415926+exp(y))/(x-y)
(9)25、25
(10)27
(11)4
(12)0
三、选择题
1
2
3
4
5
6
7
8
9
10
11
12
D
D
C
B
D
A
D
B
C
D
A
B
四、编程题
1.
#include
main()
{
intx,a,b,c;
printf("Enteraintgernumberx=?
\n");
scanf("%d",&x);
a=x/100;
b=x%100/10;
c=x%10;
printf("%d%d%d\n",a,b,c);
}
2.
#include
main()
{
unsigneda,b,r1,r2,r3;
scanf("%u%u",&a,&b);
r1=a&b;
r2=a|b;
r3=a^b;
printf("r1=%u,r2=%u,r3=%u\n",r1,r2,r3);
getch();
}
3.
#include
main()
{
floata,b,h,s;
scanf("%f%f?
%f",&a,&b,&h);
s=(a+b)*h/2;
printf("s=%f\n",s);
}
第3章习题参考答案
一、判断题
1
2
3
4
5
6
×
×
×
√
√
×
2填空题
3语句
4表达式语句
5{}
6函数
7由“%”和格式字符
8&
9getchar()
1027,33,1b
11x
(1)=23.14x
(2)=-78.32
125+6
3程序阅读题
1、
p=3.14
p=3.1416
p=3.14
p=3.1416
p=3.14
p=3.1416
2、
a----ASCII:
97
a----ASCII:
97
a----ASCII:
97
4编程题
1、
#include
main()
{
inta,b;
floatr1,r2;
scanf("%d%d",&a,&b);
r2=a+b;
r1=a*b/r2;
printf("r1=%0.2f,r2=%0.2f\n",r1,r2);
}
2、
#include
main()
{
floatc,f;
printf("InputC=");
scanf("%f",&c);
f=9.0/5*c+32;
printf("F=%f\n",f);
}
3、
#include
voidmain()
{
floatc1,c2,c3,ver,s;
printf("Inputa,bandc:
");
scanf("%f%f%f",&c1,&c2,&c3);
s=c1+c2+c3;
ver=s/3;
printf("totals=%f,ver=%f\n",s,ver);
}
}
第4章习题参考答案
1判断题
1
2
3
4
5
6
×
×
√
√
×
√
2选择题
1
2
3
4
5
6
7
8
B
B
B
B
D
A
B
B
3程序阅读题
(1)105
(2)a=8
(3)abc123DEF
(4)
4程序填空题
(1)chch==')'count--count==0count>0
(2)div=ndiv—
(3)min=markmin=markmax=marksum+=mark
5编程题
(1)
#include
voidmain()
{intx,y;
printf("EntertheX,Y=?
\n");
scanf("%d,%d",&x,&y);
if(x>0&&y>0)
printf("(%d,%d)是第一像限\n",x,y);
elseif(x>0&&y<0)
printf("(%d,%d)是第四像限\n",x,y);
elseif(x<0&&y>0)
printf("(%d,%d)是第三像限\n",x,y);
elseif(x<0&&y<0)
printf("(%d,%d)是第二像限\n",x,y);
elseif(x>0&&y==0)
printf("(%d,%d)在X轴正方向\n",x,y);
elseif(x<0&&y==0)
printf("(%d,%d)在X轴负方向\n",x,y);
elseif(x==0&&y>0)
printf("(%d,%d)在Y轴正方向\n",x,y);
elseif(x==0&&y<0)
printf("(%d,%d)在Y轴负方向\n",x,y);
else
printf("(%d,%d)为坐标原点\n",x,y);
}
(2)
#include
#include
main()
{
floata,b,c,x,s;
printf("Inputa,bandc:
");
scanf("%f%f%f",&a,&b,&c);
if(a+b<=c||a+c<=b||b+c<=a)
printf("Error!
\n");
else{
x=(a+b+c)/2;
s=sqrt(x*(x-a)*(x-b)*(x-c));
printf("area=%f\n",s);
}
}
(3)
程序代码如下:
#include
voidmain()
{floatsalary,tax;
intntax;
printf("\nPleaseenterasalary=");
scanf("%f",&salary);
ntax=salary/500;
if(ntax>=10)ntax=10;
switch(ntax)
{case0:
case1:
tax=0;break;
case2:
tax=(salary-1000)*0.05;break;
case3:
case4:
tax=500*0.05+(salary-1500)*0.1;break;
case5:
case6:
tax=500*0.05+1000*0.1+(salary-2500)*0.15;break;
case7:
case8:
case9:
tax=500*0.05+1000*0.1+1000*0.15+(salary-3500)*0.20;break;
case10:
tax=500*0.05+1000*0.1+1000*0.15+1500*0.20+(salary-5000)*0.30;
}
printf("\nThetax=%10.2f\n",tax);
}
(4)方法一
#include
#include
main()
{
inti=1;
floatt=-1,s=0;
do{
t=-t/i;
s=s+t;
i=i+1;
}while(fabs(t)>1e-6);
printf("s=%f\n",s);
}
方法二
#include
voidmain()
{
inti=1,sign=1;
floatt=1.0,s=0.0;
while(1.0/t>1e-6)
{
t=t*i;
s=s+sign/t;
i=i+1;
sign=-sign;
};
printf("s=%f\n",s);
}
(5)方法一:
#include
main()
{
inti,a,b,c;
for(i=100;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\n",i);
}
}
方法二:
#include
voidmain()
{
inti,a,b,c;
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
{i=a*100+b*10+c;
if(i==a*a*a+b*b*b+c*c*c)printf("%d\n",i);
}
}
(6)
#include
main()
{
inti,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=6-i;j++)putchar('');
for(j=1;j<=i*2-1;j++)
printf("%c",65+i-1);
printf("\n");
}
for(i=3;i>=1;i--)
{
for(j=1;j<=6-i;j++)putchar('');
for(j=1;j<=i*2-1;j++)
printf("%c",65+i-1);
printf("\n");
}
}
(7)
#include
main()
{
inta,b,c;
for(a=0;a<=20;a++)
for(b=0;b<=33;b++)
{
c=100-a-b;
if(a*5+b*3+c/3.0==100)
printf("%d,%d,%d\n",a,b,c);
}
}
(8)
#include
#include
main()
{
floatx,x0,a;
scanf("%f",&a);
x=a;
do{
x0=x;
x=2/3.0*x0+a/(3*x0*x0);
}while(fabs(x-x0)>1e-6);
printf("x=%f\n",x);
}
(9)
#include
#include
main()
{
floatpi,pi0;
inti=1
pi=2;
do{
pi0=pi;
pi=pi*(2.0*i/(2.0*i-1))*(2.0*i/(2.0*i+1));
i=i+1;
}while(fabs(pi-pi0)>1e-6);
printf("pi=%f\n",pi);
}
(10)
#include
voidmain()
{inti,j,s;
for(i=6;i<=1000;i++)
{s=1;
for(j=2;j<=i/2;j++)
if(i%j==0)s+=j;
if(s==i)/*判断是否是合数*/
{printf("%d=1",i);/*打印输出合数及=1*/
for(j=2;j<=i/2;j++)/*打印输出各因子*/
if(i%j==0)printf("+%d",j);
printf("\n");
}
}
}
(11)
#include
#include
voidmain()
{
intx,y,z,k;
k=sqrt(2000);
for(x=0;x<=k;x++)
for(y=0;y<=k;y++)
for(z=0;z<=k;z++)
if(x*x+y*y+z*z==2000)
printf("%d,%d,%d\n",x,y,z);
}
第5章习题参考答案
1判断题
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
√
×
√
×
×
√
×
×
×
×
×
×
×
×
×
2填空题
(1)32
(2)4
(3)str1[7]='\0';
(4)for(i=1;i<=6;i++)gets(a[i]);
(5)strcpy(web,"");
(6)int*p=a;
(7)5
(8)1
(9)*(p+6)或*(s+6)
3选择题
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
B
C
B
A
B
C
B
A
C
D
B
D
B
A
D
4程序阅读题
(1)6
(2)str
(3)60
(4)bcdefga
cdefgab
defgabc
(5)a1e2
5程序填空题
(1)#include
(2)scanf("%d",&n)a[i][i]=1a[i-1][j-1]printf("\n")
(3)b[i]!
='\0'strcpyputs(b)
(4)p=a[0];或p=&a[0][0];*p
六、编程题
1、使用数组和指针2种方法来处理。
方法一(使用数组)
#include
voidmain()
{inti=0,a[10],t;
printf("Enterthe10number=\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<5;i++)
{t=a[i];a[i]=a[9-i];a[9-i]=t;}
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
}
方法二(使用指针)
#include
voidmain()
{inti=0,a[10],t,*p,*q;
printf("Enterthe10number=\n");
for(p=a;p scanf("%d",p); p=a; q=a+9;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 课后 答案 罗朝盛