商品详情
定价:99.8
ISBN:9787115637406
作者:史蒂芬·G.寇肯
版次:1
出版时间:2025-01
内容提要:
本书通过程序示例讲解C语言的众多概念、函数和编程方法,帮助初学者更好地掌握C语言编程的内容。
本书从C语言的基础概念和编译过程出发,详细讲解C语言的数据类型、算术表达式、循环语句、判断语句、数组、函数、结构体、字符串、指针、位运算、预处理器、输入输出操作等,以及goto语句、联合体、逗号运算符、限定符、命令行参数、动态内存分配、程序调试、面向对象程序设计等*特性。此外,本书提供了大量练习题,帮助读者巩固实践;并通过附录提供C语言概要、标准C语言库、使用GCC编译程序、常见的编程错误、C语言编译器和集成开发环境等内容。
本书适合想要*基础入门C语言编程的读者,也适合用作计算机等相关专业C语言课程的教学参考书。
作者简介:
史蒂芬·G. 寇肯(Stephen G. Kochan)具有30多年的C语言开发经验。他曾是AT&T贝尔实验室的软件顾问,在那里进行过UNIX和C语言程序的开发和授课。他撰写了多本关于编程和UNIX的*图书,包括《Objective-C程序设计(第6版)》和《UNIX/Linux/OS X中的Shell编程(第4版)》等。
目录:
第 1章 一些基础概念1
1.1 程序设计 1
1.2 *语言 1
1.3 操作系统 2
1.4 编译程序 2
1.5 集成开发环境 4
1.6 语言解释器 5
第 2章 编译并运行你的第 一个程序 6
2.1 编译你的程序 6
2.2 运行你的程序 7
2.3 理解你的第 一个程序 7
2.4 显示变量的值 9
2.5 注释 11
2.6 练习题 12
第3章 变量、数据类型和算术表达式 14
3.1 理解数据类型和常量 14
3.1.1 整数类型int 14
3.1.2 浮点数类型float 15
3.1.3 扩展精度类型double 16
3.1.4 单字符类型char 16
3.1.5 布尔数据类型_Bool 16
3.1.6 类型说明符:long、long long、short、unsigned和signed 18
3.2 使用变量 20
3.3 使用算术表达式 21
3.4 运算与赋值结合:赋值运算符 27
3.5 _Complex和_Imaginary类型 28
3.6 练习题 28
第4章 程序循环 30
4.1 三角数 30
4.2 for语句 31
4.2.1 关系运算符 32
4.2.2 输出对齐 35
4.3 程序输入 36
4.3.1 嵌套的for循环 37
4.3.2 for循环的变体 39
4.4 while语句 40
4.5 do语句 43
4.5.1 break语句 44
4.5.2 continue语句 44
4.6 练习题 45
第5章 做出决策 47
5.1 if语句 47
5.1.1 if-else结构 50
5.1.2 复合关系测试 52
5.1.3 嵌套if语句 54
5.1.4 else if结构 55
5.2 switch语句 61
5.3 布尔变量 63
5.4 条件运算符 66
5.5 练习题 68
第6章 使用数组 70
6.1 定义一个数组 70
6.1.1 使用数组元素作为计数器 73
6.1.2 生成斐波那契数 75
6.1.3 使用数组生成素数 76
6.2 初始化数组 78
6.3 字符数组 79
6.3.1 使用数组的基数变换 80
6.3.2 const限定符 82
6.4 多维数组 83
6.5 变长数组 85
6.6 练习题 86
第7章 使用函数 88
7.1 定义一个函数 88
7.2 参数和局部变量 91
7.2.1 函数原型声明 91
7.2.2 自动局部变量 92
7.3 返回函数结果 93
7.4 函数调用 97
7.4.1 声明返回类型和参数类型 99
7.4.2 检查函数参数 100
7.5 自顶向下编程技术 101
7.6 函数与数组 102
7.6.1 赋值运算符 105
7.6.2 数组排序 106
7.6.3 多维数组 108
7.7 全局变量 112
7.8 自动变量与静态变量 115
7.9 递归函数 117
7.10 练习题 119
第8章 使用结构体 121
8.1 结构体的基础知识 121
8.2 用于存储日期的结构体 121
8.3 函数与结构体 125
8.4 初始化结构体 132
8.5 结构体数组 133
8.6 包含结构体的结构体 136
8.7 包含数组的结构体 138
8.8 结构体变体 140
8.9 练习题 141
第9章 字符串 143
9.1 复习字符串的基础知识 143
9.2 字符数组 143
9.3 变长字符串 145
9.3.1 字符串的初始化与显示 147
9.3.2 判断两个字符串是否相等 149
9.3.3 输入字符串 150
9.3.4 输入单个字符 152
9.3.5 空字符串 156
9.4 转义字符 158
9.5 关于字符串常量的更多内容 160
9.6 字符串、结构体和数组 161
9.7 字符操作 167
9.8 练习题 169
第 10章 指针 172
10.1 指针和间接性 172
10.2 定义一个指针变量 172
10.3 在表达式中使用指针 175
10.4 使用指针和数据结构 176
10.4.1 包含指针的结构体 178
10.4.2 链表 179
10.5 关键字const和指针 185
10.6 指针和函数 186
10.7 指针和数组 191
10.7.1 稍许离题:程序优化 194
10.7.2 是数组还是指针? 194
10.7.3 指向字符串的指针 195
10.7.4 字符串常量和指针 196
10.7.5 回顾递增和递减运算符 198
10.8 指针操作 200
10.9 指向函数的指针 201
10.10 指针和内存地址 202
10.11 练习题 203
第 11章 位运算 205
11.1 位的基础知识 205
11.2 位运算符 206
11.2.1 按位与运算符 206
11.2.2 按位或运算符 208
11.2.3 按位异或运算符 209
11.2.4 二进制求补运算符 209
11.2.5 左移运算符 211
11.2.6 右移运算符 211
11.2.7 移位函数 212
11.2.8 循环移位 213
11.3 位域 215
11.4 练习题 218
第 12章 预处理器 220
12.1 #define语句 220
12.1.1 程序的可扩展性 223
12.1.2 程序的可移植性 224
12.1.3 更*的定义类型 225
12.1.4 #运算符 229
12.1.5 ##运算符 230
12.2 #include语句 231
12.3 条件编译 233
12.3.1 #ifdef、#endif、#else和#ifndef语句 233
12.3.2 #if和#elif预处理器语句 234
12.3.3 #undef语句 235
12.4 练习题 236
第 13章 用枚举数据类型、类型定义及数据类型转换以扩展数据类型 237
13.1 枚举数据类型 237
13.2 typedef语句 240
13.3 数据类型转换 242
13.3.1 符号扩展 243
13.3.2 参数转换 243
13.4 练习题 244
第 14章 处理大型程序 245
14.1 将你的程序分为多个文件 245
14.2 模块之间的通信 247
14.2.1 外部变量 247
14.2.2 静态、外部变量和函数的对比 249
14.2.3 有效地使用头文件 251
14.3 其他处理大型程序的工具 252
14.3.1 make工具 252
14.3.2 CVS工具 254
14.3.3 UNIX工具:ar、grep、sed等命令 254
第 15章 C语言中的输入与输出操作 255
15.1 字符I/O:getchar()与putchar() 255
15.2 格式化I/O:printf()与scanf() 255
15.2.1 printf()函数 256
15.2.2 scanf()函数 261
15.3 文件的输入和输出操作 264
15.3.1 将I/O重定向到文件 264
15.3.2 文件末尾 266
15.4 处理文件的特殊函数 267
15.4.1 fopen()函数 267
15.4.2 getc()和putc()函数 268
15.4.3 fclose()函数 269
15.4.4 feof()函数 270
15.4.5 fprintf()和fscanf()函数 271
15.4.6 fgets()和fputs()函数 271
15.4.7 stdin、stdout和stderr 272
15.4.8 exit()函数 272
15.4.9 重命名和删除文件 273
15.5 练习题 273
第 16章 其他内容及*特性 275
16.1 其他语言语句 275
16.1.1 goto语句 275
16.1.2 空语句 275
16.2 使用联合体 276
16.3 逗号运算符 279
16.4 类型限定符 279
16.4.1 register限定符 279
16.4.2 volatile限定符 280
16.4.3 restrict限定符 280
16.5 命令行参数 280
16.6 动态内存分配 283
16.6.1 calloc()和malloc()函数 284
16.6.2 sizeof运算符 284
16.6.3 free()函数 286
16.7 练习题 287
第 17章 调试程序 288
17.1 使用预处理器调试 288
17.2 用GDB调试程序 293
17.2.1 处理变量 295
17.2.2 显示源文件 296
17.2.3 控制程序的执行 296
17.2.4 获得堆栈信息 300
17.2.5 调用函数以及设置数组和结构体 301
17.2.6 使用GDB命令获取帮助信息 301
17.2.7 其他 303
第 18章 面向对象程序设计 305
18.1 到底什么是对象? 305
18.2 实例和方法 306
18.3 编写一个处理分数的C语言程序 307
18.4 定义一个Objective-C类来处理分数 307
18.5 定义一个C++类来处理分数 311
18.6 定义一个C#类来处理分数 313
附录A C语言概要 316
A.1 双字符序列与标识符 316
A.1.1 双字符序列 316
A.1.2 标识符 316
A.2 注释 317
A.3 常量 317
A.3.1 整型常量 317
A.3.2 浮点型常量 318
A.3.3 字符型常量 318
A.3.4 字符串常量 319
A.3.5 枚举常量 319
A.4 数据类型和声明 320
A.4.1 声明 320
A.4.2 基本数据类型 320
A.4.3 派生数据类型 321
A.4.4 枚举数据类型 326
A.4.5 typedef语句 326
A.4.6 类型限定符const、volatile和restrict 327
A.5 表达式 327
A.5.1 C语言运算符总结 328
A.5.2 常量表达式 329
A.5.3 算术运算符 330
A.5.4 逻辑运算符 330
A.5.5 关系运算符 331
A.5.6 位运算符 331
A.5.7 递增和递减运算符 331
A.5.8 赋值运算符 332
A.5.9 条件运算符 332
A.5.10 类型转换运算符 332
A.5.11 sizeof运算符 332
A.5.12 逗号运算符 333
A.5.13 数组的基本操作 333
A.5.14 结构体的基本操作 333
A.5.15 指针的基本操作 334
A.5.16 复合字面量 335
A.5.17 基本数据类型的转换 335
A.6 存储类和作用域 336
A.6.1 函数 336
A.6.2 变量 336
A.7 函数 337
A.7.1 函数定义 337
A.7.2 函数调用 338
A.7.3 函数指针 338
A.8 语句 339
A.8.1 复合语句 339
A.8.2 break语句 339
A.8.3 continue语句 339
A.8.4 do语句 339
A.8.5 for语句 339
A.8.6 goto语句 340
A.8.7 if语句 340
A.8.8 空语句 341
A.8.9 return语句 341
A.8.10 switch语句 341
A.8.11 while语句 342
A.9 预处理器 342
A.9.1 三字符组 342
A.9.2 预处理器指令 343
A.9.3 预定义标识符 346
附录B 标准C语言库 347
B.1 标准头文件 347
B.1.1 <stddef.h> 347
B.1.2 <limits.h> 347
B.1.3 <stdbool.h> 348
B.1.4 <float.h> 348
B.1.5 <stdint.h> 349
B.2 字符串函数 349
B.3 内存函数 351
B.4 字符函数 352
B.5 I/O函数 353
B.6 内存中的格式转换函数 357
B.7 字符串转换为数字 358
B.8 动态内存分配函数 359
B.9 数学函数 360
B.10 通用函数 368
附录C 使用GCC编译程序 371
C.1 通用命令格式 371
C.2 命令行选项 371
附录D 常见的程序错误 373
附录E 参考资源 377
E.1 C语言 377
E.1.1 图书 377
E.1.2 网站 377
E.1.3 网络论坛 377
E.2 C语言编译器和集成开发环境 377
E.2.1 GCC 378
E.2.2 MinGW 378
E.2.3 Cygwin 378
E.2.4 Visual Studio 378
E.2.5 CodeWarrior 378
E.2.6 Code::Blocks378
- 人民邮电出版社有限公司 (微信公众号认证)
- 人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...