c语言的递归定义有两个要素,C语言-chap8function.ppt
C语言-chap8function
第8章 “函数”的主要知识点 函数的定义 函数的参数 函数的返回值 函数的调用 变量的作用域与存储方式 一、 函数的递归调用 一、函数的递归调用 分析:用辗转相除法求最大公约数 if (m % n) = = 0 n 是公约数; else 求 n 和 m % n 的公约数; 求最大公约数的递归算法如下: int gcd(int m, int n) { if (m % n) == 0return n ; else return gcd(n, m % n); } 汉诺塔 问题可分为三个步骤 二、数组作为函数的参数 数组作为函数参数主要有两种情况: 数组元素作为函数的实参:这种情况与普通变量作实参一样,是将数组元素的值传给形参。形参的变化不会影响实参数组元素,我们称这种参数传递方式为“值传递”。 数组名作实参:要求函数形参是相同类型的数组或指针,这种方式是把实参数组的起始地址传给形参数组,形参数组的改变也是对实参数组的改变,称这种参数传递方式为“地址传递”。 三、变量作用域与存储方式 先看一个例子,错在那里?: void f1( ) { int t=2; a *= t; b /= t; } main() { int a, b; printf(“ Enter a,b:”); scanf(“%d,%d”, &a, &b); f1( ); /* 调用函数f1( ) */ printf (“a=%d,b=%d”, a, b); } (一)变量的作用域(变量的有效范围) 1.变量按作用域分为全局变量和局部变量 int x=1,y=2; sub(int y) { x++; y++; } void main( ) { int x=3; sub (x); printf(“x+y=%d”,x+y); } 什么是预处理命令? 请预习P204-P217页! 第9章 预处理命令 (一)变量的作用域(变量的有效范围) 3、局部变量 内部变量:在一个函数内部定义的变量称内部变量。它只在本函数范围内有效,即:只有在本函数内才能使用这些变量,故也称为“局部变量” 。 例如: float f1( int a) /*函数f1 */ {int b,c; … /* a、b、c有效*/ } char f2(int x,int y) /*函数f2 */ {int i,j; /* x、y、i、j有效*/ } void main( ) /*主函数*/ {int m,n; … /* m、n有效*/ } 主函数中定义的变量只在主函数中有效,而不因为在主函数中定义而在整个文件或程序中有效。主函数也不能使用其他函数中定义的变量。 (2)不同函数中可以使用相同名字的变量,它们代表不同的对象,互不干扰。 (3) 形式参数也是局部变量。 (4) 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效,这种复合语句也称为“分程序”或“程序块”。 3、局部变量 说明: void main ( ) {int a,b; … {int c; c=a+b; c只在此范围内有效 a,b在此范围内有效 … } … } 3、局部变量 4、 全局变量 外部变量:函数之外定义的变量称为外部变量。外部变量可以为本文件中其他函数所共用。它的有效范围为从定义变量的位置开始到本源文件结束。所以也称全局变量(全程变量)。 int p=1,q=5; /* 外部变量 */ float f1(int a) /* 定义函数f1 */ {int b,c; … } char c1,c2; /* 外部变量*/ char f2 (int x, int y) /*
c语言的递归定义有两个要素,C语言-chap8function.ppt相关推荐
- c语言的递归定义有两个要素是,缠论的核心要素-递归函数、级别、结合律、区间套(二)...
再论递归 递归函数的构建基本条件是对本身的引用,那么一个终止处理条件是函数运算的前提,否则可能无法运算或陷入死循环.具体到缠论上,就是第一单交易,这是个绝对的起始点. 那么,如何去选择初始分析级别(即 ...
- c语言如何宏定义枚举型结构体,C语言学习笔记--枚举结构体
枚举 枚举是一种用户定义的数据类型,它用关键字enum以如下语法格式来声明: enum 枚举类型名字 {名字0,名字1,...,名字n}: 枚举类型名字通常并不真的使用,要用的是大括号里面的名字,因为 ...
- c语言定义保留两位小数,c语言中保留两位小数怎么表示
在C语言中,表示方法为"%.2lf",语法格式为"printf("%.2lf,%.2lf\n",元素)"."%.2lf" ...
- 函数定义涉及的三要素C语言,(函数定义与三要素答案.doc
(函数定义与三要素答案 函数定义及三要素 1.与函数y=10lg(2x-1)的图象相同的函数是( ) A.y= B.y=2x-1 C.y= D.y= [答案] B [解析] y=10lg(2x-1)= ...
- 函数定义涉及的三要素C语言,c语言函数的调用
/* 1. 函数三要素 函数名 形参列表 函数体 2. 如何调用函数? 函数名(); 3.函数体内容书写一定要谨慎 bug 是编程常用 出现了问题 函数哪里需要哪里都可以调用 声明一个函数 ...
- c语言求解一元二次方程的两相等实根,c语言改错题 有关求一元二次方程ax2+bx+c=0的两个实根...
c语言改错题 有关求一元二次方程ax2+bx+c=0的两个实根0 麻烦帮忙看看下面三个程序的区别~~谢谢啦 下列是用于求一元二次方程ax2+bx+c=0的两个实根的三个c程序,分别采用不同的方法或使用 ...
- 并行DA实验c语言程序,求助怎么把两个单片机c语言程序结合在一起?大一期末实验...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /* DS18B20数字温度传感器 (温度控制) 实验连线 单片机的P3.3连接DS18B20单元的 DQ 单片机的P3.2连接继电器单元的 JIN 继电 ...
- C语言中字符串定义与文字常量区
C语言中字符串定义与文字常量区 C语言的内存组织方式1>代码区,存放可执行代码2>全局存储区,存放所有全局变量和静态变量3>文字常量区,常量字符串4>堆区,malloc,new ...
- Java基础:01Java语言概述(常见的DOS命令,Java语言的特点、核心机制、环境搭建,HelloWorld,注释,Java API 文档)
Java基础:01Java语言概述 一.常见的DOS命令 二.Java语言的特点 面向对象性 健壮性 跨平台型 三.Java两种核心机制 1. Java虚拟机 2. 垃圾回收 四.Java语言的环境搭 ...
最新文章
- 使用cv2.Sobel()、cv2.Scharr()、cv2.Laplacian()寻找图像的梯度、边缘
- R计算赤信息指标(Akaike information criterion,AIC)
- BZOJ 4174 tty的求助 莫比乌斯反演
- word count(小组)
- 使用tracert命令查看某一个网站的ip地址
- c语言使用函数累加由n个a构成的整数之和,c 语言使用函数累加由n个a构成的整数之和...
- 分布式锁用Redis坚决不用Zookeeper?
- IOException: Broken pipe
- 10分钟看明白大M法和两阶段法
- ds18b20负温度c语言,温度显示异常DS18B20
- VsCode设置一行代码固定长度
- Android 使用so库的遇到的坑
- 视线估计14个常见数据集下载
- keil中c语言bit怎么用,关于keil多c文件工程中bit变量的声明定义问题
- 两个小时教你明白C++中类型转换关系
- 【生活类】洗衣机不排水怎么解决?
- Comsys学生比赛管理系统
- java密码复杂度匹配规则
- 智慧农业解决方案-全套完整合集
- 天池比赛:o2o优惠券使用预测
热门文章
- 错误代码: 1066 Not unique table/alias: #39;c#39;
- Xshell中文乱码问题
- ubuntu12.04下安装NVIDIA驱动
- 高级Linux Kernel Inline Hook技术分析与实现
- left join on、where后面的条件的区别
- 综合应用WPF/WCF/WF/LINQ之二十七:代码生成器之DBMLToProcedure
- 在线图像识别相似图片_宋源:图像识别传感器在制桶设备上的应用(附视频)...
- python输出运行时间_分析python程序运行时间的几种方法
- 二本学医还是学计算机,二本医学院毕业的医学生,最后都去了哪里?看完莫名心酸!...
- centos使用python_Centos7使用Python3