目录

  • 1 程序设计概述
    • 1.1 课程简介
    • 1.2 初识C语言
    • 1.3 程序设计简介
    • 1.4 C程序的编程环境
    • 1.5 实验一
  • 2 C语言基础与顺序结构程序设计
    • 2.1 数值型常量与变量
    • 2.2 赋值运算符与变量赋值
    • 2.3 算术运算符和表达式
    • 2.4 基本输入输出
    • 2.5 宏常量与符号常量
    • 2.6 数据类型转换与复合运算符
    • 2.7 数据在计算机内存中的存储
    • 2.8 函数(1)
    • 2.9 实验二
  • 3 选择(分支)结构程序设计
    • 3.1 算法概述
    • 3.2 关系运算与逻辑运算
    • 3.3 单分支结构
    • 3.4 双分支结构
    • 3.5 多分支结构
    • 3.6 变量的作用范围
    • 3.7 实验三
  • 4 循环结构程序设计
    • 4.1 循环控制结构与while
    • 4.2 条件控制型循环与do-while
    • 4.3 计数型(for)循环与循环嵌套
    • 4.4 随机数函数与循环编程实例
    • 4.5 函数(2)
    • 4.6 实验四
  • 5 数组
    • 5.1 数组的定义和初始化
    • 5.2 基于数组的算法编程
    • 5.3 数组作为函数参数的规则
    • 5.4 实验五
  • 6 字符与字符串
    • 6.1 字符型数据及其应用
    • 6.2 字符型数组与字符串
    • 6.3 字符串处理函数
    • 6.4 字符串作为函数参数的规则
    • 6.5 实验六
  • 7 指针
    • 7.1 指针的定义和初始化
    • 7.2 指针作为函数参数的规则
    • 7.3 指向数组的指针应用
    • 7.4 基于指针的字符串处理
    • 7.5 实验七
  • 8 结构体
    • 8.1 结构体声明及变量定义
    • 8.2 结构体应用基础
    • 8.3 结构体指针
    • 8.4 动态数据结构与单向链表
    • 8.5 实验八
  • 9 文件及文件操作
    • 9.1 文件概述
    • 9.2 文件的建立、打开与关闭
    • 9.3 文件的读写操作
    • 9.4 实验九
  • 10 项目设计
    • 10.1 项目1
    • 10.2 项目2
算法概述

教学要点:

算法的基础知识:

现实生活中,许多事情必须遵循一定的规则,按照固定的顺序执行,不可更改。
                                     —— 生活中的“算法”

对于复杂问题,通常采用“分治策略”解决。

分治策略:对于一个规模为n的问题,若该问题可以容易地解决(规模n较小)则直接解决;否则将其分解为k个规模较小的子问题(子问题缩小到很容易直接求出其解),然后将各子问题的解合并得到原问题的解。

程序 = 数据结构 + 算法

数据结构(Data Structure):计算机存储、组织数据的方式,指互相之间存在一种或多种特定关系的数据元素的集合。

计算机中的算法(Algorithm):为解决一个具体问题而采取的确定、有限、有序、可执行的操作步骤。不同的算法完成同样任务,可能所用的时间、空间或效率不同。

计算机算法分类:

数值算法:解决数值求解问题。

非数值算法:解决需要逻辑推理才能解决的问题。

算法的基本特性:

    有穷性:步骤有限,合理的时间内完成;

    确定性:步骤确定,无歧义;

    有效性:步骤有效执行,能得出确定结果;

    允许无输入或有多输入;

    肯定有一个或多个输出。

算法的描述:
            自然语言:符合自然思维习惯,文字多,可能有歧义,不易转化;
            流程图:易于理解,形象直观,转化方便,流程线转向灵活,阅读修改困难;
            NS图:无流程线,自顶向下顺序描述,有利于结构化设计;
            伪代码:类计算机语言的代码,无格式规范,易于转化。