C语言程序设计

裴霞 马怀志

目录

  • 1 C语言概述
    • 1.1 C语言课程介绍
    • 1.2 C语言的发展历史和特点
    • 1.3 什么是编程
    • 1.4 VC++6.0介绍
    • 1.5 Code:Blocks介绍
    • 1.6 一个简单C语言程序的分析及运行
    • 1.7 讨论:C语言程序的基本构成
    • 1.8 讨论:C语言编程的基本步骤
  • 2 C语言数据类型
    • 2.1 进制及进制的标识
    • 2.2 R进制向十进制的转换(R以2为例)
    • 2.3 十进制向R进制的转换
    • 2.4 二进制和八进制间的相互转换
    • 2.5 二进制和十六进制间的相互转换
    • 2.6 存储空间大小的单位(位bit和字节Byte)
    • 2.7 存储空间单位间的换算与存储举例
    • 2.8 数据的存储形式——补码
    • 2.9 讨论:计算机为什么只能处理二进制数据
    • 2.10 讨论:计算机怎样表示数字之外的数?
    • 2.11 补码运算举例与补码的本质
    • 2.12 C数据类型的分类
    • 2.13 数值型常量
    • 2.14 符号常量及应用举例
    • 2.15 变量的声明与赋初值
    • 2.16 C语言的标识符
    • 2.17 赋值运算符
    • 2.18 整形变量及分类
    • 2.19 整型变量的表示范围及数据溢出举例
    • 2.20 实型变量的分类及有效位数
    • 2.21 实型变量的存储方式及变量的表示范围
    • 2.22 实型变量存储上的舍入误差举例
    • 2.23 实型变量利用printf输出时的舍入误差举例
    • 2.24 sizeof的用法
  • 3 C语言中的运算符和表达式
    • 3.1 C运算符概览
    • 3.2 算数运算符(除法和求余)
    • 3.3 除法和求余运算举例
    • 3.4 复合赋值运算符
    • 3.5 增1和减1运算符及应用举例
    • 3.6 const常量
    • 3.7 表达式和赋值中的自动类型转换
    • 3.8 自动类型转换应用举例
    • 3.9 强制类型转换运算符
    • 3.10 常用标准数学库函数
  • 4 键盘输入和屏幕输出
    • 4.1 字符常量与转义字符
    • 4.2 字符的存储、转义表示及字符变量
    • 4.3 单个字符的输入/输出
    • 4.4 printf函数的格式字符
    • 4.5 printf函数的格式修饰符
    • 4.6 scanf函数的格式字符
    • 4.7 scanf函数的格式修饰符
    • 4.8 scanf函数中*的用法
    • 4.9 scanf函数的非法输入字符及常见错误
  • 5 选择控制结构
    • 5.1 算法及其特性
    • 5.2 算法的表示方法
    • 5.3 关系运算符及关系表达式
    • 5.4 单分支的if选择结构
    • 5.5 双分支的if-else选择结构
    • 5.6 条件运算符及条件表达式
    • 5.7 多分支的if选择结构
    • 5.8 逻辑运算符及逻辑表达式
    • 5.9 逻辑运算及其他运算优先级
    • 5.10 逻辑运算应用
    • 5.11 逻辑表达式例题-大写字母转换为小写字母
    • 5.12 switch选择结构及break语句
    • 5.13 选择结构总结
  • 6 循环控制结构
    • 6.1 为什么使用循环及构成要素
    • 6.2 while循环结构
    • 6.3 while循环结构应用举例
    • 6.4 do while循环语句
    • 6.5 for循环语句的结构
    • 6.6 for循环语句结构的特殊情况
    • 6.7 三种循环结构的比较总结
    • 6.8 条件控制的循环举例—猜数游戏(嵌套循环的引入)
    • 6.9 嵌套循环
    • 6.10 嵌套循环结构练习1
    • 6.11 嵌套循环结构练习2
    • 6.12 利用break和就continue对循环进行调整
    • 6.13 程序控制的goto语句
    • 6.14 穷举法编程举例
    • 6.15 编程思想的探讨
  • 7 函数
    • 7.1 函数的分类及函数的定义
    • 7.2 函数的定义例题
    • 7.3 函数的原型声明
    • 7.4 函数的调用
    • 7.5 函数的返回值
    • 7.6 函数的递归调用
    • 7.7 函数的递归调用的原理
    • 7.8 递归与迭代的区别
    • 7.9 函数的嵌套调用
    • 7.10 局部变量和全局变量
    • 7.11 自动变量和静态变量
    • 7.12 寄存器变量和外部变量
    • 7.13 内部函数和外部函数
    • 7.14 变量的存储类别小结
    • 7.15 函数测验
  • 8 数组
    • 8.1 一维数组的定义
    • 8.2 一维数组的引用
    • 8.3 一维数组引用的越界问题
    • 8.4 一维数组的初始化
    • 8.5 二维数组的定义
    • 8.6 二维数组的引用和初始化
    • 8.7 二维数组应用举例
    • 8.8 二维数组应用举例(2)
    • 8.9 一维数组做函数参数
    • 8.10 一维数组做函数参数举例
    • 8.11 数据排序——冒泡法
    • 8.12 数据排序——选择法
    • 8.13 排序算法的比较和总结
    • 8.14 数据查找—顺序查找
    • 8.15 数据查找—折半查找
    • 8.16 二维数组做函数参数及举例
  • 9 指针
    • 9.1 指针和间接引用的含义
    • 9.2 指针变量的定义和初始化
    • 9.3 指针变量的引用_间接取址运算符
    • 9.4 指针变量作为函数参数
    • 9.5 指针变量作为函数参数再举例
    • 9.6 函数指针的定义
    • 9.7 函数指针的应用及内含的编程思想
  • 10 字符串
    • 10.1 字符串常量的定义和存储
    • 10.2 指针的运算规则
    • 10.3 字符串的输入输出(scanf和printf)
    • 10.4 字符串的输入输出(gets和puts)
    • 10.5 字符串处理函数
    • 10.6 字符串处理函数应用举例
    • 10.7 向函数传递字符串
    • 10.8 返回指针值的函数及应用举例
    • 10.9 字符串测验
  • 11 指针和数组
    • 11.1 指针与一维数组间的关系
    • 11.2 指针引用一维数组举例.
    • 11.3 二维数组下标引用法的剖析
    • 11.4 使用两种指针引用二维数组
    • 11.5 指针引用二维数组举例
    • 11.6 指针数组及应用
    • 11.7 动态内存分配
    • 11.8 动态内存分配应用举例
  • 12 结构体与共用体
    • 12.1 结构体类型的声明
    • 12.2 用typedef声明新类型名
    • 12.3 结构体变量的定义
    • 12.4 结构体变量的初始化
    • 12.5 结构体变量的引用
    • 12.6 结构体所占内存及结构体数组定义
    • 12.7 结构体指针的定义和初始化
    • 12.8 结构体与函数
    • 12.9 共用体类型
    • 12.10 枚举类型
    • 12.11 单向链表的定义
    • 12.12 单向链表的建立
    • 12.13 单向链表的输出
    • 12.14 单向链表的建立和输出代码分析
    • 12.15 单向链表的删除
    • 12.16 单向链表的删除代码分析
    • 12.17 单向链表的插入
    • 12.18 单向链表的插入代码分析
  • 13 文件操作
    • 13.1 文件的分类
    • 13.2 缓冲文件系统FILE指针说明
    • 13.3 文件的打开和关闭函数使用
    • 13.4 文件中的单个字符读写函数
    • 13.5 文件中的字符串读写函数
    • 13.6 文件中的格式读写函数
    • 13.7 文件中的数据块读写函数
    • 13.8 文件随机读写时文件位置标记的定位
单分支的if选择结构