
1.1 C语言程序的基本结构
1.1.1 简单的C语言程序
main是主函数的函数名,表示这是一个主函数。每一个C源程序都必须有且只能有一个主函数(main()函数)。printf()函数的功能是把要输出的内容送到显示器去显示。printf()函数是一个由系统定义的标准函数,可在程序中直接调用。
书写程序时应遵循的规则:
(1)一个声明或一条语句占一行。
(2)用{}括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。
(3)缩进风格。低一层次的语句或声明可比高一层次的语句或声明缩进若干格后书写,使程序看起来更加清晰,增加程序的可读性。
在编程时应力求遵循这些规则,以养成良好的编程风格。
【例1.1】从键盘输入两个整数,计算这两个整数的和。
程序如下:


程序的功能是从键盘输入两个整数a和b,求a和b的和,然后输出结果。在main()函数之前的一行称为预处理命令。预处理命令还有其他几种,这里的include称为文件包含命令,其意义是把尖括号<>或引号""内指定的文件包含到本程序,成为本程序的一部分。被包含的文件通常是由系统提供的,其扩展名为.h,称为头文件或首部文件。C语言的头文件中包括了各个标准库函数的函数原型。因此,凡是在程序中调用一个库函数,都必须包含该函数原型所在的头文件。在例1.1中,使用了两个库函数:输入函数scanf()和输出函数printf()。scanf()和printf()是标准输入/输出函数,其头文件为stdio.h,在主函数前用include命令包含了stdio.h文件。
例1.1中的主函数体又可分为两部分:一部分为声明部分,另一部分为执行部分。声明是指变量的类型声明。C语言规定,源程序中所有用到的变量都必须先声明,后使用,否则将会出错。这是编译型高级程序设计语言的一个特点。声明部分是C程序结构中重要的组成部分。例1.1中使用了三个变量:a、b、sum,用来表示输入的变量和结果。由于这三个变量都是整数类型,故用类型声明符int来声明。声明部分后的四行为执行部分,或称执行语句部分,用于完成程序的功能。执行部分的第一行是输出语句,调用printf()函数在显示器上输出提示字符串,请操作人员输入变量a和b的值。第二行为输入语句,调用scanf()函数,接收从键盘上输入的数并存入变量a和b中。第三行是使用赋值表达式计算a和b的和并把结果存入变量sum中。第四行是用printf()函数输出变量sum的值,程序结束。
【例1.2】输入两个学生的期末考试的分数,输出其中分数较高的那个分数。
程序如下:

例1.2中程序的功能是由用户输入两个整数,输出其中较大的数。本程序由两个函数组成:主函数和max()函数。函数之间是并列关系。可从主函数中调用其他函数。max()函数的功能是比较两个数,然后把较大的数返回主函数。max()函数是一个用户自定义函数。因此在主函数中要给出声明(程序第四行)。可见,在程序的声明部分中,不仅可以有变量声明,还可以有函数声明。在程序的每行后用/*和*/括起来的内容为注释部分,程序不执行注释部分。
例1.2中程序的执行过程是:首先在屏幕上显示提示字符串,请用户输入两个数,按【Enter】键后由scanf()函数接收这两个数并送入变量a、b中,然后调用max()函数,并把a、b的值传送给max()函数的参数x、y。在max()函数中比较x、y的大小,把较大者返回主函数的变量c,最后在屏幕上输出c的值。