C语言程序设计教程 课后习题参考答案.docx

上传人:b****5 文档编号:4916257 上传时间:2022-12-11 格式:DOCX 页数:49 大小:25.91KB
下载 相关 举报
C语言程序设计教程 课后习题参考答案.docx_第1页
第1页 / 共49页
C语言程序设计教程 课后习题参考答案.docx_第2页
第2页 / 共49页
C语言程序设计教程 课后习题参考答案.docx_第3页
第3页 / 共49页
C语言程序设计教程 课后习题参考答案.docx_第4页
第4页 / 共49页
C语言程序设计教程 课后习题参考答案.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

C语言程序设计教程 课后习题参考答案.docx

《C语言程序设计教程 课后习题参考答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计教程 课后习题参考答案.docx(49页珍藏版)》请在冰豆网上搜索。

C语言程序设计教程 课后习题参考答案.docx

C语言程序设计教程课后习题参考答案

《C语言程序设计教程》

课后习题参考答案

习题1

1.

(1)编译、链接.exe

(2)函数主函数(或main函数)

(3)编辑编译链接

2.

(1)-(5):

DDBBC(6)-(10):

ABBBC

3.

(1)答:

C语言简洁、紧凑,使用方便、灵活;C语言是高级语言,同时具备了低级语言的特征;C语言是结构化程序设计语言,具有结构化的程序控制语句;C语言有各种各样的数据类型;C语言可移植性好;生成目标代码质量高,程序执行效率高。

(2)编辑、编译、链接、执行

(3)一个C程序由一或多个函数组成,一函数若干条语句构成,每条语句的末尾必须以分号结束。

(4)标识符,关键字,运算符,分隔符,常量,注释符等

4.从键盘输入一个双精度小数,打印出它的余弦值。

#include

#include

main()

{

doublex;

scanf(“%lf”,&x);

printf(“%lf\n”,cos(x));

}

第2章

1.

(1)BDE、ACFG

(2)D(3)C(4)C

2.

(1)错

(2)错(3)错(4)对(5)错

3.

(1)a=3,b=-27

(2)a=11,b=6,c=6

(3)3

(4)1010110

(5)-998

(6)1)202)83)704)05)06)0

4.

(1)

#include

main()

{

doubler,h,v;

r=2.5;

h=3.5;

v=3.14*r*r*h;

printf(“v=%lf\n”,v);

}

(2)

#include

main()

{

charch;

ch=getchar();

printf(“%c\n”,ch+32);

}

(3)

#include

main()

{

printf(“*\n”);

printf(“***\n”);

printf(“*****\n”);

printf(“*******\n”);

}

(4)

#include

main()

{

doublex;

scanf(“%lf”,&x);

printf(“%d,%lf\n”,(int)x,x–(int)x);

}

(5)

#include

main()

{

doublea=3,b=5;

doubleresult=(-2*a+(4*a–b)/(2*a+b))/((a-4*b)/(a+b));

printf(“%lf\n”,result);

}

习题3

1.

(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);

(2)

补充定义:

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);

4.

(1)

#include

main()

{

charx,y;

scanf(“%c%c”,&x,&y);

printf(“%d\n”,(x-‘0’)+(y-‘0’));

}

(2)

#include

main()

{

charx,y;

chartmp;

printf(“Inputtwocharacters:

”);

scanf(“%c%c”,&x,&y);

printf(“Beforeswap:

x=%c,y=%c\n”,x,y);

tmp=x;x=y;y=tmp;

printf(“Afterswap:

x=%c,y=%c\n”,x,y);

}

(3)

#include

main()

{

charch;

ch=getchar();

printf(“%c\n”,ch-32);

}

第4章

1.

(1)-(5):

CAACA

2.

(1)BBB

(2)AAABBBCCC

(3)end

(4)d=20

(5)s=2,t=3

(6)first

third

(7)y=0y=5y=10y=5

3.

(1)y

(2)ch>=’A’&&ch<=’Z’

ch>=’a’&&ch<=’z’ch=ch-32

(3)x>2&&x<=10x>-1&&x<=2

(4)t=x;x=y;y=t;

4.

(1)

#include

main()

{

intx,y,z,t;

scanf(“%d%d%d”,&x,&y,&z);

if(x>y)

{t=x;x=y;y=t;}

if(x>z)

{t=x;x=z;z=t;}

if(y>z)

{t=y;y=z;z=t;}

printf(“%d%d%d\n”,x,y,z);

}

(2)

#include

main()

{

intscore;

scanf(“%d”,&score);

if(score<0||score>100)

printf(“成绩不合理\n”);

elseif(score>=90)

printf(“优秀\n”);

elseif(score>=80)

printf(“良好\n”);

elseif(score>=70)

printf(“中等\n”);

elseif(score>=60)

printf(“及格\n”);

else

printf(“不及格\n”);

}

(3)

#include

main()

{

intn;

intg,s,b,q;//各位上的数值

scanf(“%d”,&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);

}

elseif(n<1000)//三位数

{

printf(“%d\n”,3);//位数

printf(“%d%d%d\n”,g,s,b);

}

elseif(n<10000)//四位数

{

printf(“%d\n”,4);//位数

printf(“%d%d%d%d\n”,g,s,b,q);

}

}

(4)

#include

main()

{

intn;

scanf(“%d”,&n);

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”);

elseif(n%3==0&&n%7==0)

printf(“能被3和7整除\n”);

elseif(n%5==0&&n%7==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”);

}

else

printf(“不能被3、5、7中任一个数整除\n”);

}

(5)

#include

main()

{

intcarType;//车型。

1代表夏利;2代表富康;3代表桑塔纳

doublexiali=2.1;//每公里价格

doublefukang=2.4;

doublesangtana=2.7;

doubledistance;//距离

doubletotalMoney;//总的收费

printf("请输入您乘坐的车型:

1代表夏利;2代表富康;3代表桑塔纳:

");

scanf("%d",&carType);

printf("请输入您乘车的总路程:

");

scanf("%lf",&distance);

if(carType==1)//夏利

{

if(distance<3)

totalMoney=7.0;

else

totalMoney=7+xiali*(distance–3);

}

elseif(carType==2)//富康

{

if(distance<3)

totalMoney=8.0;

else

totalMoney=8+fukang*(distance–3);

}

elseif(carType==3)//富康

{

if(distance<3)

totalMoney=9.0;

else

totalMoney=9+sangtana*(distance–3);

}

printf("(四舍五入)您的车费为:

%.0lf\n",totalMoney);

}

(6)

#include

main()

{

doublea,b,c;

scanf(“%lf%lf%lf”,&a,&b,&c);

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”);

else

printf(“一般三角形\n”);

}

else

printf(“不能构成三角形\n”);

}

第5章

1.

(1)C

(2)C(3)K=36(4)C(5)B

2.

(1)3次

(2)x>=1&&x<=10||x>=200&&x<210

(3)e==0

(4)6次

(5)10

3.

(1)20,10

(2)16,0

(3)7BAB4BAB1BC

(4)ABABABC

(5)******

******

******

******

4.

(1)a!

=b

(2)n/10

(3)scanf(“%d”,&a);

5.(3)行intfac=1,sum=0;

6.

(1)

#include

main()

{

charch;

intalpha=0,space=0,digit=0,other=0;

while((ch=getchar())!

=‘\n’)

{

if(ch>=’A’&&ch<=’Z’||ch>=’a’&&ch<=’z’)

alpha++;

elseif(ch>=’0’&&ch<=’9’)

digit++;

elseif(‘‘==ch)

space++;

else

other++;

}

printf(“%d%d%d%d\n”,alpha,digit,space,other);

}

(2)

#include

main()

{

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);

}

}

(3)

#include

main()

{

intx,y,z;

for(x=0;x<10;x++)

for(y=0;y<10;y++)

for(z=0;z<10;z++)

if(x*100+y*10+z+y*100+z*10+z==532)

printf(“%d%d%d\n”,x,y,z);

}

(4)

#include

main()

{

introw,spaceCount,starCount;

intn;

scanf("%d",&n);

for(row=1;row<=n;++row)

{

for(spaceCount=1;spaceCount<=n-row;++spaceCount)

printf("");//打印出某行上星号前的空格

for(starCount=1;starCount<=2*row-1;++starCount)

printf("*");//打印出某行上的所有星号

printf("\n");//换行

}

//打印下半部分

for(row=1;row

{

for(spaceCount=1;spaceCount<=row;++spaceCount)

printf("");//打印出某行上星号前的空格

for(starCount=1;starCount<=2*(n-row)-1;++starCount)

printf("*");//打印出某行上的所有星号

printf("\n");//换行

}

}

(5)

#include

main()

{

intn;

intg,s,b,q;

intt;

scanf("%d",&n);

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;

printf("%d%d%d%d\n",q,b,s,g);

}

第6章

1.

(1)无返回值

(2)double2

(3)无限循环(死循环)

(4)result=720

2.

(1)

#include

voidprint1(intn);

main()

{

intn;

scanf("%d",&n);

print1(n);

}

voidprint1(intn)

{

introw,col;

for(row=1;row<=n;row++)

{

for(col=1;col<=row;col++)

printf("#");

printf("\n");

}

}

(2)

#include

voidprint2(intn);

main()

{

intn;

scanf("%d",&n);

print2(n);

}

voidprint2(intn)

{

introw,col;

for(row=1;row<=n;row++)

{

for(col=1;col<=2*row-1;col++)

printf("@");

printf("\n");

}

}

(3)

#include

intyearOld(intbyear,intbmonth,intbday,intnyear,intnmonth,intnday);

main()

{

intnowy,nowm,nowd;

intby,bm,bd;

intage;

printf("请输入生日:

");

scanf("%d%d%d",&by,&bm,&bd);

printf("请输入现在日期:

");

scanf("%d%d%d",&nowy,&nowm,&nowd);

age=yearOld(by,bm,bd,nowy,nowm,nowd);

printf("age=%d\n",age);

}

intyearOld(intbyear,intbmonth,intbday,intnyear,intnmonth,intnday)

{

intage;

age=nyear-byear;

if(nmonth

age--;

elseif(nmonth==bmonth&&nday>bday)

age--;

returnage;

}

(4)

#include

intsum(intn);

main()

{

intn,s;

scanf("%d",&n);

s=sum(n);

printf("s=%d\n",s);

}

intsum(intn)

{

ints=0;

while(n)

{

s+=n%10;

n/=10;

}

returns;

}

(5)

#include

doublesumfac(intn);

main()

{

intn;

scanf("%d",&n);

printf("%.0lf\n",sumfac(n));

}

doublesumfac(intn)

{

doublef=1.0,s=0.0;

inti;

for(i=1;i<=n;i++)

{

f*=i;

s+=f;

}

returnf;

}

(6)

#include

intgcd(intm,intn);

main()

{

intm,n;

scanf("%d%d",&m,&n);

printf("%d\n",gcd(m,n));

}

intgcd(intm,intn)

{

intt,r;

if(m

{t=m;m=n;n=t;}

r=m%n;

while(r)

{

m=n;

n=r;

r=m%n;

}

returnn;

}

(7)

#include

intgcd(intm,intn);

intlcm(intm,intn);

main()

{

intm,n;

scanf("%d%d",&m,&n);

printf("%d\n",lcm(m,n));

}

intgcd(intm,intn)

{

intt,r;

if(m

{t=m;m=n;n=t;}

r=m%n;

while(r)

{

m=n;

n=r;

r=m%n;

}

returnn;

}

intlcm(intm,intn)

{

returnm*n/gcd(m,n);

}

(8)

#include

doublemypower(doublex,inty);

main()

{

doublex;

inty;

scanf("%lf%d",&x,&y);

printf("%lf\n",mypower(x,y));

}

doublemypower(doublex,inty)

{

inti;

doublef=1.0;

for(i=1;i<=y;i++)

f*=x;

returnf;

}

第7章

1.

(1)6

(2)5(3)不能

(4)inta[3][2]={{1,2},{3,4},{5,6}};

(5)69

(6)abcG

2.

(1)

#include

voidreverse(inta[],intn);

intmain()

{

intarray[10]={0};

inti;

printf(“请输入10个整数:

”);

for(i=0;i<10;i++)

scanf(“%d”,&array[i]);

reverse(array,10);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1