教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 政务民生 >

C语言程序设计第七章

来源:网络收集 时间:2026-08-26
导读: C语言程序设计 第七章 函 数 第七章 函数 概述 函数的定义 函数的调用 函数参数及其传递方式数组作为函数参数 函数的嵌套与递归调用 变量的存储属性 计算机公共教学部 C语言程序设计 第七章 函 数 概述– 模块化程序设计 基本思想:将一个大的程序按功能分割

C语言程序设计

第七章 函 数

第七章

函数

概述 函数的定义 函数的调用 函数参数及其传递方式数组作为函数参数 函数的嵌套与递归调用 变量的存储属性

计算机公共教学部

C语言程序设计

第七章 函 数

概述– 模块化程序设计 基本思想:将一个大的程序按功能分割成一些小模块, 特点:– – – – – – 各模块相对独立、功能单一、结构清晰、接口简单 控制了程序设计的复杂性 提高元件的可靠性 缩短开发周期 避免程序开发的重复劳动 易于维护和功能扩充

开发方法: 自上向下,逐步分解,分而治之

计算机公共教学部

C语言程序设计

第七章 函 数

C是模块化程序设计语言C程序

源程序文件1

源程序文件i

源程序文件n

预编译命令

函数1

函数n

说明部分

执行部分

C是函数式语言 必须有且只能有一个名为main的主函数 C程序的执行总是从main函数开始,在main中结束 函数不能嵌套定义,可以嵌套调用计算机公共教学部

C程序结构

C语言程序设计

第七章 函 数

从用户角度 – 标准函数(库函数):由系统提供 – 用户自定义函数 从函数功能的角度 – 有返回值函数 – 无返回值函数 从函数形式 – 无参函数 – 有参函数

函数分类

使用库函数应注意: 1、函数功能 2、函数参数的数目和顺序,及各参数意义和类型 3、函数返回值意义和类型 4、需要使用的包含文件计算机公共教学部

函数的定义– 一般格式现代风格:

C语言程序设计

函数返回值类型 缺省int型 无返回值void

第七章 函 数

合法标识符

函数类型 函数名(形参类型说明表) { 说明部分 语句部分 } 例例 有参函数(现代风格) 有参函数(现代风格) 例 无参函数 例 空函数 intint max(int x, y) max(int x,int y) printstar( ) dummy( ) { {intint z; z; { printf(“********** \n”); } { } z=x>y?x:y; z=x>y?x:y; 或 return(z); return(z); printstar(void ) 函数体为空 } } { printf(“**********\n”); }

函数体

计算机公共教学部

C语言程序设计

第七章 函 数

函数传统风格和例子传统风格:函数类型 函数名(形参表) 形参类型说明 { 说明部分 语句部分 } 例 有参函数(传统风格) int max(x,y) int x,y; { int z; z=x>y?x:y; return(z); }计算机公共教学部

C语言程序设计

第七章 函 数

函数调用– 调用形式函数名(实参表);说明: – 实参与形参个数相等,类型一致,按顺序一一对应 – 实参表求值顺序,因系统而定(Turbo C 自右向左)

计算机公共教学部

C语言程序设计

第七章 函 数

–函数的调用方式函数语句: 例 printstar(); printf(“Hello,World!\n”); 函数表达式: 例 m=max(a,b)*2; 函数参数: 例 printf(“%d”,max(a,b)

); m=max(a,max(b,c));

计算机公共教学部

C语言程序设计

第七章 函 数

– 形参与实参

函数参数和函数的值

形式参数:定义函数时函数名后面括号中的变量名 实际参数:调用函数时函数名后面括号中的表达式 例 比较两个数并输出大者 main() { int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); (main 函数) c=max(a,b); 实参 printf("Max is %d",c); max(int x, int y)(max 函数) { int z; } z=x>y?x:y; max(int x, int y) 形参 return(z); { int z; } z=x>y?x:y; return(z); }计算机公共教学部

C语言程序设计

第七章 函 数

函数参数及其传递方式 形参与实参 形式参数:定义函数时函数名后面括号中的变量名 实际参数:调用函数时函数名后面括号中的表达式 说明: 实参必须有确定的值 形参必须指定类型 形参与实参类型一致,个数相同 若形参与实参类型不一致,自动按形参类型转换— ——函数调用转换 形参在函数被调用前不占内存;函数调用时为形参分 配内存;调用结束,内存释放

计算机公共教学部

C语言程序设计

函数的值

第七章 函 数

例 无返回值函数 void swap(int x,int y ) 返回语句 { int temp; 形式: return(表达式); temp=x; 或 x=y; return 表达式; y=temp; 或 return; }

功能:使程序控制从被调用函数返回到调用函数中, 同时把返值带给调用函数 #include<stdio.h> main() 说明:– 函数中可有多个return语句 {int a,b; – 若无return语句,遇}时,自动返回调用函数 scanf(“%d,%d”,&a,&b); – 若函数类型与return语句中表达式值的类型不一致,按前 者为准,自动转换------函数调用转换 swap(a,b); – void型函数printf(“%d,%d”,a,b); } 计算机公共教学部

C语言程序设计

第七章 函 数

函数说明P170对被调用函数要求:必须是已存在的函数 库函数: #include <*.h> 用户自定义函数: 函数类型说明

函数说明一般形式: 函数类型 函数名(形参类型 [形参名],….. ); 或 函数类型 函数名(); 作用:告诉编译系统函数类型、参数个数及类型,以便检验 函数定义与函数说明不同 函数说明位置:程序的数据说明部分(函数内或外) 下列情况下,可不作函数说明 若函数返值是char或int型,系统自动按int型处理 被调用函数定义出现在主调函数之前计算机公共教学部

C语言程序设计

第七章 函 数

参数传递方式值传递方式方式:函数调用时,为形参分配单元,并将实参的值复制到形参中; 调用结束,形参单元被释放,实参单元仍保留并维持原值 特点: 形参与实参占用不同的内存单元 单向传递

计算机公共教学部

C语言程序设计

第七章 函 数

例 交换两个数 #include <stdio.h> 调用前: main() { int x=7,y=11; printf("x=%d,\ty=%d\n",x,y); 调用: p

rintf("swapped:\n"); swap(x,y); printf("x=%d,\ty=%d\n",x,y); swap: } swap(int a,int b) { int temp; temp=a; a=b; b=temp; }调用结束:

x: x: a: x: a:

7 7 7 7 11 temp

y: y: b: y: b:

11 11 11 11 7

x:

7

y:

11

计算机公共教学部

C语言程序设计

第七章 函 数

函数的地址传递– 方式:函数调用时,将数据的存储地址作为参数传递给形参 – 特点: » 形参与实参占用同样的存储单元 » “双向”传递 » 实参和形参必须是地址常量或变量

计算机公共教学部

C语言程序设计

第七章 函 数

例 交换两个数swap(p1,p2) int *p1,*p2; { int p; p=*p1; *p1=*p2; *p2=p; } main() {int a,b; scanf("%d,%d",&a,&b); printf(“a=%d,b=%d\n”,a,b); printf(“swapped:\n”); swap(&a,&b); printf(”a=%d,b=%d\n",a,b); }

例子图解 调前: a 5 p1 &a 调swap: p2 &b b 9 a 5 b 9 a 9 b 5 b 5

p1&a 交换: p2 &b a 9

返回:

计算机公共教学部

…… 此处隐藏:1730字,全部文档内容请下载后查看。喜欢就下载吧 ……
C语言程序设计第七章.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1443481.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)