- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六函數
* * * * * * * * * * * * * * * * * * * * * * * * 6.7 递归函数 概念:函数直接或间接地自我调用称为递归函数。 int fun1(int x) { … z=fun1(y); … } int fun1(int x) int fun2(int t) { { … … z=fun2(y); c=fun1(a); … … } } 直接引用自身。 间接引用自身。 递归在没有控制条件的情况下是无穷的递归。 void main(void) { printf(“*****\n”); main(); } 只有通过控制条件,使递归调用终止,才具有应用价值 。 void main(void) { printf(“*****\n”); ch=getchar(); if(ch!=‘9’)main(); } 递归举例:求n!。 n!= 1 n=0或n=1 n(n-1)! n1 f(n)= 1 n=0或n=1 nf(n-1) n1 #include stdio.h long lfac(long); void main(void) {long i,x; scanf(“%ld”,i); x=lfac(i); printf(“\n%ld”,x); } long lfac(long n) { if (n==0||n==1) return 1; else return(n*lfac(n-1)); } lfac(4) 4*lfac(3) 3*lfac(2) 2*flac(1) 2*1 3*2*1 4*3*2*1 递推 回归 chp6ex7 6.8 命令行参数 如DOS命令:COPY A:\S.DOC C: 命令。 命令对象,命令参数。 C支持由主函数main(),在程序执行时,从操作系统接收传递的 参数。并记录参数供程序处理。主函数一般有两个参数。 void main(int argc,char *argv[ ]) 整型变量,记录包括命令行在内的字符串个数。 指向字符的指针数组。记录所有参数字符串的地址。 举例:回显命令行参数。 #include stdio.h void main(int argc, char *argv[ ]) { int i; for(i=1;iargc;i++) printf(“%s%c”,argv[ i ],(iargc-1)?’ ’:’\n’); } test How are you? C: argc 4 argv[0] argv[1] argv[2] argv[3] test\0 Hello\0 are\0 you?\0 chp6ex8 6.9 编译预处理 C 语言除了说明语句、执行语句及控制语句外,还有一类编译 预处理语句。该类语句的作用是在编译时对程序作一定的处理,满 足特定的处理要求。编译预处理是C语言的重要特征。 编译预处理语句的语法形式: #关键词 参数表 编译预处理语句不用;作为结束标志! ⒈宏定义预处理 ⑴不带参数的宏定义 作用:定义常量名,提高程序的可读性,便于修改。 格式: #define 宏名 字符串 #define PI 3.1415926 void main(void) { float r; scanf(“%f ”,r) printf(“%f\n”,PI*r*r); } 编译时用字符串替代宏名。 3.1415926 说明: ⑴宏名一般用大写; ⑵编译时用字符串无条件替代宏名; #define PI 3.1415926; … PI*r*r 3.1415926;*r*r ⑶宏名的有效范围,从定义到程序尾。也可以通过#undef修改 定义范围。 #define G 9.8 void main(void ) { … } #undef G G的范围 ⑷可以在宏定义的字符串中使用已定义的宏名。 ⑸” ”字符串中的宏名不替换。 #define R 3.0 #define PI 3.14159 #define S PI*R*R printf(“S=%f”,S); 不替换。 ⑵
您可能关注的文档
最近下载
- 2025至2030全球及中国普拉提和瑜伽馆行业市场深度研究及发展前景投资可行性分析报告.docx VIP
- 极速60秒.ppt VIP
- 中国宠物行业白皮书.doc VIP
- 项目插花艺术-全校公选课.doc VIP
- 极速60秒的图片.ppt VIP
- 展频IC规格书之 SSDCI1108AF _REV3.1.pdf VIP
- 2024 CCF非专业级别软件能力认证(CSP-S)第一轮真题.pdf VIP
- TCFNA6104-2022 食品安全-月桂叶(香叶).pdf VIP
- 人美版(2024)小学美术一年级上册《欢快流畅的线》教学设计 .pdf VIP
- 三水平立井多绳摩擦式提升机提升钢丝绳更换安全技术措施:.doc VIP
文档评论(0)