• C编程从入门到实践
  • C编程从入门到实践
21年品牌 40万+商家 超1.5亿件商品

C编程从入门到实践

全新正版 极速发货

57.16 6.4折 89 全新

库存5件

广东广州
认证卖家担保交易快速发货售后保障

作者王长青

出版社人民邮电

ISBN9787115500687

出版时间2019-06

装帧平装

开本其他

定价89元

货号1201889243

上书时间2024-07-01

书香美美

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
王长青,华为通信工程师,现负责电信BSS领域相关产品的详细架构设计和开发实施工作。熟悉面向对象技术及UML,15年C和C++开发经验,10年C#开发经验,熟悉相关的编译原理、数据结构、算法。精通Unix、Linux操作系统,且能熟练使用常用操作命令,并且熟悉该环境下的CC++开发。

目录
目  录

第 1章 C语言之定位 1

1.1 计算机应用基础 2

1.1.1 中央处理器 2

1.1.2 位和字节 2

1.1.3 二进制 2

1.1.4 编码格式 3

1.2 C语言的诞生 4

1.3 第 一印象的建立 5

1.4 理解编译系统—学习的第 一步 6

1.5 技术解惑 7

1.5.1 学习C语言还有用吗 7

1.5.2 怎样学好C语言 8

1.5.3 学好C语言的建议 8

1.6 课后练习 8

第 2章 C语言开发工具详解 9

2.1 用DOS开发C程序 10

2.1.1 安装Turbo C 3.0 10

2.1.2 使用Turbo C 3.0 10

2.2 在Windows环境下使用

Visual Studio 2017 11

2.2.1 安装Visual Studio 2017 11

2.2.2 使用Visual Studio 2017开发一个C程序 15

2.3 使用轻量级开发工具DEV C++ 18

2.3.1 安装DEV C++ 18

2.3.2 使用DEV C++运行一个C程序 20

2.4 使用Vsiual C++ 6.0开发C程序 20

2.5 使用手机开发C程序 22

2.6 技术解惑 23

2.6.1 安装Visual Studio 2017时遇到的常见问题 23

2.6.2 在Windows 7中安装Visual Studio时遇到的常见问题 24

2.7 课后练习 24

第3章 程序员基本素质的培养 25

3.1 养成好的命名习惯 26

3.2 C程序文件结构 26

3.2.1 C程序的组成部分 26

3.2.2 C程序的格式总结 27

3.3 养成好的C语言编程风格 28

3.3.1 随时使用缩进格式 28

3.3.2 注意大括号的位置 28

3.3.3 函数的规则 29

3.3.4 注意注释 29

3.4 如何成为一名优秀的程序员 29

3.5 技术解惑 31

3.6 课后练习 31

第4章 C语言语法 32

4.1 标识符和关键字 33

4.2 最基本的数据类型 33

4.3 常量和变量 34

4.3.1 常量 35

4.3.2 变量 36

4.4 整型数据 37

4.4.1 整型常量 38

4.4.2 整型变量 39

4.5 实型数据 41

4.5.1 实型常量 41

4.5.2 实型变量 42

4.5.3 实型常量的类型 43

4.6 字符型数据 43

4.6.1 字符常量 43

4.6.2 字符串常量 45

4.6.3 字符变量 46

4.7 初始化变量 47

4.8 整型、实型和字符型数据间的运算总结 47

4.8.1 自动转换 47

4.8.2 强制转换 49

4.9 技术解惑 49

4.9.1 在C语言中无符号整型变量和有符号整型变量

的定义 49

4.9.2 在C语言中字符变量的含义 50

4.9.3 如何理解字符型数据的取值范围 50

4.9.4 怎样将带小数点的字符型数据转换成浮点型 50

4.10 课后练习 51

第5章 运算符和表达式 52

5.1 运算符和表达式的概述 53

5.1.1 运算符的种类 53

5.1.2 运算符的优先级 54

5.2 算术运算符和算术表达式 55

5.2.1 单目运算符 55

5.2.2 双目运算符 56

5.3 赋值运算符和赋值表达式 56

5.3.1 基本赋值运算符 56

5.3.2 复合赋值运算符 57

5.3.3 赋值表达式 58

5.4 关系运算符和关系表达式 59

5.4.1 关系运算符 59

5.4.2 关系表达式 59

5.5 逻辑运算符和逻辑表达式 60

5.5.1 逻辑运算符 60

5.5.2 逻辑表达式 60

5.6 逗号运算符和逗号表达式 62

5.6.1 逗号运算符 62

5.6.2 逗号表达式 62

5.7 求字节数的运算符 63

5.8 技术解惑 64

5.8.1 C语言运算符优先级的详情 64

5.8.2 少数运算符在规定表达式中的求值顺序 65

5.8.3 在C语言中是否可以进行混合运算 66

5.8.4 在一个逻辑条件语句中常数项永远在左侧 66

5.8.5 赋值处理的自动类型转换 66

5.9 课后练习 67

第6章 输入和输出 68

6.1 C语句的初步知识 69

6.1.1 C语句简介 69

6.1.2 赋值语句 70

6.2 打通任督二脉—数据输入和输出 71

6.2.1 putchar函数 71

6.2.2 getchar函数 72

6.2.3 printf函数 73

6.2.4 scanf函数 76

6.2.5 puts函数 79

6.2.6 C11标准函数gets_s 80

6.3 技术解惑 80

6.3.1 gets_s函数和scanf函数的区别 80

6.3.2 克服gets_s函数的缺陷 81

6.3.3 C语言的输入和输出问题 82

6.4 课后练习 83

第7章 流程控制 84

7.1 最常见的顺序结构 85

7.2 选择结构 85

7.2.1 单分支结构语句 86

7.2.2 双分支结构语句 87

7.2.3 多分支结构语句 90

7.2.4 条件运算符和条件表达式 91

7.3 循环结构 92

7.3.1 for语句 93

7.3.2 while语句 94

7.3.3 do…while语句 96

7.3.4 正确对待goto语句 97

7.3.5 break continue跳跃 98

7.3.6 死循环 退出程序 99

7.4 技术解惑 100

7.4.1 循环中的低效问题 100

7.4.2 分析C语言循环语句的效率 101

7.4.3 使用for循环语句的注意事项 102

7.5 课后练习 102

第8章 数组和字符串—数据的存在形式 104

8.1 一维数组 105

8.1.1 定义一维数组 105

8.1.2 引用一维数组的元素 105

8.1.3 初始化一维数组 106

8.2 多维数组 107

8.2.1 二维数组的用法 107

8.2.2 多维数组的用法 110

8.3 字符数组与字符串 112

8.3.1 字符数组 112

8.3.2 字符串与字符数组 113

8.3.3 字符数组的输入和输出 113

8.4 字符串处理函数 115

8.4.1 测试字符串长度的函数 115

8.4.2 字符串大小写转换函数 115

8.4.3 字符串复制函数 116

8.4.4 字符串比较函数 117

8.4.5 字符串连接函数 119

8.4.6 其他的字符串函数 119

8.4.7 将字符串转换成数值的函数 120

8.5 字符处理函数 121

8.5.1 字符检测函数 121

8.5.2 字符大小写转换函数 122

8.6 技术解惑 123

8.6.1 数组的下标总是从0开始吗 123

8.6.2 C语言对数组的处理非常有效吗 124

8.6.3 初始化一维数组的注意事项 124

8.6.4 冒泡排序 125

8.7 课后练习 125

第9章 函数 126

9.1 C函数的基础知识 127

9.1.1 函数的分类 127

9.1.2 函数的定义 128

9.2 函数声明和函数原型 129

9.3 函数的参数 131

9.3.1 形参和实参 131

9.3.2 以数组名作为函数的参数 132

9.3.3 以数组作为函数的参数 133

9.4 函数的返回值 135

9.5 函数的调用 136

9.5.1 函数调用的格式 136

9.5.2 函数的调用方式 137

9.5.3 被调函数的声明方式 138

9.5.4 对调用函数的方式进行深入分析 139

9.6 函数的嵌套调用和递归调用 140

9.6.1 函数的嵌套调用 140

9.6.2 函数的递归调用 142

9.7 变量的作用域和生存期 145

9.7.1 变量作用域 145

9.7.2 静态存储变量和动态存储变量 147

9.8 C的内部函数和外部函数 153

9.8.1 内部函数 153

9.8.2 外部函数 153

9.9 库函数 154

9.10 技术解惑 156

9.10.1 通过Turbo C深入分析 项目文件 156

9.10.2 要尽量避免不必要的函数调用 157

9.10.3 请确保函数的声明和定义是静态的 158

9.10.4 避免过长的main()函数 158

9.10.5 函数的地址也是数据 160

9.10.6 说明函数的时机 160

9.10.7 一个函数可以有多少个参数 161

9.10.8 如果一个函数没有返回值,是否需要加入return

 语句 162

9.10.9 在程序退出main函数之后还有可能执行一部分代码 162

9.10.10 exit()函数和return语句的差异 162

9.11 课后练习 162

第 10章 指针 164

10.1 基本概念 165

10.2 变量的指针和指向变量的指针变量 165

10.2.1 声明指针变量 166

10.2.2 指针变量的初始化 166

10.2.3 指针变量的引用 167

10.2.4 关于指针运算符的说明 168

10.2.5 指针变量的运算 169

10.2.6 以指针变量作为函数参数 170

10.2.7 void类型的指针 173

10.3 指针和数组 174

10.3.1 数组元素的指针 174

10.3.2 指向一维数组元素的指针变量 175

10.3.3 通过指针引用数组元素 176

10.3.4 以数组名作为函数参数 179

10.4 指针和多维数组 180

10.4.1 多维数组的地址 180

10.4.2 指向多维数组的指针变量 182

10.5 指针和字符串 185

10.5.1 指针访问字符串 185

10.5.2 以字符串指针作为函数参数 186

10.5.3 字符串指针变量与字符数组的区别 187

10.6 指针数组和多级指针 188

10.6.1 指针数组 188

10.6.2 多级指针的定义和应用 189

10.6.3 指向指针的指针 191

10.6.4 main函数的参数 191

10.7 指针函数和函数指针 192

10.7.1 指针函数 193

10.7.2 函数指针 193

10.8 技术解惑 195

10.8.1 初始化指针时的注意事项 195

10.8.2 为指针赋值时的注意事项 196

10.8.3 当指针用于数组时的注意事项 197

10.8.4 在结构中使用指针时的注意事项 197

10.8.5 避免不必要的内存引用 198

10.8.6 避免悬空指针和野指针 198

10.8.7 数组下标与指针的效率解析 199

10.8.8 使用指针时的常见错误 199

10.9 课后练习 200

第 11章 数据的熔炉—结构体、共用体和枚举 202

11.1 结构体 203

11.1.1 定义结构体类型 203

11.1.2 定义结构体类型变量 203

11.1.3 引用结构体变量 205

11.1.4 初始化结构体变量 206

11.2 结构体数组 207

11.2.1 定义结构体数组 208

11.2.2 初始化结构体数组 209

11.2.3 引用结构体数组 210

11.3 结构体指针 211

11.3.1 定义结构体指针变量 212

11.3.2 初始化结构体指针变量 212

11.3.3 引用结构体指针变量 212

11.3.4 指向结构变量的指针 213

11.3.5 指向结构体数组的指针 214

11.4 在函数中使用结构体 214

11.4.1 结构体变量和结构体指针可以作为函数参数 215

11.4.2 函数可以返回结构体类型的值 215

11.5 共用体(联合) 217

11.5.1 定义共用体和共用体变量 217

11.5.2 引用和初始化共用体变量 218

11.6 枚举 219

11.6.1 定义枚举类型 219

11.6.2 定义枚举变量 220

11.6.3 引用枚举变量 220

11.7 typedef定义类型的作用 222

11.7.1 类型定义符typedef的基础 222

11.7.2 使用typedef 223

11.8 技术解惑 224

11.8.1 可以省略结构名吗 224

11.8.2 是否可以定义一种通用数据类型以存储任意类型的数据 224

11.8.3 结构和共用体的区别 224

11.8.4 定义C结构体的问题 225

11.9 课后练习 225

第 12章 链表 226

12.1 动态内存分配 227

12.1.1 动态内存分配的作用 227

12.1.2 实现动态内存分配及管理的方法 227

12.2 链表详解 230

12.2.1 链表简介 230

12.2.2 单向链表 231

12.2.3 创建一个链表 233

12.2.4 删除整个链表 234

12.2.5 在链表中插入节点 234

12.2.6 在链表中删除节点 235

12.2.7 双向链表 236

12.2.8 循环链表 237

12.3 技术解惑 238

12.3.1 链表的总结 238

12.3.2 面试题—判断单链表是否有环 242

12.3.3 面试题—实现单链表逆置 243

12.4 课后练习 244

第 13章 位运算 245

13.1 位运算符和位运算 246

13.1.1 按位与运算 246

13.1.2 按位或运算 247

13.1.3 按位异或运算 247

13.1.4 取反运算 248

13.1.5 左移运算 248

13.1.6 右移运算 249

13.1.7 位运算的应用实例 249

13.2 位域 251

13.2.1 位域的定义和位域变量的说明 251

13.2.2 位域的使用 252

13.3 技术解惑 252

13.3.1 二进制补码的运算公式 252

13.3.2 面试题—从某个数中取出指定的某些位 252

13.3.3 位域的内存对齐原则 253

13.4 课后练习 253

第 14章 预编译处理 255

14.1 预编译的基础 256

14.2 宏定义 256

14.2.1 不带参数的宏定义 256

14.2.2 带参数的宏定义 258

14.2.3 字符串化运算符 260

14.2.4 并接运算符 260

14.3 文件包含 260

14.4 条件编译 262

14.4.1 #ifdef… #else…#endif命令 262

14.4.2 #if defined… #else…#endif 263

14.4.3 #ifndef… #else…#endif 263

14.4.4 #if !defined… #else…#endif 264

14.4.5 #ifdef…#elif… #elif…#else… #endif 264

14.5 技术解惑 265

14.5.1 还有其他预编译指令吗 265

14.5.2 带参的宏定义和函数不同 266

14.5.3 C语言中预处理指令的总结 266

14.5.4 预编译指令的本质 267

14.5.5 sizeof(int)在预编译阶段是不会求值的 267

14.5.6 多行预处理指令的写法 267

14.6 课后练习 267

第 15章 文件操作 268

15.1 文件 269

15.1.1 文本文件 269

15.1.2 文件分类 270

15.2 文件指针 270

15.3 文件的打开与关闭 271

15.3.1 打开文件 271

15.3.2 关闭文件 273

15.4 文件读写 274

15.4.1 字符读写函数 274

15.4.2 字符串读写函数 276

15.4.3 格式化读写函数 278

15.4.4 数据块读写函数 279

15.4.5 其他读写函数 280

15.5 文件的随机读写 281

15.5.1 fseek函数 281

15.5.2 rewind函数 283

15.5.3 ftell函数 283

15.6 文件管理函数 284

15.6.1 删除文件 284

15.6.2 重命名文件 285

15.6.3 复制文件 285

15.7 文件状态检测函数 286

15.7.1 feof函数 287

15.7.2 ferror函数 287

15.7.3 clearerr函数 287

15.8 Win32 API中的文件操作函数 288

15.8.1 创建和打开文件 288

15.8.2 读取、写入和删除文件 289

15.9 技术解惑 2

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP