《C语言程序设计》案例讲义 - 完整版 联系客服

发布时间 : 星期二 文章《C语言程序设计》案例讲义 - 完整版更新完毕开始阅读09bd7a05bed5b9f3f90f1ca9

方代表1,无孔的地方代表0。由0和1组成各种排列组合,通过线路转变成电信号,让计算机执行各种不同的操作。

这种直接用0和1 组成的机器指令编写程序,就是机器语言源程序。对计算机来说,这是它唯一能直接读懂的语言,所以,通常称之为机器语言。但是,对于使用计算机的人来说,这是十分难懂的语言,它难读、难记、难写,容易出错,不同的机型又不通用,显然人和机器之间的通信存在巨大的鸿沟,只有填补上这个鸿沟,才能让用户使用起来方便容易,机器又能懂,计算机才能发挥更大的作用,为此,人们研究了一种汇编语言。

2.第二代语言----汇编语言(低级语言)

汇编语言也叫符号语言,它是把用二进制数表示的指令,用一些符号来表示,例如,用表示操作的英文缩写来代替汇编语言指令代码。下面是一段汇编语言代码。

LDA A 取出A

ADD B A和B相加 STA C 存入C PRINT C 打印C STOP 停止

这种用符号代替二进制代码的指令,就叫汇编语言。像LDA、ADD这类符号称之为指令符号或助记符。用汇编语言编写的程序,称为汇编语言程序。

这种语言,相对于机器语言来说容易读、容易记,但是,机器却不能识别。因此,计算机是无法执行的。为了让机器能执行汇编语言程序,这时就需要一个翻译,正如一个不懂汉语的外国人到中国来无法同中国人直接交流,需要借助于翻译一样,借助于翻译,将汇编语言程序翻译成机器语言程序,这个翻译过程叫做“汇编”。汇编后产生的机器代码称为目标程序。翻译可由人手工完成,也可用计算机来完成,用计算机来做翻译,实际上是研制了翻译程序,把这个翻译程序称为汇编程序。汇编过程如图1.7所示。

汇编程序 (事先放入计算机) 汇编语言 (输入) 源程序 (汇编) 机器指令 目标程序 (执行) 计算机执行 结果输出 图1.7 汇编过程

汇编语言使程序设计工作前进了一大步,但是仍然存在很多缺点:第一,不便于我们求解问题过程的描述,如一个数学公式,汇编语言的表达式与人们的习惯表达形式差距很大;第二,它仍然是面

向机器的语言,不同机型,汇编语言也不一样,因此用它编制程序,没有通用性。为了克服这些不足之处,人们进一步研制开发出了高级语言。

3.第三代语言----算法语言(高级语言)

算法语言是更接近人的自然语言和数学表达式的一种语言,由表达不同意义的“关键字”和“表达式”按照一定的语法语义规则组成、完全不依赖机器的指令系统。这样的高级语言为人们提供了很大的方便,编制出来的程序易读易记,也便于修改、调试,大大提高了编制程序的效率和程序的通用性,便于推广交流,从而极大地推动了计算机的普及与应用。常见的BASIC、FORTRAN、ALGOL、COBOL、C等都是高级语言。

高级语言更接近人的习惯,便于人的理解与使用,可计算机却更难理解与接受,计算机不能直接理解那些英语单词、数学表达式。所以,为了填补计算机和人之间的鸿沟,还得求助于翻译。这种翻译通常分为两种形式,一种叫解释方式,另一种叫编译方式。

编译方式是事先编好一个称为编译程序的机器指令程序,并放在计算机中,把用高级语言编写的

9

源程序输入计算机,编译程序就把源程序整个翻译成用机器指令表示的目标程序,然后执行该目标程序,得到计算结果。其过程如图1.8所示。

编译程序 (事先放入计算机) 高级语言 (输入) 源程序 (汇编) 机器指令 目标程序 (执行) 计算机执行 结果输出 图1.8 编译过程

解释方式是事先编好一个称为解释程序的机器指令程序,并放在计算机中,把用高级语言编写的源程序输入计算机,它并不像编译方式那样把源程序整个翻译成用机器指令表示的目标程序,而是逐

句地翻译,译出一句立即执行,即边解释边执行。其过程如图1.9所示。

C语言采用的是编译方式。

高级语言的用户可以完全不顾机器指令,也不必深入懂得计算机内部结构和工作原理,就能方便地使用高级语言编写程序进行各种科学计算和事务处理,并且由于采用编译(解释)程序代替人工翻译,大大降低了人们的工作量,因此,有人说,高级语言的出现是计算机发展中“最惊人的成就”。

目前,世界上已有100多种高级语言,比较流行的有几十种之多,比如:

? FORTRAN(Formula Translator的缩写)语言是世界上最早出现的高级语言,从1954年问世

以来,经过几次大的发展,功能有很大的增强,它特别适用于科学计算和工程计算。

? COBOL(Common Business Language的缩写)语言适用于非数值计算的商业、管理领域。 ? PASCAL语言是最早出现的结构化语言,适用于计算机教学。

? PL/1语言是一种大型语言,功能强,适用于数值计算和数据处理。 ? Ada语言是一种工程化的大型语言,适用于大型软件工程。 ? C语言是近年来广泛推广的结构化语言,适用于编写系统软件。 ? BASIC语言是一种简单会话式语言,在世界上应用最广泛。

4.第四代语言----非过程化语言(高生产率语言)

非过程化语言就是目前比较流行的面向对象语言,该语言只需要编程人员对问题进行描述。比如C++/Visual C++,JAVA语言等。

解释程序 (事先放入计算机) 高级语言 (输入) 源程序 (解释并执行) 计算机执行 结果输出 图1.9 解释过程

目前也出现了智能化语言,主要用于人工智能等领域。比较有代表性的有LISP语言和PROLOG语言。

9.2 C语言的特点

C语言是一种出现比较晚的高级语言,它吸取了早期高级语言的长处,克服了某些不足,形成了自己的风格和特点。总的来说,C语言是一种简洁、功能强大、可移植性好的结构化程序设计语言。C语言具有如下特点:

10

? C语言简洁、紧凑;

? C语言是一种结构化程序设计语言; ? C语言具有丰富的数据类型; ? C语言提供了丰富的运算符;

? C语言可以直接对硬件进行操作;

虽然C语言具有灵活简炼的特点,但在有些方面也存在不足,了解其不足有助于使用,避免出现错误。其不足简单概括如下:

? 运算符多,难于记忆;

? C语言类型转换比较灵活,在许多情况下不做检查,对类型要求不够严格;

? C语言中对数组进行初始化主要是判定是否越界,越界时会发生编译错误,但在动态赋值时

不判定越界,这样容易造成数据存储方面的混乱。 总之,C语言有诱人的优点,也有值得注意的不足,使用时应特别加以注意。

11

模块二 C语言程序设计入门

能力标准:

1. 能编写、分析基本的C语言程序;

2. 熟练掌握程序的多种调试方法。 知识点:

1. 基本数据类型;

2. 3.

各种运算符及表达式; 三种基本的程序结构。

案例一 一个经典C语言入门程序

—helloworld.c

教学目的:

1. 巩固C语言程序结构;

2. 掌握printf函数输出字符串的功能; 3. 掌握clrscr函数的功能与使用;

4. 熟悉用编译预处理命令#include命令包含头文件。

在模块一中,我们已经知道C语言程序由函数构成,并且任何一个程序有且只有一个main函数,程序的执行总是从main函数开始的,由main函数的第一条语言开始执行,到main函数的最后一条语句结束。下面是一个最简单的C语言程序,我们将对该程序的每一行进行分析。

/* Hello world! */ #include main() {

printf(“Hello world!\\n”); }

一、案例分析

1.“/*Hello world!*/”行是一个注释行,用来说明该段程序的功能。一般如果在程序的开头加上这样的注释行,便于用户阅读与分析程序。注释可以用中文或英文,如果操作系统是英文的,则中文字符在编译时是不认识的符号,建议使用英文注释,便于和国际接轨。

2.“#include ”行是一个编译预处理命令行,其中“#include”是编译预处理命令,其作用是将一个C语言源程序文件的全部内容包含到当前这段程序中,“”是指定被包含的文件。一个#include命令只能包含一个文件,需要多个文件包含时,必须用多个#include命令。#include命令行应放在程序的开头位置,故有时也把被包含的文件称为头文件,常以“.h”作为扩展名(后缀),如stdio.h文件,事实上可以用“.c”或其它的扩展名。

被包含文件可以用双引号和尖括号括起来,其区别在于用尖括号时,系统先到存放C库函数头文件所在的目录寻找要包含的文件,称为标准方式;用双引号时,系统先在用户当前目录中寻找要包含的文件,若找不到,再按标准方式查找。一般地,如果是调用库函数而用#include命令来包含相关的

12