
1.5 一个完整的C程序

视频讲解:资源包\Video\01\1.5一个完整的C程序.mp4
本节将根据1.4节的实例,对程序内容进行扩充,使读者对C程序有一个更完整的认识。
实例02 根据父母的身高预测儿子的身高
实例位置:资源包\Code\SL\01\02
视频位置:资源包\Video\01\
本实例要实现的功能是根据父母的身高预测儿子的身高。在本实例中定义了一个常量0.54,根据输入的父亲和母亲的身高,通过计算公式:儿子身高=(父亲身高+母亲身高)×0.54,预测出儿子的身高,具体代码如下:

运行程序,假如输入的父亲身高为1.8,母亲身高为1.68,运行结果如图1.27所示。
在具体讲解这个程序的执行过程之前,先展示该程序的过程图,便于对程序有一个更清晰的认识,如图1.28所示。

图1.27 预测儿子身高运行结果

图1.28 程序过程分析

从图1.28中可以看出整个程序运行的过程。前面已经介绍过关于程序中一些相同的内容,这里不再进行有关的说明。下面介绍程序中新出现的一些内容。
1.定义常量
实例02代码中的第2行代码如下:

在C语言中,使用#define定义一个常量。#define在这里的功能是设定这个常量为HEG,并且指定该常量代表的数值为0.54。这样,在程序中只要是使用HEG这个标识符,就代表0.54这个数值。
说明
常量名通常使用大写字母,以便与变量进行区分。
2.函数声明
实例02代码中的第3行代码如下:

这一行代码的作用是对一个函数进行声明。为什么要进行函数声明呢?就像父母在新生儿出生后将新生儿的姓名、出生日期等信息到公安局户籍部门登记,以便孩子在未来上学、就业或出国等活动中使用。自定义的函数也一样,需要先通过声明让编译器知道函数的名称、参数等信息,以便在程序执行时能准确调用函数,并执行相应的功能。
3.定义变量
实例02代码中的第7~9行代码如下:

这三行语句的作用都是定义变量。在C语言中要使用变量,必须在使用变量之前对其进行定义。定义变量就是要告诉编译器这个变量的数据类型,之后编译器会根据变量的类型为变量分配内存空间。变量的作用就是存储数值,用变量进行计算。
说明
在定义变量时,变量名尽量取与实际意义相关的名称。
4.输入语句
实例02代码中的第12行代码如下:

在实例01中曾经介绍过显示输出函数printf(),既然有输出,就一定会有输入。在C语言中,scanf()函数就用来接收键盘输入的内容,并将输入的内容保存在相应的变量中。可以看到,在scanf()函数的参数中,father就是之前定义的浮点型变量,它的作用是存储输入的信息内容。其中的“&”符号是取地址运算符,“&”运算符的具体内容将会在本书第10章中进行介绍。
5.数学运算语句
实例02代码中的第25行代码如下:

这行代码在height()函数体内,其功能是将变量father加上mother,再乘以HEG,得到的结果保存在son变量中。其中的符号“*”代表乘法运算符。
训练二
已知一个长方体的高,通过输入长方体的长和宽,计算出长方体的体积。(资源包\Code\Try\01\02)