|
|
|
|
||
C语言程序,是由一个main()函数(又称主函数)和若干个其它函数结合而成的,或仅由一个main()函数构成。
为了了解和认识C语言源程序的结构特点,先看几个简单的程序。
[例2.1]由main()函数构成的C语言程序示例,下面代码用于在屏幕上显示“我的第一个C语言程序。”如下图所示:
程序运行结果:
我的第一个C语言程序。
其中main表示“主函数”。每一个C程序都必须有一个main函数。函数体由大括号{}括起来。本例中主函数只有一个输出语句,printf是C语言中的输出函函数。双引号内的字符串按原字符串输出,“\n”是换行符,即在输出“我的第一个C语言程序。”后回车换行,语句最后以分号结束。
重点:
1、C语言程序最基本的结构是函数,函数也叫模块,是实现某个功能的最小单位。
2、C语言函数体以左大括号开始,以右大括号结束,即{……}。
3、注释以/*……*/为标记,是对源程序的说明,此部分不被编辑和执行,目的是增加源程序的可读性。简单的说就是让读者看懂源码每句代码的功能。
[例2.2]计算两个整数的和。如下图所示:
程序运行结果:
a和b之和为 300
本程序的作用是求两个整数a和b的和sum。
巩固:1、/*……*/为注释部分。2、printf函数为输出函数。3、“\n”为换行符。
学习:
1、为了更容易理解,用汉字表示注释,也可用英语或拼音。注释可以加在程序的任何位置。
2、第4行为声明部分,定义整型变量。
3、第5、6、7、句为赋值语句。
4、第8行中“%d”是输入输出的“格式字符串”,用来指定输入输出时的数据类型和格式。“%d”表示“十进制整数类型”。
5、printf函数中括号内最右端sum是要输出的变量,现在它的值为300(即100+200的和)。
重点:
1、C语句是组成C语言源程序的最本单位,具有程序独立性,结尾以分号结束。
2、书写格式:
(1)、一行中可以写多个语句,但最好就一行一语句,增强源程序的可读性。
(2)、不同结构层次的语句要有一定的缩进,如例图所示,左、右大括号上下同列对齐,语句块内的每行语句都缩进4个空格,使源程序清析易读。
[例2.3]取两个整数的最大值。如下图所示:
程序运行如下:
输入第一个整数后回车:3 ↙
输入第二个整数后回车:2 ↙
max=3
巩固:1、“%d”为输入输出时的“十进制整数类型”。2、注意书写格式。
学习:1、“scanf”为输入函数,第16、19句是输入a,b的值。2、“&”的含义是“取地址”。
重点:main函数可放在任何位置,C程序在执行时总是从main函数开始执行。
C程序的结构特点总结:
(1)、C程序是由函数构成
一个C源程序至少包含一个main函数,也可以包含一个main函数和若干个其它函数。因此,函数是C程序的基本单位。被调用的函数可以是系统提供的库函数(如 printf 和 scanf 函数),也可以是自已设计的实现某个功能的函数(如例2.3中的 max 函数)。C的函数类似其它语言中的子程序,用函数来实现某个特定的功能。程序中的全部工作都是由各个函数来分别完成。编写C程序就是编写一个个函数,即常说的子程序。C的函数库十分丰富,ANSI C提供100多个库函数,Turbo C 和 MS 4.0 提供300多个库函数。C的这种特点使得C程序实现程序的模块化。
(2)、一个函数由函数首部和函数体构成。
①、函数的首部,即函数的每一行。包括函数名、函数类型、函数属性、函数参数(形参)名、参数类型。
例如,例2.3中的 max 函数的首部为
int max ( int x, int y)
↓ ↓ ↓ ↓ ↓ ↓
函数类型 函数名 函数参数类型 函数参数名 函数参数类型 函数参数名
一个函数名后面必须跟一对括号,函数的参数可以没有,如main()。
②、函数体,即函数首部下在面的大括号{……}内的部分。如果一个函数内有多层大括号,则最外层的一对{ }为函数体的范围。
函数体一般包括声明部分(定义所用到的变量,如例2.3中 main 函数中的“int a,b,c;”)和执行部分(由若干个语句组成,如例2.3 main 函数中的“printf("输入第一个整数后回车。");”等) 。在某些情况下,也可以没有声明部分(如例1.1),还可以既没声明部分,也没执行部分。如:
dump()
{ }
它是一个空函数,什么也不做,但这是合法的。
(3)、一个C程序总是从 main 函数开始执行,而不论main函数在整个程序中的位置,main函数可以在程序中的任何合法位置。
(4)、C程序的书写格式自由,一行内可以写几个语句,一个语句也可以分写在多行上。最好是一行写一条语句,这样便于易读、易维护。
(5)、每个语句和数据定义的最后必须有一个分号。分号是C语句的必要的组成部分。例如:c=a+b; int a,b,c;分号不可少。即使是程序中最后一个语句也就包含分号(这是和 PASCAL 语言不同的)。
(6)、C语言本身没有输入输出语句。输入和输出的操作是由库函数 scanf 和 printf 等函数来实现。C输入输出衽“函数化”。由于输入输出操作牵涉到具体的计算机设备,把输入输出操作放在函数中处理,就可以使C语言本身的规模较小,编译程序简单,很容易在各种机器上实现,程序具有可移植性。当然,不同的C语言环境需要对函数库中的函数作不同的处理。不同的C语言环境除了提供函数库中的标准函数外,还按照硬件的情况提供一些专门的函数。因些不同的C语言环境中所提供的函数个数和功能是有差异的。
(7)、可以用/*……*/对C源程序中的任何部分注释。一个好的、有价值的源程序都应加上必要的注释,以增强程序的可读性。