资源描述
带参带返回值函数 专业英语词汇英文词汇对应的中文意义function函数arguments实际参数formal parameters形式参数return value返回值function prototype declaration函数原型声明local variable 局部(定义在函数内部的)变量 回顾与提问n 简 单 回 顾 第 1学 期 的 主 要 内 容n 回 顾 第 1学 期 计 算 器 案 例 的 主 要 内 容 第1学期主要内容l C语 言 程 序 结 构 ( 无 参 无 返 回 值 函 数 的 编 写 )l 数 据 类 型 、 变 量 输 入 /输 出 、 运 算 符 int、 float、 double、 char scanf、 printf、 (getchar、 putchar) 算 术 、 赋 值 、 关 系 、 逻 辑 运 算 符l 三 种 程 序 设 计 结 构 顺 序 、 选 择 ( 分 支 ) 、 循 环 结 构 第1学期计算器案例主要内容l 用 无 参 无 返 回 值 的 函 数 实 现l 加 、 减 、 乘 运 算 -顺 序 结 构l 除 法 、 求 余 -分 支 结 构 ( 判 断 除 数 是 否 为 0)l 累 加 、 阶 乘 -循 环 结 构l 主 函 数 -switch语 句 的 应 用 、 用 死 循 环 控 制 程序 反 复 执 行 本课内容l 带 参 数 有 返 回 值 函 数 函数的类型函 数 定 义 基 本 格 式 : 返 回 值 类 型 函 数 名 (参 数 类 型 参 数 名 )注 : 也 可 以 没 有 参 数 或 有 两 个 ( 以 上 ) 的 参 数 , 两 个 以 上 的 参 数 用 逗 号 分 隔 , 如 :返 回 值 类 型 函 数 名 (参 数 类 型 参 数 名 , 参 数 类 型 参 数 名 , 参数 类 型 参 数 名 )-这 是 有 三 个 参 数 的 函 数返 回 值 类 型 有 : void、 int、 double、 float、 char及 其 他 C语 言 中 可 以 使 用 的 类 型 。如 果 是 void表 示 该 函 数 无 返 回 值 。 其 他 则 表 示 有 返 回 值 。 参数 类 型 即 是 数 据 类 型 、 参 数 名 即 是 变 量 名 , 只 是 叫 法 不 同 而已 。 函数的类型 由 返 回 值 和 参 数 是 否 有 可 构 成 以 下 四 类 函 数 : 实 际 编 程 中 , 各 种 类 型 都 可 能 遇 到 , 但 最 常 见 的 是 有 返 回 值带 参 数 的 函 数类 型 函 数 原 型 举 例( 1) 无 返 回 值 无 参 数 函 数 void f1( );( 2) 无 返 回 值 带 参 数 函 数 void f2(char s );( 3) 有 返 回 值 无 参 数 函 数 int f3( );( 4) 有 返 回 值 带 参 数 函 数 * double f4( int n ); 无返回值无参数函数的编写思路与 在 main函 数 中 编 程 思 路 完 全 相 同 。例 如 : 计 算 器 中 的 除 法 函 数void divide( ) /第 一 步 : 定 义 变 量 ( 用 于 输 入 运 算 数 和 保 存 结 果 )/第 二 步 : 从 键 盘 上 输 入 两 个 运 算 数/第 三 步 : 计 算 两 个 数 的 除 法 ( 要 用 if语 句 考 虑 除 数 为 0的 特 殊 情 况 ) /第 四 步 : 输 出 计 算 结 果 无返回值无参数函数的调用假 设 在 main函 数 中 调 用 。 在 其 他 函 数 中 调 用 也 是 一样 的 。main() divide( ); /函 数 调 用 语 句 ( 直 接 调 用 ) 有返回值有参数函数的编写思路与 无 返 回 值 无 参 数 函 数 略 有 不 同 。返 回 值 的 数 据 类 型 函 数 名 ( 数 据 类 型 参 数 名 1 , 数 据 类 型 参 数 名 2) /函 数 的 功 能 代 码 部 分 -略 有 不 同/返 回 结 果 值 -最 大 的 不 同 之 处 有返回值有参数函数的编写例 1: 如 果 我 们 想 定 义 一 个 函 数 , 要 求 该 函 数 能 够 实 现 计 算 圆的 面 积 , 并 将 计 算 结 果 返 回 , 则 可 将 函 数 定 义 如 下 :double areaOfCircle( double radius ) /radius表 示 半 径 /根 据 radius计 算 圆 的 面 积/返 回 圆 的 面 积 有返回值有参数函数的编写例 1: 如 果 我 们 想 定 义 一 个 函 数 , 要 求 该 函 数 能 够 实 现 计 算 圆的 面 积 , 并 将 计 算 结 果 返 回 , 则 可 将 函 数 定 义 如 下 :double areaOfCircle( double radius ) /radius表 示 半 径 double area; /定 义 面 积 变 量/根 据 radius计 算 圆 的 面 积area = 3.14 * radius * radius ;/返 回 圆 的 面 积return area; 有返回值有参数函数的编写编 写 中 注 意 的 问 题 :( 1) 不 允 许 再 次 定 义 与 参 数 名 相 同 的 变 量( 2) 参 数 的 值 是 不 需 要 在 函 数 中 输 入 的 ( 因 为 是 在 调 用 的 时候 传 递 过 来 的 )( 3) 在 函 数 中 一 般 不 输 出 结 果( 4) 函 数 要 结 束 的 位 置 必 须 用 return语 句 返 回 正 确 的 值 。return 语 句 的 格 式 为 :return 表 达 式 ( 或 常 量 值 ) ;该 表 达 式 的 值 应 该 与 返 回 值 的 类 型 一 致 , 否 则 程 序 就 存 在 缺陷 。 有返回值有参数函数的编写练 习 : 根 据 三 角 形 的 三 条 边 来 计 算 其 面 积 , 并 将 面 积 返 回 。计 算 公 式 为 : ,其 中 s=(a+b+c)/2。函 数 定 义 如 下 :double areaOfTriangle( double a, double b, double c) /a,b,c分 别 表 示 三 边 /根 据 三 边 计 算 三 角 形 面 积/返 回 三 角 形 面 积 )()( csbsassarea 有返回值有参数函数的调用假 设 在 main函 数 中 进 行 调 用 : 思 路 如 下( 1) 定 义 与 被 调 用 函 数 参 数 个 数 相 同 , 且 类 型 对 应 相 同 的 变量( 2) 定 义 与 被 调 用 函 数 返 回 值 类 型 一 致 的 一 个 变 量 , 用 以 保存 调 用 后 的 结 果( 3) 为 每 个 实 际 参 数 赋 值( 4) 调 用 函 数 , 并 保 存 函 数 返 回 的 结 果( 5) 输 出 结 果 ( 或 用 结 果 进 行 其 他 运 算 ) 有返回值有参数函数的调用假 设 在 main函 数 中 进 行 调 用 areaOfCircle :main( ) double r; double result; /定 义 变 量scanf( “ %lf” , /输 入 实 际 参 数 的 值result = areaOfCircle( r ); /调 用 函 数printf(“ 面 积 为 : %lfn” , result );/输 出 结 果 有返回值有参数函数的调用result = areaOfCircle( r ); /调 用 函 数main( ) /调用前的代码result = areaOfCircle( r ); /调用时/调用后的代码 double areaOfCircle( double radius) /函数的主要功能代码 return area; /使用return 语句返回结果值 课堂练习 用 带 参 数 有 返 回 值 函 数 完 成 下 列 程 序 : 1、 编 写 一 个 程 序 , 完 成 三 角 形 面 积 的 计 算 。 2、 编 写 程 序 判 断 两 个 字 符 是 否 一 致 , 并 返 回 判 断 结 果 。一 致 请 返 回 1, 不 一 致 返 回 0.函 数 定 义 如 下 :int isEqual( char ch1, char ch2 ) /ch1,ch2表 示 两 个字 符 , 返 回 值 用 整 型 /比 较 两 个 字 符 是 否 一 样 , 如 果 一 样 结 果 记 为 整 数 1,否 则 结 果 记 为 整 数 0/返 回 结 果 更进一步 试 着 自 己 找 一 个 例 子 , 看 能 不 能 写 成 带 参 数 有返 回 值 的 函 数 来 解 决 , 并 编 程 实 现 之 。 本次课小结 函 数 类 型 带 参 数 有 返 回 值 函 数 的 编 写 、 调 用 作业1、用带参数带返回值的函数实现功能:从键盘上输入一个整数n,计算n !.2、调用上面的程序,使之运行正确。并掌握调试过程。
展开阅读全文