【C语言零基础教学】——入门篇

一. 初识C语言

1.计算机程序:所谓程序,就是一组计算机能识别和执行的指令。
2.计算机语言:计算机和人都能识别的语言
发展阶段:
(1)机器语言:计算机能直接识别和接受的二进制代码称为机器指令。机器指令的集合就是该计算机的机器语言。
(2)符号语言:需要一种称为汇编程序的软件把符号语言的指令转换为机器指令。一般,一条符号语言的指令对应转换为一条机器指令。转换的过程称为代真或汇编,因此,符号语言又称为符号汇编语言或汇编语言。
PS:机器语言和汇编语言是完全依赖于具体机器特性的,是面向机器的语言。由于它贴近计算机,或者说离计算机很近,故称为计算机低级语言。
(3)高级语言:不依赖于具体机器,它与具体机器距离较远,故称为计算机高级语言。用一种称为编译程序的软件把用高级语言写的程序(称为源程序)转换为机器指令的程序(称为目的程序),然后让计算机执行计算机执行机器指令程序,最后得到结果。高级语言的一个语句往往对应多条机器指令。
发展阶段:①非结构化的语言②结构化语言:规定程序必须有良好特性的基本结构(顺序结构,选择结构,循环结构)构成,程序的流程不允许随意跳转,程序总是由上而下顺序执行各个基本结构。例如:C语言。PS:以上两种语言都是基于过程的语言,在编写程序时需要具体指定每一个过程的细节。适合写规模小的程序。③面对对象的语言:如C++,C#和Java等语言。
3.C语言发展:1989年,ANSI公布了一个完整的C语言标准——ANSI X3.159—1989(常称为ANSI C或C89)。1990年,国际标准化组织ISO接受89作为国际标准ISO/IEC9899:1990,它和ANSI的89基本是相同的。软件公司多以C89为基础开发
4.C语言特点:
(1)语言简洁,紧凑,使用方便,灵活。
(2)运算符丰富。
(3)数据类型丰富。
(4)具有结构化的控制语句。
(5)语法限制不太严格,程序设计自由度大。
(6)C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
(7)用C语言编写的程序可移植性好。
(8)生成目标代码质量高,程序执行效率高。
5.一些基础的代码知识举例:
(1)两种注释方式:①单行注释://注释内容;②多行注释:/※注释内容※/。
(2)#include的作用提供有关输入输出函数的信息,例如对输入输出函数的声明和宏的定义,全局变量的定义等。stdio是standard input & output的缩写,文件后缀.h的意思是头文件(head file),因为这些文件都是放在各文件模块的开头的。输入输出函数的相关信息已事先放在stdio.h文件中。现在,用#include指令把这些信息调入供使用。
(3)int函数类型中return 0的作用:当main函数执行结束前将整数0作为函数值,返回到函数处。
(4)每一个C语言程序必须有一个main函数。
(5)函数调用,实际参数,形式参数。
6.C语言程序的结构:
(1)一个程序由一个或多个源程序文件组成,源程序文件中包括3个部分:预处理指令,全局声明:在函数外面声明的变量,函数定义。
(2)函数是C程序主要的组成成分。
(3)一个函数包括两个部分:函数首部:函数类型,函数名(函数参数类型 函数参数名,…,…);函数体:声明部分,执行部分。
(4)程序总是从main函数开始执行的。
(5)程序中要求计算机完成的操作是由函数中的C语句完成的。
(6)在每个数据声明和语句的最后必须有一个分号。
(7)C语言本身不提供输入输出语句。⑧程序应当包含注释。
7.运行C程序的步骤与方法:
(1)上机输入和编辑源程序。文件用.c作为后缀,生成源程序文件。
(2)对源程序进行编译,首先用C编译系统提供的“预处理器”(又称“预处理程序”或“预编译器”)对程序中的预处理指令进行编译预处理。由预处理得到的信息与程序其他部分一起组成一个完整的,可以用来进行正式编译的源程序,然后由编译系统对该源程序进行编译。编译首先是对源程序检查错误,直到没有语法错误为止。此时,编译程序自动把源程序转化为二进制形式的目标程序(文件后缀为.obj)。如果不特别指定,此目标程序一般也存放在用户当前目录下,此时源文件没有消失。
(3)进行连接处理。后缀为.obj文件还不能直接供计算机直接执行。必须把所有的编译后得到的目标模块连接装配起来,再与函数库相连接成一个整体,生成一个可供计算机执行的目标程序,称为可执行程序(executive program),文件后缀为.exe。
(4)运行可执行程序。
8.程序设计的任务:
(1)问题分析。
(2)设计算法。
(3)编写程序。
(4)对源程序进行编辑,编译和连接。
(5)运行程序,分析结果。
(6)编写程序文档。

二.算法–程序的灵魂

1.程序=算法+数据结构
一个程序主要包括两个方面的信息:
(1)对数据的描述。在程序中要指定用到哪些数据,以及这些数据的类型和数据的组织形式。这就是数据结构。
(2)对操作的描述。要求计算机进行操作的步骤,也就是算法。
PS:实际上,一个过程化的程序除了以上两个主要元素之外,还应当采用结构化程序设计方法进行程序设计,并且用某一种计算机语言表示。因此,算法(灵魂),数据结构(加工对象),程序设计方法(方法)和语言工具(工具)4个方面是一个程序设计人员所应具备的知识。
2.关于算法
(1)计算机算法:计算机能执行的算法。
(2)计算机算法分类:①数值运算算法 。②非数值运算算法。
(3)算法的特性:①有穷性:一个算法应包含有限的操作步骤,而不能是无限的。②确定性:算法中的每一个步骤都应当是确定的,而不是含糊的,模棱两可的。③有零个或多个输入:所谓输入是指在执行算法时需要从外界取得必要的信息。④有一个或多个输出:算法的目的是为了求解,“解”就是输出⑤有效性:算法的每一个步骤都应当能有效地执行,并得到确定的结果。
(4)算法的表示:①自然语言。②传统流程图。③结构化流程图(顺序结构,选择结构,循环结构:当型while循环结构;直到型until循环结构)。④N-S流程图⑤伪代码⑥计算机语言。
(5)结构化程序设计方法的保证:①自顶向下。②逐步细化。③模块化设计。④结构化编码。

参考书目:谭浩强.C程序设计(第五版).北京:清华大学出版社,2017.

你可能感兴趣的:(c语言,c++,开发语言,物联网)