当前课程知识点:C语言程序设计(下) >  第一周:函数(一) >  1.4 函数间参数传递 >  小结

返回《C语言程序设计(下)》慕课在线视频课程列表

小结在线视频

小结

下一节:html

返回《C语言程序设计(下)》慕课在线视频列表

小结课程教案、知识点、字幕

以上我们介绍了函数的定义

函数的调用

函数的返回等相关的知识

现在我们一起来总结一下

当我们定义好了一段函数

我们预期要实现一个功能

主调函数使用被调函数

这件事叫做函数的调用

函数的调用形式可以有

语句的形式

表达式的形式

或者是

作其它函数的参数的形式

不管哪一种形式

函数的调用

都是要通过函数名

和函数的参数来体现

如果一个函数中

需要调用其它的函数

c语言规定

主调函数使用被调函数之前

要对被调函数作说明

怎样说明呢

要说明被调函数的类型

函数名

和函数的参数的类型

主调函数使用被调函数的结果

可能会得到一个返回值

这个返回值是通过返回语句构成的

前面我们说了

函数的类型

就是返回值的类型

所以大家在写程序的时候

一定要注意

函数定义的类型

函数说明的类型

和函数返回值的类型

要保持一致

函数中的第一部分

我们就到这

下面我们继续学习

到目前为止

我们学习了函数的定义

函数的调用

函数的返回

和函数之间参数的传递

大家一定记得

开始我举的例子

老师在学生考完试之后

希望同学们帮忙

做成绩的统计

现在我们就来看

怎么把这件事

通过一个简单的

学习成绩管理的程序实现
通过一个简单的

学习成绩管理的程序实现

现在

我先编了一小段程序

来实现屏幕上

一个简单的菜单

大家看

程序运行开始

屏幕上提示输入

1到3之间的一个数

通过开关语句结构

根据用户输入的数去看

跟开关语句中

哪一个选项匹配

来转向执行后面的语句

目前我们还没有分数

也没有编写其它的函数

这个程序的执行结果

就是生成一个简单的菜单

我们的目的就看

如何拿这样的一个程序

去实现

复杂的功能

来满足我们的要求

现在我们对这个程序做编译

运行

运行的时候

提示我们输入一个数

比如我们输入选项2

它将提示我们

看看有多少个及格的分数

好了

大家知道

通常我们运行一个软件的时候

我们选择了一个菜单项

就会对应后续的一个功能

或者说一个模块

现在我们怎么样

在这个菜单项的后面

去增加我们希望的功能呢

我们在这个程序的基础之上

做些补充

现在我们就来看

在刚才的那个简单的程序基础之上

我增加了

函数的调用

首先在开关语句中

我们定义了几个不同的选项

比如

用户从键盘输入的是1

屏幕提示

通过学号查询成绩

在这个提示之后

就要调用一个查询函数

目前我们还没有学生的成绩

我们只是通过一条语句

来说明一下

这个函数调用的过程的实现

c语言规定

主调函数使用被调函数的时候

要对被调函数作说明

因此

在程序的主调函数中

我们增加了三条

对被调函数的说明语句

由于目前我们调用这三个函数

只是为了一个简单的操作

因此

我们给这个函数定义成

无类型的函数

下面我们就运行一下这个程序

大家看看

函数调用的实现

咱们先编译

没有问题

运行

此时

屏幕提示我们输入

1到3之间的一个数

现在如果我们输入的是1

大家注意

刚才说了

通路1

进到开关语句中的case1

转向执行后面的语句

屏幕显示

通过学号查询成绩

接着

调用查询函数

程序的流程

将转向查询函数中

那么这里提示

请输入一个学号

目前这个程序

只是告诉大家

我们能够实现

在开关语句的不同选项的后面

去实现对应不同的功能

在这样的一个程序基础之上

只要我们把查询函数

统计函数

浏览函数的功能

写完整

它就是一个简单的

学习成绩管理的小软件

有了刚才那两个短的程序

现在我们就把一个简单的

学习成绩管理

写完整了

请大家注意

我首先

假定有这么一个成绩表

为了运行方便

我用了一个

初始化数据的二维数组

数组名叫分数

假定目前有五个同学

每个同学有三门课的成绩

大家知道

c语言中

数组是具有相同的数据类型的

有限的数据元素的集合

因此

我现在用整型数

代表学号

在这个数组中

我们就认为

数组元素的

每一行的第一个元素

也就是第一列的元素

代表了学号

那么在这分别为

100 101 102

103 104

接着

这一步部分

跟我们刚才看到的是一样的

主调函数中

我们对三个被调函数做说明

然后屏幕提示你写选项

接着用户从键盘输入一个值

对应了开关语句中的选项

假定用户输入的是1

请大家看

屏幕提示请输入学生的学号

我们输了一个学号

注意

在主调函数中

我们输入了一个学号

被调函数 查询函数

要根据我们给定的学号

来进行那个学号的学生的

成绩的查询

因此

这就大家学过的

在主调函数中调用被调函数

主调函数内定义实参

并为实参赋值

调用函数时

实参的值传递给形参

请大家看

在查询函数调用的时候

我们从键盘输入的学号

就成为了函数调用的实参

函数转向函数体内部

根据我们输入的学号

在这个程序中

我们通过循环

由于刚才说了

我们假定的那个二维数组中的第一列

为学号

根据

我们来判断

在不同的行中

哪一行的第一列

与我们输入的那个学号相匹配

我们就转向执行

将这一行中所有的分数输出

这个就是查询的功能

如果我们从键盘输入的是2

将执行后面的语句

就是屏幕显示

通过考试的

我们想知道

在那些分数中有多少同学的

哪些分数是及格的

显示完这一句

程序转向统计函数

统计函数的具体的功能是

请大家看下面

我们定义了一个

嵌套的循环

在这个嵌套的循环中

一个判断

哪个分数是高于60的

我们就要把它记住

怎么记呢

在这个函数中

定义了一个变量k作为计数器

赋初值为0

只要有一个分数高于60

那么k就增1

这一段函数运行结束

所看到的k的值

就是我们要得到的

到底有多少同学的分数是

及格了

在此还想提醒大家一点

就是

在我进行判断的时候

我在这个嵌套的循环中

列循环的地方是从1开始的

大家想一想为什么呢

再看第三个

如果

同学们从屏幕上输入的是3

意味着

想看一下所有同学的成绩

屏幕提示完这一行

就转向执行浏览这个函数

浏览函数实际上跟我们前面

多次用到的一个二维数组的输出

在我们这个题目中

这个功能是一样的

所以一个嵌套的循环

外层是行循环

内层是列循环

为了能够

让成绩输出的更像一个表

我们用了%5d这种格式

而且显示完一行就换行

对这个程序的功能解释完了

虽然它的功能很简单

但是它告诉我们了

就是

一个学习成绩管理的

这样的一个小软件

可以把你希望的功能

分解成若干个小的子模块

每一个小的功能

通过函数来实现

到底能不能达到我们希望的结果呢

现在我们运行一下

首先编译

然后运行

屏幕上出现了

我们设计的小菜单

比如我们输入第一个选项

提示我们请输入学生的学号

刚才我说了

在这个初始化了的二维数组中

我们是不是假定第一列的数据

为学生的学号

现在我们输入

第二个同学的

学号为102

大家看到这个同学的分数

就显示在这了

我们再运行一下

看看其它的功能

如果这时候

我们关心的是

到底有多少同学的

多少个分数是及格了的呢

大家注意看

在这个表格中

在这个表格中

第二列 第三列 第四列

意味着学生的分数

而这里出现了一个55

我们来看运行这个相关的功能

它的统计结果是否正确

现在我们从键盘输入2

告诉我们

通过考试的一共有十四个分数

跟我们的直观的判断是一致的

我们下面再运行一下看看

功能3

如果我们在小菜单中

输入3这个选项

意味着浏览全部成绩

我们就可以看到

所有同学的学号和成绩

就显示出来了

由此

大家就可以更清楚的认识到

我们学习函数这一章的

重要的意义

随着今后的应用

可能我们编的程序

功能上越来越复杂

语句可能越来越多

怎么能让我们编的程序

功能更强

运行效率更高

这就是模块化程序设计的

思想的体现

而今天大家看的

这个简单的学习成绩管理

就是

综合了我们刚才前面讲过的

函数的定义 调用 返回值

以及

如何进行参数之间的传递

C语言程序设计(下)课程列表:

第一周:函数(一)

-1.1 函数定义

--内容简介

--函数是什么

--例题演示

--知识点总结

-1.1 函数定义--作业

-1.2 模块化程序设计

--由生活中的例子介绍模块化概念

--模块化程序设计总结

-1.3 函数调用、声明和返回

--函数调用的过程

--函数嵌套调用

-1.4 函数间参数传递

--形参与实参值传递

--地址传递-数组名做函数参数

--函数返回语句和返回值

--小结

--html

-1.4 函数间参数传递--作业

第二周:函数(二)

-函数递归调用

--6.5.1 递归问题开场白

--6.5.2 递归定义和调用过程

--6.5.3 运行程序

--6.5.4 汉诺塔介绍

--6.5.5 汉诺塔讲解

--6.5.6 汉诺塔程序运行

--6.5.7 递归调用例题

--6.5.8 递归总结

--html

--html

--html

--html

--html

--html

-函数递归调用--作业

第三周:函数(三)

-3.1 变量存储属性

--开场

--局部变量全局变量

--静态存储与动态存储

--存储类别小结

--html

--html

--html

--html

--html

-3.1 变量存储属性--作业

-3.2 编译预处理

--编译预处理开头

--编译预处理内容

--库函数

--函数总结

--综合例子

--html

-3.2 编译预处理--作业

第四周:指针(一)

-4.1 指针的定义、初始化和引用

--本周内容简介

--从变量的地址理解指针(1)

--从变量的地址理解指针(2)

--从数据交换看指针的应用(1)

--从数据交换看指针的应用(2)

--从数据交换看指针的应用(3)

-4.1 指针的定义、初始化和引用--作业

-4.2 指针与数组

--指针与数组

--用指针变量操作数组元素

--用指针变量操作数组元素实例

--Video

-4.2 指针与数组--作业

-虚拟实验:指针的基本概念实验

第五周:指针(二)

-5.1 指针与字符串

--本周开篇介绍

--指针与字符串

--指针与字符串小结

-5.1 指针与字符串--作业

-5.2 多维数组指针

--指针与多维数组

--指针变量访问二维数组

--一维数组的指针变量

--指向数组的指针函数参数

--html

--html

--html

--html

--html

--html

--html

--html

-5.2 多维数组指针--作业

第六周:指针(三)

-6.1指针与函数

--本周开篇介绍

--指针指向函数

--返回指针值的函数

--html

--html

--html

-6.1指针与函数--作业

-6.2指针与指针

--引入指针数组

--指针数组

--二级指针

--指针内容小结

--html

--html

--html

--html

-6.2指针与指针--作业

第七周:链表(一)

-7.1 结构的概念

--Video

--Video

--Video

--Video

--html

--html

-7.1 结构的概念--作业

-7.2 结构数组

--7.2.1 结构体数组

--Video

--Video

--html

-7.2 结构数组--作业

-7.3 结构指针

--Video

--Video

--Video

--html

-7.3 结构指针--作业

-7.4 结构与函数

--Video

--html

-7.4 结构与函数--作业

-7.5 联合

--Video

--Video

--html

-7.5 联合--作业

第八周:链表(二)

-8.1 typedef自定义类型

--自定义类型

-8.1 typedef自定义类型--作业

-8.2 枚举类型

--枚举类型

-8.2 枚举类型--作业

-8.3 链表的概念

--为什么使用链表

--链表的定义和功能

-8.3 链表的概念--作业

-8.4 链表的基本操作

--创建链表的步骤

--创建链表的过程

--访问链表中的节点

--约瑟夫问题

--html

--html

-8.4 链表的基本操作--作业

第九周 文件

-9.1 文件概述

--文件概念

--文件分类

-9.1 文件概述--作业

-9.2 文件型指针

--文件结构与指针

--设备文件

--html

-9.2 文件型指针--作业

-9.3 文件的打开与关闭

--文件读写方式

--文件读写操作

-9.3 文件的打开与关闭--作业

-9.4 文件的顺序读写

--文件顺序读写及字符输入输出

--字符串输入输出

--格式化及数据块输入输出

--html

-9.4 文件的顺序读写--作业

-9.5 文件的随机读写

--文件随机读写

-9.5 文件的随机读写--作业

-9.6 文件检测

--文件检测

-9.6 文件检测--作业

-9.7 文件应用实例

--文件应用实例

--html

--html

第十周 总结与练习

-10.1 C语言知识总结

--程序调试概念

--软件测试方法

--程序跟踪调试

--C语言语法要点

--标识符及运算符

--程序设计流程

--数组、函数及指针

--结构和文件

-10.1 C语言知识总结--作业

-10.2 C语言练习

--程序设计方法

--图像合成例子

--html

期末考试复习题

-期末考试复习题

--html

期末考试复习题答案

-期末考试复习题答案

--html

小结笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。