计算机
类型
可以朗读
语音朗读
178千字
字数
2023-09-01
发行日期
展开全部
主编推荐语
一本完整讲解C语言的教材,可以作为院校和培训机构相关专业的教材。
内容简介
本书详细讲解了C语言的相关知识,从基本概念开始,逐步讲解程序流程控制、循环、字符串、指针、函数、结构、文件输入与输出,以及完整的大型项目设计。同时本书还进一步讲解了数据结构的基础知识,如串行、堆栈、队列与二叉树,奠定读者未来学习算法的基础。本书最后一章则是介绍C++与C语言的差异,由此可以帮助读者学习面向对象的程序开发方法。
目录
- 版权信息
- 作者简介
- 内容简介
- 前言
- 第1章 C语言基本概念
- 1-1 C语言的价值
- 1-2 C语言的特色
- 1-3 C语言开发过程
- 1-4 规划程序
- 1-5 程序除错
- 1-6 程序的名称
- 1-7 C语言程序结构分析
- 1-8 C语言程序实例ch1_3.c的解说
- 1-8-1 程序的行号
- 1-8-2 程序的批注
- 1-8-3 引用头文件
- 1-8-4 主程序int main( )声明
- 1-8-5 程序的内容
- 1-8-6 变量的声明
- 1-8-7 程序实例ch1_3.c的解说
- 1-9 习题
- 第2章 C语言数据处理的概念
- 2-1 变量名称的使用
- 2-1-1 认识C语言的变量
- 2-1-2 认识不需事先声明变量的程序语言
- 2-2 变量的声明
- 2-3 基本数据形态
- 2-3-1 整数
- 2-3-2 字符
- 2-3-3 浮点数
- 2-3-4 sizeof( )函数
- 2-3-5 字符串数据形态
- 2-4 常数的表达方式
- 2-4-1 整数常数
- 2-4-2 浮点常数
- 2-4-3 字符常数
- 2-4-4 字符串常数
- 2-4-5 一次设定多个变量值
- 2-5 程序设计的专有名词
- 2-5-1 程序代码
- 2-5-2 表达式
- 2-5-3 运算符与操作数
- 2-5-4 操作数也可以是一个表达式
- 2-5-5 指定运算符
- 2-5-6 单元运算符
- 2-5-7 二元运算符
- 2-5-8 三元运算符
- 2-6 算术运算
- 2-6-1 基础算术运算符号
- 2-6-2 负号运算
- 2-6-3 否运算
- 2-6-4 运算优先级
- 2-6-5 程序代码指令太长的处理
- 2-7 数据形态的转换
- 2-7-1 基础数据形态的转换
- 2-7-2 整数和字符混合使用
- 2-7-3 学生买球鞋
- 2-8 C语言的特殊表达式
- 2-8-1 递增和递减表达式
- 2-8-2 设定的特殊表达式
- 2-9 专题实操:圆面积/圆周长/圆周率
- 2-9-1 圆面积与周长的计算
- 2-9-2 计算圆周率
- 2-10 习题
- 第3章 基本的输入与输出
- 3-1 printf( )函数
- 3-1-1 C语言的控制字符“\n”
- 3-1-2 十进制整数的打印“%d”
- 3-1-3 浮点数或是双倍精度浮点数的打印“%f”
- 3-1-4 字符的打印“%c”
- 3-1-5 其他格式化数据打印原则
- 3-2 scanf( )函数
- 3-2-1 读取数值数据
- 3-2-2 读取字符数据
- 3-3 字符的输入和输出函数
- 3-3-1 getche( )函数和putchar( )函数
- 3-3-2 getchar( )函数
- 3-3-3 getch( )函数
- 3-4 认识简单的字符串读取
- 3-4-1 使用scanf( )函数读取字符串
- 3-4-2 使用scanf( )函数应注意事项
- 3-5 专题实操:单位转换/计算到月球的时间/鸡兔同笼
- 3-5-1 基础实例应用
- 3-5-2 计算地球到月球所需时间
- 3-5-3 鸡兔同笼:解联立方程式
- 3-5-4 高斯数学:计算等差数列和
- 3-5-5 补充说明system( )函数
- 3-6 习题
- 第4章 简易数学函数的使用
- 4-1 pow( )函数和pow10( )函数:求某数值的幂
- 4-1-1 pow( )函数
- 4-1-2 pow10( )函数
- 4-2 sqrt( )函数:求平方根值
- 4-3 绝对值函数
- 4-4 floor( )函数:不大于数值的最大整数
- 4-5 ceil( )函数:不小于数值的最小整数
- 4-6 hypot( )函数
- 4-7 exp( )函数:指数计算
- 4-8 对数函数
- 4-8-1 log( )函数
- 4-8-2 log10( )函数
- 4-8-3 log2( )函数
- 4-9 三角函数
- 4-10 fmod( )函数:计算浮点数的余数
- 4-11 专题实操:价值衰减/存款与房贷/计算地球任意两点的距离
- 4-11-1 银行存款复利的计算
- 4-11-2 价值衰减的计算
- 4-11-3 计算坐标轴两个点之间的距离
- 4-11-4 房屋贷款问题实操
- 4-11-5 正五边形面积
- 4-11-6 使用经纬度计算地球任意两点的距离
- 4-11-7 求一元二次方程式的根
- 4-11-8 求解联立线性方程式
- 4-11-9 使用反余弦函数计算圆周率
- 4-12 习题
- 第5章 程序的流程控制
- 5-1 关系运算符
- 5-2 逻辑运算符
- 5-3 if语句
- 5-4 if … else语句
- 5-5 嵌套的if语句
- 5-6 if … else if … else语句
- 5-7 e1?e2:e3 特殊表达式
- 5-8 switch语句
- 5-9 goto指令
- 5-10 专题实操:BMI指数/闰年计算/猜数字/火箭升空
- 5-10-1 BMI指数计算
- 5-10-2 计算闰年程序
- 5-10-3 成绩判断,输出适当的字符串
- 5-10-4 猜数字游戏
- 5-10-5 猜出0~7的数字
- 5-10-6 十二生肖系统
- 5-10-7 火箭升空
- 5-10-8 简易的人工智能程序:职场性向测验
- 5-10-9 输出每个月有几天
- 5-11 习题
- 第6章 程序的循环设计
- 6-1 for循环
- 6-1-1 单层for循环
- 6-1-2 for语句应用到无限循环
- 6-1-3 双层或多层for循环
- 6-1-4 for循环指标递减设计
- 6-2 while循环
- 6-2-1 单层while循环
- 6-2-2 while语句应用到无限循环
- 6-2-3 双层或多层while循环
- 6-3 do … while循环
- 6-3-1 单层do … while循环
- 6-3-2 do … while语句的无限循环
- 6-3-3 双层或多层do … while循环
- 6-4 循环的选择
- 6-5 break语句
- 6-6 continue语句
- 6-7 随机数函数
- 6-7-1 rand( )函数
- 6-7-2 srand( )函数
- 6-7-3 time( )函数
- 6-7-4 建立某区间的随机数
- 6-7-5 建立0~1的随机浮点数
- 6-8 休息函数
- 6-8-1 sleep( )函数
- 6-8-2 usleep( )函数
- 6-9 专题实操:计算成绩/圆周率/最大公约数/国王的麦粒
- 6-9-1 计算平均成绩和不及格人数
- 6-9-2 猜数字游戏
- 6-9-3 利用辗转相除法求最大公约数
- 6-9-4 计算圆周率
- 6-9-5 鸡兔同笼:使用循环计算
- 6-9-6 国王的麦粒
- 6-9-7 离开无限循环与程序结束Ctrl+C组合键
- 6-9-8 银行账号冻结
- 6-9-9 自由落体
- 6-10 习题
- 第7章 数组
- 7-1 一维数组
- 7-1-1 基础概念
- 7-1-2 认识数组的残值
- 7-1-3 C语言不做数组边界的检查
- 7-1-4 一维数组的初值设定
- 7-1-5 计算数组所占的内存空间和数组长度
- 7-1-6 读取一维数组的输入
- 7-1-7 自行设计数组边界检查程序
- 7-1-8 一维数组的实例应用
- 7-2 二维数组
- 7-2-1 基础概念
- 7-2-2 二维数组的初值设定
- 7-2-3 读取二维数组的输入
- 7-2-4 二维数组的实例应用
- 7-2-5 二维数组的应用解说
- 7-3 更高维的数组
- 7-3-1 基础概念
- 7-3-2 三维或更高维数组的应用解说
- 7-4 排序
- 7-4-1 排序的概念与应用
- 7-4-2 排序实操
- 7-5 专题实操:斐波那契数列/魔术方块
- 7-5-1 斐波那契数列
- 7-5-2 二维数组乘法
- 7-5-3 4×4魔术方块
- 7-5-4 奇数矩阵魔术方块
- 7-5-5 基础统计
- 7-6 习题
- 第8章 字符串彻底剖析
- 8-1 由字符组成的一维数组
- 8-2 比较字符数组和字符串
- 8-3 完整解说字符串的输出与输入
- 8-3-1 标准字符串的输出
- 8-3-2 标准字符串的输入
- 8-4 gets( )函数和puts( )函数
- 8-4-1 gets( )函数
- 8-4-2 puts( )函数
- 8-5 C语言的字符串处理的函数
- 8-5-1 strcat( )函数
- 8-5-2 strcmp( )函数
- 8-5-3 strcpy( )函数
- 8-5-4 strlen( )函数
- 8-5-5 strncat( )函数
- 8-5-6 strncmp( )函数
- 8-5-7 strncpy( )函数
- 8-5-8 字符串大小写转换
- 8-5-9 反向排列字符串的内容
- 8-6 字符串数组
- 8-6-1 字符串数组的声明
- 8-6-2 字符串数组的初值设定
- 8-7 专题实操:字符串复制/仿真账号输入/建立今天的课表
- 8-7-1 字符串内容的复制
- 8-7-2 仿真输入账号和密码
- 8-7-3 仿真建立银行密码
- 8-7-4 计算字符串数组内字符串的数量
- 8-7-5 建立今天的课表
- 8-8 习题
- 第9章 函数的应用
- 9-1 函数的体验
- 9-1-1 基础概念
- 9-1-2 函数的原型声明
- 9-1-3 函数的基本架构
- 9-1-4 函数原型的位置
- 9-1-5 函数名称
- 9-1-6 函数、函数原型与main( )的位置总整理
- 9-2 函数的主体
- 9-2-1 函数定义
- 9-2-2 函数有传递参数的设计
- 9-2-3 函数有不一样形态的参数设计
- 9-3 函数的回传值return
- 9-3-1 回传值是整数的应用
- 9-3-2 回传值是浮点数的应用
- 9-3-3 回传值是字符的应用
- 9-4 一个程序有多个函数的应用
- 9-4-1 简单的调用
- 9-4-2 函数间的调用
- 9-4-3 函数是另一个函数的参数
- 9-5 递归函数的调用
- 9-5-1 从掉入无限递归的陷阱说起
- 9-5-2 非递归设计阶乘数函数
- 9-5-3 从一般函数进化到递归函数
- 9-5-4 使用递归建立输入字符串的回文字符串
- 9-5-5 递归后记
- 9-6 变量的等级
- 9-6-1 局部变量
- 9-6-2 全局变量
- 9-6-3 静态变量
- 9-6-4 register
- 9-7 数组数据的传递
- 9-7-1 传递数据的基础概念
- 9-7-2 数组的传递
- 9-7-3 数据交换
- 9-7-4 传递字符数组或字符串的应用
- 9-7-5 使用函数计算输入字符串的长度
- 9-7-6 泡沫排序法
- 9-7-7 传递二维数组数据
- 9-8 专题实操:抽奖程序/递归/数组与递归/欧几里得算法
- 9-8-1 计算加总值的函数
- 9-8-2 设计质数测试函数
- 9-8-3 抽奖程序设计
- 9-8-4 使用递归方式设计斐波那契数列
- 9-8-5 数组与递归
- 9-8-6 欧几里得算法
- 9-9 习题
- 第10章 C语言前端处理器
- 10-1 认识“#”符号和前端处理器
- 10-2 #define前端处理器
- 10-2-1 基础概念
- 10-2-2 #define定义宏常数
- 10-2-3 宏常数相关的关键词const
- 10-2-4 #define定义字符串
- 10-2-5 #define定义函数
- 10-2-6 #define定义宏常发生的错误
- 10-2-7 #define宏定义程序代码太长的处理
- 10-2-8 #undef
- 10-2-9 函数或宏
- 10-3 #include前端处理器
- 10-3-1 认识头文件的文件夹
- 10-3-2 认识头文件
- 10-3-3 设计自己的头文件
- 10-4 条件式的编译
- 10-4-1 #if
- 10-4-2 #endif
- 10-4-3 #else
- 10-4-4 #ifdef
- 10-4-5 #ifndef
- 10-5 习题
- 第11章 指针
- 11-1 认识地址
- 11-2 认识指针
- 11-3 使用指针变量
- 11-3-1 声明指针变量
- 11-3-2 从认识到精通“&”和“*”运算符
- 11-3-3 指针变量的地址
- 11-3-4 指针变量的长度
- 11-3-5 简单指针实例
- 11-3-6 指针常发生的错误:指针没有指向地址
- 11-3-7 用指针读取输入数据
- 11-3-8 指针的运算
- 11-3-9 指针数据形态不可变更
- 11-3-10 再谈指针声明方式
- 11-3-11 空指针NULL
- 11-4 指针与一维数组
- 11-4-1 认识数组名和数组的地址
- 11-4-2 数组名不是指针常数的场合
- 11-4-3 数组索引与数组名
- 11-4-4 数组名就是一个指针
- 11-4-5 定义和使用数组指针变量
- 11-4-6 移动指针读取输入数组数据
- 11-4-7 使用指针读取和加总数组元素
- 11-5 指针与二维数组
- 11-5-1 认识二维数组的元素地址
- 11-5-2 二维数组名是一个指针
- 11-5-3 建立指针遍历二维数组
- 11-5-4 双重指针
- 11-5-5 双重指针与二维数组
- 11-6 将指针应用在字符串
- 11-6-1 认识与建立字符指针
- 11-6-2 字符指针
- 11-6-3 将指针指向字符串
- 11-7 指针与字符串数组
- 11-7-1 字符串数组
- 11-7-2 二维的字符串数组
- 11-7-3 字符串内容的更改与指针内容的更改
- 11-7-4 声明空字符串
- 11-8 专题实操:4×4魔术方块/奇数魔术方块
- 11-8-1 使用指针执行数组元素相加
- 11-8-2 使用双重指针输出二维数组“洪”
- 11-8-3 使用指针设计4x4魔术方块
- 11-9 习题
- 第12章 指针与函数
- 12-1 函数参数是指针变量
- 12-1-1 加法运算
- 12-1-2 使用地址回传数值的平方
- 12-1-3 数据交换函数
- 12-2 传递混合参数
- 12-3 用指针当作函数参数接收一维数组数据
- 12-4 用指针当作函数参数接收二维数组数据
- 12-5 字符串指针当作函数参数
- 12-6 回传函数指针
- 12-7 main( )函数的命令行的参数
- 12-8 回顾字符串处理函数
- 12-9 专题实操:排序/字符串复制
- 12-9-1 输入3个数字从小到大输出
- 12-9-2 字符串的复制
- 12-9-3 泡沫排序法
- 12-10 习题
- 第13章 结构struct数据形态
- 13-1 结构数据形态
- 13-2 声明结构变量
- 13-2-1 声明结构变量方法1
- 13-2-2 声明结构变量方法2
- 13-2-3 使用结构成员
- 13-3 了解结构所占的内存空间
- 13-4 建立结构数据
- 13-4-1 读取数据
- 13-4-2 初始化结构数据
- 13-4-3 初始化数据碰上结构改变
- 13-5 设定结构对象的内容给另一个结构对象
- 13-6 嵌套的结构
- 13-6-1 设定嵌套结构数据
- 13-6-2 初始化嵌套结构数据
- 13-7 结构数据与数组
- 13-7-1 基础概念
- 13-7-2 初始化结构数组数据
- 13-8 结构的指针
- 13-8-1 将指针应用在结构数据
- 13-8-2 将指针应用在结构数组
- 13-9 结构变量是函数的参数
- 13-9-1 传递结构变量值
- 13-9-2 传递结构地址
- 13-9-3 传递结构数组
- 13-10 专题实操:找出最高分姓名和分数/输出学生数据
- 13-10-1 找出最高分姓名和分数
- 13-10-2 列出完整学生数据
- 13-10-3 平面坐标系统
- 13-10-4 计算两个时间差
- 13-11 习题
- 第14章 union、enum和typedef
- 14-1 union
- 14-1-1 定义union和声明变量
- 14-1-2 使用共享体成员
- 14-1-3 认识共享体成员占据相同的内存
- 14-1-4 更多成员的共享体union实例
- 14-2 enum
- 14-2-1 定义列举enum的数据形态声明变量
- 14-2-2 认识列举的预设数值
- 14-2-3 定义列举enum元素的整数值
- 14-2-4 列举enum的使用目的
- 14-3 typedef
- 14-4 专题实操:打工薪资计算/回应机器运作状态
- 14-4-1 打工薪资计算
- 14-4-2 回应机器运作状态
- 14-5 习题
- 第15章 测试符号与符号转换函数
- 15-1 isalnum( )函数
- 15-2 isalpha( )函数
- 15-3 isascii( )函数
- 15-4 iscntrl( )函数
- 15-5 isdigit( )函数
- 15-6 isxdigit( )函数
- 15-7 isgraph( )函数
- 15-8 isprint( )函数
- 15-9 ispunct( )函数
- 15-10 isspace( )函数
- 15-11 islower( )函数
- 15-12 isupper( )函数
- 15-13 tolower( )函数
- 15-14 toupper( )函数
- 15-15 专题实操:计算英文字母的数量
- 15-15-1 判断字符数组内的每个字符
- 15-15-2 计算句子内的英文字母数量
- 15-16 实操题
- 第16章 文件的输入与输出
- 16-1 文件的输入与输出
- 16-2 认识文本文件与二进制文件
- 16-3 有缓冲区的输入与输出函数
- 16-3-1 fopen( )函数
- 16-3-2 fclose( )函数
- 16-3-3 putc( )函数
- 16-3-4 getc( )函数
- 16-3-5 fprintf( )函数
- 16-3-6 fscanf( )
- 16-3-7 feof( )函数
- 16-3-8 ferror( )函数
- 16-4 有缓冲区的输入与输出应用在二进制文件
- 16-4-1 fwrite( )函数
- 16-4-2 fread( )函数
- 16-4-3 fseek( )函数
- 16-4-4 rewind( )函数
- 16-4-5 输出数据到二进制文件
- 16-4-6 读取二进制文件数据
- 16-5 C语言默认的文件指针
- 16-6 无缓冲区的输入与输出
- 16-6-1 open( )函数
- 16-6-2 close( )函数
- 16-6-3 read( )函数
- 16-6-4 creat( )
- 16-6-5 write( )函数
- 16-7 无缓冲区的输入与输出应用在二进制文件
- 16-8 专题实操:随机读取二进制文件数据/字符串加密
- 16-8-1 随机读取数据的应用
- 16-8-2 lseek( )函数
- 16-8-3 字符串加密
- 16-9 习题
- 第17章 文件与文件夹的管理
- 17-1 文件的删除
- 17-1-1 remove( )函数
- 17-1-2 unlink( )函数
- 17-2 文件名的更改
- 17-3 文件长度计算
- 17-4 子文件夹的建立
- 17-5 删除子文件夹
- 17-6 获得目前文件夹路径
- 17-7 习题
- 第18章 数据转换函数
- 18-1 atof( )函数
- 18-2 atoi( )函数
- 18-3 atol( )函数
- 18-4 gcvt( )函数
- 18-5 itoa( )函数
- 18-6 ltoa( )函数
- 18-7 习题
- 第19章 基本位运算
- 19-1 二进制系统
- 19-1-1 十进制转二进制
- 19-1-2 二进制转十进制
- 19-2 位运算基础概念
- 19-3 &运算符
- 19-4 |运算符
- 19-5 ^运算符
- 19-6 ~运算符
- 19-7 <<运算符
- 19-8 >>运算符
- 19-9 位字段
- 19-10 习题
- 第20章 建立项目:适用大型程序
- 20-1 程序项目的缘由
- 20-2 基础程序实操
- 20-3 模块化程序
- 20-4 建立项目与执行
- 20-5 增加功能的项目
- 20-6 不同文件的全局变量与extern
- 20-7 习题
- 第21章 基本链表结构
- 21-1 动态数据结构的基础
- 21-1-1 动态数据结构的缘由
- 21-1-2 动态配置内存空间
- 21-2 链表节点的设置与操作
- 21-2-1 动态数据结构的设置
- 21-2-2 内存的配置
- 21-3 建立与输出链表
- 21-3-1 基础实例
- 21-3-2 设计建立链表函数和打印链表函数
- 21-4 搜寻节点
- 21-5 插入节点
- 21-6 删除节点
- 21-7 释放内存空间free( )
- 21-8 双向链表
- 21-9 指针补充解说
- 21-10 习题
- 第22章 栈与队列
- 22-1 栈
- 22-1-1 认识栈
- 22-1-2 设计push( )函数
- 22-1-3 设计pop( )函数
- 22-2 队列
- 22-2-1 认识队列
- 22-2-2 设计enqueue( )函数
- 22-2-3 设计dequeue( )函数
- 22-3 习题
- 第23章 二叉树
- 23-1 二叉树的节点结构
- 23-2 二叉树的建立
- 23-3 二叉树的打印
- 23-3-1 中序的打印方式
- 23-3-2 前序的打印方式
- 23-3-3 后序的打印方式
- 23-4 习题
- 第24章 C语言迈向C++之路
- 24-1 C++的基础概念
- 24-2 C++语言的延伸文件名
- 24-3 函数的引用
- 24-4 程序的批注
- 24-5 C++语言新增加的输入与输出
- 24-5-1 cout
- 24-5-2 cin
- 24-6 变量的声明
- 24-7 动态数据声明
- 24-8 const运算符
- 24-9 范围运算符
- 24-10 型别的转换
- 24-11 C++语言函数的规则
- 24-12 最初化函数参数值
- 24-13 函数多功能化
- 24-14 inline运算符
- 24-15 函数地址的传送
- 24-16 new和delete
- 24-17 习题
展开全部
出版方
清华大学出版社
清华大学出版社成立于1980年6月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。