《C语言程序设计》是由苏小红、王宇颖、孙志岗等编著,2011年由高等教育出版社出版的国家精品课程主讲教材。该教材适合作为高等学校各专业的C语言程序设计课程教材,也可作为从事计算机相关工作的科技人员、计算机爱好者及各类自学人员参考 。
该教材分为13章。内容包括:为什么要学C语言,C数据类型,简单的算术运算和表达式,键盘输入和屏幕输出,选择控制结构,循环控制结构,函数,数组,指针,字符串,指针和数组,结构体和共用体,文件操作。
目录
- 第1章 为什么要学C语言
- 1.1 引言
- 1.2 游戏、黑客和C语言
- 1.3 C语言,不老的传说
- 1.4 C语言的爱与恨
- 1.5 C语言教给我们的事
- 1.6 什么是“编程”
- 1.7 本章小结
- 习题1
- 第2章 C数据类型
- 2.1 常量与变量
- 2.1.1 常量
- 2.1.2 变量
- 2.2 简单的屏幕输出
- 2.3 数据类型
- 2.4 如何计算变量或数据类型所占内存空间的大小
- 2.5 变量的赋值和赋值运算符
- 2.6 本章扩充内容
- 2.7 本章知识点小结
- 2.8 本章常见错误小结
- 习题2
- 本章实验题
- 第3章 简单的算术运算和表达式
- 3.1 C运算符和表达式
- 3.1.1 算术运算符和表达式
- 3.1.2 复合的赋值运算符
- 3.1.3 增1和减1运算符
- 3.2 宏常量与宏替换
- 3.3 const常量
- 3.4 自动类型转换与强制类型转换运算符
- 3.5 常用的标准数学函数
- 3.6 本章知识点小结
- 3.7 本章常见错误小结
- 习题3
- 本章实验题
- 第4章 键盘输入和屏幕输出
- 4.1 单个字符的输入/输出
- 4.1.1 字符常量
- 4.1.2 字符的输入/输出
- 4.2 数据的格式化屏幕输出
- 4.3 数据的格式化键盘输入
- 4.4 本章扩充内容
- 4.5 本章知识点小结
- 4.6 本章常见错误小结
- 习题4
- 本章实验题
- 第5章 选择控制结构
- 5.1 生活中与计算机中的问题求解方法
- 5.2 算法的概念及其描述方法
- 5.2.1 算法的概念
- 5.2.2 算法的描述方法
- 5.3 关系运算符与关系表达式
- 5.4 用于单分支控制的条件语句
- 5.5 用于双分支控制的条件语句
- 5.6 条件运算符和条件表达式
- 5.7 用于多分支控制的条件语句
- 5.8 用于多路选择的switch语句
- 5.9 逻辑运算符和逻辑表达式
- 5.10 本章扩充内容
- 5.10.1 程序测试
- 5.10.2 对输入非法字符的检查与处理
- 5.10.3 位运算符
- 5.11 本章知识点小结
- 5.12 本章常见错误小结
- 习题5
- 本章实验题
- 第6章 循环控制结构
- 6.1 循环控制结构与循环语句
- 6.2 计数控制的循环
- 6.3 条件控制的循环
- 6.4 嵌套循环
- 6.5 流程的转移控制
- 6.5.1 goto语句
- 6.5.2 break语句
- 6.5.3 continue语句
- 6.5.4 函数exit()
- 6.6 本章扩充内容
- 6.6.1 结构化程序设计的核心思想
- 6.6.2 常用的程序调试与排错方法
- 6.6.3 类型溢出
- 6.7 本章知识点小结
- 6.8 本章常见错误小结
- 习题6
- 本章实验题
- 第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.4.1 递归问题的提出
- 7.4.2 递归函数
- 7.5 变量的作用域和存储类型
- 7.5.1 变量的作用域
- 7.5.2 变量的存储类型
- 7.6 模块化程序设计
- 7.6.1 模块分解的基本原则
- 7.6.2 自顶向下、逐步求精
- 7.6.3 模块化程序设计实例
- 7.7 本章扩充内容
- 7.8 本章知识点小结
- 7.9 本章常见错误小结
- 习题7
- 本章实验题
- 第8章 数组
- 8.1 一维数组的定义和初始化
- 8.2 二维数组的定义和初始化
- 8.3 向函数传递一维数组
- 8.4 排序和查找
- 8.5 向函数传递二维数组
- 8.6 本章知识点小结
- 8.7 本章常见错误小结
- 习题8
- 本章实验题
- 第9章 指针
- 9.1 变量的内存地址
- 9.2 指针变量的定义和初始化
- 9.3 间接寻址运算符
- 9.4 按值调用与按地址调用
- 9.5 用指针变量作函数参数的程序实例
- 9.6 函数指针及其应用
- 9.7 本章知识点小结
- 9.8 本章常见错误小结
- 习题9
- 本章实验题
- 第10章 字符串
- 10.1 字符串常量
- 10.2 字符串的存储
- 10.3 字符指针
- 10.4 字符串的访问和输入/输出
- 10.4.1 如何访问字符串中的单个字符
- 10.4.2 字符串的输入/输出
- 10.5 字符串处理函数
- 10.6 向函数传递字符串
- 10.7 本章扩充内容
- 10.7.1 从函数返回字符串指针
- 10.7.2 const类型限定符
- 10.7.3 字符处理函数
- 10.7.4 数值字符串向数值的转换
- 10.8 本章知识点小结
- 10.9 本章常见错误小结
- 习题10
- 本章实验题
- 第11章 指针和数组
- 11.1 指针和一维数组间的关系
- 11.2 指针和二维数组间的关系
- 11.3 指针数组及其应用
- 11.3.1 指针数组用于表示多个字符串
- 11.3.2 指针数组用于表示命令行参数
- 11.4 本章扩充内容
- 11.4.1 C程序的内存映像
- 11.4.2 动态内存分配函数
- 11.4.3 长度可变的一维动态数组
- 11.4.4 长度可变的二维动态数组
- 11.4.5 常见的内存错误及其对策
- 11.4.6 缓冲区溢出攻击
- 11.5 本章知识点小结
- 11.6 本章常见错误小结
- 习题11
- 本章实验题
- 第12章 结构体和共用体
- 12.1 从基本数据类型到抽象数据类型
- 12.2 结构体的定义
- 12.2.1 为什么要定义结构体类型
- 12.2.2 结构体变量的定义
- 12.2.3 用typedef定义数据类型
- 12.2.4 结构体变量的初始化
- 12.2.5 嵌套的结构体
- 12.2.6 结构体变量的引用
- 12.2.7 结构体所占内存的字节数
- 12.3 结构体数组的定义和初始化
- 12.3.1 结构体数组的定义
- 12.3.2 结构体数组的初始化
- 12.4 结构体指针的定义和初始化
- 12.4.1 指向结构体变量的指针
- 12.4.2 指向结构体数组的指针
- 12.5 向函数传递结构体
- 12.6 共用体
- 12.7 本章扩充内容
- 12.7.1 枚举数据类型
- 12.7.2 动态数据结构———单向链表
- 12.8 本章知识点小结
- 12.9 本章常见错误小结
- 习题12
- 本章实验题
- 第13章 文件操作
- 13.1 二进制文件和文本文件
- 13.2 文件的打开和关闭
- 13.3 按字符读写文件
- 13.4 按格式读写文件
- 13.5 按数据块读写文件
- 13.6 本章扩充内容
- 13.6.1 文件的随机读写
- 13.6.2 标准输入/输出重定向
- 13.7 本章知识点小结
- 13.8 本章常见错误小结
- 习题13
- 本章实验题
- 附录A C关键字
- 附录B VisualC++下基本数据类型的取值范围
- 附录C C运算符的优先级与结合性
- 附录D 常用字符与ASCII值对照表
- 参考文献