- 1、本文档共74页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大学C语言第7章函数1
例7.23 计算4(4x+y2)+5(x2-5y) /*a程序(字符串不加圆括号)*/ #include stdio.h #define M 4*x+y*y #define N x*x-5*y void main() {float x,y,z; scanf(%f,x); scanf(%f,y); z=4*M+5*N; printf(z=%.2f\n,z); } 运行过程与结果: 2↙ 3↙ z=46.00 运行过程与结果: 2↙ 3↙ z=13.00 /*b程序(字符串加圆括号)*/ #include stdio.h #define M (4*x+y*y) #define N (x*x-5*y) void main() { float x,y,z; scanf(%f,x); scanf(%f,y); z=4*M+5*N; printf(z=%.2f\n,z); } a程序:z=4*M+5*N =4*4*x+y*y+5*x*x-5*y =4*4*2+3*3+5*2*2-5*3 =32+9+20-15 =46 b程序:z=4*M+5*N =4*(4*x+y*y)+5*(x*x-5*y) =4*(4*2+3*3)+5*(2*2-5*3) =4*17-5*11 =68-55 =13 例7.24 对“输出格式”进行宏定义。 #include stdio.h #define P printf #define D %d\n #define F %.2f\n #define S %s\n main() { int x=5, y=8; float a=3.8,b=9.7; char str1[]=China,str2[]=Beijing; P(D F,x,a); P(D S,y,str1); P(F S,b,str2); } 运行结果为: 5 3.80 8 China 9.70 Beijing 例7.24可改为: 还可以将“输出格式”编辑成头文件,只要将该头文件包含进源程序中,就可应用头文件中的“输出格式”。 建头文件的过程与C源程序相同,只是保存时将扩展名设为.h即可。 #include stdio.h #include format.h main() { int x=5, y=8; float a=3.8,b=9.7; char str1[]=China,str2[]=Beijing; P(D F,x,a); P(D S,y,str1); P(F S,b,str2); } /*头文件format.h*/ #define P printf #define D %d\n #define F %.2f\n #define S %s\n 2.有参数宏定义的应用 对于带参数的宏,在调用中,不仅要宏展开,而且要用实参去代换形参。例如: #define Y(x) x*x-3*x+4 /*宏定义*/ k=Y(5); /*宏调用*/ k=5*5-3*5+4 (1)空格问题:宏名和形参表之间不能有空格出现,有空格认为是无参宏定义,会将空格后的字符都当作替换字符串的一部分。例如,若Y与(x)之间有空格: #define Y (x) x*x-3*x+4 /*宏定义*/ k=Y(5); /*宏调用*/ 则k=Y(5)的宏展开后的语句为: k=(x) x*x-3*x+4(5) 显然是错误的。 (3)在宏定义中,字符串内的形参通常要用括号括起来以避免出错,见下面例题。 /*7.25b*/ #include stdio.h #define S(x) x*x main() {int a=2,sum; sum=S(a)+S(a+2)+S(a+4); printf(sum=%d\n,sum); } 运行结果为: sum=26 【例7.25】计算22+42+62的和。 /*7.25a*/ #include stdio.h #define S(x) (x)*(x) main() {int a=2,sum; sum=S(a)+S(a+2)+S(a+4); printf(sum=%d\n,sum); } 运行结果为: sum=56 7.25a sum=S(a)+S(a+2)+S(a+4)=a*a+(
您可能关注的文档
- 大坝开挖方案.doc
- 大地保险建议书.docx
- 大型会展中心管理及运营模式研究.doc
- 大坪龙潭周家坳口至老虎岩公路控制爆破专项方案.docx
- 大型公司全套流程图(全面清晰).ppt
- 大型分布式系统理论体系.doc
- 大型合同范本.doc
- 大型养路机械大截面矩形管的焊接工艺.docx
- 大型商业地产风险.ppt
- 大型机组“五位一体”检查表.docx
- 第12课 大一统王朝的巩固 课件(20张ppt).pptx
- 第17课 君主立宪制的英国 课件.pptx
- 第6课 戊戌变法 课件(22张ppt).pptx
- 第三章 物态变化 第2节_熔化和凝固_课件 (共46张ppt) 人教版(2024) 八年级上册.pptx
- 第三章 物态变化 第5节_跨学科实践:探索厨房中的物态变化问题_课件 (共28张ppt) 人教版(2024) 八年级上册.pptx
- 2025年山东省中考英语一轮复习外研版九年级上册.教材核心考点精讲精练(61页,含答案).docx
- 2025年山东省中考英语一轮复习(鲁教版)教材核心讲练六年级上册(24页,含答案).docx
- 第12课近代战争与西方文化的扩张 课件(共48张ppt)1.pptx
- 第11课 西汉建立和“文景之治” 课件(共17张ppt)1.pptx
- 唱歌 跳绳课件(共15张ppt内嵌音频)人音版(简谱)(2024)音乐一年级上册第三单元 快乐的一天1.pptx
文档评论(0)