计算机
类型
可以朗读
语音朗读
139千字
字数
2020-07-01
发行日期
展开全部
主编推荐语
C语言实战教程:开发环境搭建、原理解析、实例应用及互联网公司面试题。
内容简介
本书介绍C语言开发环境搭建、编译调试原理、数据类型、运算符与表达式、选择循环、数组、指针、函数、结构体、常用数据结构与算法、文件操作和项目实战。全书通过各种生动有趣的实例,反向解析C语言原理、计算机原理,让学生能够清晰地把握对应技术的应用场景,遇到对应场景时能够马上对所学的技术进行应用,对各种易错点也给予充分、详实的解析,让学生无论是在面试过程中还是在复试机试过程中,都能够冷静地应对题目所设的各种难点与陷阱。全书习题均是各大互联网公司面试题或知名高校的特色机试题,所有习题均提供详细的源码、注释和解题思路,并附带经典的学生管理系统项目和有一定挑战性的编译器项目,既能满足高校学生课程设计的需求,又能满足具有一定复杂度的项目的需求。
目录
- 封面
- 书名页
- 内容简介
- 版权页
- 前言
- 目录
- 第1章 开发环境搭建及调试窗口设置
- 1.1 开发环境搭建
- 1.1.1 C语言的那些事
- 1.1.2 开发环境安装
- 1.2 新建项目
- 1.3 新建代码及编译运行
- 1.4 程序的编译过程
- 1.5 断点及调试窗口设置
- 1.6 学习C语言后的境界
- 练习题
- 第2章 数据类型、运算符与表达式
- 2.1 数据类型
- 2.2 常量
- 2.3 变量
- 2.4 整型数据
- 2.4.1 符号常量
- 2.4.2 整型常量的不同进制表示
- 2.4.3 补码的作用
- 2.4.4 整型变量
- 2.5 浮点型数据
- 2.5.1 浮点型常量
- 2.5.2 浮点型变量
- 2.6 字符型数据
- 2.6.1 字符型常量
- 2.6.2 字符数据在内存中的存储形式及其使用方法
- 2.7 字符串型常量
- 2.8 混合运算
- 2.8.1 数值按int型运算
- 2.8.2 浮点型常量默认按double型运算
- 2.8.3 类型强制转换场景
- 2.9 常用的数据输入/输出函数
- 2.9.1 scanf函数的原理
- 2.9.2 scanf函数的循环读取
- 2.9.3 多种数据类型混合输入
- 2.9.4 getchar函数介绍
- 2.9.5 putchar函数介绍
- 2.9.6 printf函数介绍
- 2.10 运算符与表达式
- 2.10.1 运算符分类
- 2.10.2 算术运算符及算术表达式
- 2.10.3 关系运算符与关系表达式
- 2.10.4 逻辑运算符与逻辑表达式
- 2.10.5 位运算符
- 2.10.6 赋值运算符
- 2.10.7 条件运算符与逗号运算符
- 2.10.8 自增、自减运算符及求字节运算符
- 练习题
- 答案解析
- 第3章 选择与循环
- 3.1 选择结构程序设计
- 3.1.1 关系表达式与逻辑表达式
- 3.1.2 if语句
- 3.1.3 switch语句
- 3.2 循环结构程序设计
- 3.2.1 goto语句
- 3.2.2 while循环
- 3.2.3 dowhile循环
- 3.2.4 for循环
- 3.2.5 continue语句
- 3.2.6 break语句
- 练习题
- 答案解析
- 第4章 数组
- 4.1 一维数组
- 4.1.1 数组的定义
- 4.1.2 一维数组在内存中的存储
- 4.1.3 栈空间和数组
- 4.2 二维数组
- 4.2.1 二维数组的定义与引用
- 4.2.2 二维数组的初始化及传递
- 4.3 字符数组
- 4.3.1 字符数组的定义及初始化
- 4.3.2 gets函数与puts函数
- 4.3.3 str系列字符串操作函数
- 4.3.4 strn系列字符串操作函数
- 4.3.5 mem系列操作函数
- 练习题
- 答案解析
- 第5章 指针
- 5.1 指针的本质
- 5.1.1 指针的定义
- 5.1.2 取地址操作符与取值操作符
- 5.2 指针的使用场景
- 5.2.1 指针的传递
- 5.2.2 指针的偏移
- 5.2.3 指针与自增、自减运算符
- 5.2.4 指针与一维数组
- 5.2.5 指针与动态内存申请
- 5.2.6 字符指针与字符数组的初始化
- 5.2.7 深入理解const
- 5.2.8 memcpy函数与memmove函数的差异
- 5.3 数组指针与二维数组
- 5.3.1 数组指针的应用
- 5.3.2 二维数组的偏移计算
- 5.4 二级指针
- 5.4.1 二级指针的传递
- 5.4.2 二级指针的偏移
- 5.5 函数指针
- 练习题
- 答案解析
- 第6章 函数
- 6.1 函数的声明、定义与调用
- 6.1.1 函数的声明与定义
- 6.1.2 函数的分类与调用
- 6.2 嵌套调用
- 6.3 递归调用
- 6.4 变量及函数的作用域
- 6.4.1 局部变量与全局变量
- 6.4.2 动态存储方式与静态存储方式
- 6.5 函数调用原理详解
- 6.5.1 关于栈
- 6.5.2 代码实例分析
- 练习题
- 答案解析
- 第7章 结构体
- 7.1 结构体与结构体指针
- 7.1.1 结构体的定义、引用、初始化
- 7.1.2 结构体指针
- 7.1.3 typedef的使用
- 7.2 链表的增删查改
- 7.2.1 链表
- 7.2.2 增删查改链表
- 7.3 共用体与枚举
- 7.3.1 共用体
- 7.3.2 枚举
- 练习题
- 答案解析
- 第8章 常用数据结构与算法
- 8.1 数据结构
- 8.1.1 栈
- 8.1.2 队列
- 8.1.3 二叉树
- 8.1.4 红黑树
- 8.1.5 数据结构学习技巧
- 8.2 算法
- 8.2.1 时间复杂度与空间复杂度
- 8.2.2 排序算法
- 8.2.3 二分查找算法
- 8.2.4 哈希查找算法
- 8.2.5 其他算法
- 练习题
- 答案解析
- 第9章 文件操作
- 9.1 C文件概述
- 9.2 文件的打开、读写、关闭
- 9.2.1 文件指针介绍
- 9.2.2 文件的打开与关闭
- 9.2.3 fread函数与fwrite函数
- 9.2.4 fgets函数与fputs函数
- 9.2.5 ftell函数
- 9.2.6 fprintf函数与fscanf函数
- 练习题
- 答案解析
- 第10章 C语言预处理和C语言库
- 10.1 预处理简介
- 10.2 预处理的工作原理
- 10.3 预处理指令
- 10.4 宏定义
- 10.4.1 简单的宏
- 10.4.2 带参数的宏
- 10.4.3 操作符#
- 10.4.4 操作符##
- 10.4.5 宏的通用属性
- 10.4.6 较长的宏中的逗号操作符
- 10.4.7 宏定义中的do while循环
- 10.4.8 预定义宏
- 10.4.9 空宏参数
- 10.4.10 const与#define的差异
- 10.5 条件编译
- 10.5.1 #if指令和#endif指令
- 10.5.2 defined操作符
- 10.5.3 #ifdef指令和#ifndef指令
- 10.5.4 #elif指令和#else指令
- 10.5.5 条件编译
- 10.6 其他指令
- 10.6.1 指令#line
- 10.6.2 指令#undef
- 10.6.3 变参宏...和__VA_ARGS__
- 10.7 内联函数(C99)
- 10.8 C库中的可变参数stdarg.h
- 练习题
- 答案解析
- 第11章 学生信息管理系统
- 11.1 系统功能描述
- 11.2 系统模块设计
- 11.3 系统用到的相关函数
- 第12章 编译器词法、语法分析项目
- 12.1 词法分析项目
- 12.1.1 项目需求描述
- 12.2 词法分析模块设计
- 12.2.1 建立字典模块
- 12.2.2 字符串存储及其TOKEN值的快速识别设计
- 12.3 词法及语法分析简单样例研究
- 12.3.1 算术表达式的合法性判断
- 12.3.2 词法分析
- 12.3.3 算术表达式的语法分析
- 12.4 升级版功能:编译器语法分析
- 12.4.1 整体流程分析
- 12.4.2 函数体内流程分析
- 12.4.3 表达式解析流程分析
- 12.4.4 总结
- 附录A ASCII码表
- 附录B C语言运算符优先级
- 参考文献
- 封底
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。