C语言 课程授课老师:
第 1章 C语言概述
本章要点
1.1 程序设计语言的发展
1.2 C语言的产生及特点
1.3 C语言的字符集和标识符
1.4 C程序的基本构成
1.5 C程序的编辑、编译和连接
1.6 C语言的集成开发环境
1.7 C语言的应用本章要点:
C语言的产生
C语言的特点
机器语言是面向具体机器的,编写的程序缺乏通用性,编写过程烦琐复杂,易出错、错了又不易查找和修改,而且编出的程序可读性极差。
汇编语言实质上是机器语言的符号化形式,仍属于面向机器的低级语言,其程序的通用性和可读性较差。
20世纪 50年代末和 60年代初研制出的高级程序设计语言
BASIC,FORTRAN,AL-GOL60和 COBOL号称计算机语言发展史上的四个里程碑 。
汇编语言机器语言 高级程序设计语言
1.1程序设计语言的发展
1.2 C语言的产生及特点
1.2.1 C语言的产生
20世纪 60年代,随着计算机科学的迅速发展,高级程序设计语言 FORTRAN,ALGOL60等得到了广泛的应用,
然而,还缺少一种可以用来开发操作系统和编译程序等系统程序的高级语言,于是,在 20世纪 70年代初,C语言应运而生了,
1.2.2 C语言的特点
C语言之所以广泛流行且深受用户青睐,是因为它以其简洁、紧凑、灵活、表达能力强、产生的目标代码质量高和可移植性好等为基本特色,归纳起来有以下主要特点:
C语言具有结构化的控制语句
C语言具有丰富的数据结构类型
C语言具有丰富的运算符
C语言简洁、紧凑,使用方便、灵活
,中级语言”
与汇编语言相比,可移植性好
功能强大
1.3 C语言的字符集和标识符
1.3.1字符集
C程序允许出现的所有基本字符的组合称为 C语言的字符集,主要分为下列 3类:
1.大小写英文字母
2.数字
3.键盘符号
注意:空格符、制表符、换行符等统称为空白符。空白符只在字符常量和字符串常量中起作用。在其它地方出现时,只起间隔作用,编译程序对它们忽略不计。
1.3.2标识符
C语言程序中出现的任何对象一般都有一个 "名字 ",这些对象有函数,变量,符号常量,数组名,数据类型,
宏以及存储属性等 。 用标识符来给对象取 "名字 "
在选择作为 "名字 "使用的标识符时,要注意以下几点:
标识符只能是字母 (A~ Z,a~ z)、数字 (0~ 9)、下划线 (_)组成的字符串,第一个字符必须是字母或下划线。
下划线 "_"也起一个字母的作用,它用来帮助分隔长描述名的各部分,例如 interesttodata可以写成 interest_to_data。
大、小写字母含意不同,如 VELOCITY,velocity和 Velocity
是三个完全不同的标识符。
1.3.2标识符
标准 C不限制标识符的长度,但一般版本的 C 语言编译系统规定只有前八个字符有意义。如标识符 honorific和
honorificab,编译系统会把它们看作是同一个标识符,
即认为是 honorifi。
根据 C语言的习惯规定,变量名、函数名等用小写字母表示,而符号常量全用大写字母表示,函数名和外部变量由 6个字符组成,系统变量由下划线 "_"起头构成。
根据一般程序设计的经验,标识符的选择原则应是 "常用取简 ","专用取繁 ",一般能表示其含意即可,不宜太长,通常在 6个字符之间均能适应各种系统。
C语言源程序的文件名选择不属于 C语言,而属于操作系统。大多数 C语言编译系统均要求所有 C语言源代码文件必须以后缀 ",c"结束,也就是说 C语言源程序的文件属性为 ".c"。
1.4 C语言的基本结构
1.4.1 C程序的组成
一个 C语言程序可由下面不同的部分组合而成:
①文件包含部分;
②预处理部分;
③变量说明部分;
④函数原型声明部分;
⑤主函数部分;
⑥函数定义部分。
关于程序结构的说明:
并不是所有的 C程序都必须包含上面的 6个部分,一个最简单的 C程序可以只包含文件包含部分和主函数部分两部分。
每一个 C程序文件的后缀为,c,并且每一个 C源程序都必须有且仅有一个主函数,主函数的组成形式如下所示:
mian()
{
变量说明部分程序语句部分
}
每一个 C语言的语句由分号结束。
1.4.2 C语言的书写格式
C程序的书写须遵循下列规则:
用 C语言书写程序时当一个语句分几行书写时,在换行前应加上,\”符,然后从下一行的开头继续。
C语言规定关键字必须使用小写字母。习惯上,书写 C
程序时均使用小写英文字母。
为了看清 C程序的层次结构,便于阅读和理解程序,C
程序一般都采用缩进格式的书写方法。
为了便于阅读和理解程序,应当在程序中适当地添加一些注释行。 C 语言的注释符是以,/*”开头并以,*/”结尾的串。在,/*”和,*/”之间的即为注释。程序编译时,不对注释作任何处理。
1.4.3C程序的算法
著名的计算机科学家沃思 (Nikiklaus Wirth)提出过一个关于程序的公式,
程序 =数据结构 +算法
也就是说,一个程序应该包括以下两方面的内容,
· 数据结构 —— 对数据的描述。各种数据类型和数据的组织形式就是最简单的数据结构。
· 算法 —— 对操作的描述。
1.4.3C程序的算法一个算法应该具有以下特点:
有穷性:一个算法所包含的操作步骤必须是有限的。
确定性:算法中每一个步骤的含义必须是明确的,不能有二义性。
无输入或有多个输入:数据是程序加工和处理的对象,如果算法中的数据是程序自带的,而不是来自计算机外部,则可以没有输入操作,否则,算法必须包括输入操作步骤。
有一个或多个输出:通过输出了解算法执行的情况及最后的结果。
有效性:算法中的每一个步骤都应当是可以被执行的,并能得到确定的结果。
1.5 C程序的编辑、编译和连接
为了让计算机能够正确理解和执行用高级程序设计语言所编写的 "源 "程序,就需要一个环节,其作用是将用高级语言所写的源程序翻译成二进制形式的 "
目标 "程序。能够完成上述工作任务的软件被称为编译程序或编译器。用 C语言编写的源程序通过编译程序转换成二进制形式的目标程序,然后,将该目标程序与系统的函数库以及其他目标程序连接起来,
就形成了在一定操作系统平台上的可执行程序或命令程序。
1.5 C程序的编辑、编译和连接
1.操作步骤要上机运行一个编写好的 C语言源程序,
一般需要经过以下几个步骤:
上机输入并编辑源程序;
编译源程序;
与库函数连接;
生成可执行目标程序;
运行目标程序。
1.5 C程序的编辑、编译和连接
2.具体说明
编译运行是最经典、效率最高的运行方式。 C语言的高性能很大程度上归功于编译。用编译语言开发一个软件所要经历的过程是:编辑、编译、链接和运行。
编辑就是利用编辑软件 (或编辑器 )输入、修改和保存源程序的过程。
对于编译 (Compile),用户只需要发出编译指令,其余的事情都交给编译器 (Compiler)自己完成。
链接就是把 (一个或多个 )目标文件模块和系统提供的标准库函数链接成一个适应一定操作系统的整体,生成一个可执行文件的过程。
经过编辑、编译、链接等过程后,最后运行可执行文件,即可得到程序运行结果。如果结果不正确,要重复以上过程,
直到取得正确的结果为止。
1.5 C程序的编辑、编译和连接
2.具体说明
另外还有一种被大量采用的程序运行方式,叫做解释运行。
最具有代表性的是 BASIC,JavaScript,VBScript,PHP,
ASP,Perl和 PYTHON等语言。这些语言的共同特点是运行速度慢,但简单。
解释语言简单好用,获得了大量的支持者。解释语言的解释器几乎都是用 C/ C++开发的。编译语言的编译器、
链接器可以用编译语言自己编写,而解释语言只能借助编译语言发展。
还有一种办法是:先编译后解释。它演变出了一种新类型的语言。 Java和 C#语言都是先编译后解释的
1.6集成开发环境
程序的集成开发环境是一个经过整合的软件系统,它将编辑器、编译器、链接器和其他软件单元集合在一起,
在这个环境里,程序员可以很方便地对程序进行编辑、
编译、链接以及跟踪程序的执行过程,以便寻找程序中的问题。
适合 C语言的集成开发环境有许多,如,Turbo C,
Borland C,gcc,Microsoft C,AT&T C等等。
1.7 C语言的应用
1,操作系统的设计与实现
2,工业控制
3,图形图像处理
4,教学语言