本书由浅入深地讲解了C语言开发技术,以遵循科学合理的学习计划为主线,通过典型实例来讲解其具体使用。
全书内容分为20课,其中第1~8课依次讲解了C语言概述、C语言算法和数据类型、C语言运算符和表达式、C语句和数据的输入输出,程序流程控制、数组和字符串、函数,以及指针。第9~12课讲解了结构体、共用体和枚举,链表,位运算和编译预处理。第13~17课讲解了文件操作处理,错误和程序调试,组件技术的相关知识,C语言程序设计范例和C语言高级编程技术。第l8-20课分别讲解了C语言俄罗斯方块游戏,Ping网络项目,学生成绩管理系统的流程和实现方法。光盘中包含全书案例的完整源代码、C语言开发环境快速入门的视频教程,以及赠送的4套完整大型案例的源代码和视频讲解。本书内容全面,不但适合没有任何C语言基础的初学者,而且适合有一定设计基础并且想进一步提高水平的中级读者。
目录
- 第1篇 编程基础篇
- 第1课 C语言概述
- 1.1 本课学习目标
- 1.2 C语言发展介绍
- 1.3 C语言特点
- 1.4 C语言编译器
- 1.5 安装Turbo C 3.0
- 1.6 Turbo C 3.0开发环境
- 1.6.1 File(文件)菜单
- 1.6.2 Edit(编辑)菜单
- 1.6.3 Run(运行)菜单
- 1.6.4 Compile(编译)菜单
- 1.6.5 Project(项目)菜单
- 1.6.6 Debug(调试)菜单
- 1.7 进行C语言程序开发
- 1.7.1 编辑源代码
- 1.7.2 源代码编译
- 1.7.3 链接目标代码
- 1.7.4 运行可执行程序
- 1.8 一个简单的C语言程序
- 1.9 C语言程序结构
- 1.9.1 C程序组成部分
- 1.9.2 C语言程序格式总结
- 1.10 本课回顾和网络关键词
- 第2课 C语言算法和数据类型
- 2.1 本课学习目标
- 2.2 算法基础
- 2.2.1 算法的概念
- 2.2.2 流程图表示算法
- 2.2.3 计算机语言表示算法
- 2.3 C语言数据类型概述
- 2.4 常量和变量
- 2.4.1 常量
- 2.4.2 变量
- 2.5 整型数据
- 2.5.1 整型常量
- 2.5.2 整型变量
- 2.6 实型数据
- 2.6.1 实型常量
- 2.6.2 实型变量
- 2.6.3 实型常量的类型
- 2.7 字符型数据
- 2.7.1 字符常量
- 2.7.2 字符串常量
- 2.7.3 字符变量
- 2.8 初始化变量
- 2.9 整型、实型与字符型数据间的运算
- 2.10 本课回顾和网络关键词
- 第3课 C语言运算符和表达式
- 3.1 本课学习目标
- 3.2 运算符和表达式基础
- 3.2.1 运算符的种类
- 3.2.2 运算符的优先级
- 3.3 算术运算符和算术表达式
- 3.3.1 单目运算符
- 3.3.2 双目运算符
- 3.4 赋值运算符和赋值表达式
- 3.4.1 基本赋值运算符
- 3.4.2 复合赋值运算符
- 3.4.3 赋值表达式
- 3.5 关系运算符和关系表达式
- 3.6 逻辑运算符和逻辑表达式
- 3.7 逗号运算符和逗号表达式
- 3.8 求字节数运算符
- 3.9 本课回顾和网络关键词
- 第4课 C语句和数据的输入输出
- 4.1 本课学习目标
- 4.2 C语句初步
- 4.2.1 C语句简介
- 4.2.2 空白对语句的作用
- 4.2.3 赋值语句
- 4.3 数据的输入和输出
- 4.3.1 putchar函数
- 4.3.2 getchar函数
- 4.3.3 printf函数
- 4.3.4 scanf函数
- 4.3.5 puts函数
- 4.3.6 gets函数
- 4.4 本课回顾和网络关键词
- 第5课 程序流程控制
- 5.1 本课学习目标
- 5.2 顺序结构
- 5.3 选择结构
- 5.3.1 单分支结构语句
- 5.3.2 双分支结构语句
- 5.3.3 多分支结构语句
- 5.3.4 条件运算符和条件表达式
- 5.4 循环结构
- 5.4.1 for语句循环
- 5.4.2 while语句
- 5.4.3 do…while语句
- 5.4.4 循环语句的总结和效率
- 5.4.5 goto语句
- 5.4.6 break语句
- 5.4.7 continue语句
- 5.4.8 死循环和退出程序
- 5.5 本课回顾和网络关键词
- 第6课 数组和字符串
- 6.1 本课学习目标
- 6.2 一维数组
- 6.2.1 定义一维数组
- 6.2.2 引用一维数组元素
- 6.2.3 初始化一维数组
- 6.3 多维数组
- 6.3.1 二维数组
- 6.3.2 多维数组
- 6.3.3 引用多维数组
- 6.4 字符数组与字符串
- 6.4.1 字符数组
- 6.4.2 字符串与字符数组
- 6.4.3 字符数组的输入/输出
- 6.5 字符串处理函数
- 6.5.1 测试字符串长度函数
- 6.5.2 字符串大小写转换函数
- 6.5.3 字符串复制函数
- 6.5.4 字符串比较函数
- 6.5.5 字符串连接函数
- 6.5.6 其他字符串函数
- 6.5.7 将字符串转换成数值的函数
- 6.6 字符处理函数
- 6.6.1 字符检测函数
- 6.6.2 字符大小写转换函数
- 6.7 本课回顾和网络关键词
- 第7课 函数
- 7.1 本课学习目标
- 7.2 C语言函数基础
- 7.2.1 函数分类
- 7.2.2 函数的定义
- 7.3 函数的声明和函数原型
- 7.4 参数
- 7.4.1 形参和实参
- 7.4.2 数组名作为函数参数
- 7.4.3 数组作为函数参数
- 7.5 返回值
- 7.6 函数的调用
- 7.6.1 函数调用格式
- 7.6.2 函数调用的方式
- 7.6.3 对被调函数的声明
- 7.6.4 调用函数方式的深入分析
- 7.7 函数的嵌套调用和递归调用
- 7.7.1 函数的嵌套调用
- 7.7.2 函数的递归调用
- 7.8 变量的作用域和生存期
- 7.8.1 变量作用域
- 7.8.2 静态存储变量和动态存储变量
- 7.9 项目文件
- 7.10 内部函数和外部函数
- 7.10.1 内部函数
- 7.10.2 外部函数
- 7.11 库函数基础
- 7.11.1 C库函数介绍
- 7.11.2 C库函数分类
- 7.12 本课回顾和网络关键词
- 第8课 指针
- 8.1 本课学习目标
- 8.2 基本概念
- 8.3 变量的指针和指向变量的指针变量
- 8.3.1 指针变量的声明
- 8.3.2 指针变量的初始化
- 8.3.3 指针变量的引用
- 8.3.4 关于指针运算符的说明
- 8.3.5 指针变量的运算
- 8.3.6 指针变量作为函数参数
- 8.3.7 void类型的指针
- 8.4 指针和数组
- 8.4.1 数组元素的指针
- 8.4.2 指向一维数组元素的指针变量
- 8.4.3 通过指针引用数组元素
- 8.4.4 使用指针变量应该注意的问题
- 8.4.5 数组名作函数参数
- 8.5 指针和多维数组
- 8.5.1 多维数组的地址
- 8.5.2 指向多维数组的指针变量
- 8.6 指针和字符串
- 8.6.1 指针访问字符串
- 8.6.2 字符串指针作函数参数
- 8.6.3 使用字符串指针变量与字符数组的区别
- 8.7 指针数组和多级指针
- 8.7.1 指针数组
- 8.7.2 多级指针的定义和应用
- 8.7.3 指向指针的指针
- 8.7.4 main函数的参数
- 8.8 指针函数和函数指针
- 8.9 本课回顾和网络关键词
- 第9课 结构体、共用体和枚举
- 9.1 本课学习目标
- 9.2 结构体
- 9.2.1 定义结构体类型
- 9.2.2 结构体类型变量的定义
- 9.2.3 结构体变量的引用
- 9.2.4 结构体变量的初始化
- 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.4.5 指向结构体数组的指针
- 9.5 结构体和函数
- 9.5.1 结构体变量和结构体指针作为函数参数
- 9.5.2 返回结构体类型值的函数
- 9.6 共用体
- 9.6.1 共用体及共用体变量的定义
- 9.6.2 共用体变量的引用与初始化
- 9.6.3 结构和共用体的区别
- 9.7 枚举
- 9.7.1 定义枚举类型
- 9.7.2 定义枚举变量
- 9.7.3 枚举变量的引用
- 9.8 用typedef定义类型
- 9.9 本课回顾和网络关键词
- 第10课 链表
- 10.1 本课学习目标
- 10.2 动态内存分配
- 10.2.1 为什么用动态内存分配
- 10.2.2 如何实现动态内存分配及其管理
- 10.3 链表
- 10.3.1 链表概述
- 10.3.2 单向链表
- 10.3.3 创建链表
- 10.3.4 删除整个链表
- 10.3.5 在链表中插入结点
- 10.3.6 在链表中删除结点
- 10.3.7 双向链表
- 10.3.8 循环链表
- 10.4 本课回顾和网络关键词
- 第11课 位运算
- 11.1 本课学习目标
- 11.2 位运算符和位运算
- 11.2.1 按位与运算
- 11.2.2 按位或运算
- 11.2.3 按位异或运算
- 11.2.4 取反运算
- 11.2.5 左移运算
- 11.2.6 右移运算
- 11.2.7 位运算应用实例
- 11.3 位域
- 11.4 本课回顾和网络关键词
- 第12课 预编译处理
- 12.1 本课学习目标
- 12.2 预处理概述
- 12.3 宏定义
- 12.3.1 不带参数的宏定义
- 12.3.2 带参数的宏定义
- 12.3.3 字符串化运算符
- 12.3.4 并接运算符
- 12.4 文件包含
- 12.5 条件编译
- 12.6 本课回顾和网络关键词
- 第2篇 技术提高篇
- 第13课 文件操作处理
- 13.1 本课学习目标
- 13.2 文件概述
- 13.2.1 文本文件
- 13.2.2 文件分类
- 13.3 文件指针
- 13.4 文件打开与关闭
- 13.4.1 文件打开
- 13.4.2 文件关闭
- 13.5 文件读写操作
- 13.5.1 字符读写函数
- 13.5.2 字符串读写函数
- 13.5.3 格式化读写函数
- 13.5.4 数据块读写函数
- 13.5.5 其他读写函数
- 13.6 文件的随机读写
- 13.6.1 fseek函数
- 13.6.2 rewind函数
- 13.6.3 ftell函数
- 13.7 文件管理函数
- 13.7.1 删除文件
- 13.7.2 重命名文件
- 13.7.3 复制文件
- 13.8 文件状态检测函数
- 13.8.1 feof函数
- 13.8.2 ferror函数
- 13.8.3 clearerr函数
- 13.9 本课回顾和网络关键词
- 第14课 错误和程序调试
- 14.1 本课学习目标
- 14.2 常见错误分析
- 14.3 错误的检出与分离
- 14.4 程序调试
- 14.5 本课回顾和网络关键词
- 第15课 组件技术简要介绍
- 15.1 本课学习目标
- 15.2 组件技术概述
- 15.3 体系结构
- 15.4 CORBA技术体系
- 15.4.1 CORBA概述
- 15.4.2 对象管理体系结构OMA
- 15.4.3 CORBA的结构基础
- 15.4.4 CORBA技术应用
- 15.5 DCOM技术
- 15.5.1 分布式应用的作用
- 15.5.2 DCOM的结构
- 15.5.3 部件和复用
- 15.5.4 位置独立性
- 15.6 EJB技术
- 15.7 本课回顾和网络关键词
- 第16课 C语言程序设计范例总结
- 16.1 本课学习目标
- 16.2 求和和求积问题
- 16.2.1 计算数列求和
- 16.2.2 π的计算
- 16.2.3 定积分计算
- 16.3 遍历问题
- 16.3.1 字符统计问题
- 16.3.2 加密计算
- 16.3.3 素数问题
- 16.3.4 水仙花数/完数问题
- 16.3.5 百钱买百鸡问题
- 16.4 迭代问题
- 16.4.1 二分法迭代
- 16.4.2 牛顿迭代
- 16.5 排序问题
- 16.5.1 直接插入排序
- 16.5.2 起泡法排序
- 16.5.3 选择排序
- 16.6 查找问题
- 16.6.1 顺序查找
- 16.6.2 折半查找
- 16.7 递归问题
- 16.7.1 折半查找
- 16.7.2 树的遍历
- 16.8 字符串处理
- 16.9 矩阵运算
- 16.10 本课回顾和网络关键词
- 第17课 C语言高级编程技术
- 17.1 本课学习目标
- 17.2 高级编程技术概述
- 17.3 文本的屏幕输出和键盘输入
- 17.3.1 文本的屏幕输出
- 17.3.2 键盘输入
- 17.3.3 应用实例
- 17.4 图形显示方式和鼠标输入
- 17.4.1 图形模式的初始化
- 17.4.2 清屏和恢复显示方式的函数
- 17.4.3 独立图形运行程序的建立
- 17.4.4 基本绘图函数
- 17.4.5 画线的线型函数
- 17.4.6 颜色控制函数
- 17.4.7 封闭图形的填色函数及有关画图函数
- 17.4.8 图形窗口函数
- 17.4.9 图形方式下的文本输出函数
- 17.5 菜单设计
- 17.5.1 实现下拉式菜单
- 17.5.2 实现弹出式菜单
- 17.6 网络编程基础
- 17.6.1 常用协议报头
- 17.6.2 Winsock基础
- 17.7 本课回顾和网络关键词
- 第3篇 综合应用篇
- 第18课 俄罗斯方块游戏
- 18.1 游戏功能描述
- 18.2 游戏总体设计
- 18.2.1 功能模块设计
- 18.2.2 数据结构设计
- 18.2.3 构成函数介绍
- 18.3 游戏具体实现
- 18.3.1 预处理
- 18.3.2 主函数
- 18.3.3 初始化界面处理
- 18.3.4 时钟中断处理
- 18.3.5 成绩、速度和帮助处理
- 18.3.6 满行处理
- 18.3.7 方块显示和消除处理
- 18.3.8 游戏方块操作判断处理
- 第19课 Ping网络项目设计
- 19.1 系统功能描述
- 19.2 系统总体设计
- 19.2.1 功能模块设计
- 19.2.2 数据结构设计
- 19.2.3 构成函数介绍
- 19.3 系统具体实现
- 19.3.1 预处理
- 19.3.2 初始化处理
- 19.3.3 控制模块
- 19.3.4 数据报解读处理
- 19.3.5 Ping测试处理
- 19.3.6 主函数
- 第20课 学生成绩管理系统
- 20.1 系统总体描述
- 20.1.1 项目开发的目标
- 20.1.2 项目提出的意义
- 20.1.3 系统功能描述
- 20.2 系统总体设计
- 20.2.1 功能模块设计
- 20.2.2 数据结构设计
- 20.2.3 构成函数介绍
- 20.3 系统具体实现
- 20.3.1 预处理
- 20.3.2 主函数main
- 20.3.3 系统主菜单函数
- 20.3.4 表格显示信息
- 20.3.5 信息查找定位
- 20.3.6 格式化输入数据
- 20.3.7 增加学生记录
- 20.3.8 查询学生记录
- 20.3.9 删除学生记录
- 20.3.10 修改学生记录
- 20.3.11 插入学生记录
- 20.3.12 统计学生记录
- 20.3.13 排序处理
- 20.3.14 存储学生信息