函数程序设计(二)39146

上传人:kms****20 文档编号:40450241 上传时间:2018-05-26 格式:DOC 页数:13 大小:35.50KB
返回 下载 相关 举报
函数程序设计(二)39146_第1页
第1页 / 共13页
函数程序设计(二)39146_第2页
第2页 / 共13页
函数程序设计(二)39146_第3页
第3页 / 共13页
函数程序设计(二)39146_第4页
第4页 / 共13页
函数程序设计(二)39146_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《函数程序设计(二)39146》由会员分享,可在线阅读,更多相关《函数程序设计(二)39146(13页珍藏版)》请在金锄头文库上搜索。

1、函数程序设计函数程序设计( (二二)39146)39146精品文档!欢迎下载大家下载阅读!函数程序设计(二)内容说明主要内容重点难点1函数调用中的数据传递方法2局部变量、全局变量的定义和使用方法3函数的嵌套调用函数使用中的难点通过第一讲的【例 2】分析值传递过程通过第一讲的【例 3】分析地址传递过程1函数调用中的数据传递方法2函数的嵌套调用1函数调用中的数据传递方法2函数的嵌套调用一、函数调用中的数据传递方法函数间传递数据有四种方式:值传递方式;地址传递方式;返回值传递方式;全局变量传递。前 2 种利用函数的参数来传递数据,后2 种不是利用函数参数传递数据。1值传递方式是在形式参数和实际参数之

2、间传递数据所传递的是参数值调用函数时,将实际参数的值求出赋予对应的形式参数。在函数体中对形参的处理与实参无关。当函数体执行完毕,形参的值可能发生变化,但返回后,形参的值不带回到对应的实参中。特点:参数值的单向传递形参一般是变量;实参可是变量或表达式。2地址传递方式 是在形式参数和实际参数之间传递数据所传递的是地址调用函数时,将实际参数的地址赋予对应的形式参数作为其地址。由于形参和实参的地址相同(占用相同的内存) ,所以调用时,可看成将实参的值传递给形参;返回时,可看成将形参的值回带给对应的实参。特点:参数值的双向传递形参是数组名或指针变量;实参是变量的地址、数组名或指针变量3值传递和地址传递方

3、式的区别值传递:传递的是数值地址传递:传递的是地址。二、变量的作用域、局部变量和全局变量1 变量的作用域规则变量只能在它的作用范围内使用。变量的作用域与定义变量的位置有关。2 局部变量:在一个函数内部(或复合语句内部)定义的变量是内部变量,它只在本函数范围内有效。函数不能使用其他函数中定义的变量不同函数中可使用相同名字的变量,它们代表不同的对象,互不干扰形式参数也是局部变量在一个函数内部,在复合语句中定义的变量只在本复合语句中有效。(2)全局变量:在函数之外定义的变量称外部变量,外部变量是全局变量(全程变量) 。它的有效范围为从定义变量的位置开始到本源文件结束。三、函数的嵌套调用在调用一个函数

4、的过程中,又调用另一个函数。例:分析下列程序完成的功能float p(long i) long k,j;for (k=j=1;j1)的递归调用函数函数清单如下:main() long fact(int n);int n;printf(“nPlease enter n:“);scanf(“%d“,printf(“n n!=%ld“,fact(n);long fact(int n); if (n递归过程:将原始问题不断转化为规模小了一级的问题,从未知向已知推进,最终达到递归的结束条件;回溯过程:从已知条件出发,沿递归的逆过程逐一求值返回,直至递归初始处,完成递归调用(如下图)。精品文档!欢迎下载大

5、家下载阅读!二、常用的系统函数1数学函数:主要有 14 个,均包括在“math.h“中。(1)求整型绝对值函数【函数头】int abs(int x)【返回值】参数 x(整型)的绝对值(|x|) 。(2)求长整型绝对值函数【函数头】Long labs(long x)【返回值】参数 x(长整型)的绝对值(|x|) 。(3)求实型绝对值函数【函数头】double fabs(double x)【返回值】参数 x(实型)的绝对值(|x|) 。(4)求小于或等于 x 的最大整数函数【函数头】double floor(double x)【返回值】小于或等于 x 的最大整数(5)求大于或等于 x 的最小整数函

6、数【函数头】double ceil(double x)【返回值】大于或等于 x 的最小整数(6)求正平方根函数【函数头】double sqrt(double x)【返回值】参数 x 的正平方根。(7)求常用对数函数 log10(8)求自然对数函数 log(9)求指数函数 exp(10)求 10 的 x 次方函数 pow10(11)求 x 的 y 次方函数 pow(12)求正弦函数 sin(13)求余弦函数 cos(14)求正切函数 tan2字符处理函数主要有 4 个,均包括在头函数“ctype.h“中。(1)判断是否是英文字母函数 isalpha(2)判断是否是英文小写字母函数 islower

7、(3)判断是否是英文大写字母函数 isupper(4)判断是否是数字字符函数 isdigit3类型转换函数主要有 5 个,包括在不同的头函数中。(1)将大写字母转换为小写字母函数 tolower(2)将小写字母转换为大写字母函数 toupper(3)将字符转换成 ASCII 代码值函数 toascii上述 3 个函数包括在头函数“ctype.h“中。(4)将字符串转换成浮点数函数 atof(5)将字符串转换成整数函数 atoi上述 2 个函数包括在头函数“math.h“中。4字符串处理函数主要有 8 个,前 2 个包括在头函数“stdio.h“中。后 6 个均包括在头函数“string.h“中

8、。(1)字符串输出函数 puts(2)字符串输入函数 gets(3)测试字符串长度函数 strlen(4)字符串大写字母该小写字母函数 strlwr(5)字符穿小写字母改大写字母函数 strupr(6)字符串复制函数 strcpy(7)字符串比较函数 strcmp(8)字符串连接函数 strcat【例 2】输入一个字符串存入数组 a,将其复制到数组 b,然后将数组 b 中的所有小写字母改为大写字母,再将 a 中字符串连接到 b。比较并输出 a、b 中字符串的大小,统计并输出 a、b 中字符串的长度,最后输出 a、b 中的字符串。#include “stdio.h“#include “strin

9、g.h“main() char a40,b80;gets(a); strcpy(b,a); strupr(b); strcat(b,a);if (strcmp(a,b)0) printf(“abn“);else printf(“a=bn“);printf(“length of a(%s)=%dn“,a,strlen(a);printf(“length of b(%s)=%dn“,b,strlen(b);puts(a);puts(b);三、小结递归定义、调用方法、执行过程、递归的算法。字符、字符串处理函数四、思考与练习1、写几个函数:a、输入 10 个职工的姓名和职工号 b、按职工号有小到大顺序排序,姓名顺序也随之调整 c、要求输入一个职工号,用折半查找的方法找出该职工的姓名,从主函数输入要查询的职工号,输出该职工的姓名。2、写一个函数,输入一个十六进制数,输出相应的十进制数。3、给出年月日,计算该日是该年的第几天。4、用递归法将一个整数 n 转换成字符串。例如输入 483,应输出字符串“483“,n 的位数不确定,可以是任意位数的整数。C 语言程序设计教案1精品文档!欢迎下载大家下载阅读!

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号