C语言程序设计(第4版 修订版)

978-7-115-63740-6
作者: [美]史蒂芬·G.寇肯(Stephen G. Kochan)
译者: 王普聪
编辑: 龚昕岳
分类: 其他

图书目录:

第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 347

B.1.2 347

B.1.3 348

B.1.4 348

B.1.5 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::Blocks 378

详情

本书通过程序示例讲解C语言的众多概念、函数和编程方法,帮助初学者更好地掌握C语言编程的内容。 本书从C语言的基础概念和编译过程出发,详细讲解C语言的数据类型、算术表达式、循环语句、判断语句、数组、函数、结构体、字符串、指针、位运算、预处理器、输入输出操作等,以及goto语句、联合体、逗号运算符、限定符、命令行参数、动态内存分配、程序调试、面向对象程序设计等高级特性。此外,本书提供了大量练习题,帮助读者巩固实践;并通过附录提供C语言概要、标准C语言库、使用GCC编译程序、常见的编程错误、C语言编译器和集成开发环境等内容。 本书适合想要零基础入门C语言编程的读者,也适合用作计算机等相关专业C语言课程的教学参考书。

图书摘要

相关图书

Joy RL:强化学习实践教程
Joy RL:强化学习实践教程
DeepSeek极速上手 :高效做事不内耗
DeepSeek极速上手 :高效做事不内耗
高并发系统:设计原理与实践
高并发系统:设计原理与实践
秒懂AI辅助论文写作
秒懂AI辅助论文写作
AI商业进化论:“人工智能+”赋能新质生产力发展
AI商业进化论:“人工智能+”赋能新质生产力发展
开源心法
开源心法

相关文章

相关课程