C语言程序设计基础(01)——计算机与程序设计基础
- 一、计算机组成及基本原理
-
- 1、计算机硬件系统
- 2、计算机软件系统
- 3、计算机工作原理
- 二、程序设计基础
-
- 1、程序设计风格
- 2、结构化程序设计(structured programming)
- 三、C语言程序基本结构和开发过程
-
- 1、C语言程序的基本结构
- 2、C语言程序开发过程
- 3、程序开发环境
写在前面
我刚上大学的时候,学的第一门计算机编程语言就是C语言,当时觉得这仿佛是天书,毕竟脑子里只有中学数学课上那点简单的流程图和VB概念,但是随着多年的练习和开发使用,我渐渐地开始掌握并喜欢上了这门语言,并且也开始学习C++、C#、JAVA等其它编程语言。不得不说,C语言的学习为我打下了良好的编程基础,同样也让我越来越清晰地认识到自己的不足。如今时代呈现指数式发展,尤其在IT等行业,必须保证自己永远在学习新的知识技能,否则迎接你的就是淘汰。
大一课堂使用的课本是《C语言程序设计(第2版)》(姚琳 主编,屈微 副主编),虽然课本上也有一些小的瑕疵,但掩盖不了它开蒙启智的光辉。搬砖之余,在这里整理回顾下C语言的基础知识,感谢当年老师细致入微的指导,帮助我们解决了程序上数不尽的bug,为我们打下了良好的编程基础。
一、计算机组成及基本原理
计算机系统构成:
-
硬件系统
-
主机
- 内存储器(内存)
- 中央处理器(CPU,Central Processing Unit)
- 运算器
- 控制器
-
外部设备(外设)
- 输入输出设备
- 外存储器(外存)
-
主机
-
软件系统
- 应用软件
-
系统软件
- 操作系统
- 语言处理程序
- 服务程序
完整的计算机系统包含两个部分:硬件系统、软件系统。二者相辅相成,仿佛躯体和灵魂不可分割。
1、计算机硬件系统
(1)概念
组成计算机的各种电磁、机械部件和设备装置的总称,硬件(Hard ware) 系统是计算机实现自动控制和运算的物质基础。
(2)冯·诺依曼结构
组成:。
特点:程序和数据以二进制形式存在存储器中,在控制器的指挥下,自动从存储器中取指令并执行。1
-
运算器
对数据进行处理和运算。基本操作:算术运算、逻辑运算。
包括算术逻辑单元(ALU,Arithmetic Logic Unit)和寄存器。 -
存储器
用来存储程序和数据。由许多存储单元组成,每个单元有自己的地址,可根据地址找到所需数据和程序。
分为两类:
①内存储器(主存储器):存储当前要执行的程序和数据以及中间结果和最终结果。
②外存储器(辅助存储器):长期存储大量暂时不参与运算的数据和程序以及运算结果。 -
控制器
指挥计算机各部件协调工作。控制:将输入设备输入的程序和数据存入存储器,按照程序要求指挥运算器进行运算处理并把结果再存入存储器中,最后将结果传给输出设备。
主要组成部分:
①程序计数器(PC,Program Counter):存放当前要执行的指令地址,有自动加1的功能。
②指令寄存器(IR,Instruction Register):存放当前要执行的指令代码。
③指令译码器(ID,Instruction Decoder):识别IR中指令的性质和操作。
④操作控制器(Operation Controller):根据ID的译码,产生实现该指令全部动作的控制信 。 -
输入设备
将用户的程序、数据和命令输入到计算机内存的设备。标准输入设备是键盘。其它常用输入设备:鼠标、扫描仪、语音输入设备、手写识别输入设备等。 -
输出设备
显示、打印或保存计算机运算和处理结果。标准输出设备是显示器。其它常用输出设备:打印机、绘图仪、数据投影设备(投影仪)等。
2、计算机软件系统
(1)概念
软件(Software) 是计算机系统中各类程序、有关文档以及所需要的数据的总称。
程序:为了解决某一问题而设计的一系列指令或语句的集合。只是软件的一部分。
源程序(Source Program):用户为解决自己的问题编制的程序。
计算机指令:用来控制计算机、告诉计算机进行怎样操作的命令。
(2)两大分类
-
系统软件
用来管理、维护计算机及协调计算机内部更有效工作。
①操作系统(核心软件)
对计算机系统进行控制和管理的大型软件。
操作系统的基本任务:
1)管理好计算机的全部资源(包括CPU、存储器、程序、数据、各种外设);
2)担任用户与计算机之间的接口。
操作系统的主要功能:
CPU管理、存储管理、文件管理、设备管理、作业管理。
②语言处理程序
③服务性程序 -
应用软件
为某个具体应用开发的软件。如文字处理软件、杀毒软件、财务软件、图形软件、工具软件、游戏程序等。
(3)计算机语言的发展
人类的语言一般称为自然语言。人为了让计算机完成某种任务而需要的语言就是计算机语言。机器语言是计算机语言发展的原点,高级程序设计语言是计算机语言发展的重要阶段。C语言是高级程序设计语言中的经典,是深入掌握其他程序设计语言的基础。
-
机器语言
指令通常包含两个部分
①操作码(Operation Code):表示计算机执行什么操作
②操作数(Operand):表示参加操作的数的本身或所在地址
计算机发展的初期,用指令的机器码(Machine Code)也就是用0和1组成的二进制代码形式来编写源程序。
是计算机能唯一识别和可直接执行的语言,被称为“面向机器的语言”。它占用内存少,执行速度快效率高,无须“翻译”。但编写麻烦,无通用性。 -
汇编语言
通常用由指令功能英文单词缩写形成的 助记符(Mnemonic) 代替操作码,用 符 (Symbol) 表示操作数。
对于机器,必须用汇编程序将汇编语言源程序(.ASM)翻译成机器语言程序即目标程序(.OBJ),然后用连接程序将目标程序连接成可执行程序(.EXE)。
汇编语言同样具有很差的通用性,也属于“面向机器的语言”。 -
高级语言(算法语言)
特点是和人类的自然语言(英语)及数学语言比较接近,与硬件无关,无须熟悉计算机的指令系统。
分类:
面向过程 的高级语言:BASIC、FORTRAN、Pascal、C等。
面向对象 的高级语言:C++、JAVA等。
高级语言的翻译方式:
编译方式: 先通过编译程序将高级语言源程序(.C和.PAS等)编译成目标程序(.OBJ),翻译过程中进行语法检查,如果有错将给出错误信息,无错才形成二进制的目标程序;然后通过连接程序进行连接和定位,生成可执行程序文件(.EXE)。类似于笔译。
解释方式: 通过解释程序,对源程序(.BAS)解释一条语句便执行一条语句,若发现错误便给出错误信息并停止解释和执行,无错便解释执行到最后。不生成目标文件和可执行文件,重复运行程序需重新翻译。效率低,执行速度慢,但便于人机对话。类似于口译。
3、计算机工作原理
冯·诺依曼结构计算机的工作原理最重要之处是“存储原理”,要先把编好的程序输入存储器中存储起来,然后依次取出指令执行。
每条指令的执行过程分为3个基本操作:
①取出指令:从存储器某个地址中取要执行的指令;
②分析指令:送指令译码器进行译码;
③执行指令:向各个部件发送控制操作,完成指令要求。
二、程序设计基础
1、程序设计风格
2、结构化程序设计(structured programming)
以模块化设计为中心,基本原则是:采用自顶向下、逐步细化的方法进行设计,采用模块化原则和方法进行设计,限制使用goto语句。主要特点是:程序易于理解、使用和维护,提高了编程工作效率,降低了软件开发成本。
程序化设计的基本结构:
(1)顺序结构
最基本做常用的结构,按照书写顺序依次执行语句。
(2)选择结构(分支结构)
按照给定条件判断选择执行相应的语句序列,可改变程序的执行流程。
(3)循环结构(重复结构)
通过循环控制条件来决定是否重复执行相同的语句序列。包括当型循环和直到型循环。
由三部分构成
①初始化部分:为循环作准备,如为循环变量赋初值,往往位于循环语句前面。
②循环控制部分:循环控制的条件。
③循环体部分:循环工作的重复部分。
三、C语言程序基本结构和开发过程
1、C语言程序的基本结构
C语言程序的几点说明:
(1)以函数作为模块单位,有且仅有一个函数即主函数,总是从main函数开始执行,在main函数中结束。
(2)C函数模块分为两大部分
①函数说明部分(函数首部):包括函数类型、函数名、函数参数。
②函数体部分:用左“{”表示开始,用右“}”表示结束。
(3)语句分为说明性语句和可执行语句。每条语句必须以分 “;”结束,但书写格式自由,一行可以写多条语句,一条语句也可以占多行。
(4)编译预处理命令不是C语言语句,不能用分 结束,并且需要单独一行
(5)任何位置都可以用/**/进行注释,可以用英文或者中文进行注释,但建议使用英文注释,因为不同的开发环境使用的编码格式不同时,中文易导致乱码。
2、C语言程序开发过程
(5)可执行文件的调试
若.EXE文件运行异常,得不到正确结果,则要返回源程序进行修改。
3、程序开发环境
集成开发环境IDE
初学的比较经典的C语言集成开发环境有Microsoft Visual C++(简称VC++)和Microsoft Visual Studio(简称VS),前者是后者这个完整开发工具集中的针对C类语言的开发环境。在学校用的是 VC++ 6.0 和 VS 2012 这两个版本。个人目前做嵌入式开发比较多,嵌入式C语言工程多结合具体的硬件设备开发,不同的产品可能有不同的IDE,比如经典的 ICCAVR、IAR、Keil、CodeWarrior 等。
THE END
-
控制流可由控制器指向其余四个部分,但是运算器的数据只能跟存储器交换,控制器从存储器中取数据,也就是控制器与运算器之间没有直接的数据流,但有控制流。 ??
文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树首页概览114384 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!