第7章习题参考答案.doc

第7章习题参考答案.doc

ID:52520

大小:32.50 KB

页数:5页

时间:2017-04-27

第7章习题参考答案.doc_第1页
第7章习题参考答案.doc_第2页
第7章习题参考答案.doc_第3页
第7章习题参考答案.doc_第4页
第7章习题参考答案.doc_第5页
资源描述:

《第7章习题参考答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《实用C语言简明教程》第7章习题参考答案1.C2.intadd(intx,inty,int*z){return*z=x+y;}3.#include"stdio.h"voidfun(int*x,int*y,intz){printf("%d,%d,%d",*x,*y,z);*x=8;*y=5;z=(*x)/(*y);//红色部分为Turbo2中实际运行的正确形式,否则“/*”有歧义}main(){inta=1,b=2,c=3;fun(&a,&b,c);printf("%d,%d,%d",a,b,c

2、);}运行结果:1,2,38,5,34.void(*p)()5.注意递归回退时,前面各次递归中未执行完的代码仍要执行,第1次调用sub()时,n=8,k=1第2次调用sub()时,n=4,k=2第3次调用sub()时,n=2,k=4,停止递归执行*x+=k,即*x=4;接着开始递归回退过程,执行第2次调用sub()时未执行的*x+=k,这时k=2,得*x=6;返回第1次调用sub()时未执行的*x+=k,这时k=1,得*x=7;运行结果:7上机实习题1.#includevoidcal

3、c(intx,inty,int*gcd,int*lcm);main(){inta,b,c,d;printf("Pleaseentertwointegers(a,b):");scanf("%d,%d",&a,&b);calc(a,b,&c,&d);printf("Thegreatestcommondivisorof%dand%dis%d.",a,b,c);printf("Theleastcommonmultipleof%dand%dis%d.",a,b,d);}voidcalc(intx,i

4、nty,int*gcd,int*lcm){intmax,min,i;if(x>=y){max=x;min=y;}else{max=y;min=x;}for(i=1;(max*i)%min!=0;i++);*gcd=max*i;for(i=min;i>=1;i--){if(max%i==0&&min%i==0){*lcm=i;break;}}}2.A.直接按教材题意4种计算都在一个函数doit中实现:#include"stdio.h"intdoit(inta,intb,intm);main(){inta

5、,b,i;printf("Pleaseenter2integers(a,b):");scanf("%d,%d",&a,&b);for(i=1;i<=4;i++){printf("The%dresultis%d.",i,doit(a,b,i));}}intdoit(inta,intb,intm){switch(m){case1:if(a<=b)returna;elsereturnb;case2:if(a>=b)returna;elsereturnb;case3:returna+b;case4:r

6、eturna*b;}}B.根据本章教学内容为指针,采用函数指针实现(但与题意并不完全体符合,因为是4个不同函数,doit作为函数指针调用这4个函数)#include"stdio.h"intmin(inta,intb);intmax(inta,intb);intsum(inta,intb);intproduct(inta,intb);main(){inta,b,i;int(*doit)();printf("Pleaseenter2integers(a,b):");scanf("%d,%d",&a,&

7、b);for(i=1;i<=4;i++){switch(i){case1:doit=min;break;case2:doit=max;break;case3:doit=sum;break;case4:doit=product;break;}(*doit)(a,b);}}intmin(inta,intb){if(a<=b)printf("minimum=%d",a);elseprintf("minimun=%d",b);}intmax(inta,intb){if(a>=b)printf("m

8、aximum=%d",a);elseprintf("maximum=%d",b);}intsum(inta,intb){printf("sum=%d",a+b);}intproduct(inta,intb){printf("product=%d",a*b);}3.#include#include#includedoublefun(double*x,double*y){doublez;z=sq

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。