当前位置:文档之家› 第1章_C语言基础知识

第1章_C语言基础知识

高等学校计算机基础教育教材精选崔武子赵重敏李青著C 程序设计教程

第1章C语言基础知识1.1 C语言概述

1.2 简单C程序与上机步骤1.3 数据类型

1.4 常量与变量

1.5 运算符和表达式

1.1 C语言概述

1.1.1C语言的发展

1.1.2C语言的特点

1.1.3C程序的执行

1.1.4C程序形式和程序执行过程

1.1.1 C语言的发展

人和计算机交换信息用到的语言称为计算机语言。

为了解决某一特定问题用某一种计算机语言编写的指令序列称为程序。

1.1.1 C 语言的发展

1.程序设计语言的发展:

(1) 机器语言a. 形式特点:由0,1序列组成的指令系统b. 不需要任何翻译工作,执行效率高

c. 难记、难认、难理解,程序开发效率底,

易出错、难调试

d. 不同的计算机结构具有不同的指令系统(不同的机器具有不同的语言)

10000000 加

10010000 减

1.1.1 C 语言的发展

(2) 汇编语言(符号语言)

a. 形式特点:由一套简单的助记符来表示

不同的机器指令b. 需要相应的翻译机制(汇编系统)

c. 抽象层次高一些,容易理解些,程序生产效率高

d. 不同的计算机结构具有不同的汇编系统

源程序

(汇编语言)汇编系统目标程序(机器语言)

1.1.1 C语言的发展

(3) 面向过程的高级语言(算法语言,3GL)

a. 形式特点:更接近于人们通常数学计算公式的描述

b. 需要更高级的翻译系统(编译系统compler)

c. 表达能力强,编程效率高

d. 不依赖于具体的机器,依赖于不同机器上的编译系

统(不同机器上的编译系统是有差异的)

1.1.1 C语言的发展

(4) 非过程化的高级语言(4GL)

* 过程化语言:用语言描述怎样做的过程

* 非过程化语言:只要告诉计算机做什么

* 其它方面的特点与面向过程的高级语言相同* 非过程化的高级语言的几种类型:

a. 4GL: VB,VC

b. 逻辑性语言:PROLOG

c. 面向对象语言:SmallTalk

C 语言的发展过程

C 语言的出现是与UNIX OS 紧密联系在一起的,随着

UNIX OS 的成功和在国际上的广泛流行,C 语言在软件工程里越来越受到重视。

C 语言本身也有一个发展过程,目前仍处于发展和完善过程中。C语言的"家谱"如下图所示:

ALGOL 60 (1960, Algorithm language)由国际委员会设计,比Fortran 出现的晚,但比Fortran 精致和完善,由于它抽象,庞大而没有得到推广和流行起来.CPL (1963,Combined Programming Language)比ALGOL 大,功能强,难以学习,难以实现.BCPL (1967,Basic Combined Programming Language)

剑桥大学的Martin Richards 研制,目的是把CPL 加以浓缩,使得既保持CPL 的基本特性,又易于学习,实现.

B (1970,取BCPL 的第一个字母)

由美国Bell 实验室的Ken Thompson 研制.

对BCPL 进一步简化,用B 语言写出了第一个UNIX OS 并在PDP-7机上实现。由于B 语言采用按字编址,不适合PDP_11按字节编址进行存取的要求,B 还缺乏一定的数据类型的表达能力,编译产生的是解释执行代码,速度慢,这是B 发展的主要障碍.

C 语言的发展过程

C (1972,取BCPL 的第二个字母)

Bell Lab 的D.Ritchie 研制.改进了B 的数据结构。

追求的目标:保持了BCPL 和B 的精练性和接近机器硬件的优点,恢复其通用性,使其简洁、灵活、高效、可移植。

1973年,UNIX 在C 语言改写的环境下,加进了多道程序的功能。70年代中期,UNIX 和C 得到了广泛的应用,受到了越来越多的人的关注。

UNIX 公认为第一标准的操作系统,C语言成为“近十年来对计算机程序设计实践最重要的贡献之一”,成为微机、小型机、超小型机、大形机、巨型机上共同使用的一种语言。1983年,D.Ritchie 和Thompson 获得ACM 图灵奖.

标准C (1978)

以K&R 合著的《The C Programming Language 》一书中的C 为基础ANSI C (1983)美国国家标准化协会根据C 语言问世以来各种版本对C 的发展和扩充,制定了新的标准,称为ANSI C,比原来的标准C 有了很大的发展以标准C 为基础,相应于不同的编译系统,产生了不同版本的C 语言,如MSC TurboC UNIXC 等,其基本语句相同,库函数不太相同

1.1.2 C 语言的特点

人们从不同的角度总结出C 语言的许多特点,这些特点都基本上反映了C语言产生的环境,也体现了设计者所追求的目标。下面我们从C语言的发展与UNIX 系统的关系来讨论C 语言的特点。1. 简洁、高效、灵活和强功能C 语言反映了设计者追求简洁、高效、灵活和强功能的程序设计思想,这设计目标体现在:a. C 语言程序以小写字母为基础,小写字母具

有易读易写的特点。

b. 表达方式简洁、规整、C 程序紧凑。

c. 表达方式灵活。

C 语言的特点

人们从不同的角度总结出C 语言的许多特点,这些特点都基本上反映了C语言产生的环境,也体现了设计者所追求的目标。下面我们从C语言的发展与UNIX 系统的关系来讨论C 语言的特点。2.数据类型丰富,适应系统软件和应用软件开发的需要在C中,数据类型的特点体现在:

※具有四种基本数据类型(整型、实型、字符型、

枚举类型)※多种组合类型(数组、结构、联合)

※指针类型

※允许用户自定义类型

C语言的特点

3. C语言有丰富的运算符(34种, 见附录Ⅲ)

丰富的数据类型和运算符的结合使用,可以得到运算对象的值和流程的控制,体现C表达灵活和高效率

的优点。

4. C语言是一种结构化语言,适合于大型程序的模块化设计

为了体现程序的结构化和模块化的现代软件工程思想,便于大型程序的设计、调试和维护,C语言采取了如下措施:

C语言的特点

※ 提供结构化程序所需要的基本控制流结构语句if~else, while, do~while, for, switch

※ 程序以函数的集合构成,函数具有独立的功能,并作为模块化设计的基本单位。

※ 包含程序的源文件,一个程序可以分割成多个源文件,分别对各个源文件进行编译,然后通过链接得到可执行的目标程序文件。

C语言的特点

5. C语言生成的代码质量高

直到现在汇编语言仍是编写系统软件的主要工具。

实践证明,针对同一问题,用C语言描述其代码

的效率只比汇编语言低10%~20%,C语言成为人们

描述系统软件和应用软件比较理想的工具。

UNIX操作系统等软件都是用C语言写的。

C语言的特点

6. 可移植性好

可移植性是指程序可以从一个环境不加或稍加改动就可以搬到另一个完全不同的环境上运行。

由于C语言的编译程序便于移植,使得在一个环境上用C编写的许多程序可以很方便地移植到另一环境上。

C语言的特点

7. C语言已逐步发展为通用程序设计语言

目前,C语言已独立于UNIX系统而蓬勃发展,C语言已广泛用于办公自动化数据库系统、专家系统、知识工程等众多的领域中。

C语言的缺点

C语言的缺陷主要反映在:

※ 运算符优先级太多,不便记忆

※ 还没有一个一致公认的标准

※ C不是一个强类型的语言,类型检查太弱,转换比较随便,不太安全

1.1.3C程序的执行P2

C语言是由附录Ⅰ中列出的32个关键字再加上语法规则构成的。

1.1.3

C 程序的执行P2 C 程序的执行过程:e1.c 编辑编译e1.obj

连接

e1.exe 运行输出结果

相关主题
文本预览
相关文档 最新文档