
1.4 C程序举例
为了说明C语言源程序结构的特点,先看以下几个程序。这几个程序由简到难,表现了C语言源程序在组成结构上的特点。虽然有关内容还未介绍,但可从这些例子中了解到组成一个C源程序的基本部分和书写格式。
【例1.1】第一个程序——Hello

main是主函数的函数名,一个C语言程序只能有一个main函数,main函数的内容放在一对花括号“{ }”内,称为函数体,其中的每一条语句用“;”结束每一个C源程序都必须有,且只能有一个主函数(main函数)。
函数调用语句,printf函数的功能是把要输出的内容送到显示器去显示。
printf函数是一个由系统定义的标准函数,可在程序中直接调用。
【例1.2】问题分析——计算圆面积。
假设圆的半径用radius表示,若半径为10,利用公式area=π·radius^2计算圆面积。

运行结果如图1.1所示。

图1.1 例1.2程序运行结果
程序说明:
(1)数据是程序加工处理的对象。本程序中的PI为3.1415926,radius和area分别是10和0.0,它们都是数据,程序就是对这些数据的声明、加工和处理。
(2)C语言将数据分为常量和变量。常量是指在程序执行的过程中,其值不发生变化的量,本例中PI、0.0和10就是常量,其中PI是符号常量。程序中所有出现的PI在编译时都用数值3.1415926代替。
(3)变量就是指在程序运行过程中其值可以变化的量,本程序中的radius和area是变量。
变量理解:变量如同一个盒子,可以存放数据,也可以从中取出数据(盒子中的数据不发生变化)使用。例如用“double radius=0.0;”定义radius后,radius中的值是不确定的,执行完语句“radius=10”后,radius中的值变为10。执行语句“area=PI*radius*radius”时,首先取出变量radius的值然后计算PI*radius*radius的值(即3.1415962×10×10),最后把结果存放在变量area中。
例1.2运行结果示意图如图1.2所示。变量名和变量的关系如图1.3所示。

图1.2 例1.2运行结果示意图

图1.3 变量名和变量的关系
【例1.3】由子函数和主函数构成的C程序。

执行结果如图1.4所示。

图1.4 例1.3的运行结果
注意:
(1)本程序包括两个函数:主函数和被调用的max函数。max函数的作用是将a和b中较大值返回到主函数中。
(2)在程序中的第11行调用max函数,在调用时将实际参数x和y传递给形式参数a和b,经过执行max函数得到一个值,由return带回一个返回值到主函数中。然后把这个返回值赋给主函数中的变量z。
(3)本例题中所讲到的实际参数、形式参数、被调函数等概念在本教材后面章节中将作详细介绍。
通过以上几个例子可以看到:
(1)C程序是由函数构成的。一个C源程序有且仅有一个主函数,也可以包含若干个其他函数。函数是C程序的基本单位。被调用的函数可以是系统提供的库函数,也可以是用户自定义的函数。
(2)一个C程序永远都是从main函数开始执行,也都是在main函数中结束,和main函数所在的位置无关。
(3)C程序的书写格式自由,一行内可以写几个语句,一个语句也可以分写在多行。
(4)每条语句和数据声明的最后都有一个分号,分号是语句结束的标志。
(5)C语言本身没有输入/输出语句。输入/输出都是通过调用库函数来完成的,例如scanf函数作用就是输入,printf函数作用是输出。
(6)可以用“/*……*/”来写注释语句,对程序的运行没有任何的影响。C语言中有两种方式来写注释语句:用“//”表明单行注释;用“/*……*/”表明多行注释。