1.4 简单C语言程序
在学习C语言的具体语法之前,为了让读者对C语言程序有一个感性认识,首先通过几个简单C语言程序示例,让读者初步了解C语言程序的基本结构。
1.4.1 由main()函数构成的简单程序
【例1-1】在屏幕上显示“Hello World.”。
程序清单:

运行程序:

案例分析:
从例1-1可以看出以下几点:
①C语言程序由函数构成。案例程序涉及2个函数:main()、printf()。其中:printf()是系统函数,用于数据输出。main()是程序的主控函数,称为主函数,main()后面由花括号“{ }”对括起来的部分是函数的主体(即函数体)。
说明:每个C程序都必须具有一个main()函数,且只能有一个main()函数。
②程序都是从main()函数开始运行(即main()中的第一条可执行语句开始),当main()函数结束时,程序运行也结束。
③#include是编译预处理命令,其作用是将有关文件信息包含到程序中。
案例程序将stdio.h头文件(标准输入/输出头文件)包含到程序中,程序便可调用其中的系统库函数。例如,printf()就是标准输出函数。
说明:C语言编译系统提供了许多头文件,分类包含各类标准函数的原型说明,需要用到某些库函数时,只需将相应的头文件用#include语句包含在程序的首部就可直接使用,头文件的扩展名一般为.h。
④/*与*/之间的内容构成C语言程序的注释部分。
注释部分不参与程序的编译和执行,只起说明作用,增加程序的可读性。
说明:注释内容可以是一行,也可以是多行。建议在程序中适当添加注释,增加程序的可读性。
1.4.2 由main()函数调用另一个函数构成的简单程序
【例1-2】输入一个正整数n,计算n!。要求定义函数fact(n)求n!,供main()函数调用。
程序清单:

运行程序:

案例分析:
从例1-2可以看出以下几点:
①C语言程序由函数构成。
案例程序涉及4个函数:main()、fact()、scanf()、printf()。其中:scanf()、printf()是系统函数,用于数据输入和输出。main()是程序的主控函数,称为主函数,main()后面由花括号“{ }”对括起来的部分是函数的主体(即函数体)。fact()是程序中定义的函数,n作为函数的参数,其功能是计算并返回n!。
说明:程序中除main()函数和标准库函数外,用户也可自己编写函数。因此,一个应用程序一般由1个main()函数带多个用户自定义函数构成。
②程序从main()函数开始运行,当运行到scanf()函数时,从键盘输入一个正整数5;然后运行到调用fact()函数的语句,计算5!并将结果赋值给res变量;接着执行main()函数的最后一条语句,调用printf()函数输出res的值。至此程序运行结束。
说明:
● 在fact()函数中,for是循环语句,i从1变化到n,重复执行语句res=res*i计算n!。for语句此处不作要求,第2章将做详细介绍。
● return res是返回语句,返回res的值并将流程返到主调函数。
1.4.3 C语言程序的基本结构
综合前面两个案例程序,一个完整的C语言程序由1个main()函数带多个用户自定义函数构成。大致结构包括:
①头文件包含(一组#include命令)。
②用户自定义函数声明。
③主函数main()。
④若干用户自定义函数的定义。
其中,在main()函数和用户自定义函数中,一般又包含变量定义、若干库函数调用、控制流程语句、用户函数调用语句等。若设f1()~fn()代表用户自定义函数,则C语言程序的一般形式为:
