C语言程序设计基础第25次课函数定义、调用、参数传递、函数声明变量作用域和生存期
C语言程序设计基础 第25次课 函数定义、调用、 参数传递、函数声明 变量作用域和生存期
学习任务(课前学习)观看智慧树在线课程视频《用户函数的定义与调用》、《函数的参数》《函数的返回值》《变量的作用域和生存期》阅读学习教材9.1节、9.2节、9.3节、9.4节。注:若知到App拥堵,可以扫描教材中的二维码观看
学习任务(课前学习) 观看智慧树在线课程视频: 《用户函数的定义与调用》、《函数的参数》、 《函数的返回值》《变量的作用域和生存期》 阅读学习 教材9.1节、9.2节、9.3节、9.4节 注:若 知到App拥堵,可以扫描教材中的二维码观看
练习与讨论1.在一个程序中,如果存在几段完全相同的程序段,如何将这个程序段定义为一个独立的函数?(无参函数)2.在一个程序中,如果存在几段功能相同但数据不同的程序段,如何将这个程序段定义为一个独立的函数?(有参函数)3.C语言的参数传递方式是单向传递还是双向传递?4.既然利用全局变量(9.4节)或指针参数(10.1节)可以从被调函数向主调函数同时返回多个数据,为什么还说函数的一次调用至多有一个返回值呢?5.如何确定一个函数的类型,什么样的函数可以定义为void类型?6.何为局部变量?都有哪几种?不同函数中可以出现同名变量吗?为什么?7.局部变量可以和全局变量重名吗?8.静态局部变量和动态局部变量有何相同和不同?
练习与讨论 1. 在一个程序中,如果存在几段完全相同的程序段,如何将这个程 序段定义为一个独立的函数?(无参函数) 2. 在一个程序中,如果存在几段功能相同但数据不同的程序段,如 何将这个程序段定义为一个独立的函数?(有参函数) 3. C语言的参数传递方式是单向传递还是双向传递? 4. 既然利用全局变量(9.4节)或指针参数(10.1节)可以从被调函 数向主调函数同时返回多个数据,为什么还说函数的一次调用至多有 一个返回值呢? 5. 如何确定一个函数的类型,什么样的函数可以定义为void类型? 6. 何为局部变量?都有哪几种?不同函数中可以出现同名变量吗? 为什么? 7. 局部变量可以和全局变量重名吗? 8. 静态局部变量和动态局部变量有何相同和不同?
函数函数的特点8设计一个复杂的程序时函数是C程序的基本组成单位必须有且只能有一个名为通常将它分解为若干个相对main的主函数独立的程序模块,这就是模C程序的执行总是从main函数块化的程序设计,有利于程开始,在main中结束序的调试和维护。函数之间是平行的独立的在C语言中通过将一个main函数可以调用任意其他函数,其他函数(除main函数程序划分为若干个函数,来外)之间可相互调用实现程序的模块化
函 数 设计一个复杂的程序时, 通常将它分解为若干个相对 独立的程序模块,这就是模 块化的程序设计,有利于程 序的调试和维护。 在C语言中通过将一个 程序划分为若干个函数,来 实现程序的模块化。 函数的特点 ➢ 函数是C程序的基本组成单位 ➢ 必须有且只能有一个名为 main的主函数 ➢ C程序的执行总是从main函数 开始,在main中结束 ➢ 函数之间是平行的独立的 ➢ main函数可以调用任意其他 函数,其他函数(除main函数 外)之间可相互调用
C语言函数的分类1.按来源划分2.按函数有无参数分(1)库函数:(1)无参函数:由C语言编译系统预先定不带参数(自变量)的函数义好的函数,用户可直接调用如getchar()等如printf()、sqrt()等(2)有参函数:带有参数(自变量)的函数(2)用户定义函数:如 printf()、sqrt()由用户自己定义的函数。strcpy()等
1. 按来源划分 ⑴库函数: 由C语言编译系统预先定 义好的函数,用户可直接调用 如 printf( )、sqrt( )等 ⑵用户定义函数: 由用户自己定义的函数。 C语言函数的分类 2.按函数有无参数分 ⑴无参函数: 不带参数(自变量)的函数 如 getchar( ) 等 ⑵有参函数: 带有参数(自变量)的函数 如 printf( )、sqrt( ) strcpy( ) 等