C程序设计 第1章 第1课 程序设计语言基本概念
第1章 第1课
本课主题: 复习预备知识,介绍C语言特点
教学目的: 掌握C语言学习的预备知识,了解C语言。
教学重点: 源程序、可执行文件、软件的基本概念
教学难点: 源程序、可执行文件、软件的基本概念
授课内容:
0、基本概念:
一) 文件的概念:
1、 文件与文件名:
1)文件是存储在外部介质上的数据的集合。
2)文件名是为了区分不同内容的文件,便于系统对它们进行管理和操作给每一个文件所起的名字。
3)DOS文件名的一般形式:文件标识符.扩展名
4)DOS系统对文件标识符的规定:
文件标识符可以由1-8个ASCII码字符组成。这些字符可以是26个英文字母(大小写等价)、10个数字符号、特殊符号如“$”,“#”,“@”,“_”,“!”等。特别要注意在文件名中不能用“>”,“<”,“\”,空格等字符。
5)DOS系统对文件扩展名的规定:
文件扩展名必须以小数点“.”开头,后面可以跟1-3个字符。在扩展名中使用的字符规定与文件标识符相同。文件扩展名一般用于说明文件类型。
6)DOS系统常用的文件扩展名有:
- .COM 可执行二进制代码文件(命令文件)
- .EXE 可执行程序文件
- .OBJ 目标程序文件
- .LIB 库文件
- .SYS 系统专用文件
- .BAK 备份文件
- .DAT 数据文件
- .BAT 批处理文件
- .BAS BASIC语言文件
- .FOR FORTRAN语言文件
- . C C语言源程序文件
- .PAS PASIC语言源程序文件
- .PRG dBASE或FoxBASE命令文件
- .DBF dBASE或FoxBASE数据库文件
- .ASM 汇编语言源程序文件
2、 文件名通配符(*、?):
通配符*:代表从它所在位置起直到符号“.”或空格前的所有字符。
通配符?:代表该位置上的所有字符。
3、 DOS的设备文件:
- CON--表示控制台(包括键盘与显示器)
- PRN或LPT1--表示连接在第一个并行口上的打印机
- LPT2--表示连接在第二个并行口上的打印机
- LPT3--表示连接在第三个并行口上的打印机
- AUX或COM1--表示连接在第一个串行口上的通信设备
- COM2--表示连接在第二个串行口上的通信设备
- NUL--虚拟设备(即实际不存在的设备)
二) 盘符、目录与路径:
1、 盘符:在DOS命令中,一般利用“盘符”指出被操作的文件或目录在哪一个磁盘上。“盘符”也称驱动器名。DOS中常用盘符有(其中冒号:不能省略):
-
A:表示软盘驱动器A,简称A盘;
-
B:表示软盘驱动器B,简称B盘;
-
C:表示硬盘驱动器C,简称C盘;
-
D:表示硬盘驱动器D,简称D盘;
在对文件或目录进行操作时,如果省略“盘符”,则默认为是当前盘。
2、 目录与路径:
DOS系统采用树状结构的目录来实现对磁盘上所有文件的组织和管理。
- 1)树状目录结构的根部称为根目录,用“\”表示。根目录是在磁盘格式化时由系统建立的,在根目录下可存放若干文件或子目录。
- 2)每一级子目录都要有一个目录名,其命名规则与文件标识符相同,但目录名一般无扩展名。DOS规定,在不同的子目录下,文件名和子目录名均可以重名。
- 3)文件路径:文件在磁盘上的位置称为文件的路径。
- 4)当前目录:指DOS系统正在工作的目录。
- 5)绝对路径:指从该文件所在的磁盘根目录开始直到该文件所在的目录为止的路线上的所有目录名(各目录名间用“\”分隔)。绝对路径表示了文件在磁盘上的绝对位置。
- 6)相对路径:指从该文件所在磁盘的当前目录开始直到该文件所在的目录为止的路线上的所有目录名(各目录名间用“\”分隔)。相对路径表示了文件在磁盘上的相对于当前目录的位置。
一、软件与程序
要点:软件与硬件是计算机系统不可少的组成部分。
软件的概念:软件包括了使计算机运行所需的各种程序、数据及有关的文档资料。
例:WORD字处理软件:
上面是WORD运行的画面。实际上WORD软件在计算机中是这样的:
WORD软件随OFFICE办公软件套件安装在e:\office文件夹中,Winword.exe是程序文件,在e:\office\office文件夹中。WORD软件除程序文件外,还有帮助文档及其它数据文件组成,它们都是这套软件的组成部分。
二、程序与可执行文件
大家注意到上图中的Winword.exe文件的扩展名为exe,这是标记可执行文件的扩展名之一,另外还有bat以及com扩展名。
可以把可执行文件称作程序。反过来也可以。
请记住可执行文件的扩展名,一个软件至少有一个可执行文件它才能够被普通用户使用。或者可以这样说:你使用WORD软件,最起码得有winword.exe可执行文件。
可执行文件是由计算机CPU可以识别的机器指令和数据组成的。
三、程序与源程序
有时我们说程序时,指的是源程序,也就是说“程序”这个概念可以指可执行文件,也可以指源程序。
什么是源程序呢?就是解决问题的特定方法和流程。它是由人可以容易地看懂的程序设计语言写成的。
下面的程序大家很熟悉了,经典的游戏:俄罗斯方块。
这个游戏程序的源程序请看: 俄罗斯方块源程序
四、源程序与程序设计语言
源程序就是用程序设计语言写成的解决各种问题的方法步骤。
程序设计语言与自然语言十分接近,同时它又便于转换(编译)成机器指令(即可执行文件)。
程序设计语言象自然语言一样,有很多种,常用的有BASIC,COBOL,C,C++,FORTRAN,PASCAL,汇编语言等,就象自然语言有汉语,英语,法语一样。上面大家看到的源程序是由C++语言写成的。
- 机器语言 程序是机器指令的序列,入乡随俗,使用机器指令编写程序,是人们最初和最自然的选择。机器指令的集合就是机器语言。机器语言是二进制的,不易被人理解,太难掌握;而且因机器而异,程序不易移植。
- 汇编语言 将每条机器指令配上一个助记符,如Add,Jump等就形成简单汇编语言。简单汇编语言中的语句与机器指令一一对应。将简单汇编中的与机器相关部分分离出去,由系统完成,就形成宏汇编。现在所说汇编语言,一般都指宏汇编。汇编语言比机器语言容易一些,但仍然很难掌握;而且因机器而异,程序不易移植。
- Fortran 第一个高级程序设计语言,50年代由IBM发明,主要用于科学计算,现在仍有人使用。
- COBOL 主要数据处理,现在仍在大型数据库等应用中广泛使用。
- BASIC 主要用于初级计算机教育,在微机发明后,得到大发展。微软公司靠他起步。
- PASCAL 专为计算机教育而发明的程序设计语言,对于促进结构化程序设计方法的普及有很大作用。
- C/C++ C与Unix操作系统结伴而生,BELL实验室发明,目标代码效率高,可以用来编系统软件。C++也是BELL实验室发明,是在C上增加了面向对象特性,是现在使用最广泛的程序设计语言。
- Java 最新的面向对象程序设计语言,面向internet,Sun公司发明,可以一次编程,到处运行。
五、C语言的历史
-
ALGOL60(1960,面向问题的高级语言,不宜用来编写系统程序)
-
CPL(1963,英国剑桥大学,规模较大)
-
BCPL(1967,剑桥大学Matin Richards,作了简化)
-
B(1970,美国贝尔实验室Ken Thompson,进一步简化,又过于简单,功能有限)
-
C(1972-1973,贝尔实验室D.M.Ritchie,保持了精练,接近硬件的优点,克服了B语言过于简单的缺点)
-
1973年,K.Thompson和D.M.Ritchie合作用C改写UNIX(第5版)。
-
1975年出的的UNIX第6版使人们普遍注意C语言。
-
以1978年发表的UNIX第7版中的C编译程序为基础,Brian W.Kernighan和Dennis M.Ritchie合著了影响深远的《The C Programming Language》,书中介绍的C语言称为标准C。
-
1983年,美国国家标准化协会(ANSI)制定了新的标准,称为ANSI C。
现在微机上常用的C语言编译系统有Microsoft C,Turbo C,Quick C。
我们的教材选用的是Turbo C 2.0版本。
六、C语言的特点
- 1、语言简洁、紧凑,使用方便、灵活。一共只有32个关键字,9种控制语句。
- 2、运算符丰富。共有34种运算符。
- 3、数据结构丰富,便于数据的描述与存储。
- 4、具有结构化的控制语句。用函数作为程序模块以实现程序的模块化。
- 5、语法限制不太严格,程序设计自由度大。
- 6、C语言允许直接访问物理地址。
- 7、生成目标代码质量高,程序执行效率高。
- 8、用C语言写的程序可移植性好。
七、程序设计基本知识:
1、程序设计的基本过程
(1)问题分析:
问题分析是进行程序设计的基础,分析内容包括:问题的性质;输入/输出数据的类型、格式及设备;数学模型或常用方法。
(2)结构特性的设计:
-
1)控制结构:通常用流程图表示程序的控制结构。基本控制结构有顺序、选择、循环三种。
-
2)数据结构:指互相有关联的数据元素的集合。分为数据有逻辑结构和数据的存储结构。
数据的逻辑结构:指数据元素之间抽象化的相互关系。
数据的存储结构:数据的逻辑结构在计算机中的存储方式。
(3)算法的设计:
算法是指为在有限步内解决一个具体问题而规定的意义明确的解题步骤的有限集合,即指解题方案的准确而完整的描述。
算法的特征有:可行性、确定性、有穷性、有足够的原始数据。
(4)常用的流程描述工具:自然语言、算法描述语言、流程图、编程。
(5)调试与运行:
调试是指找出程序中错误的具体位置并改正错误。
2、程序设计的基本方法:
(1)结构化设计:结构化程序设计要求把程序的结构限制为顺序、选择和循环三种基本结构。
(2)模块化设计:把一个大程序按人们能理解的大小规模进行分解。
(3)自顶向下、逐步细化的设计过程:将每一个复杂问题的解法分解和细化成由若干个模块组成的层次结构;将每一个模块的功能逐步分解细化为一系列的处理步骤,直到某种程序设计语言的语句或某种机器指令。
3、程序的调试:
包括调试前的准备、程序的静态检查、程序的动态调试三个步骤。
评论已关闭