
1.2 C语言结构
1.2.1 C程序及结构

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


程序运行结果如图1.2所示。main是主函数的函数名,表示这是一个主函数。每一个C源程序都必须有,且只能有一个主函数(main函数)。函数调用语句printf()的功能是把要输出的内容送到显示器去显示。printf()函数是一个由系统定义的标准函数,可在程序中直接调用。语句“return 0;”表示程序的正常结束。

图1.2 程序运行结果
【例1.2】从键盘输入一个实数x,求x的正弦值。

include称为文件包含命令,扩展名为.h的文件称为头文件;定义两个实数变量,以被后面程序使用,显示提示信息,从键盘获得一个实数x,求x的正弦并把它赋给变量s,显示程序运算结果,main函数结束。
在main()之前的两行称为预处理命令。预处理命令还有其他几种,这里的include称为文件包含命令,其意义是把尖括号<>或引号""内指定的文件包含到本程序来,成为本程序的一部分。被包含的文件通常是由系统提供的,其扩展名为.h,因此也称为头文件或首部文件。C语言的头文件中包括了各个标准库函数的函数原型,因此,凡是在程序中调用一个库函数时,都必须包含该函数原型所在的头文件。在本例中,使用了三个库函数:输入函数scanf(),正弦函数sin(),输出函数printf()。sin()函数是数学函数,其头文件为math.h文件,因此在程序的主函数前用include命令包含了math.h。scanf()和printf()是标准输入输出函数,其头文件为stdio.h,在主函数前也用include命令包含了stdio.h文件。
C语言的主函数体中又分为两部分,一部分为说明部分,另一部分为执行部分。说明是指变量的类型说明。例题1.1中未使用任何变量,因此无说明部分。
C语言规定,源程序中所有用到的变量都必须先说明,后使用,否则将会出错。这一点是编译型高级程序设计语言的一个特点,与解释型的BASIC语言是不同的。说明部分是C源程序结构中很重要的组成部分。本例中使用了两个变量x、s,用来表示输入的自变量和sin()函数值。由于sin()函数要求这两个量必须是双精度浮点型,因此,用类型说明符double来说明这两个变量。说明部分后的四行为执行部分或称为执行语句部分,用以完成程序的功能。执行部分的第一行是输出语句,调用printf()函数在显示器上输出提示字符串,请操作人员输入自变量x的值。第二行为输入语句,调用scanf()函数,接受键盘上输入的数并存入变量x中。第三行是调用sin()函数并把函数值送到变量s中。第四行是用printf()函数输出变量s的值,即x的正弦值。最后,程序结束。
运行本程序时,首先在显示器屏幕上给出提示串input number,这是由执行部分的第一行完成的。用户在提示下从键盘上键入某一数,如3.14,按下回车键,接着在屏幕上给出计算结果,如图1.3所示。

图1.3 程序运行结果
【小提示】
程序中的注释信息是编程规范的重要内容,对理解和阅读程序有很大帮助,注释信息可以放在程序的任何位置,不参与编译,不影响程序的运行。C语言中加注释提供了以下两种方法。
(1)块注释。用符号“/*”和“*/”标出注释的开始和结束,在符号“/*”和“*/”之间的任何内容都将被编译程序当作注释来处理。这种方法是在程序中加入注释的最好方法。例如,你可以在程序中加入下述注释:

(2)行注释。用符号“//”标出注释行,从符号“//”到当前行末尾之间的任何内容都将被编译程序当做注释来处理。当然,行注释也可以用“/*”和“*/”符号。如:

也可以注释为:

1.2.2 如何开发C程序

1.C程序开发步骤
(1)编辑。可以用任何一种编辑软件将在纸上编写好的C程序输入计算机,并将C语言源程序文件*.c以纯文本文件形式保存在计算机的磁盘上(不能设置字体、字号等)。
(2)编译。编译过程使用C语言编译程序将编辑好的源程序文件“*.c”,翻译成二进制目标代码文件“*.obj”。编译程序对源程序逐句检查语法错误,发现错误后不仅会显示错误的位置(行号),还会告知错误类型信息。我们需要再次回到编辑软件修改源程序的错误,然后再进行编译,直至排除所有语法和语义错误。
(3)连接。程序编译后产生的目标文件是可重定位的程序模块,不能直接运行。连接将编译生成的各个目标程序模块和系统或第三方提供的库函数“*.lib”连接在一起,生成可以脱离开发环境、直接在操作系统下运行的可执行文件“*.exe”。
(4)运行程序。如果经过测试,运行可执行文件达到预期设计目的,这个C程序的开发工作便到此完成了。如果运行出错,这说明程序处理的逻辑存在问题,需要再次回到编辑环境针对程序出现的逻辑错误进一步检查、修改源程序,重复编辑→编译→连接→运行的过程,直到取得预期结果为止。
2.使用Dev-C++编译运行C程序
Dev-C++是一个Windows环境下C/C++的集成开发环境(IDE),如图1.4所示,小巧轻量但是功能齐备,适合初学者与编程高手的不同需求,是学习C或C++的首选开发工具。Dev-C++开发环境所包含的是编辑、编译、调试和执行C程序所必须的标准功能。对于使用要求严格的C++程序员,Dev-C++包含了多种可能的编程环境,允许你不需要多少手动操作就可以编写所有的源代码。

图1.4 Dev-C++集成开发环境(IDE)