C语言从入门到精通(第4版)
上QQ阅读APP看书,第一时间看更新

1.4 一个完整的C程序

视频讲解

1.3节展现了一个最简单的程序,通过7行代码的使用,实现了显示一行字符串的功能。通过1.3节的介绍,读者应该不会再对学习C语言发怵了。本节将在例1.1的基础上,对其内容进行扩充,使读者对C程序有一个更完整的认识。

【例1.2】 一个完整的C程序。(实例位置:资源包\TM\sl\1\2)

本实例要实现这样的功能:有一个长方体,它的高已经给出,然后输入这个长方体的长和宽,通过输入的长、宽以及给定的高度,计算出长方体的体积。

运行程序,显示效果如图1.2所示。

图1.2 一个完整的C程序

说明

这里要再次提示一下此程序的用意。例1.2和例1.1并不是要将具体的知识点进行详细的讲解,只是将C语言程序的概貌显示给读者,使读者对C语言程序有一个简单的印象。还记得小时候学习加减法的情况吗?老师只是教给学生们“1+1=2”,却没有教给学生们“1+1为什么等于2”或者“如何证明1+1=2”这样的问题。学习加减法是这样的过程,学习C语言编写程序也应该是这样的过程,在不断的接触中变得熟悉,在不断的思考中变得深入。

在具体讲解这个程序的执行过程之前,先展现该程序的过程图,这样可以使读者对程序有一个更为清晰的认识,如图1.3所示。

通过上述程序流程图,可以观察出整个程序运行的过程。前面已经介绍过程序中的一些内容,这里不再进行有关的说明。下面介绍程序中新出现的一些内容。

图1.3 程序流程分析

1. 定义常量

实例代码中的第2行:

这一行代码中,使用#define定义一个符号。#define在这里的功能是设定这个符号为Height,并且指定这个符号Height代表的值为10。这样在程序中,只要是使用Height这个标识符的位置,就代表使用的是10这个数值。

2. 函数声明

实例代码中的第3行:

此处代码的作用是对一个函数进行声明。前面介绍过函数,但是什么是函数声明呢?举一个例子,两个公司进行合作,其中的A公司要派一个经理到B公司进行业务洽谈。A公司会发送一个通知给B公司,告诉B公司会派一个经理过去,请B公司在机场接一下这位洽谈业务的经理。A公司将这位经理的名字和大概的体貌特征都告诉B公司的有关迎接人员。这样当这位经理下飞机之后,B公司就可以将他的名字写在纸上做成接机牌,然后找到这位经理。

声明函数的作用就像A公司告诉B公司有关这位经理信息的过程,为接下来要使用的函数做准备。也就是说,如果此处声明calculate函数,那么在程序代码的后面会有calculate函数的具体定义内容,这样程序中如果出现calculate函数,程序就会根据calculate函数的定义执行有关的操作。至于有关的具体内容将会在第9章进行介绍。

3. 定义变量

实例代码中的第6~8行:

这3行语句都是定义变量的语句。在C语言中要使用变量,必须在使用变量之前进行定义,之后编译器会根据变量的类型为变量分配内存空间。变量的作用就是存储数值,用变量进行计算。这就像在二元一次方程中,X和Y就是变量,当为其进行赋值后,如X为5,Y为10,这样X+Y的结果就等于15。

4. 输入语句

实例代码中的第13行:

在例1.1中曾经介绍过显示输出函数printf,那么既然有输出就一定会有输入。在C语言中,scanf函数就用来接收键盘输入的内容,并将输入的内容保存在相应的变量中。可以看到,在scanf函数的参数中,m_Long就是之前定义的整型变量,它的作用是存储输入的信息内容。其中的“&”符号是取地址运算符,其具体内容将会在本书的后续章节中进行介绍。

5. 数学运算语句

实例代码中的第26行:

这行代码在calculate函数体内,其功能是将变量Long、Width、Height三者相乘得到的结果保存在result变量中。其中的“*”号代表乘法运算符。

以上内容已经将其中的要点知识全部提取出来,关于C语言程序,相信读者此时已经有了一定的了解。下面再将上面的程序执行过程进行总结:

(1)包含程序所需要的头文件。

(2)定义一个常量Height,其代表的值为10。

(3)对calculate函数进行声明。

(4)进入main函数,程序开始执行。

(5)在main函数中,首先定义3个整型变量,分别代表长方体的长度、宽度和体积。

(6)显示提示文字,然后根据显示的文字输入有关的数据。

(7)当长方体的长度和宽度都输入之后,会调用calculate函数,计算长方体的体积。

(8)定义calculate函数的位置在main函数的下面,在calculate函数体内将计算长方体体积的结果进行返回。

(9)在main函数中,result变量得到了calculate函数返回的结果。

(10)通过输出语句将其中长方体的体积显示出来。

(11)程序结束。