1.1 什么是计算机程序

程序: 一组计算机能识别和执行的指令

每条指令使计算机执行特定的操作,一个特定的指令序列(指令集合),用来完成一定的功能.

计算机的本质是程序的机器

1.2 什么是计算机语言

个人简单理解:人与计算机交互的工具

计算机与人都能识别的语言这就是计算机语言

计算机语言的发展阶段:

机器语言

计算机是基于二进制工作的

机器指令:计算机能够识别和接受的二进制代码.

机器语言:机器指令的集合.

缺点:不容易使用,难以修改程序代码

符号语言(汇编语言)

符号语言:英文数字表示一个指令

例如:ADD表示

由于计算机不能直接识别 执行符号语言,所以要通过汇编程序的软件将符号语言的指令转换为机器指令. 转换的过程称为”代真”或”汇编”,因而符号语言又叫汇编语言或符号汇编

优点:

相对于机器语言方便使用

缺点:

程序可移植性差,机器依赖性强,如:机器A的上的程序无法在机器B上使用

机器语言和汇编语言是完全依赖于具体机器特性的,是面向机器的语言,相对于其他语言来说更”贴近”计算机,背称为计算机低级语言.

高级语言

  • 不依赖于具体机器,它与具体计算机距离较远。

  • 世界第一个计算机高级语言 FORTRAN语言(20世纪50年代)

  • 高级语言需要通过编译器程序软件转换为机器指令的程序

  • 高级语言的一个语句一般对应多条机器指令

优点:

  1. 高级语言数据结构丰富

  2. 不依赖于具体机器,它与具体计算机距离较远.(可移植性强)

  3. 简单易学,容易推广

  4. 高级语言的出现是计算机发展史上”惊人的成就”

高级语言的发展阶段

非结构化语言

  • 符合语法要求,没有严格规范要求

  • 程序难以维护和难以阅读

  • 早期的BASIC FORTRAN和ALGOL都属于非结构化语言

结构化语言

  • 为了解决非结构化语言的缺点(程序难以维护和阅读),提出结构化程序设计方法

  • 程序由良好的基本结构(顺序结构 分支结构 循环结构)构成 程序中的流程不得随意跳转

  • 程序结构清晰,易于编写 阅读和维护

  • QBASIC FORTRAN77和C语言都是结构化语言

语言特点:支持结构化程序设计方法

缺点:

​ 在编写程序时需要制定具体每个过程的细节 —-> 规模小的程序 还可以 规模较大的程序显得力不从心(面向过程编程)

面向对象语言:对象由数据以及对数据进行的操作构成的,用于处理规模较大的程序。

1.3 C语言的发展及其特点

C语言是国际广泛流行的计算机高级语言。

c语言的祖先是BCPL语言 c语言的设计最初是为了Unix提供一种工作语言

C语言的特点:

1.语言简洁 紧凑,使用方便灵活

2.运算符丰富

3.数据类型丰富

4.具有结构化的控制语句

5.语法灵活,程序设计自由度大

6.C语言允许直接访问物理地址

7.C语言程序可移植性好

8.代码质量高,程序执行效率高

C语言原来是专门为系统软件而设计的

1.4 最简单的C语言程序

1.4.1 最简单的C语言程举例

#include<stdio.h>
void main()
{
    int max(int x, int y);//调用max函数的声明 
    int a,b,c;//声明变量a b c
    /*
        &: 地址符 
        &a:a变量的地址 
    */
    scanf("%d,%d",&a,&b);//scanf是一个输入函数 输入a和b的值
    c = max(a,b);//调用max函数 将得到的值复制给C
    printf("max=%d\n",c);//输出C的值 
}

int max(int x, int y)
{
    if(x>y){
        return(x);
    }else{
        return(y);
    }
}

1.4.2 c语言程序的结构

c语言程序的结构:

1.一个程序由一个或多个源程序文件组成。

- 规模较小的程序,往往只包括一个源程序文件(一个源文件中只有一个main函数)。
一个源程序文件中可以包括3个部分:
    1. 预处理指令 如:#include<stdio.h> #define
        C编译系统在对源程序进行"翻译"(转换为二进制)以前,
        先由一个"预处理器"对指令进行预处理:将头文件的内容读取,放在#include后面
        编译程序对源程序进行编译得到目标程序(机器指令)
    2. 全局声明(在函数之外进行的数据声明)
        相当于Java中成员属性
        作用范围:整个源程序文件
    3. 函数定义
        每个函数用来实现一定的功能。调用这些函数时,会完成函数定义中指定的功能。

2.函数是C程序的主要组成部分

函数是C程序的基本单位,在设计良好的程序中,每个函数都用来实现一个或几个特地当的功能。
编写C程序的主要工作就是编写一个个函数。
C程序有且仅有一个main函数,有一个或多个函数组成

当程序规模较大时,为了方便编译 调试和管理,一个程序可以包括若干个源程序文件 一个源程序文件就是一个程序模块

编译时,对个源文件程序进行编译得到相应的目标程序,将目标程序连接成为一个统一的二进制可执行程序

程序中调用的函数可以是自定函数,可以是库函数

3.一个函数包括两个部分

int max (int x){}

函数首部

int max (int x)

函数类型 函数名 函数参数类型 函数参数名

函数体:{}(离函数首部最近的)

​ 声明部分:

​ 在调用函数中定义变量

​ 对被调用函数进行声明

​ 执行部分:

​ {}中的语句,指定在函数中进行的操作 也可以什么都不做即一个空函数

4.程序总是从main函数开始执行的

5.程序中对计算机的操作是由函数中的C语句完成的。

6.在每个数据声明语句的最后必须有一个分号

7.C语言本身不提供输入输出语句

​ 输入输出的操作是由库函数来完成的

8.程序应当包含注释

​ 增加必要的注释,提高程序的可读性。

1.5 运行C程序的步骤与方法

1.上机输入和编辑源程序

2.对源程序进行编译

1.先对程序中的预处理指令进行编译预处理
2.在对完整的源程序进行编译

编译的作用:
首先是检查源程序中是否有语法错误
没有语法错误之后,再编译时,自动包括了预编译和正式编译连个阶段,用户不用发出两次指令

3.进行连接处理

编译后得到的目标模块连接装配起来,再与函数库连接成一个整体,生成一个课供计算机执行的目标程序,称为 可执行程序

连接工作由”连接编辑程序”的软件来实现

4.运行可执行程序

运行C程序的流程图.png

1.6 程序设计的任务

程序设计是指从确定任务到得到结果,写出文档的全过程

一般经历以下几个工作阶段:

1.问题分析

​ 研究给定条件 分析最终目标,找出解题规律,选择合适的解题方法

2.设计算法

​ 设计出解题的方法和具体步骤

3.编写程序

​ 根据得出的算法,用高级语言编写出源程序

4.对源程序进行编辑 编译和连接,得到执行程序

5.运行程序,分析结果

​ 对程序进行调试,发现和排除程序中故障的工程

​ 测试:设计多组测试数据,检查不同数据的运行情况,尽量找出程序中存在的漏洞,并修改程序,使程序能够适应各种情况.

6.编写程序文档

提供程序说明书内容应该包括

程序名称 程序功能 运行环境 程序安装和启动,需要输入的数据,以及使用注意事项

软件是计算机程序和程序文档的总称