1.3.2 C程序基本结构
任何一种程序设计语言都具有特定的语法规则。一个程序只有严格按照语言的语法规则进行编写,才能保证编写的程序在计算机中能正确地被执行,同时也便于用户阅读和理解。
本小节介绍简单的C语言程序,可以从中了解到C程序的基本结构。
例1-1 在显示屏上输出一个字符串。
程序执行结果是在显示屏上原样显示程序中的三个字符串
程序共有6行,其中main表示C程序的主函数。C语言程序都必须有一个main函数,整个程序从主函数开始执行。由花括号{ }包括起来的程序部分是函数体,花括号表示函数体的开始和结束。函数体内的3条语句具有相同的作用,调用C编译程序提供的标准库函数printf输出一个字符串。在printf函数中,被原样显示输出的字符串用双引号包括起来。双引号中的符号\n没有在屏幕上显示,实际上\n是一个专用的输出格式控制符,它表示输出字符串后回车换行,即将光标移到下一行的起始位置。C语言规定,函数体内各语句间用分号分隔,即“;”表示一条语句的结束。main函数前的void表示主函数没有返回值。
例1-2 求两个整数之和。
输出结果:
sum is 480
程序共有10行,main函数的作用是求两个整数a与b之和sum。程序第5行是变量定义,说明a、b和sum为整型(int)变量。第7行是两个赋值语句,使a和b的值分别为357和123。第8行使sum的值为a+b之和,第9行printf函数双引号中的%d是C语言输入/输出的“格式控制”符号,用以指定在%d的位置输入/输出的数据类型和格式为:十进制整数。
该程序的第2行
#include <stdio.h>
为预处理命令(详见7.8小节),说明printf和scanf两个标准库函数是在stdio.h头文件中定义的,以便程序能正确地使用这两个函数。通常在一个程序中,若仅使用了printf 和scanf两个函数(或仅使用了printf函数),则该预处理命令可以省略,如例1-1所示。但从可移植性角度,建议最好不要省略。
例1-3 输入长方体的长、宽和高,计算长方体的体积。
程序的执行结果是:
输入:
5 8 6
输出:
v=240
程序的功能是对用键盘输入的长方体的长、宽、高三个整型数据,求长方体的体积。程序中除主函数main外,还包括一个被主函数调用的volume函数。volume函数是用户自定义函数。自定义函数由函数头和函数体两个部分组成。第12行是函数头,用以指定函数名称、形参名称及函数返回值的类型。函数体包括执行函数功能使用的变量定义和语句,如第13~17行所示。
为了便于程序的阅读和理解,程序中使用了注释,用/*开头到*/结尾的部分表示。注释在程序运行中不起作用,注释可以加在程序中的适当位置,可以使用英语或汉字注释。第7行的输入语句调用的是C编译程序提供的标准输入函数scanf,作用是用键盘输入变量x、y和z的值。其中,%d %d %d是3个输入格式控制符,表示输入3个十进制整数,符号&的含义是指变量的地址,表示将输入的3个数值分别送入变量x、y和z的对应的存储单元中,也就等效于将输入值赋予变量x、y和z。这种输入方式是C语言特有的。C语言程序中用键盘向变量输入数值时,都必须指明变量的地址。第8行为对volume函数的函数调用,执行调用时,将输入x、y和z的值作为实参数分别传递给volume函数中的形参数a、b和c。计算结果p的值通过返回语句return返回到主调函数,并赋予主函数中的变量v,然后通过printf函数显示在屏幕上。volume函数返回一个整数,函数volume也被称为整型函数。函数名前的int即表示函数返回整数。
当C语言程序中包括有多个函数时,程序的执行从main函数开始,当执行到调用函数的语句时,程序将控制转移到调用函数中执行,执行结束后再返回主函数中继续运行,直至程序执行结束。这种控制转移称为函数调用。除了可以调用系统提供的标准库函数(如printf和scanf函数)外,还可以调用用户自己编写的自定义函数(如本例中的volume函数)。
总之,C语言程序为函数模块结构。一个C语言程序是由一个或多个函数组成,其中必须有一个且只能有一个main函数。程序从main函数开始执行,程序在执行中可以调用由编译系统提供的各种标准库函数和由用户自定义的函数。
函数的基本形式是:
函数首部
{
函数体
}
即
类型说明符函数名(形式参数)
{
数据说明部分;
语句部分;
}
其中,
类型说明符函数名(形式参数)
称为函数头(函数首部),如例1-3中的int volume(int a,int b,int c)),如果函数调用无参数传递,圆括号中形式参数为空(如例中的main函数)。
函数体包括函数体内使用的数据说明和执行函数功能的语句。花括号{ }表示函数体的开始和结束。
最简单的C语言程序为仅包含一个main函数的程序,即程序中无自定义函数,如例1-1和例1-2所示。
编写C语言程序的基本点归纳为:
1.语言程序习惯上使用小写英文字母,常量和其他特殊用途的符号可用大写字母。C语言对大、小写字母是有区别的,如果将main写成MAIN或Main,程序将不能运行。
2.一行中可以有多个语句;一个语句也可以允许使用多行。语句之间必须用分号隔开。
3.充分利用注释功能。在编写一个程序时,将关于编写这个程序的目的、程序的使用方法、变量名的意义、各函数的作用,以及复杂语句完成的功能等信息进行注释,可以增加可读性,以便于修改和调试。
4.将程序中的各语句组根据其功能和嵌套关系缩进编排,使程序的模块和复合关系都十分明显(但要注意:C语言并不根据编排情况进行程序的语义解释)。
5.用一对花括号标志一个函数体的开始和结束时,一般将花括号{ }按列对齐(尽管C语言对花括号的位置没有做规定)。
6.在程序中加上适当的空格或空行(如在变量定义和函数执行语句间)可使程序清晰。
C语言本身对程序的编写格式没有特别的要求,比较灵活,但是良好的编程风格有助于对程序的阅读、理解和记忆。在学习C语言的过程中,要注意养成良好的编写程序的习惯。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。