第1章 程序设计与C语言

总结

一.C程序是由函数组成。所有的C程序有且只有一个main()函数。C程序总是从main()函数的条语句开始运行,当main()函数结束时,程序也就结束了。

程序设计语言的发展 

  • 机器语言
    机器语言属于第一代计算机语言。按照冯·诺依曼原理,计算机内部运算采用的是二进制,也就是说计算机只能识别和接受由0和1组成的指令,人们要使计算机知道和执行自己的意图,就要编写许多条由0和1组成的二进制指令代码。这种计算机能直接识别和接受的二进制代码称为机器指令(machine instruction)。机器指令的集合(即指令系统)就是该计算机的机器语言。用机器语言编写的程序称为目标程序(Object Program),目标程序可以被计算机直接执行,且运行效率是最高的。但由于不同类型计算机的指令系统存在差异,因而在一种类型计算机上编写的机器语言程序,在另一种不同类型的计算机上也可能不能运行。
    显然,机器语言与人们习惯用的语言差别太大,由于其难学、难写、难记、难修改,采用机器语言编程。
  • 汇编语言
    为了减轻使用机器语言编程的困难,人们采用助记符来代替机器指令的二进制串,如用 ADD表示加法,SUB表示减法,MOV 表示传送数据等。这样就能使运算指令使用符号而不再使用二进制表示。采用这种方法所编写的程序,容易被人读懂,程序的修改与维护也很方便,这种程序设计语言就是汇编语言,也称为第二代计算机语言。
    汇编语言同样十分依赖于机器硬件,可移植性不好,但运行效率仅次于机器语言,针对计算机特定硬件而编制的汇编语言程序能准确地发挥计算机硬件的功能和特长,程序精炼而且质量高,至今仍有一些专业程序员在使用其开发应用软件。
    由于机器语言与汇编语言均很“接近”计算机,人们常常称它们为“低级语言。

  • 高级语言
    1954年,第一个完全脱离机器硬件的高级语言--FORTRAN(FORmula TRANslator,公式翻译器)语言问世了。在使用该语言所编写的程序中,语句和指令是用英文单词表示的,所用的运算符和运算表达式与人们日常所用的数学式子差不多很容易理解。
    这种语言功能很强,且不依赖于具体机器,用它编写的程序几乎可以在任何型号的机器上运行,人们把这种语言称为“高级语言”。高级语言的特点是易学 易用 易维护,人们可以更有效、更方便地用它来编制各种用途的计算机程序。当然高级语言编写的程序是不能被计算机直接运行的,同样需要经过“翻译”。这里将高级语言编写的程序称为源程序(Source Program).将源程序翻译成目标程序的程序称为编译程序。几十年来先后出现的高级语言有上千种,比较有影响的有 FORTRAN,ALGOL、COBOL、BASIC、QBASIC、Pascal、LISP、C、C+ +、VC、Delphi Visual Basic、JAVA.C#、Python 等。                                                                         (1)非结构化的语言。早期的 FORTRAN、ALGOL 和 BASIC 都属于非结构化的语言。(2)结构化的语言。1969年提出了“结构化程种基字设计方法”.1970年,第一个结构化程序设计语言--Pascal语言出现,标志着结构化程序设计时期的开始。结构化程序设计方法规定:程序必须由具有良好特性的基本结构(顺序结构、分支结构、循环结构)构成,QBASIC、Pascal 和 C都属于结构化的语言。(3)面向对象的语言。自20 世纪 80 年代开始,提出了面向对象(Object Oriented)的程序设计思想。程序员不能随意地去改变程序的执行流程。对象是数据以及对数据所进行的操作的封装体,采用面向对象的程序设计方法开发应用程序变得更容易,耗时更少,效率更高。C++.C#、Visual Basic 和 JAVA 等语言均是支持面向对象程序设计方法的语言。

程序设计语言的工能

  • 程序设计语言是编写程序的手段,是人与计算机交流的语言。程序设计语言必须具有数据表达和数据处理(称为控制)的能力(1)数据表达,数据类型:对某些具有共同特点的数据集合的总称。基本数据类型:整型、实型(浮点型)、字符型构造新数据类型的手段:数组、结构、文件、指针(2)结构化的程序设计方法:将复杂程序划分为若干个相互独立的模块,,通过现有模块积木式地扩展形成复杂的、更大的程序模块或程序。按照结构化程序设计的观点,任何程序都可以将模块通过3种基本的控制结构(顺序、分支、循环)进行组合来实现.(3)这三种结构的共同特点是①只有单一的入口和单一的出口②结构中的每个部分都有被执行的可能
    ③结构内不应出现永不终止的死循环。

程序的算法表示

  1. 特征:
    (1)确定性。算法的每条指令必须有明确的含义,不能有二义性。对于相同的输人必须得出相同的执行结果。
    (2)有穷性。一个算法应包含有限个操作步骤。也就是说,在执行若干个操作步骤之后,算法将结束,而且每一步都在合理的时间内完成。
    (3)可行性。算法中指定的操作都可以通过已经实现的基本运算执行有限次后实现。(4)有零个或多个输入。算法是用来处理数据对象的,在大多数情况下,这些数据对象需要通过输人来得到。                                                                                                                                    (5)有一个或多个输出。算法的目的是为了求“解”,“解”只有通过输出才能得到。

  2. 用文字描述算法                                                                                                                      优点:简单,便于阅读。
    缺点:文字冗长,容易出现歧义。                                                                                            【例1】用自然语言描述计算并输出z=x÷y的流程:
    (1)输入变量x,y;
    (2)判断y是否为0;
    (3)如果y=0,则输出出错提示信息;
    (4)否则计算z=x/y;
    (5)输出z。

  3. 用流程图表示算法

    流程图由特定意义的图形构成,它能表示程序的运行过程。                                                  流程图规定:
    • 圆边框表示算法开始或结束;
    • 矩形框表示处理功能;
    • 平行四边形框表示数据的输入或输出;
    • 菱形框表示条件判断;
    • 圆圈表示连接点;
    • 箭头线表示算法流程;
    • Y(是)表示条件成立;
    • N(否)表示条件不成立。

  4. 用伪代码表示算法                                                                                                                     • 伪代码是一种算法描述语言。
    • 伪代码没有标准,用类似
    自然语言的形式表达
    • 伪代码必须
    结构清晰、代码简单、可读性好

C语言的发展历史

  •   C 语言是 1972 年由工作于美国贝尔实验室的 Dennis Ritchie 所设计,取名为 C 语言。
  • 1963 年英国剑桥大学推出了 CPL(Combined Programming Language)语言,很接近硬件,但其规模较大,并未在机器上真正实现。
  • 1967 年剑桥大学的 Martin Rich-ards 对 CPL 语言进行了简化,推出了 BCPL(Basic Combined Programming Language)语言
  • 1970 年美国贝尔实验室的 Ken Thompson 对 BCPL 语言又做了进一步简化,设计出了
    更接近硬件的 B语言,并用B语言在 PDP-7 机器上实现了 UNIX 操作系统。
  • 1973 年,Dennis Ritchie 和 Ken Thompson 对 UNIX 操作系统进行了重写,其中90%以
    上的代码采用的是C语言,很大程度上提高了 UNIX 操作系统的可移植性和可读性。
  • 1983年,美国国家标准协会(American National Standards Institute,ANSI)制定了一套C语言标准,称为 ANSI C。

C语言的特点

  • C语言简洁、紧凑,使用方便、灵活                                                                                          C语言有37个关键字,9种控制语句,程序书写形式自由,主要用小写字母表示。

  • 运算符丰富,表达能力强                                                                                                                C语言的运算符包含的范围很广泛,共有34种运算符

  • C语言程序可移植性好                                                                                                               C语言程序中没有直接依赖于硬件的语句。

  • 生成的目标代码质量高,运行效率高                                                                                       与其他高级语言比,c语言程序经编译后生成的目标代码运行效率高。

  • 语言处理能力强                                                                                                                         C语言中引入了指针、地址、结构、位运算等功能,与汇编语言十分接近。

  • C语言是一种结构化语言                                                                                                           C语言程序是由函数组成的。   

运行C程序的步骤与方法

  •   编辑源程序→对源程序进行编译→与库函数链接→运行目标程序                                                                                             
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值