C语言函数篇讲解_图文.ppt

合集下载

《C语言函数》PPT课件

《C语言函数》PPT课件

#include <stdio.h>
int sum(int a, int b)
{
a=a+b;
b=a+b;
函数被调用之前,形参和子函数中的变量
return(a);
不占内存,调用结束返回,形参所占的内存被收回.
}
实参和形参传递的是”值传递”,
void main() {
即单向传递, 只与参数相对位置有关,而与 变量名无关
void printMessage() {
printf(“Hello, world.\n”); printStar(); }
void main() {
printStar(); printMessage(); }
-
12
C语言程序设计
第 6 章 模块化程序设计--函数
函数的调用
一、函数调用一般形式
一般形式: 函数名(实参列表)
3.实参可以是常量、变量或表达式.
z=c(=x>( ya)>?bx) :?ya; :b;
因为传递过来的是具体数值.
retruertnu(rzn)(;c);
4.实参和形参类型必须一致(或可以安全转换).
} void main()
5.C语言中,实参和形参传递的是”按值传递”, {
即单向传递, 只与参数相对位置有关,而与
按生存期局部变量全局变量自动变量静态变量寄存器变量形式参数变量动态存储静态存储自动变量形式参数寄存器变量静态局部变量全局变量按变量的存放位置动态存储区静态存储区自动变量形式参数静态局部变量全局变量寄存器寄存器变量c语言程序设计模块化程序设计函数202137chenli33自定义的函数有两种
模块化程序设计

C语言(函数)ppt课件

C语言(函数)ppt课件

} main() { int x=6, y=5, z;
如果x, y是字符型,则自动 进行类型转换,结果正确;
z=max(x, y);
如果x, y是短整型,则自动
printf(“%d”, z); }
进b=y行; 类型转换,结果正确;
a=x;
如果x在或参数y传是递时实数,则自动 进行类型转换,有数据丢失,
• 在被调函数内改变形参的值不会改变主调函数中 实参的值。
• 如果函数不需要修改参数的值,就采用这种调用 方式。
– 引用传递
• 主调把实参“自身”传递给被调函数的形参。 • 在被调函数内改变形参的值将改变主调函数中实
函数
参数传递
i{•ntin实mtaxc参(=ai>n=t和b?aa,形:bi;n参t b)的类型确应如;该果相x, y同是或整赋型,值则兼结容果。正 return c;
在函数调用结束后,形参所 占存储单元被释放。
函数
实参
• 实参 int max(int a, int b)
{ int c=a>=b?a:b; return c;
} main() { int a, b, c;
scanf(“%d%d”, &a, &b);
a b c=max( , );
}
实参是函数调用时主调函数 传送给被调函数的形式参数的 实际值。
void main() {
int
int
int
int a, b, c;
printf(“Input three integers: ");
scanf("%d%d%d", &a, &b, &c);
printf("Maximum is: %d\n", maximum(a, b, c));

C语言程序课件ppt-第7章函数

C语言程序课件ppt-第7章函数

例7-7读程序,写出运行结果
# include <stdio.h> void swap(float x,float y){
float temp; temp=x;x=y;y=temp; } void main(){ float x=8.5,y=3.7; swap(x,y); printf("x=%.2f y=%.2f\n",x,y); }
哪个return都将结束函数的调用返回主调函数.
如: void swap(float x,float y) {float temp; temp=x;x=y;y=temp; return x; return y;}
(3)return语句中的括号可以省略;return后面的值可以是一 个表达式.
7.2.2函数的返回值
§7.1.1 函数概述
C程序的结构图如图所示:
main
a bc d e f g hh i
e
g
1、一个C程序可以分为若干个函数;
2、每个程序有且只能有一个主函数 (main),其他函数都是子函数;
3、子函数可以相互调用,但主函数 不能被调用;
4、一个源程序由一个或多个函数构 成,一个源程序文件是一个编译单 位;
例7-1函数调用示例
#include <stdio.h> void printstar(){
printf("***************\n"); } void print_message(){
printf (" How do you do?\n"); } void main(){
printstar(); print_message(); printstar(); }

C语言专用版PPT--《函数》

C语言专用版PPT--《函数》

说明:
1. 定义函数时,形参不占内存单元 ; 调用函数时,形参才分配内存单元 ; 调用结束后,形参所占内存单元被释放。 2. 实参可以是常量、变量或表达式,但必须有确 切的值。 3. 定义函数,必须指明形参类型。 4. 实参与形参类型一致。 5. 实参变量对形参变量的数据传递是“值传递 ”, 即 单向 传递。 6. 可在“形参表列”中说明形参类型。 int max( int x , int y ) { 函数体 }
第8章 函数
8.1 概述 程序结构概念 : 1)较大的程序应分为若干个程序模块 ; 2)每个模块实现单一的特定功能; 3)由主函数开始执行,主函数调用子函数; 4)子函数之间可以互相调用。
说明 : 一个源文件可由一个或多个函数组成; 一个源文件是一个编译单位; 一个 C 程序由一个或多个源文件组成。 从 main() 开始,调用其它函数后, 回到 main() 结束 ; 5. 不能嵌套定义,但可互相调用 。 6. 分类 : 1) 标准函数 和 用户自定义函数 ; 2) 无参函数 和 有参函数 。 1. 2. 3. 4.
8.3.2 函数的返回值
说明 : 1. 通过 return 语句获得返回值 ;
2. 定义函数时指定函数返回值的类型;不加类型说明
的,按整型处理。
3. 函数值的类型和 return 语句中表达式的值不一
致时,以函数类型为准。 4. 被调用函数中没有 return 语句时,带回一个不
确定的值。
5. 为了明确表示“不带回值”,可以用“ void ” 定
函数定义
函数定义是指对函数功能的确 立,包括指定函数名、函数值 类型、形参个数及类型、函数 体等。它是一个完整、独立的 程序单位。
例2: float add(x,y) float x,y; { float z; z=x+y; return(z); }

C语言( 函数) ppt课件

C语言( 函数)  ppt课件
思考:n=1234,如何逆置? 提示:考虑((4*10+3)*10+2)*10+1=4321。
11 ppt课件
#include<stdio.h> //构成逆序数的函数 int reverseNum(int x) // x 是正整数 {
int r=0; while(x>0) {
r = r*10 + x%10; x = x/10; } return r; }
#include<stdio.h>
#include<math.h>
void process(double array[ ], int n)//数组名作函数形参
{
int i;
for(i=0; i<n; i++) {
if(array[i]>=36) array[i]=sqrt( array[i] )*10;
printf("%d", a[i]);//数组元素作为函数实参
}
return 0;
p}pt课件
19
例5:有一个一维数组a,内放10个整数,分别输出这十 个数的平方。
#include<stdio.h> int square(int n) {
return n*n; } int main() {
int a[10], i, j; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) printf("%5d",square(a[i])); return 0; }
int isSymmetric(int n) //n为回文数返回1,否返回0 {

C语言完整函数教程PPT课件

C语言完整函数教程PPT课件
uC标准库提供了丰富的函数集,能够完成常用的数学 计算、字符串操作、输入/输出等有用操作,程序员可 以直接使用、从而减少工作量;
12
5.1 子程序设计 5.2 函数
5.2.1 函数 5.2.2 函数的定义 5.2.3 函数的调用 5.2.4 函数原型 5.3 头文件 5.4 函数应用举例 5.5 变量作用域 5.6 变量的存储类别 5.7 内部函数和外部函数
printf("%d\t",i);
【程序演示】
16
5.2.2 函数的定义
/*函数功能:判断n是否是闰年 参数: year :要判断的年份 返回值:若是闰年,返回1,否则返回0*/
int isLeapYear(int year) {
if ( (year % 4 == 0 && year % 100 != 0 ) || year % 400 == 0) return 1;
else return 0;
}
17
5.2.2 函数的定义
常见的程序设计错误: (1)把同一种类型的参数声明为类似于形式
float x,y,而不是float x,float y; (2)在函数内部把函数参数再次定义成局部变
量是一种语法错误;如: int sum(int x, int y) {
int x, y;//错误! return (x+y); }
18
5.2.2 函数的定义
(3)不能在一个C函数的内部定义另一个函数;
main()
{

int sum(int x,int y)
{ return(x+y);
不允许!
}

}
19
5.2.2 函数的定义

《c语言函数》PPT课件

《c语言函数》PPT课件

printf("*"); printf("*"); printf("*"); printf("*"); printf("*");
函数——完成某一特定特定功能的模块,是程序设计的
基本单位。
“一个程序应该是轻灵自由的,它的子过程就象串在一
根线上的珍珠。” Geoffrey James的《编程之道》

函数声明 函数定义 函数调用
“声明”(declaration)——作用是把函数名、函数参数的个数和参数
的类型等信息通知编译系统,以便在遇到函数调用时,编译系统能够正确 识别并检查调用是否合法。
void print(int n);
在函数声明中也可以不写形参名,而只写形参的类型。
编译系统只检查参数个数和参数类型,而不检查参数名。 函数声明——函数原型(function prototype)
z=x>y?x:y; return z; }
(#4)in不cl返ud回e 函<数st值di的o.函h>数,可以明确定义为“空类型”,类型说明符为 “voiidd”main()
{
void printstar(); //对printstar函数进行声明
明 printsvtoaird(3)print_message(); //对print_messge函数进行声
函数声明 函数定义 函数调用
“定义”(defination)——是指对函数功能的确立,
包括指定函数名、函数值类型、形参名称及其类型、函数
体等。
它是一个完整的、独立的函数单位。
v{oid prifinontrt((iii;=n1t;in<)=n;i++形能) 参省pr名略in不tf("*");

C语言程序设计PPT课件第7章 函数

C语言程序设计PPT课件第7章 函数

2019/10/15
29/78
7.3.4函数设计的基本原则
信息隐藏
入口参数有效性检查 敏感操作前的检查 调用成功与否的检查
1
2
3
函数规模 要小
函数功能 要单一
函数接口 定义要清楚
2019/10/15
30/78
函数的嵌套调用
嵌套调用 –在调用一个函数的过程中,又调用另一个函数
C语言规定函数不能嵌套定义,但可以嵌套调用 –函数是相互平行的
– 将1号圆盘从C移到B
2019/10/15
38/78
汉诺塔(Hanoi)问题
A
B
C
第2步:对于一个有 n(n>1)个圆盘的汉诺塔, 将n个圆盘分为两部分:上面 n-1 个圆盘和最下面 的n号圆盘。将“上面n-1个圆盘”看成一个整体
– 将n-1个圆盘从A移到C
– 将n号圆盘从A移到B
– 将n-1个圆盘从C移到B
为18446744073709551615,即1844亿亿次
– 若按每次耗时1微秒计算,则完成64个圆盘的
移动将需要60万年
2019/10/15
32/78
汉诺塔(Hanoi)问题
n=3
A
B
C
A→B,A→C,B→C, A→B,C→A,C→B,A→B
2019/10/15
33/78
汉诺塔(Hanoi)问题
– 实际上一个printf()有上千行代码 main()中能放多少行代码? 如果所有代码都在main()中,怎么团队合作? 如果代码都在一个文件中,怎么团队合作?
2019/10/15
4/78
问题的提出
《三国演义》中有这样一段描写:
–懿问曰:“孔明寝食及事之烦简若何?”使
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档