目录

  • 1 程序设计和C语言
    • 1.1 什么是计算机程序
    • 1.2 什么是计算机语言
    • 1.3 C语言的发展及其特点
    • 1.4 最简单的C语言程序
      • 1.4.1 最简单的C语言程序举例
      • 1.4.2 C语言程序的结构
    • 1.5 运行C程序的步骤与方法
    • 1.6 程序设计的任务
  • 2 算法 -- 程序的灵魂
    • 2.1 程序=算法+数据结构
    • 2.2 什么是算法
    • 2.3 简单的算法举例
    • 2.4 算法的特性
    • 2.5 怎样表示一个算法
      • 2.5.1 用自然语言表示算法
      • 2.5.2 用流程图表示算法
      • 2.5.3 三种基本结构和改进的流程图
      • 2.5.4 用N-S流程图表示算法
      • 2.5.5 用伪代码表示算法
      • 2.5.6 用计算机语言表示算法
    • 2.6 结构化程序设计方法
  • 3 最简单的C程序设计 -- 顺序程序设计
    • 3.1 顺序程序设计举例
    • 3.2 数据的表现形式及其运算
      • 3.2.1 常量和变量
      • 3.2.2 数据类型
      • 3.2.3 新建课程目录
      • 3.2.4 整型数据
      • 3.2.5 字符型数据
      • 3.2.6 浮点型数据
      • 3.2.7 怎样确定常量的类型
    • 3.3 运算符和表达式
      • 3.3.1 C运算符
      • 3.3.2 基本的算术运算符
      • 3.3.3 自增(++)、自减(--)运算符
      • 3.3.4 算术表达式和运算符的优先级与结合性
      • 3.3.5 不同类型数据间的混合运算
      • 3.3.6 强制类型转换运算符
    • 3.4 C语句
      • 3.4.1 C语句的作用和分类
      • 3.4.2 最基本的语句 -- 赋值语句
    • 3.5 数据的输入输出
      • 3.5.1 输入输出举例
      • 3.5.2 有关数据输入输出的概念
      • 3.5.3 用printf函数输出数据
      • 3.5.4 用scanf函数输入数据
      • 3.5.5 字符输入输出函数
  • 4 选择结构程序设计
    • 4.1 选择结构和条件判断
    • 4.2 用if语句实现选择结构
      • 4.2.1 用if语句处理选择结构举例
      • 4.2.2 if语句的一般形式
    • 4.3 关系运算符和关系表达式
      • 4.3.1 关系运算符及其优先次序
      • 4.3.2 关系表达式
    • 4.4 逻辑运算符和逻辑表达式
      • 4.4.1 逻辑运算符及其优先次序
      • 4.4.2 逻辑表达式
    • 4.5 条件运算符和条件表达式
    • 4.6 选择结构的嵌套
    • 4.7 用switch语句实现多分支选择结构
    • 4.8 选择结构程序综合举例
  • 5 循环结构程序设计
    • 5.1 为什么需要循环控制
    • 5.2 用while语句实现循环
    • 5.3 用do...while语句实现循环
    • 5.4 用for语句实现循环
    • 5.5 循环的嵌套
    • 5.6 几种循环的比较
    • 5.7 改变循环执行的状态
      • 5.7.1 用break语句提前终止循环
      • 5.7.2 用continue语句提前结束本次循环
      • 5.7.3 break语句和continue语句的区别
    • 5.8 循环程序举例
  • 6 利用数组处理批量数据
    • 6.1 怎样定义和引用一维数组
      • 6.1.1 怎样定义一维数组
      • 6.1.2 怎样引用一维数组元素
      • 6.1.3 一维数组的初始化
      • 6.1.4 一维数组程序举例
    • 6.2 怎样定义和引用二维数组
      • 6.2.1 怎样定义二维数组
      • 6.2.2 怎样引用二维数组的元素
      • 6.2.3 二维数组的初始化
      • 6.2.4 二维数组程序举例
    • 6.3 字符数组
      • 6.3.1 怎样定义字符数组
      • 6.3.2 字符数组的初始化
      • 6.3.3 怎样引用字符数组中的元素
      • 6.3.4 字符串和字符串结束标志
      • 6.3.5 字符数组的输入输出
      • 6.3.6 使用字符串处理函数
      • 6.3.7 字符数组应用举例
  • 7 用函数实现模块化程序设计
    • 7.1 为什么要用函数
    • 7.2 怎样定义函数
      • 7.2.1 为什么要定义函数
      • 7.2.2 定义函数的方法
    • 7.3 调用函数
      • 7.3.1 函数调用的形式
      • 7.3.2 函数调用时的数据传递
      • 7.3.3 函数调用的过程
      • 7.3.4 函数的返回值
    • 7.4 对被调用函数的声明和函数原型
    • 7.5 函数的嵌套调用
    • 7.6 函数的递归调用
    • 7.7 数组作为函数参数
      • 7.7.1 数组元素作函数实参
      • 7.7.2 一维数组名作函数参数
      • 7.7.3 多维数组名作函数参数
    • 7.8 局部变量和全局变量
      • 7.8.1 局部变量
      • 7.8.2 全局变量
    • 7.9 变量的存储方式和生存期
      • 7.9.1 动态存储方式与静态存储方式
      • 7.9.2 局部变量的存储类型
      • 7.9.3 全局变量的存储类别
      • 7.9.4 存储类别小结
    • 7.10 关于变量的声明和定义
    • 7.11 内部函数和外部函数
      • 7.11.1 内部函数
      • 7.11.2 外部函数
  • 8 善于利用指针
    • 8.1 指针是什么
    • 8.2 指针变量
      • 8.2.1 使用指针变量的例子
      • 8.2.2 怎样定义指针变量
      • 8.2.3 怎样引用指针变量
      • 8.2.4 指针变量作为函数参数
    • 8.3 通过指针引用数组
      • 8.3.1 数组元素的指针
      • 8.3.2 在引用数组元素时指针的运算
      • 8.3.3 通过指针引用数组元素
      • 8.3.4 用数组名作函数参数
      • 8.3.5 通过指针引用多维数组
    • 8.4 新建课程目录
    • 8.5 通过指针引用字符串
      • 8.5.1 字符串的引用方式
      • 8.5.2 字符指针作函数参数
      • 8.5.3 使用字符指针变量和字符数组的比较
    • 8.6 指向函数的指针
      • 8.6.1 什么时函数的指针
      • 8.6.2 用函数指针变量调用函数
      • 8.6.3 怎样定义和使用指向函数的指针变量
      • 8.6.4 用指向函数的指针作函数参数
    • 8.7 返回指针值的函数
    • 8.8 指针数组和多重指针
      • 8.8.1 什么时指针数组
      • 8.8.2 指向指针数组的指针变量
      • 8.8.3 指针数组作main函数的形参
    • 8.9 动态内存分配和指向它的指针变量
      • 8.9.1 什么是内存的动态分配
      • 8.9.2 怎样建立内存的动态分配
      • 8.9.3 void指针类型
    • 8.10 有关指针的小结
  • 9 用户自己建立数据类型
    • 9.1 定义和使用结构体变量
      • 9.1.1 自己建立结构体类型
      • 9.1.2 定义结构体类型变量
      • 9.1.3 结构体变量的初始化和引用
    • 9.2 使用结构体数组
      • 9.2.1 定义结构体数组
      • 9.2.2 结构体数组的应用举例
    • 9.3 结构体指针
      • 9.3.1 指向结构体变量的指针
      • 9.3.2 指向结构体数组的指针
      • 9.3.3 用结构体变量和结构体变量的指针作函数参数
    • 9.4 用指针处理链表
      • 9.4.1 什么是链表
      • 9.4.2 建立简单的静态链表
      • 9.4.3 建立动态链表
      • 9.4.4 输出链表
    • 9.5 共同体类型
      • 9.5.1 什么是共同体类型
      • 9.5.2 引用共同体变量的方式
      • 9.5.3 共同体类型数据的特点
    • 9.6 使用枚举类型
    • 9.7 用typedef声明新类型名
  • 10 对文件的输入输出
    • 10.1 C文件的有关基本知识
      • 10.1.1 什么是文件
      • 10.1.2 文件名
      • 10.1.3 文件的分类
      • 10.1.4 文件缓冲区
      • 10.1.5 文件类型指针
    • 10.2 打开与关闭文件
      • 10.2.1 用fopen函数打开数据文件
      • 10.2.2 用fclose函数关闭数据文件
    • 10.3 顺序读写数据文件
      • 10.3.1 怎样向文件读写字符
      • 10.3.2 怎样向文件读写一个字符串
      • 10.3.3 用格式化的方式读写文本文件
      • 10.3.4 用二进制方式向文件读写一组数据
    • 10.4 随机读写数据文件
      • 10.4.1 文件位置标记及其定位
      • 10.4.2 随机读写
    • 10.5 文件读写的出错检测
  • 11 预处理指令
    • 11.1 宏定义
      • 11.1.1 不带参数的宏定义
      • 11.1.2 带参数的宏定义
    • 11.2 “文件包含”处理
    • 11.3 条件编译
  • 12 位运算
    • 12.1 位运算和位运算符
      • 12.1.1 “按位与”运算
      • 12.1.2 “按位或”运算
      • 12.1.3 “异或”运算
      • 12.1.4 “取反”运算
      • 12.1.5 左移运算
      • 12.1.6 右移运算
      • 12.1.7 位运算赋值运算符
      • 12.1.8 不同长度的数据进行按位运算
    • 12.2 位运算举例
    • 12.3 位段
  • 13 常见错误分析
  • 14 C程序案例
    • 14.1 案例1  个人所得税计算
    • 14.2 案例2  学生试卷分数统计
    • 14.3 案例3  电话订餐信息处理
结构化程序设计方法