




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计 第十五课函数初步知识 湛江师范学院陈其嶙alinxx 通过前面的学习 我们已经能够编写一些小程序了 不过 用前面的方法要真实编写实用的程序就很困难了 因为我们把代码都写在main 函数中 以至程序的结构显得很庞大 混乱 结构不清晰 为此需要将不同功能的程序段分成多个功能块来实现 这就要用到函数 比如 我们需要用程序完成某班学生考试成绩的统计管理 其中需要有许多子功能块 求一个学生的总分 求平均分 判断成绩等级 成绩排名等等 这些功能块可以写成一个个的函数 1 函数概述 在学习C语言函数之前 我们需要了解什么是模块化程序设计方法 人们在求解一个复杂问题时 通常采用的是逐步分解 分而治之的方法 也就是把一个大问题分解成若干个比较容易求解的小问题 然后分别求解 程序员在设计一个复杂的应用程序时 往往也是把整个程序划分为若干个功能较为单一的程序模块 然后分别予以实现 最后再把所有的程序模块象搭积木一样装配起来 这种在程序设计中分而治之的策略 被称为模块化程序设计方法 在C语言中 函数是程序的基本组成单位 因此可以很方便地用函数作为程序作为程序来实现C语言程序的模块化 利用函数 不仅可以实现程序的模块化 使程序设计变得简单和直观 提高了程序的易读性和可维护性 而且还可以把程序中普遍用到的一些计算或操作编写成通用的函数 以供随时调用 这样可以大大地减轻程序员的代码工作量 1 什么是函数 什么是函数呢 函数就是可以完成一定功能的程序模块 C程序必须有一个叫做main 的主函数 程序的执行是从main 函数的第一条语句开始 到最后一条语句结束 为了使程序结构清晰 便于编写 需要将程序按功能划分成一些相对独立 功能单一的子模块 就像日常生活中我们将书放在书柜里 将水果 饮料放入冰箱里 这样 无论多么复杂 规模多大的程序 最终都落实到一个个小型 简单函数的编写工作上 例15 01函数举例 include stdio h 包含标准输入输出头文件 函数max 的定义 intmax intx inty intz if x y z x elsez y returnz voidmain 主函数 intnum1 num2 y scanf d d 2 库函数的使用 C语言函数分为库函数和用户自定义函数两大类 库函数是由编译系统提供的己设计好的函数 用户只需调用而无须去实现它 前几章胜过的scanf printf getchar putchar 等都是库函数 在编写C程序时 应当尽可能地使用库函数 这样可以提高编程效率和编程质量 要调用某个库函数 需在程序的头部用包含命令 include 将说明该函数原型的头文件包含进本程序中 使用库函数应注意以下几个问题 函数的功能 函数参数的数目和顺序 以及每个参数的意义及类型 函数返回值的意义及类型 需要使用的包含文件 例15 02库函数应用举例 include stdio h 包含标准输入输出头文件 include math h 包含数学函数头文件voidmain 主函数 doublex y printf 请输入x的值 scanf lf 3 用户自定义函数 顾名思义 用户自定义函数就是由程序员自己定义和设计的函数 库函数一般只能提供一些底层服务功能 而用户自定义函数则能针对具体应用实现一些特殊功能 用户自定义函数需要程序员自己来编写函数功能的实现代码 1 函数的定义 C语言中的函数和变量一样 具有一定的存储类型和数据类型 函数定义有如下形式 返回值类型函数名 形式参数列表 函数体 例如 我们定义一个求两个数中最大值的函数 intmax intx inty inttmp 函数体的局部变量tmp x y x y 函数体的执行部分returntemp 返回函数值 这是一个求x和y最大值的函数 x和y叫形式参数 内的部分是对形式参数作类型定义 指出了x和y是整型变量 花括号内的部分是函数体 通过这个例子 我们看到 一个函数由函数的数据类型 即函数的返回值类型 函数名 函数的参数和函数体等几部分构成 当一个函数被调用时 一般情况下它要把运行结果返回给调用它的函数 这个返回的结果就叫做 函数的返回值 比如 我们编写一个函数求学生的平均分 那么 函数返回的值就可以是平均分 在函数中使用return语句返送加返回值 C语言把函数返回值的数据类型规定为该函数的数据类型 因此 函数的返回值的类型一定要与函数的类型相同 例如 我们定义一个函数average 用来计算三门功课 数学 语文 英语 的平均分 floataverage floatmath floatchinese floatenglish floatz 平均值用于返回值z math chinese english 3 returnz 返回值 2 函数的数据类型 函数名就是用户给函数取的名字 用户可以根据自己的需要 遵循C语言的语法规定自己编写的一些函数 用来实现特定的功能 函数名命名规则要符合标识符的命名规则 最好是赋予一个有意义的函数名了 3 函数名 函数的参数是用户定义的 在执行时要传递给函数数据的一种代号 当然 我们根据实际需要 可以使用参数 也可以不使用参数 4 参数和返回值 例如 我们定义了一个打印一行语句的函数 它就不需要提供任何参数 就可以完成某项任务 voidprintfline printf Thisisthetestoffunction n 这就是一个无参函数 在函数调用时 主函数并不需要将任何数据传递给函数 函数名前面的void表示函数也无返回值 1 无参函数 例15 03无参函数应用举例 include stdio h 包含标准输入输出头文件 函数声明部分voidprintfline void voidmain 主函数 inti 循环控制变量for i 0 i 5 i printfline 函数调用部分 函数定义部分voidprintfline printf Thisisthetestoffunction n 调用函数时 如果在主调函数和被调用函数之间需要有参数传递 这时就要用到有参函数了 在调用函数时 主调函数可以将数据传递给被调用函数使用 2 有参函数 例 有参函数的使用 假定一个学生有三门课成绩 数学 语文 英语 编写平均值求学生的平均成绩 函数定义部分floataverage floatmath floatchinese floatenglish retrun math chinese english 3 主函数voidmain floatscore 3 定义一个实型数组 保存学生的三门成绩floataver 用于保留平均值printf 请输入你的数学 语文 英语成绩 scanf f f f 1 在有参函数的定义中 应为每一个参数指定数据类型 如add intx inty 无论函数有多少个参数 都应一一指定它们的类型 任何不指定参数类型的写法都是错误的 比如 add intx y 编译时会出错 参数y未指定数据类型 2 参数相当于函数的内部变量 因此不允许在函数内部再次定义与参数同名的变量 不同函数内部允许定义同名的变量 有参函数注意事项 在一个函数被调用之前 一定要先声明 可以有两种做法 一是 在声明时就把函数实现部分都写好 比如 3 函数的声明 例15 05函数声明举例 include stdio h 包含标准输入输出头文件 函数max 的定义 intmax intx inty intz z x y x y returnz 函数的返回值 voidmain 主函数 inta b max num printf 请输入两个整数 scanf d d 二是 先声明 函数的实现在后面完成 例15 06函数声明举例 include stdio h 包含标准输入输出头文件 函数max 原型说明 intmax intx inty voidmain 主函数 inta b max num printf 请输入两个整数 scanf d d 函数的返回值 声明并定义了一个函数后 就可以调用它了 例15 07函数调用举例 4 函数的调用 例15 07函数调用举例 include stdio h 包含标准输入输出头文件intfunc inta 函数的声明部分voidmain 主函数 intx y printf 请输入x的值 scanf d 函数的返回值 综合前面的我们看到的实例 可以看出调用一个函数 只需要在必要的地方写上函数的名字和相应的参数就可以了 在程序执行过程中 遇到调用函数时 程序会自动转去执行函数的代码 我们看到函数在被调用后 调用者将该函数需要的数据通过用函数的实际参数 实参 替换函数的形式参数 形参 把参数传递给该函数 通过返回值将结果返回给调用者 实参就是在调用函数时 函数名后面括弧中的表达式 也就是在调用时用到的具体参数值 4 函数的调用 这种方式下把函数调用作为一个语句来使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 特步公司财务管理制度
- 玩具破皮工厂管理制度
- 环保清洁安全管理制度
- 环保驻厂人员管理制度
- 2025年中国邮政集团有限公司辽宁省分公司招聘笔试备考试题及答案详解1套
- 玻璃器具仓储管理制度
- 理论宣讲人员管理制度
- 瑜伽馆饮用水管理制度
- 甘肃现代医院管理制度
- 生产包装流程管理制度
- 特许经营合作合同
- 人教版九年级物理 14.3能量的转化和守恒(学习、上课课件)
- 2024年网络安全知识竞赛考试题库500题(含答案)
- 江苏省徐州市贾汪区2023-2024学年七年级上学期期中考试数学试卷(含解析)
- 《港口粉尘在线监测系统建设技术规范(征求意见稿)》编制说明
- 品质巡检个人工作计划
- 医院采购委员会管理制度
- 设备管道 防腐保温施工方案
- DZ∕T 0214-2020 矿产地质勘查规范 铜、铅、锌、银、镍、钼(正式版)
- 校车安全行车记录表
- QCSG1204009-2015电力监控系统安全防护技术规范
评论
0/150
提交评论