山东科技大学:程序设计基础(C语言课件)_第8章 函数

清华大学出版社 TSINGHUA UNIVERSITY PRESS 如何提高编程能力: 第一步理清解题思路,用伪代 码描述清變解题步(自顶向下, 步细化);第二步用NS图将算 法准确地予以意示(此时分析算法 是否有错),第三步根据NS图上 机調试(训试语法是否有错)并骖诳 结果正确性(不正确则看算法)
如何提高编程能力: 第一步理清解题思路,用伪代 码描述清楚解题步骤(自顶向下, 逐步细化);第二步用N-S图将算 法准确地予以表示(此时分析算法 是否有错),第三步根据N-S图上 机调试(调试语法是否有错)并验证 结果正确性(不正确则看算法)

清华大学出版社 00 关子字符与字符串輸入的缆明 char cl, c2, temp char str 120- str 2 20 /*以下语句执行结果与通常预期不同,注意测试* scanf("%od", &i); scanf("%c, &c1): printf("errorI\n; scanf("%c, &cl); scanf(%c", &c2); printf("error2 in scan f(%od", &i); gets( str 1) printf(error n scanf("%c " &cl) gets( str 1): printf("error4 n") scanf(%os" strD) gets(str ): printf(error5In 体以下形式的语有则能避免上述语句的问题* scanf"O⌒ &cl): scant("%c, &c2): printi("%oc ok7n", c2) /*第二个%前有空格* scanf("%oc", &c1); scanf("%s", &str 1); printf("%s ok8 n", str1) gets( str 1); gets(str 2) printf("ok9\n") scanf("%od", &i); scanf("%c", &ctemp); scanf("%oc", &cl): printf("ok1on
关于字符与字符串输入的说明: int i,j; char c1,c2,ctemp; char str1[20],str2[20]; /*以下语句执行结果与通常预期不同,注意测试*/ scanf("%d",&i);scanf("%c",&c1);printf("error1\n"); scanf("%c",&c1);scanf("%c",&c2);printf("error2\n"); scanf("%d",&i);gets(str1);printf("error3\n"); scanf("%c",&c1);gets(str1);printf("error4\n"); scanf("%s",str1);gets(str1);printf("error5\n"); /*以下形式的语句则能避免上述语句的问题*/ scanf("%c",&c1);scanf(" %c",&c2);printf("%c ok7\n",c2); /*第二个%c前有空格*/ scanf("%c",&c1);scanf("%s",&str1);printf("%s ok8\n",str1); gets(str1);gets(str2);printf("ok9\n"); scanf("%d",&i);scanf("%c",&ctemp);scanf("%c",&c1);printf("ok10\n");

清华大学出版社 TSINGHUA UNIVERSITY PRESS 第八章
第八章

清华大学出版社 TSINGHUA UNIVERSITY PRESS 本章要 8.1什么是函数,为什么用函数? 82-84如何定义函数,函数工作原理如何? 88局部变量与全局变量 89/810内部函数与外部函数、变量存信类分 函数的嵌套调用、递归调用与数组作函数参数
本章要点: 8.1 什么是函数,为什么用函数? 8.2-8.4 如何定义函数,函数工作原理如何? 8.8 局部变量与全局变量 8.9/8.10 内部函数与外部函数、变量存储类别 函数的嵌套调用、递归调用与数组作函数参数

§8.1概述一什么是函数,为样么用函数? 编程求解复杂问题时通常把整个程序划分为若干 功能较为单一的程序模块,然后分别予以实现,最 后再把所有的程序模块像搭积木一样装配起来,这 种在程序设计中分而治之的策略,被称为模块化程 序设计方法 C语言把每个模块都编写成一个C函数,然后通 过主函数调用这些功能相对独立的模块从而实现大 型问题的求解。 这样,一方面可以使程序设计简单直观,提高 了程序的易读性和可维护性;另一方面可以把常用 的一些计算或操作编成通用的函数供随时调用,这 样可以大大地减轻程序员的代码工作量
§8.1概述--什么是函数,为什么用函数? 编程求解复杂问题时通常把整个程序划分为若干 功能较为单一的程序模块,然后分别予以实现,最 后再把所有的程序模块像搭积木一样装配起来,这 种在程序设计中分而治之的策略,被称为模块化程 序设计方法 C语言把每个模块都编写成一个C函数,然后通 过主函数调用这些功能相对独立的模块从而实现大 型问题的求解。 这样,一方面可以使程序设计简单直观,提高 了程序的易读性和可维护性;另一方面可以把常用 的一些计算或操作编成通用的函数供随时调用,这 样可以大大地减轻程序员的代码工作量

odmm社 TSINGHUA UNIVERSITY PRESS while(1) welcome scanf("%d", &i; huiwen O if(i==2) erfen( else if(i==3) diedaio else if(i==4) diamondo else if(i=-5 break else printi(“输入有误!重新输入")
void main() { int i; while(1) { welcome(); scanf("%d",&i); if(i==1) huiwen (); else if(i==2) erfen(); else if(i==3) diedai(); else if(i==4) diamond(); else if(i==5) break; else printf(“输入有误!重新输入"); } }

清华大学出版社 INIVERSTY PRESS /函数 welcome用以输出 欢迎界面* void welcomed printi("使用菜单选择趣味程序v") printfr'r 求某范围内的回文数n printf" 2--二分法求一元二次方程根m" printf(”3-顿迭代法求一元三次方程稂m" printi("4-输出菱形图n"); printf(" 5-退出n") printf(*求*求米**求**求*求**n") 函数 huiwen用以输入两个正整数,求两数之间的回文数* void huiwen 函数声明部分 函数执行部分
/*函数welcome用以输出一个欢迎界面*/ void welcome() { printf("使用菜单选择趣味程序\n"); printf(" 1---求某范围内的回文数\n"); printf(" 2---二分法求一元二次方程根\n"); printf(" 3---牛顿迭代法求一元三次方程根\n"); printf(" 4---输出菱形图\n"); printf(" 5---退出\n"); printf("***************************************\n"); } /*函数huiwen用以输入两个正整数,求两数之间的回文数*/ void huiwen() { 函数声明部分 函数执行部分 }

函数说明与分类:m 程序从main函数开始执行,它可以调用其 它函数,但不能被别的函数所调用,main 函数之外的函数相互之间可以调用,此外,函 数是平行的,不能嵌套定义 从用户使用角度看,函数分标准函数 (库函数)和用户自定义函数;从函数形式看, 函数分无参函数和有参函数
程序从main函数开始执行,它可以调用其 它函数,但不能被别的函数所调用,main 函数之外的函数相互之间可以调用,此外,函 数是平行的,不能嵌套定义 从用户使用角度看,函数分标准函数 (库函数)和用户自定义函数;从函数形式看, 函数分无参函数和有参函数 函数说明与分类:

§8.2函数的定义形式 NIVERSITY尸RESS 类型标识符函数名(形参及其类型) 定义函数时要用 声明部分 “类型标识符”指 语句部分 定函数返回值的类 型,默认为int型 i n t m x (int x, inty 1 n t z Z X ? X re turn(z)
§8.2函数的定义形式 类型标识符 函数名(形参及其类型) { 声明部分 语句部分 } int max(int x,int y) { int z; z=x>y?x∶y; return(z); } 定义函数时要用 “类型标识符”指 定函数返回值的类 型,默认为int型

§8.3函数工作原理 NGHUA UNIVERSITY PRESS 8.3.1形式参数/实际参数/函数返回值 定义函数时函数头部括弧中的变量称为“ 形式参数”;发生调用时,调用语句中函数 名后括弧内的参数称为“实际参数”;函数 体内 return后括弧中的值称函数返回值 int max(int x, int y)void m a i n () int z int a. b: z=X>y? :y; scanf(W%d%d〃,&a,&b) return (Z) c=ma x (a,b)
§8.3函数工作原理 8.3.1形式参数/实际参数/函数返回值 定义函数时函数头部括弧中的变量称为“ 形式参数” ;发生调用时,调用语句中函数 名后括弧内的参数称为“实际参数”;函数 体内return后括弧中的值称函数返回值 int max(int x,int y) { int z; z=x>y?x∶y; return(z); } void main() { int a,b; scanf(“%d%d”,&a,&b); c=max(a,b); }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 山东科技大学:程序设计基础(C语言课件)_第7章 数组.ppt
- 山东科技大学:程序设计基础(C语言课件)_第6章 循环.ppt
- 山东科技大学:程序设计基础(C语言课件)_第5章 表达式与选择结构程序设计.ppt
- 山东科技大学:程序设计基础(C语言课件)_第4章 简单程序.ppt
- 山东科技大学:程序设计基础(C语言课件)_第3章 数据类型.ppt
- 山东科技大学:程序设计基础(C语言课件)_第2章 程序的灵魂——算法.ppt
- 山东科技大学:程序设计基础(C语言课件)_第1章 C语言概述.ppt
- 山东科技大学:程序设计基础(C语言课件)_第13章 文件.ppt
- 山东科技大学:程序设计基础(C语言课件)_第11章 结构体.ppt
- 山东科技大学:程序设计基础(C语言课件)_第10章_指针.ppt
- 数据结构算法演示(Windows版)使用手册.doc
- 数据结构库VC实践实例_迷宫求解参考答案.doc
- 数据结构库VC实践实例_树与二叉树答案说明.doc
- 《Visual Basic程序设计基础》课程教学资源:习题1 集成开发环境和程序设计入门.doc
- 《Visual Basic程序设计基础》课程教学资源:2005年9月全国计算机等级考试二级VB笔试试卷(含参考答案).doc
- 《Visual Basic程序设计基础》课程教学资源:VB试题四.doc
- 《Visual Basic程序设计基础》课程教学资源:VB试题二.doc
- 《Visual Basic程序设计基础》课程教学资源:VB试题三.doc
- 《Visual Basic程序设计基础》课程教学资源:期末考试题A卷.doc
- 《Visual Basic程序设计基础》课程教学资源:第十章 文件.ppt
- 山东科技大学:程序设计基础(C语言课件) 第八章 函数(作业说明).doc
- 北京师范大学《数据结构——C语言描述》教学课件:第一章 绪论.ppt
- 北京师范大学《数据结构——C语言描述》教学课件:第八章 查找.ppt
- 北京师范大学《数据结构——C语言描述》教学课件:第四章 串.ppt
- 北京师范大学《数据结构——C语言描述》教学课件:第九章 排序.ppt
- 北京师范大学《数据结构——C语言描述》教学课件:实验计划.doc
- 北京师范大学《数据结构——C语言描述》教学课件:第六章 树和二叉树.ppt
- 北京师范大学《数据结构——C语言描述》教学课件:第五章 数组与广义表.ppt
- 北京师范大学《数据结构——C语言描述》教学课件:第七章 图.ppt
- 北京师范大学《数据结构——C语言描述》教学课件:第二章 线性表.ppt
- 北京师范大学《数据结构——C语言描述》教学课件:课程章节主要内容及学时分配.doc
- 北京师范大学《数据结构——C语言描述》教学课件:第三章 栈和队列.ppt
- 南通市科委培训中心:全国计算机等级考试(一级B)培训资料.pdf
- 《计算机网络技术》 第一章 网络知识分类.ppt
- 《计算机网络技术》 第三章 分组交换.ppt
- 《计算机网络技术》 第二章 直连的网络.ppt
- 《计算机网络技术》 第五章 端到端协议.ppt
- 《计算机网络技术》 第六章 计算机网络的安全.ppt
- 《计算机网络技术》 第四章 网络互连.ppt
- 上海交通大学:《编译原理》课程教学资源(PPT课件)第一章 引论(张冬茉).ppt