《程序设计语言(C)》课程介绍

课程介绍: 

 

     《程序设计语言(C)》是计算机科学与技术专业的重要专业基础课。

 

        掌握程序设计的前提是掌握程序设计语言,在众多的程序设计语言中, C 语言以其灵活性和实用性受到了广大计算机应用人员的喜爱。 C 语言是既得到美国国家标准化协会( ANSI )标准化又得到工业界广泛支持的计算机语言之一,几乎任何一种机型、任何一种操作系统都支持 C 语言开发; C 语言在巩固其原有应用领域的同时,又在拓展新的应用领域,支持大型数据库开发和 Internet 应用,一旦掌握了 C 语言,就可以较为轻松地学习其他任何一种程序设计语言, 为后续的面向对象程序设计, Windows程序设计,Java程序设计等程序设计语言的学习打下基础。

 

      在国外的计算机专业中也安排了有关 C语言的课程,例如,英国的胡佛汉顿大学在计算机系的基础课程中安排了C语言的课程,韩国的公州映像情报大学和仁川技能大学,日本滋庆学院和国士馆大学,印度的科学研究所以及澳大利亚的巴拉瑞特大学都把C语言课程作为计算机专业学生必须掌握的专业知识之一。

 


C语言的发展历史:

C语言的发展颇为有趣。它的原型ALGOL 60语言。(也成为A语言)

1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。

1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。

1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。

而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。

为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。

1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。

1988年,随着微型计算机的日益普及, 出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准 。

 


C语言的标准化过程:

C语言自诞生到现在,期间经历了多次标准化过程,主要分成以下几个阶段:

 

1. Traditional C

此时的C语言还没有标准化,来自“C Programming Language, First Edition, by Brian W. Kernighan, Dennis M. Ritchie. Prentice Hall PTR 1978”的C描述可算作“正式”的标准,所以此时的C也称为“K&R”C。

期间C语言一直不断的发生细微的变化,各编译器厂商也有自己的扩展,这个过程一直持续到20世纪80年代末。

 

2. C89

考虑到标准化的重要,ANSI(American National Standards Institute)制定了第一个C标准,在1989年被正式采用(American National Standard X3.159-1989),故称为C89,也称为ANSI C。

该标准随后被ISO采纳,成为国际标准(ISO/IEC 9899:1990)。

C89的主要改动:

  • 定义了C标准库;
  • 新的预处理命令和特性;
  • 函数原型(prototype);
  • 新关键字:const、volatile、signed;
  • 宽字符、宽字符串和多字节字符;
  • 转化规则、声明(declaration)、类型检查的改变。

3. C95

这是对C89的一个修订和扩充,称为“C89 with Amendment 1”或C95,严格说来并不是一个真正的标准。

C95的主要改动:

  • 3个新标准头文件:iso646.h、wctype.h、wchar.h;
  • 一些新的标记(token)和宏(macro);
  • 一些新的printf/scanf系列函数的格式符;
  • 增加了大量的宽字符和多字节字符函数、常数和类型。

4. C99

这是目前最新的标准,由ISO制定于1999年(ISO/IEC 9899:1999),故称为C99。

C99的主要改动:

  • 复数(complex);
  • 整数(integer)类型扩展;
  • 变长数组;
  • Boolean类型;
  • 非英语字符集的更好支持;
  • 浮点类型的更好支持;
  • 提供全部类型的数学函数;
  • C++风格注释(//)。

C语言的特点 :

1. 简洁紧凑、灵活方便

C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。

2. 运算符丰富

C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

3. 数据结构丰富

C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。

4. C是结构式语言

结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

5. C语法限制不太严格、程序设计自由度大

一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。

6. C语言允许直接访问物理地址,可以直接对硬件进行操作

因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。

7. C语言程序生成代码质量高,程序执行效率高

一般只比汇编程序生成的目标代码效率低10へ20%。

8. C语言适用范围大,可移植性好

 


C源程序的结构特点 :

1.一个C语言源程序可以由一个或多个源文件组成。

2.每个源文件可由一个或多个函数组成。

3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。

4.源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。

5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。

6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。

 


当然,C语言也有自身的不足,比如:C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数族下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。

总之,C语言既有高级语言的特点,又具有汇编语言的特点;既是一个成功的系统设计语言,有时一个使用的程序设计语言;既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序;是一种受欢迎、应用广泛的程序设计语言。
C语言有很多的优点
指针就是C语言的一大特色,可以说C语言优于其它高级语言的一个重要原因就是因为它有指针操作可以直接进行靠近硬件的操作,但是C的指针操作也给它带来了很多不安全的因素.C++在这方面做了很好的改进,在保留了指针操作的同时又增强了安全性。Java又进一步提高了安全性。
C语言的缺点
C语言的缺点主要是表现在数据的封装性上,这一点使得C在数据的安全性上做的有很大缺陷,这也是C和C++的一大区别