第1章C语言概述 本章主要介绍C语言程序的结构和书写规则, 以及 Turbo C v20的基本操作。 1C语言的发展简史和特点 12C语言程序的结构与书写规则 13 Turbo c v2.0的基本操作 ReturnI
第1章 C语言概述 本章主要介绍C语言程序的结构和书写规则, 以及Turbo C V2.0的基本操作。 1.1 C语言的发展简史和特点 1.2 C语言程序的结构与书写规则 1.3 Turbo C V2.0的基本操作 [Return]
1.1C语言的发展简史和特点 1.C语言的诞生与发展 (1)在C语言诞生以前,系统软件主要是用汇编语言 编写的。由于汇编语言程序依赖于计算机硬件,其可读 性和可移植性都很差;但一般的高级语言又难以实现对 计算机硬件的直接操作(这正是汇编语言的优势),于 是人们盼望有一种兼有汇编语言和高级语言特性的新语 (2)C语言是贝尔实验室于70年代初研制出来的, 后来又被多次改进,并出现了多种版本。80年代初,美 国国家标准化协会(ANSⅠ),根据C语言问世以来各种 版本对C语言的发展和扩充,制定了 ANSI C标准(1989 年再次做了修订) 本书以 ANSI C新标准来介绍
1.1 C语言的发展简史和特点 1.C语言的诞生与发展 (1)在C语言诞生以前,系统软件主要是用汇编语言 编写的。由于汇编语言程序依赖于计算机硬件,其可读 性和可移植性都很差;但一般的高级语言又难以实现对 计算机硬件的直接操作(这正是汇编语言的优势),于 是人们盼望有一种兼有汇编语言和高级语言特性的新语 言。 (2)C语言是贝尔实验室于70年代初研制出来的, 后来又被多次改进,并出现了多种版本。80年代初,美 国国家标准化协会(ANSI),根据C语言问世以来各种 版本对C语言的发展和扩充,制定了ANSI C标准(1989 年再次做了修订)。 本书以ANSI C新标准来介绍
(3)目前,在微机上广泛使用的C语言编译系统有 Microsoft c、 Turbo C、 Borland c等。虽然它们的基本部 分都是相同的,但还是有一些差异,所以请大家注意自己 所使用的C编译系统的特点和规定(参阅相应的手册)。 本书选定的上机环境是TCV2.0(DOS操作系统) 2.C语言的特点 C语言同时具有汇编语言和高级语言的优势 (1)语言简洁、紧凑,使用方便、灵活。 (2)运算符极其丰富。共有34种运算符 (3)数据结构丰富。C的数据类型有整形、实型、字 符型、数组类型、指针类型、结构体类型、共用体类型等 (4)具有结构化的控制语句。IF.ELSE
(3)目前,在微机上广泛使用的C语言编译系统有 Microsoft C、Turbo C 、Borland C等。虽然它们的基本部 分都是相同的,但还是有一些差异, 所以请大家注意自己 所使用的C编译系统的特点和规定(参阅相应的手册)。 本书选定的上机环境是TCV2.0(DOS操作系统)。 2.C语言的特点 C语言同时具有汇编语言和高级语言的优势。 (1)语言简洁、紧凑,使用方便、灵活。 (2)运算符极其丰富。 共有34种运算符。 (3)数据结构丰富。C 的数据类型有整形、实型、字 符型、数组类型、指针类型、结构体类型、共用体类型等。 (4)具有结构化的控制语句。IF……ELSE
(5)语法限制不太严格、程序设计自由度大。 (6)生成的目标代码质量高,程序执行效率高。 (7)可移植性好(较之汇编语言)。 (8)可以直接操纵硬件。 3.在C语言中,除实现序、送择和循环三种基本 结构等的9条控制语句外,输入输出操作均由标准库函数 (不是C语言的组成部分)来实现 所以学乳C语言,不仅要学习这9条控制语句和各种 运算符,历且要学习并掌握常用标准库函数的使用 Return
(5)语法限制不太严格、程序设计自由度大。 (6)生成的目标代码质量高,程序执行效率高。 (7)可移植性好(较之汇编语言)。 (8)可以直接操纵硬件。 3. 在C语言中,除实现顺序、选择和循环三种基本 结构等的9条控制语句外,输入输出操作均由标准库函数 (不是C语言的组成部分)来实现。 所以学习C语言,不仅要学习这9条控制语句和各种 运算符,而且要学习并掌握常用标准库函数的使用。 [Return]
12C语言程序的结构与书写规则 121C语言程序的总体结构 个完整的C语言程序,必须是由一个 maino函数 (又称主函数)和若干个其它函数结合而成的,或仅由 个 maino函数构成 [案例11仅由main函数构成的C语言程序。 /*案例代码文件名:AL11.C* /*功能:仅由main(函数构成的C语言程序示例* maino { printf(“ This is a C program.m”); 程序运行结果: This is a C program [程序演示
1.2 C语言程序的结构与书写规则 1.2.1 C语言程序的总体结构 一个完整的C语言程序,必须是由一个main()函数 (又称主函数)和若干个其它函数结合而成的,或仅由 一个main()函数构成。 [案例1.1] 仅由main()函数构成的C语言程序。 /*案例代码文件名:AL1_1.C*/ /*功能:仅由main()函数构成的C语言程序示例*/ main() { printf(“Thisis a C program.\n”); } 程序运行结果: This is a C program. [程序演示]
[案例2]由 maino函数和1个其它函数maxO构成的C语言程 序 /*案例代码文件名:AL12C* /*功能:由 maino函数和1个其它函数maxO构成的C语言程序示例* int max(int x, int y) i return(x>y? x: y);3 main i int numl, num2; printf(“ Input the first integer number:"”); scanf(“%d”,&num1); printf(“‘ Input the second integer number:”); scanf(%d”,&num2); printf("max=%d\n", max(numl, num2)); 程序运行情况: Input the first integer number: 6 Input the second integer number: 9+ max [程序演示]
[案例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 [程序演示]
[案例13]改写[案例12],交换 main(函数和max函数的前后位置 源程序略。 程序运行情况: Input the first integer number: 66- Input the second integer number: 9 max 结论: 1函数是c语言程序的基本单位 maino函数的作用,相当于其它高级语言中的主程序;其它函数 的作用,相当于子程序。 2C语言程序总是从main函数开始执行。 个C语言程序,总是从main(函数开始执行,而不论其在程序 中的位置。当主函数执行完毕时,亦即程序执行完毕。 习惯上,将主函数main(放在最前头。 3.C语言本身没有输入输出语句。输入输出是由库函数完成的
[案例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()放在最前头。 3.C语言本身没有输入输出语句。输入输出是由库函数完成的
122函数的一般结构 任何函数(包括主函数 mainO)都是由函数说明和函数体两部 分组成。其一般结构如下 [函数类型]函数名(函数参数表) }函数说明部分 (说明语句部分; 执行语句部分; 函数体部分 1.使用的语法符号约定 ]—一方括号表示可选(即可以指定,也可以缺省) ——省略号表示前面的项可以重复 多(含2)中选1 2函数说明 由函数类型(可缺省)、函数名和函数参数表三部分组成,其 中函数参数表的格式为 数据类型形参[,数据类型形参2
1.2.2 函数的一般结构 任何函数(包括主函数main())都是由函数说明和函数体两部 分组成。其一般结构如下: [函数类型] 函数名(函数参数表) 函数说明部分 { 说明语句部分; 执行语句部分; 函数体部分 } 1. 使用的语法符号约定 [...]──方括号表示可选(即可以指定,也可以缺省) ……──省略号表示前面的项可以重复 | ──多(含2)中选1 2.函数说明 由函数类型(可缺省)、函数名和函数参数表三部分组成,其 中函数参数表的格式为: 数据类型 形参[, 数据类型 形参2……]
例如,[案例1,2]中的函数max(),其函数说明各部分如图1-1所示。 函数类型函数名函数参数表 max( int x, int y 函数参数类型 图1-1函数说明部分结构图 注意:在旧标准中,函数可以缺省参数表 3函数体 函数体由大括号{}括起来。函数体一般由说明语句和可执行语句 两部分构成: (1)说明语句部分 说明语句部分由变量定义、自定义类型定义、自定义函数说明、 外部变量说明等组成
例如,[案例1.2]中的函数max(),其函数说明各部分如图1-1所示。 函数类型 函数名 函数参数表 ↓ ↓ ↓ int max ( int x , int y ) ↓ ↓ 函数参数类型 图1-1 函数说明部分结构图 注意:在旧标准中,函数可以缺省参数表。 3.函数体 函数体由大括号{}括起来。函数体一般由说明语句和可执行语句 两部分构成: (1)说明语句部分 说明语句部分由变量定义、自定义类型定义、自定义函数说明、 外部变量说明等组成
(2)可执行语句 般由若干条可执行语句构成。图1-2是[案例12]的 maino函数体的示 意图 /*主函数man(O)*/ maIn f int numl, num2 变量定义部分 printf("Input the first integer number: scanf(“%d”,&numl); printf("Input the second integer number 可执行语句部分函数 体 scanf%d”,&num2); printf(max=%d\n", max(numl, num2)); 图1-2函数体结构示意图 4说明 (1)函数体中的变量定义语句,必须在所有可执行语句之前。 下面程序中变量定义语句“ int max;”的位置是非法的:
(2)可执行语句 一般由若干条可执行语句构成。图1-2是[案例1.2]的main()函数体的示 意图。 /*主函数main()*/ main() { int num1,num2; 变量定义部分 printf(“Inputthe first integer number: ”); scanf(“%d”, &num1); printf(“Input the second integer number: ”); 可执行语句部分 函数 体 scanf(“%d”, &num2); printf(“max=%d\n”,max(num1, num2)); } 图1-2 函数体结构示意图 4.说明 (1)函数体中的变量定义语句,必须在所有可执行语句之前。 下面程序中变量定义语句“intmax; ”的位置是非法的: