第5章的习题答案.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

?PAGE106?

?PAGE107?

第五章部分习题解答

5.2若有以下宏定义:

#defineN2

#defineY(n)n?2

则执行

z=2*3+2+2intz?2*Y(3)?

z=2*3+2+2

printf(2?d\n2,z);

其输出的结果是10。

5.3指出程序的输出结果。

(1)#include?stdio.h?

voidfun(intx,inty,intz){

z?2*x?5*y;

}

voidmain(){

intm?50;

fun(5,2,m);

printf(2m?%d\n2,m);

}

m=50

(2)#include?stdio.h?

voidmain(){

intw?2,k,f(int);

for(k?0;k?3;k??){

w?f(w);

printf(2w?%d\n2,w);

}

}

x=34x

x=34

x=10

x=2

inty;

y=70,x=36y=22,x=12y=6,x=4y???

y=70,x=36

y=22,x=12

y=6,x=4

y??x;

w=106w

w=106

w=34

w=10

}

w=10

w=34

w=106

(3)#include?stdio.h?

voidmain(){

floatmax(float,float);

floata?3.8,b?3.7,c?2.4,maxnum;

maxnum?max(a,max(b,c));

printf(2Maxnumberis%.2f\n2,maxnum);

}

floatmax(floatx,floaty){

floatz;

z?(x?y)?x:y;

return(z);

}

Maxnumberis3.80

(4)#include?stdio.h?

a=9a=4x=5x=

a=9

a=4

x=5

x=5

a=14

x=5

x=5

b=15b=10b=5staticintb

b=15

b=10

b=5

y=1a=14y=10y=

y=1

a=14

y=10

y=1

39

b=15

y=1

y=15y=5y

y=15

y=5

a=19a=9a?b

a=19

a=9

b=20b=10b?x

b=20

b=10

5424return(a?b?y);

54

24

}

voidmain(){

intm?5,i;

for(i?1;i??3;i??)

printf(2i?%d,%d\n2,i,fun(m));

}

i=1,24

i=2,39

i=3,54

5.4指出如下函数的功能,并编写一个主函数来调用如下函数,从而构成一个完整的C程序进行上机调试。

floatfun1(floatx,floaty,floatz){

floatmax;

if(x?y)max?x;

elsemax?y;

if(z?max)max?z;

returnmax;

}

参考答案:

该函数的功能是:比较得到三个实数中最大的实数。

#includestdio.h

voidmain(){

floatmax,a,b,c;

floatfun1(float,float,float);

printf(请输入三个实数分别赋值给a,b,c:);

scanf(%f%f%f,a,b,c);

max=fun1(a,b,c);

printf(其中最大的实数是:%f\n,max);

}

5.5如下函数fun2的作用是判断某成绩是否为有效成绩(有效成绩是指0至100分之间的成绩)。请编写一个完整的C程序,该程序由main主函数和fun2函数组成,要求是:①主函数实现:输入20个有效成绩,求它们的平均成绩;②主函数中要求调用fun2函数来判断输入的成绩是否为有效成绩,对于无效成绩要求重新输入。

intfun2(floatx){

intt;

if(x??0x??100)t?1;

elset?0;

returnt;

}

参考答案:

#includestdio.h

voidmain(){

inti=1,fun2(float);

floatscore,sum=0;

while(i=20){

scanf(%f,score);

if(!fun2(score))printf(输入的成绩不正确,请重新输入.\n);

else{

sum+=score;

i++;

}

}

printf(Theavergescor

文档评论(0)

zhhg001hkdl + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档