1.2 C语言程序的结构与书写规则 一、 C语言程序的总体结构 1.2 C语言程序的结构与书写规则 一、 C语言程序的总体结构 一个完整的C语言程序,是由一个main()函数(又称主 函数)和若干个其它函数结合而成的,或仅由一个main()函数 构成。
【案例1.1】: 仅由main()函数构成的C语言程序。 /*案例代码文件名:AL1_1.C*/ /*功能:仅由main()函数构成的C语言程序示例*/ main() { printf(“This is a C program.\n”); } 程序运行结果: This is a C program.
【案例1.2】: 由main()函数和1个其它函数max()构成的C语言程序。 /*案例代码文件名:AL1_2.C*/ /*功能:由main()函数和1个其它函数max()构成的C语言程序示例*/
int max(int x, int y) { return( x>y ? x : y ); } main() { int num1,num2; printf(“Input the first integer number: ”); scanf(“%d”, &num1); printf(“Input the second integer number: ”); scanf(“%d”, &num2); printf(“max=%d\n”, max(num1, num2)); }
程序运行情况: Input the first integer number:6←┘ Input the second integer number:9←┘ max=9
【案例1.3】: 改写[案例1.2],交换main()函数和max()函数的前后位置。 源程序略。 程序运行情况: Input the first integer number:6←┘ Input the second integer number:9←┘ max=9
1、函数是C语言程序的基本单位 main()函数的作用,相当于其它高级语言中的主程序;其它函数的作用,相当于子程序。 2、C语言程序总是从main()函数开始执行 一个C语言程序,总是从main()函数开始执行,而不论其在程序中的位置。当主函数执行完毕时,亦即程序执行完毕。 习惯上,将主函数main()放在最前头。
二、函数的一般结构 任何函数(包括主函数main())都是由函数说明和函数体两 部分组成。其一般结构如下: [函数类型] 函数名(函数参数表) 函数说明部分 { 声明语句部分; 执行语句部分; 函数体部分 }
1、使用的语法符号约定 [...]──方括号表示可选(即可以指定,也可以缺省) ……──省略号表示前面的项可以重复 | ──多(含2)中选1 2、函数说明 由函数类型(可缺省)、函数名和函数参数表三部分组成, 其中函数参数表的格式为: 数据类型 形参[, 数据类型 形参2……]
例如,[案例1.2]中的函数max(),其函数说明各部分如图1-1所示。 函数类型 函数名 函数参数表 ↓ ↓ ↓ int max ( int x , int y ) 图1-1 函数说明部分结构图 【注意】 在旧标准中,函数可以缺省参数表。
3、函数体 在函数说明部分的下面、大括号(必须配对使用)内的部分。 函数体一般由说明语句和可执行语句两部分构成: (1)说明语句部分 说明语句部分由变量定义、自定义类型定义、自定义函数说明、外部变量说明等组成。
图1-2 函数体结构示意图 (2)可执行语句 一般由若干条可执行语句构成。图1-2是[案例1.2]的main()函数体的示意图。 { int num1,num2; 变量定义部分 printf(“Input the first integer number: ”); scanf(“%d”, &num1); printf(“Input the second integer number: ”); 可执行语句部分 函数体 scanf(“%d”, &num2); printf(“max=%d\n”, max(num1, num2)); } 图1-2 函数体结构示意图
(1)函数体中的变量定义语句,必须在所有可执行语句之前。 下面程序中变量定义语句“int max;”的位置是非法的: 4、说明 (1)函数体中的变量定义语句,必须在所有可执行语句之前。 下面程序中变量定义语句“int max;”的位置是非法的: main() { int x,y; /*变量定义语句:定义2个整型变量x、y*/ x=3; /*可执行的赋值语句:将3赋值给变量x*/ y=6; /*可执行的赋值语句:将6赋值给变量y*/ int max; /*变量定义语句:出现在可执行的 赋值语句“x=3;”和“ y=6;”之后,非法!*/ max=x>y?x:y; printf(“max=%d\n”,max); } 解决办法很简单,请读者自己思考。 (2)如果不需要,也可以缺省变量定义语句。
三、源程序书写格式 1、所有语句都必须以分号“;”结束,函数的最后一个语句也不例外。 2、程序行的书写格式自由,既允许1行内写几条语句,也允许1条语句分写在几行上。
例如,[案例1.2]的主函数main(),也可改写成如下所示的格式: …… main() { int num1,num2; printf(“Input the first integer number: ”); scanf(“%d”, &num1); printf(“Input the second integer number: ”); scanf(“%d”, &num2); printf(“max=%d\n”, max(num1, num2)); } 如果某条语句很长,一般需要将其分写在几行上。
3、允许使用注释 C语言的注释格式为: /* …… */例如,在[案例1.1]和[案例1.2]中,以及本节其它部分给出的源程序中,凡是用“/*”和“*/”括起来的文字,都是注释。 (1) “/*”和“*/” 必须成对使用,且“/”和“*”、以及“*”和“/”之间不能有空格,否则都出错。
【技巧】 为避免遗漏必须配对使用的符号,例如注释符号、函数体的起止标识符(花括号)、圆括号等等,在输入时,可连续输入这些起止标识符,然后再在其中进行插入来完成内容的编辑。在起止标识符嵌套时,以及相距较远时,这样做更有必要。
(2)注释的位置,可以单占1行,也可以跟在语句的后面。 (3)如果1行写不下,可另起1行继续写。 (4)注释中允许使用汉字。在非中文操作系统下,看到的是一串乱码,但不影响程序运行。