济南大学c语言,C语言-济南大学6.pdf

本文详细介绍了C语言中的函数概念,包括函数的定义、声明、调用以及返回值。通过一个求两个数中较大数的例子,展示了如何定义和调用自定义函数,并解释了传值调用和传址调用的区别。此外,还讨论了函数的递归调用以及C标准库中常见库函数的使用,强调了函数在模块化程序设计中的重要性。
摘要由CSDN通过智能技术生成

第六章 函 数

【教学目的】

理解“函数”概念,学会构造程序模块

掌握函数的定义和调用

掌握函数之间的信息传递

掌握函数的递归调用

熟悉 C 标准库中常见的库函数

【教学内容】

正确定义函数及其声明

函数的调用的方式及其返回值

函数的参数,两种重要的传递方式——传值调用和传址调用

命令行参数

函数的递归调用

【教学重点和难点】

掌握函数的定义,在实际问题中如何构造函数这样的程序模块。

掌握函数的传值调用和传址调用,特别是传址调用。注意两种方式的区别,什么情况下

用哪一种方式更高效,更方便。

主函数带参数的情况,参数如何传递,程序如何执行。

掌握递归算法,包括递归的基本概念,递归函数的动态执行过程,递归程序的编写方法。

【问题的提出】

在前五章中所出现的程序都只有一个 main 函数,当开发和维护大型程序时,程序往往很

大,用一个 main 函数编写的程序会很长,不利于多人合作开发大型程序(或软件),也不利

于程序的阅读和调试。在这种情况下提出了一种好的办法,就是用更容易管理的小程序块 (即

模块)来建立程序,这种程序设计技术称为“细化”(divide and conquer) 。

从组成上看,各个功能模块彼此有一定的联系,功能上各 自独立,从开发过程上看,可

能不同的模块由不同的程序员开发,怎样将不同的功能模块连接在一起,成为一个程序,怎

样保证不同的开发者的工作既不重复,又能彼此衔接,这就是模块化设计。在 C 语言中,用

函数实现功能模块的定义,一个文件中可以包含多个函数。

C 语言的程序通常是用程序员编写的新函数和 C 标准库中的函数写成的。C 标准库中提

供了丰富的函数集,这些函数能够完成常用的数学计算、字符串操作、字符操作、输入/输

出以及其它许多有用的操作。这些函数给程序员提供了很多必要的功能,减少了程序员的工

作量,节省了开发时间,使程序具有更好的可移植性。标准库函数存放在不同的头文件中,

使用时只要把头文件包含在用户程序中,就可以直接调用相应的库函数了。即在程序开始部

分用如下形式: #include 或: #include "头文件名"。

用户可根据自己的需要,编写完成指定任务的函数,这些函数称为“自定义函数”。函数

的使用是通过函数调用实现的,函数调用指定了被调用函数的名字和调用函数所需的信息(参

数) 。

【教学要点】

1. 函数定义、声明、调用及返回值

【例 6.1 】定义一个函数,用于求两个数中较大的数。

分析: 根据题意,需要自定义一个函数实现求大数的功能;而在 main( ) 中实现两数的

输入、调用自定义函数及输出功能。

源程序如下:

main()

{ float max(float n1, float n2) ; /* 在 main( ) 中对被调用函数max( )进行声明 */

float num1,num2,m ;

printf("input two numbers:\n") ;

scanf("%f%f", &num1, &num2) ; /* 输入两个数 */

m=max(num1,num2); /* 调用 max( ) 函数,返回后的较大值存于m 中 */

printf("max=%f\n",m) ; /* 输出较大数 */

getch();

}

float max(float n1, float n2) /* 定义一个函数 max( )求较大数,其返回值为 float 型*/

{ return (n1>n2?n1:n2) ; /* 返回表达式的值 */

}

说明:

1. 任何一个函数都是由函数说明和函数体两部分组成。根据函数是否需要参数,可将

函数分为无参函数和有参函数两种。在本例中定义一个函数 max( )是有参函数,调

用有参函数时,调用函数将赋予这些参数实际的值。为了与调用函数提供的实际参

数区别开,将函数定义中的参数表称为形式参数表,简称形参表。本例中将实参num1 、

num2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值