- 32.50 KB
- 5页
- 1、本文档共5页,可阅读全部内容。
- 2、本文档由网友投稿或网络整理,如有侵权请及时联系我们处理。
'《实用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,%dn",*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,%dn",a,b,c);}运行结果: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.#includevoidcalc(intx,inty,int*gcd,int*lcm);main(){inta,b,c,d;printf("nPleaseentertwointegers(a,b):");scanf("%d,%d",&a,&b);calc(a,b,&c,&d);printf("nThegreatestcommondivisorof%dand%dis%d.",a,b,c);printf("nTheleastcommonmultipleof%dand%dis%d.",a,b,d);}voidcalc(intx,inty,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,b,i;printf("nPleaseenter2integers(a,b):");scanf("%d,%d",&a,&b);for(i=1;i<=4;i++){printf("nThe%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:returna*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("nPleaseenter2integers(a,b):");scanf("%d,%d",&a,&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("nminimum=%d",a);elseprintf("nminimun=%d",b);}intmax(inta,intb){if(a>=b)printf("nmaximum=%d",a);elseprintf("nmaximum=%d",b);}intsum(inta,intb){printf("nsum=%d",a+b);}intproduct(inta,intb){printf("nproduct=%d",a*b);}
3.#include#include#includedoublefun(double*x,double*y){doublez;z=sqrt(*x)+sqrt(*y);returnz;}main(){doublea,b,c;printf("inputa,b:");scanf("%lf%lf",&a,&b);c=fun(&a,&b);printf("c=%lfn",c);}4.#include#includevoidfun(inta,intb,long*c){if((a>=10&&a<=99)&&(b>=10&&b<=99)){*c=b/10;*c=*c+(a%10)*10;*c=*c+(b%10)*100;*c=*c+(a/10)*1000;}elseprintf("inputerror!");}main(){inta,b;longc;clrscr();printf("inputa,b:");scanf("%d%d",&a,&b);fun(a,b,&c);printf("Theresultis:%dn",c);}'
您可能关注的文档
- 税法计算重点习题及答案.doc
- 税法课后练习题答案(清华大学出版社).doc
- 童庆炳《文学理论教程》课后习题答案+要点概念(1-8章)完整版.doc
- 第1 章习题参考答案.doc
- 第2章习题(无答案).doc
- 第4章习题答案.docx
- 第5章 练习与答案.doc
- 第5章习题参考答案.doc
- 第6章 习题参考答案.doc
- 第7章习题答案.doc
- 第8章 习题参考答案.doc
- 第一章笔试习题答案及解释.doc
- 第一章风险概论题库及答案110630.doc
- 第一~8章试题.docx
- 第七章 课后习题答案.doc
- 第三代移动通信综合练习题答案.doc
- 第三版新视野大学英语读写教程1unit1-unit6答案全.docx
- 第三版新视野读写一(翻译练习答案及分析.doc