- 1、本文档共259页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
11.1 传给main函数的参数 #include stdio.h main(int argc,char *argv[]) {int i; printf(argc=%d\n,argc); for(i=1;iargc;i++) printf(%s,argv[i]); printf(\n); } 在主函数main中也可以含有参数,我们通过一个程序来介绍一下它的使用。 若在命令行中输入: myc A COMMAND LINKCR 如上的输入中,空格表示间隔符,所以是4个字符串,argc的值就为4,则argv[0]就指向”myc”, argv[1]就指向”A”, argv[2]就指向”COMMAND”, argv[3]就指向”LINK”。 main(int argc,char **argv) argc=4 A COMMAND LINK 11.2 通过实参向函数传递函数名或指向函数的指针变量 在C语言中函数名代表该函数的入口地址,因此可以定义一种指向函数的指针 来存放这种地址。例如: #include stdio.h double fun (int a, int *p) { : : } main() {double (*fp)(int, int *); double y; int n; fp=fun; : : y=(*fp)(56,n); : : } 主函数 被调用函数 /*定义了一个指针变量fp,该指针变量只能指向 返回值为实型的函数*/ /*把函数fun的入口地址赋值给指针变量fp,即fp指向了该函数*/ y=fun(56,n); 11.3 函数的递归调用 在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的 递归调用。 直接递归调用 int f ( int x ) {int y,z; ……….. z=f(y); } 间接递归调用 int f1 ( int x ) {int y,z; ……….. z=f2(y); } int f2 ( int t ) {int u,v; ……….. v=f1(u); } 11.3 函数的递归调用 递归调用程序举例: #include stdio.h int fac(int n) {int t; if(n==1 || n==0) return 1; else {t=n*fac(n-1); return t; } } main() {int m,y; scanf(%d,m); if(m0) printf(Input data error); else {y=fac(m); printf(%d!=%d\n,m,y); } } 程序执行时,比如输入4。 t=4 * fac(3) t=3 * fac(2) t=2 * fac(1) 1 1 2 6 退出函数,将t的值作为该函数的返回值,所以该函数的值为24。当退出用户自定义函数时,该函数中的变量全部释放。 4!=24 习题 函数递归调用的程序填空 例1:请补充函数,fun函数是求n的介乘。 #include stdio.h long fun(int n) { if (___1___) return (n*fun(___2___)); return ___3___; } main() { printf(10!=%ld\n, fun(10)); } 例2:请在函数fun的横线上填写若干表达 式,使从键盘上输入一个整数n,输出斐 波数列,如:0 1 1 2 3 5 8 13……… #include stdio.h int fun(int n); main() { int i, n = 0; scanf(%d, n); for (i=0; in; i++) printf(%d , fun(i)); } int fun(int n) { if (___1___) return 0; else if (___2___) return 1; else return ___3___; } 答案: 例1:n1 n-1 1 或 1L 答案: 例2:n==0 n==1 fun(n-1)+fun(n-2) 第12章 C语言中用户标识符的作用域和存储类对变量的进一步讨论 12.1 局部变量、全局变量和存储分类 12.2 局部变量及其作用域和生存期 12.3 全局变量
您可能关注的文档
最近下载
- 沿着塞纳河到翡冷翠.pdf VIP
- 2025甘肃定西市招聘专业化管理村党组织书记103人考试备考试题及答案解析.docx VIP
- 一种小鼠结直肠原位癌模型的构建方法.pdf VIP
- 百度地图-北京市购物中心报告-71页.pdf VIP
- 克莱斯勒-Grand Voyager-产品使用说明书-Grand Voyager(3.6L)-Grand Voyager(3.6L)-2013款大捷龙用户手册(产品使用说明书).pdf
- 居住绿地设计标准.pdf VIP
- 新媒体短视频代运营.pptx VIP
- 人教版(2025)八年级英语上册 Unit 1 Happy Holiday单元检测卷(含答案及听力原文,无听力音频).doc VIP
- 2025人教版英语四年级上册Unit 4 Helping in the community单元测试试卷.docx VIP
- 企业短视频代运营.pptx VIP
文档评论(0)