第1章 C语言程序设计概述

1.1 程序和程序设计的基本概念

目前计算机的应用已经深入到社会的各个领域,成为人们生活、学习和工作的必备工具。早期的计算机是用来计算的机器,但是目前的计算机尤其是微型计算机已不再是简单的计算机器了,而是具有强大的存储和计算能力、由程序自动控制的智能化电子设备。人与人之间交流需要语言,那么人与机器要进行交流也需要“语言”,这种“语言”就是我们要说的“程序”。程序来自生活,通常指完成某一事物的既定方式和过程。比如,我们常说做什么事情需要什么样的程序,在日常生活中可以看成是对一系列执行过程的描述。以学生去食堂打饭为例,为了完成这件事情需要几个步骤呢?首先,带上饭卡去食堂;其次,到相应的窗口去排队;然后,挑选饭菜并刷卡;接着,食堂职工负责盛取饭菜相应事宜;最后,离开食堂窗口,这样就完成了去食堂打饭的程序。

那么计算机中的程序是怎样定义的呢?它是指为计算机执行某些操作,或解决某个问题而编写的一系列有序指令的集合。这里涉及“指令”的概念,以日常生活中的指令来解释,比如,办公室里的老板对秘书发出指令,需要秘书做口述笔记,键入信函内容、发传真等等,那秘书就需要按照指示逐步完成老板发出的每一条指令,最终完成老板交代的事情。在计算机中,就是由程序员对计算机发出指令,想让计算机解决某个问题,就可将解决问题的过程用计算机能够接受的方式或者选择某一种计算机语言将它一步一步地描述出来,计算机就会按照预先存储在它里面的代码逐步去执行,这就是计算机中的指令,而指令的集合就构成了计算机中的程序,编写程序的过程就称为“程序设计”。

计算机程序就是人与计算机交流的“语言”,也就是程序设计语言。正如人与人交流有不同的语言一样,程序设计语言也有很多种,基本上分为高级语言和低级语言两大类。目前常见的高级语言有Visual Basic、C++、Java、C等,这些语言都是用接近人们习惯的自然语言和数学语言作为表达形式,使人们学习和操作起来感到十分方便。但是,对于计算机本身来说,它并不能直接识别由高级语言编写的程序,只能接受和处理由0和1的代码构成的二进制指令或数据。由于这种形式的指令是面向机器的,因此也称为“机器语言”。

我们把由高级语言编写的程序称为“源程序”,把由二进制代码表示的程序称为“目标程序”。为了把源程序转换成机器能接受的目标程序,软件工作者编制了一系列软件,通过这些软件可以把用户按规定语法写出的语句一一翻译成二进制机器指令。这种具有翻译功能的软件称为“编译程序”,每种高级语言都有与它对应的编译程序。例如,C语言编译程序就是这样的一种软件,功能如图1.1所示。

图1.1 C语言编译程序功能示意图

我们无论采用哪种语言编写程序,经过编译(compile)最终都将转换成二进制的机器指令。C源程序经过C编译程序编译之后生成一个后缀为.obj的二进制文件(称为目标文件),然后由称为“连接程序”(link)的软件,把此.obj文件与C语言提供的各种库函数连接起来生成一个后缀为.EXE的可执行文件。在操作系统环境下,只需点击或输入此文件的名字,该可执行文件就可运行。