第一章 程序设计和C语言


前言

C语言是面向过程的高级计算机语言,学习它有助于我们学习和理解数据结构,运用算法解决问题。

该章节涉及的知识点,既是基础也是提炼,初学者可能会看不懂,如果看不懂先可以跳过一些知识点或者看下一章,待学完相关知识点再来回顾


一、什么是计算机程序

指令:能够被计算机识别并执行的基本操作命令
比如:叫小狗“坐下”,小狗便坐下了,那么对小狗来说,“坐下”就是指令;因为小狗识别了“坐下”并且执行了。

程序:就是一组计算机能识别和执行的指令。其实就是一个特定的指令序列,用来完成一定的功能。
比如:接上面的例子,叫小狗“坐下”,再“站起来”,再“转个圈”,小狗按照你的指令完成了表演;其实就是你给小狗发布了段程序,然后小狗完美完成了。

二、什么是计算机语言

计算机语言:一种计算机和人都能识别的语言。其实就是人和计算机沟通的语言。
比如:我们之间交流用中文、英文。

1.机器语言

二进制:计算机工作基于二进制,从根本上说,计算机只能识别和接受由0和1组成的指令。
比如:用1011011000000000表示让计算机进行一次加法运算。

机器指令:计算机能直接识别和接受的二进制代码。
比如:上面提到的加法运算。

机器语言:机器指令的集合就是该计算机的机器语言。该语言的规则中规定了各种指令的表达形式以及它的作用。
比如:加法运算有机器指令,减法、乘法、除法等运算也有其对应的机器指令。

特点:难学,难写,难记,难检查,难修改,难推广使用。
试问,面向一堆0和1编程,还怎么快乐摸鱼,直感觉眼前一堆的坑。

2. 汇编语言

汇编语言(也称符号语言):机器语言的符号化,用一些英文和字母表示一个指令。
比如:用ADD代表“加”,SUB代表“减”,LD代表“传送”等。
上文用1011011000000000表示的加法运算,用汇编语言可以写成 ADD A,B(执行A+B=>A)

汇编程序:汇编语言的指令不能被计算机直接识别和执行,需要“翻译”成机器指令后才能被识别和执行,这个“翻译”软件就是汇编程序。
一条汇编语言的指令,对应转换为一条机器指令。

特点:完全依赖于具体机器特性,是面向机器的语言,可移植性低。故称为计算机低级语言。

3. 高级语言

高级语言:很接近于人们习惯使用的自然语言和数学语言。
比如:想计算和输出3.5*6sin(π/3),用C语言表达是:

printf("%lf", 3.5 * 6 * sin(3.14 / 3)); //#include<math.h>

特点:功能很强,且不依赖与具体机器,可移植性强。故称为计算机高级语言。

编译程序:高级语言程序(源程序)也是不能被计算机直接识别和执行的,也需要“翻译”成机器指令(目标程序)后才能被识别和执行,这个“翻译”软件就是编译程序。
高级语言的一个语句往往对应对条机器指令。

源程序:用高级语言写的程序
目标程序:机器指令的程序

高级语言的发展

1.非结构化的语言

  • 编程风格比较随意,只要符合语法规则即可,没有严格的规范要求,程序中的流程可以随意跳转。
  • 程序难以阅读和维护。
  • 早期的BASIC,FORTRAN,ALGOL

2.结构化的语言

  • 为了解决以上问题,规定程序必须由具有良好特性的基本结构(顺序结构、选择结构、循环结构)构成,程序中的流程不允许随意跳转,程序总是自上而下顺序执行各个基本结构。
  • 这种程序结构清晰,易于编写、阅读和维护。
  • QBASIC,FORTRAN 77,C语言

3.面向对象的语言

  • 在处理规模较大的问题时,面向过程的语言不满足我们的需求,人们开始使用面向对象的语言。
  • 对象是由数据以及对数据进行的操作组成的。
  • C++,C#,Visual Basic,Java

三、C语言的发展及特点

最初的C语言只是为描述和实现UNIX操作系统提高一种工作语言而设计的。

C语言是一种用途广泛、功能强大、使用灵活的过程性编程语言,即可用于编写应用软件,又可以用于编写系统软件。

C语言特点

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

实际上,C是一个很小的内核语言,只包括极少的与硬件有关的成分,C语言不直接提供输入和输出语句、有关文件操作的语句和动态内存管理的语句等,这些操作是由编译系统所提供的库函数来实现的。

2.运算丰富:共有34种运算符,C语言把括号、复制和强制类型转换等都作为运算符处理

3.数据类型丰富:整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型、复数浮点类型、超长整型、布尔类型。

4.具有结构化的控制语句:if…else语句,while语句,do…while语句,switch语句,for语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值