第7章 用函数实现模块化程序设计

news/2024/10/31 3:18:41/

7.1 为什么要用函数

在设计一个较大的程序时,往往把它分为若干个程序模块,每一个模块包括一个或多个函数,每个函数实现一个特定的功能。一个C程序可由一个主函数和若干个其他函数构成。由主函数调用其他函数,其他函数也可以互相调用。

7.2 怎样定义函数

定义函数包括以下几个内容:

(1)指定函数的名字,以便以后按名调用。

(2)指定函数的类型,即函数返回值的类型。

(3)指定函数的参数的名字和类型。

(4)指定函数应当完成的操作,也就是函数的功能。

7.3 调用函数

1.形式参数和实际参数

在定义函数时函数名后面括号中的变量名称为“形式参数”(简称“形参”)或“虚拟参数”。在主调函数中调用一个函数时,函数名后面括号中的参数称为“实际参数”(简称”实参“)。

7.3.1 函数的返回值

(1)函数的返回值是通过函数中的return语句获得的。

(2)函数值的类型。

int max(float x,float y) //函数值为整型

char letter(char c1,char c2) //函数值为字符型

double min(int x,int y) //函数值为双精度型

(3)在定义函数时指定的函数类型一般应该和return语句中的表达式类型一致。

7.4 对被调用函数的声明和函数原型

例7.4 输入两个实数,用一个函数求出它们之和。

编写程序:

#include<stdio.h>
int main(){float add(float x,float y);float a,b,c;printf("Please enter a and b:");scanf("%f,%f,&a,&b");c=add(a,b);printf("sum is %f\n",c);return 0;
}
float add(float x,float y){float z;z=x+y;return(z);
}

7.6 函数的递归调用

直接或间接地调用该函数本身,称为函数的递归调用。

int f(int x){int y,z;z=f(y);   //在执行f函数的过程中又要调用f函数return(2*z);
}


http://www.ppmy.cn/news/1026909.html

相关文章

GO学习之 微框架(Gin)

GO系列 1、GO学习之Hello World 2、GO学习之入门语法 3、GO学习之切片操作 4、GO学习之 Map 操作 5、GO学习之 结构体 操作 6、GO学习之 通道(Channel) 7、GO学习之 多线程(goroutine) 8、GO学习之 函数(Function) 9、GO学习之 接口(Interface) 10、GO学习之 网络通信(Net/Htt…

机器学习:隐马尔可夫模型(HMM)

后续会回来补充代码 1 隐马尔可夫模型 隐马尔可夫模型(Hidden Markov Model,HMM)是可用于标注问题的统计学模型&#xff0c;描述由隐藏的马尔可夫链随机生成观测序列的过程。 1.1 数学定义 隐马尔可夫模型是关于时序的概率模型&#xff0c;描述由一个隐藏的马尔可夫链随机生成…

C#获取文件信息的方法汇总

前言 在.NET开发中&#xff0c;用C#获取文件信息是比较常见的操作。通过获取文件信息&#xff0c;我们可以了解文件的属性、大小、创建日期、修改日期等各种元数据信息。比如我们网站需要上传文件&#xff0c;可以用扩展名称控制上传的类型&#xff0c;获取文件的大小来限制上传…

【软件工程】数据流图/DFD概念符号/流程图分层/数据字典

【软件工程】数据流图/DFD概念符号/流程图分层/数据字典 目录 【软件工程】数据流图/DFD概念符号/流程图分层/数据字典 一、数据流图 ( DFD ) 简介 二、数据流图 ( DFD ) 概念符号 1、数据流 2、加工 ( 核心 ) 3、数据存储 4、外部实体 三、数据流图 ( DFD ) 分层 1、…

springboot3日志配置

简介 Spring 使用commons-logging作为内部日志&#xff0c;但是底层日志实现是开放的&#xff0c;可以对接其他日志框架 spring5以及以后common-logging被spring直接自己写了 支持jul, log4j2,logback&#xff0c;springBoot提供了默认的控制台输出配置&#xff0c;也可以配置…

Linux 命令 su 和 sudo 的区别

之前一直对 su 和 sudo 这两个命令犯迷糊&#xff0c;最近专门搜了这方面的资料&#xff0c;总算是把两者的关系以及用法搞清楚了&#xff0c;这篇文章来系统总结一下。 1. 准备工作 因为本篇博客中涉及到用户切换&#xff0c;所以我需要提前准备好几个测试用户&#xff0c;方…

centos安装指定版本的docker并添加多源加速器

1. 安装指定版本的docker yum -y install epel-release wget wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo yum list docker-ce --showduplicates | sort -r #查看yum仓库中可以安装的docker版本 yum -y insta…

使用sqlplus连接oracle,提示ORA-01034和ORA-27101

具体内容如下 PL/SQL Developer 处 登录时 终端处 登录时 ERROR: ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Process ID: 0 Session ID: 0 Serial number: 0 解决方法是执行以下命令 sqlplus /nolog conn / as sysdba startup …