目录

  • 1 第一章 C语言简介
    • 1.1 C语言前世今生
    • 1.2 主流开发环境介绍
    • 1.3 第一个小程序解析
    • 1.4 常见编译错误
    • 1.5 章节知识点小结
  • 2 算法基础
    • 2.1 算法-程序的灵魂
    • 2.2 算法的描述-流程图
  • 3 数据类型与运算符
    • 3.1 数据描述
    • 3.2 运算符和表达式1
    • 3.3 运算符和表达式2
    • 3.4 章节知识点小结
  • 4 顺序结构程序设计
    • 4.1 输入和输出
    • 4.2 顺序结构程序设计
    • 4.3 章节知识点小结
  • 5 选择结构程序设计
    • 5.1 关系运算符和关系表达式
    • 5.2 逻辑运算符和逻辑表达式
    • 5.3 if语句
    • 5.4 条件运算符
    • 5.5 switch语句
    • 5.6 章节知识点小结
  • 6 循环结构程序设计
    • 6.1 while循环结构
    • 6.2 do_while循环结构
    • 6.3 for循环结构
    • 6.4 循环的嵌套
    • 6.5 break语句和continue语句
    • 6.6 章节知识点小结
  • 7 数组
    • 7.1 一维数组
    • 7.2 二维数组
    • 7.3 字符数组
    • 7.4 章节知识点小结
  • 8 函数
    • 8.1 子程序设计
    • 8.2 函数定义
    • 8.3 函数的调用
    • 8.4 局部变量和全局变量
    • 8.5 参数传递
    • 8.6 函数递归调用
    • 8.7 章节知识点小结
  • 9 指针
    • 9.1 指针的基本概念
    • 9.2 指针变量的定义及引用
    • 9.3 通过指针引用数组元素
    • 9.4 指向多维数组的指针和指针变量
    • 9.5 用指向数组的指针作函数参数
    • 9.6 指针与字符串
    • 9.7 函数指针和指针函数
    • 9.8 章节知识点小结
  • 10 用户自己建立数据类型
    • 10.1 定义和使用结构体变量
    • 10.2 使用结构体数组
    • 10.3 结构体指针
    • 10.4 章节知识点小结
  • 11 编译预处理
    • 11.1 宏定义预处理
    • 11.2 文件包含预处理
    • 11.3 条件编译预处理
    • 11.4 章节知识点小结
  • 12 文件
    • 12.1 文件的基本知识
    • 12.2 文件的基本操作
    • 12.3 章节知识点小结
算法-程序的灵魂


一、算法的特征和发展由来


算法的英文名称是Algorithm,这个词在1957年之前在Webster's New World Dictionary(《韦氏新世界词典》)中还未出现,只能找到带有它的古代涵义的较老形式的“Algorism”(算术),是指用阿拉伯数字进行算术运算的过程。在中世纪时,珠算家用算盘进行计算,而算术家用算术进行计算。
根据经验和发展结论得出,算法应该具有如下五个重要的特征。
(1)有穷性:保证执行有限步骤之后结束;
(2)确切性:每一步骤都有确切的定义;
(3)输入:每个算法有零个或多个输入,以刻画运算对象的初始情况,所谓零个输入是指算法本身定了初始条件;
(4)输出:每个算法有一个或多个输出,显示对输入数据加工后的结果。没有输出的算法是毫无意义的;
(5)可行性:在原则上算法能够精确地运行,进行有限次运算后即可完成一种运算。


二、在计算机中的算法


1.认识计算机中的算法
计算机中算法可分为如下两大类。
(1)数值运算算法:求解数值。
(2)非数值运算算法:事务管理领域。
2.为什么是程序灵魂
经过上一节的学习,了解了算法在计算机编程中的重要作用后,我对算法是程序的灵魂这一说法表示深信不疑。在当今程序员的世界,算法已经成为衡量一名程序员水平高低的参照物。高深的程序员都会看重数据结构和算法的作用,水平越高,就越能理解算法的重要性。算法不仅仅是运算工具,它更是程序的灵魂。在现实项目开发过程中,很多实际问题需要精心设计的算法才能有效解决。从个人来讲,对算法的掌握也是区别于人,保持竞争力的重要方面。
算法是计算机处理信息的本质,因为计算机程序本质上是一个算法,告诉计算机确切的步骤来执行一个指定的任务,如计算职工的薪水或打印学生的成绩单。一般地,当算法在处理信息时,数据会从输入设备读取,写入输出设备,可能保存起来以供以后使用。
著名计算机科学家沃思提出了下面的公式。
数据结构+算法=程序


实际上,一个程序应当采用结构化程序设计方法进行程序设计,并且用某一种计算机语言来表示。因此,可以用下面的公式表示。
程序=算法+数据结构+程序设计方法+语言和环境