收藏 分享(赏)

函数程序设计(二)39138.doc

上传人:hskm5268 文档编号:9487872 上传时间:2019-08-09 格式:DOC 页数:15 大小:47.50KB
下载 相关 举报
函数程序设计(二)39138.doc_第1页
第1页 / 共15页
函数程序设计(二)39138.doc_第2页
第2页 / 共15页
函数程序设计(二)39138.doc_第3页
第3页 / 共15页
函数程序设计(二)39138.doc_第4页
第4页 / 共15页
函数程序设计(二)39138.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、函数程序设计(二)39138本人精心整理的文档函数程序设计(二)内容说明主要内容重点难点1函数调用中的数据传递方法2局部变量、全局变量的定义和使用方法3函数的嵌套调用函数使用中的难点通过第一讲的【例 2】分析值传递过程通过第一讲的【例 3】分析地址传递过程1函数调用中的数据传递方法2函数的嵌套调用1函数调用中的数据传递方法2函数的嵌套调用一、函数调用中的数据传递方法函数间传递数据有四种方式:值传递方式;地址传递方式;返回值传递方式;全局变量传递前 2 种利用函数的参数来传递数据后 2 种不是利用函数参数传递数据1值传递方式是在形式参数和实际参数之间传递数据所传递的是参数值调用函数时将实际参数的

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

3、全局变量1 变量的作用域规则变量只能在它的作用范围内使用变量的作用域与定义变量的位置有关2 局部变量:在一个函数内部(或复合语句内部)定义的变量是内部变量它只在本函数范围内有效函数不能使用其他函数中定义的变量不同函数中可使用相同名字的变量它们代表不同的对象互不干扰形式参数也是局部变量在一个函数内部在复合语句中定义的变量只在本复合语句中有效(2)全局变量:在函数之外定义的变量称外部变量外部变量是全局变量(全程变量)它的有效范围为从定义变量的位置开始到本源文件结束三、函数的嵌套调用在调用一个函数的过程中又调用另一个函数例:分析下列程序完成的功能float p(long i) long k,j;fo

4、r (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递归过程:将原始问题不断转化为规模小了一级的问题从未知向已知推进最终达到递归的结束条件;回溯过程:从已知条件出发沿递归的逆过程逐一求值返回直至递归初始处完成递归调用(如下图)二、常用的系统函数1数学函数:主要有 14 个均包括在“math.h“中(1)求整型绝对值函数【函数头】int abs(int x)【返回值

5、】参数 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 的最小整数函数【函数头】double ceil(double x)【返回值】大于或等于 x 的最小整数(6)求正平方根函数【函数头】double sqrt(double x)【返回

6、值】参数 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(3)判断是否是英文大写字母函数 isupper(4)判断是否是数字字符函数 isdigit3类型转换函数主要有 5 个包括在不同的头函数中(1)将大写字母转换为小写字母函数

7、 tolower(2)将小写字母转换为大写字母函数 toupper(3)将字符转换成 ASCII 代码值函数 toascii上述 3 个函数包括在头函数“ctype.h“中(4)将字符串转换成浮点数函数 atof(5)将字符串转换成整数函数 atoi上述 2 个函数包括在头函数“math.h“中4字符串处理函数主要有 8 个前 2 个包括在头函数“stdio.h“中后 6 个均包括在头函数“string.h“中(1)字符串输出函数 puts(2)字符串输入函数 gets(3)测试字符串长度函数 strlen(4)字符串大写字母该小写字母函数 strlwr(5)字符穿小写字母改大写字母函数 st

8、rupr(6)字符串复制函数 strcpy(7)字符串比较函数 strcmp(8)字符串连接函数 strcat【例 2】输入一个字符串存入数组 a将其复制到数组 b然后将数组 b 中的所有小写字母改为大写字母再将 a 中字符串连接到 b比较并输出 a、b 中字符串的大小统计并输出 a、b 中字符串的长度最后输出 a、b 中的字符串#include “stdio.h“#include “string.h“main() char a40,b80;gets(a); strcpy(b,a); strupr(b); strcat(b,a);if (strcmp(a,b)0) printf(“abn“);

9、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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报