小白从零开始学习C 之 程序设计和C语言基础知识

**

从零开始学习C

程序设计和C语言

1.1 什么是计算机程序

其实,计算机的每一个操作都是根据人们事先指定的指令进行的。

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

总之,计算机的一切操作都是由程序控制的,离开程序,计算机将一事无成。所以,计算机的本质是程序的机器,程序和指令是计算机系统中最基本的概念。

只有懂得程序设计才能真正了解计算机是这么工作的,才能更深入的使用计算机。

1.2 什么是计算机语言

人与人之间的交流需要通过语言。

人和计算机之间交流,也要解决语言问题。需要创建一种人与计算机都能识别的语言,这就是计算机语言。

计算机语言经历的几个发展阶段:

  1. 机器语言:计算机能直接识别和接受的二进制代码称为机器指令(machine
    instruction),机器指令的集合就是计算机的机器语言(machine
    language)

  2. 符号语言:为了克服机器语言难记的缺点,就创造了符号语言(symbolic
    language),它用一下英文字母和数字表示一个指令。

    如:ADD A,B (执行A+B =>A ,将寄存器A中的数与寄存器B中的数相加,放到寄存器A中)

计算机无法直接识别和执行符号语言,所以需要一种叫汇编语言的转换程序,把符号语言转换成机器指令。转换过程称为“代真”或“汇编”,,因此,符号语言又称符号汇编语言(symbolic assembler language)或汇编语言(symbolic language)。

  1. 高级语言:为了克服低级语言的缺陷,在20世纪50年代创造出了第一个计算机高级语言——FORTRAN语言。它很接近于人们习惯使用的自然语言和数学语言。

当然,计算机也是不能直接识别高级语言的,需要一种称为“编译器”的软件,把用高级语言写的程序(源程序)转换成为机器指令的程序(目标程序),然后让计算机执行机器指令程序,得到结果。

机器语言的一个语句往往对应多条机器指令。

机器语言经历了不同的发展阶段:

(1) 非结构化语言。初期的语言属于非结构化语言,编程风格比较随意,只要符合语法规则即可,没有严格的语法要求,程序中的流程可以随意跳转。

(2) 结构化语言。为了解决语言的结构问题,规则程序必须由具有良好特性的基本结构(顺序结构,分支结构,循环结构)构成,程序中的流程不允许随意跳转,程序总是由上而下顺序执行各个基本结构。

(3) 面向对象的语言。简介略。

1.3 C语言的特点

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

C语言主要有一下一些主要特点:

(1) 语言简洁、紧凑、使用方便、灵活。C语言一共有37个关键字。

(2) 运算符丰富

(3) 数据类型丰富

(4) 具有结构化控制语句。C语言完全是模块化和结构化的语言。

(5) 语法限制不太严格,程序设计*度大。

(6) C语言允许直接访问物理地址能进行(bit)操作,能实现汇编语言大部分功能,可以直接对硬件进行操作。

(7) C语言编写的程序可移植性好。几乎在所有的计算机系统中都可以使用C语言。

(8) 生成目标代码质量高,程序执行效率高。

1.4 最简单的C语言程序

#include<stdio.h>
     int main()
       {
       printf("Hello world");
       
                return 0;
       }

运行结果
每一个C语言程序都必须有一个main函数。函数体由花括号{}括起来。
“stdio.h”是系统提供的一个文件名,文件后缀.h 的意思是头文件(header file),因为这些文件都是放在程序各个文件模块的开头的。

小白从零开始学习C 之 程序设计和C语言基础知识

1.4 C语言的程序结构

(1)一个程序由一个或多个源程序文件组成

          1.预处理命名。如#include<stdio.h>

                C编译系统在对源程序翻译以前,先由一个预处理器对原程序进行预指令处理。

2.全局声明。即在函数之外进行的数据声明。 在函数外面的声明变量称为全局变量。

3.函数定义。略

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

           一个C语言程序由一个或多个函数组成。其中必须包含一个main函数。(3)一个函数包括两个部分

1.函数首部。即函数的第一行,包括函数名,函数类型,函数属性,函数参数(形式参数),函数类型等

一对函数名后面必须跟一对圆括号。

2.函数主体。即函数首部下面的花括号内部分。

函数体一般包括一下两部分:

 声明部分

 执行部分

(4)函数总是从main函数开始执行的

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

(6)在每个数据声明和语句的最后必须有一个分号。

(7)C语言本身不提供输入输出语句。输入和输出操作是由库函数中的 scanf 和printf等函数来完成的。