好书推荐 好书速递 排行榜 读书文摘

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

C语言程序设计(第4版)
作者:[美] Stephen G. Kochan
译者:贾洪峰
出版社:电子工业出版社
出版年:2015-05
ISBN:9787121258886
行业:计算机
浏览数:83

内容简介

《C语言程序设计(第4版)》全面介绍了C 语言的各种特性,包括C11 中增加的内容。书中包含大量完整的示例及详细的讲解。无论是否拥有编程经验,你都可以通过《C语言程序设计(第4版)》透彻地理解C 语言。每章最后附有习题,便于课堂学习或自学。

......(更多)

作者简介

Stephen G. Kochan撰写及合作撰写了6本经典的程序设计与Unix书籍,包括Unix Shell Programming和Programming in Objective-C。他曾任AT&T贝尔实验室的软件顾问,从事Unix和C程序设计的开发与授课工作。

......(更多)

目录

前言 ........................... 1

1 基础知识 .............. 5

程序设计 .......................... 5

高级语言 .......................... 6

操作系统 .......................... 7

编译程序 .......................... 7

集成开发环境 ................ 10

语言解释器 .................... 11

2 编译和运行第一个程序 ............. 13

编译程序 ........................ 14

运行程序 ........................ 14

理解第一个程序 ............ 15

显示变量的值 ................ 17

注释 ................................ 19

练习 ................................ 21

3 变量、数据类型和算术表达式 .. 23

理解数据类型和常量 .... 23

整数类型int ....... 24

浮点数值类型float ................ 25

扩展精度类型double ............. 26

单字符类型char 26

布尔数据类型_Bool ................. 27

类型说明符:long、long long、short、unsigned 和signed ... 28

使用变量 ........................ 31

使用算术表达式 ............ 33

整数算术及一元减运算符 ......... 36

运算与赋值相结合:赋值运算符 ...... 42

_Complex 和_Imaginary 类型 ..... 43

练习 ................................ 43

4 程序循环 ............ 45

三角数 ............................ 45

for 语句 ........................ 46

关系运算符 ........... 48

输出的对齐 ........... 52

程序输入 ............... 53

嵌套for 循环 ...... 55

for 循环的变体 ... 57

while 语句 ................... 59

do 语句 .......................... 63

break 语句 .......... 65

continue 语句 ... 65

练习 ................................ 66

5 做出决策 ............ 69

if 语句 .......................... 69

if-else 构造 ..... 73

复合关系测试 ....... 76

嵌套if 语句 ........ 79

else if 构造 ..... 81

switch 语句 ................. 88

布尔变量 ........................ 91

条件运算符 .................... 96

练习 ................................ 97

6 使用数组 .......... 101

定义数组 ...................... 102

以数组元素为计数器 ............... 106

生成斐波那契数 ...... 109

用数组生成质数 ...... 111

初始化数组 .................. 113

字符数组 ...................... 115

使用数组的基数变换 ............... 116

const 限定符 .... 118

多维数组 ...................... 120

变长数组 ...................... 122

练习 .............................. 124

7 使用函数 .......... 127

定义函数 ...................... 127

参数和局部变量 .......... 131

函数原型声明 ..... 132

自动局部变量 ..... 132

返回函数结果 .............. 134

函数调用 ...................... 139

声明返回类型和参数类型 ....... 142

检查函数参数 ..... 144

自上而下的程序设计 .. 146

函数与数组 .................. 146

赋值运算符 ......... 151

数组排序 ............. 152

多维数组 ............. 155

全局变量 ...................... 161

自动变量与静态变量 .. 165

递归函数 ...................... 168

练习 .............................. 171

8 使用结构体 ....... 175

结构体的基础知识 ...... 175

用于存储日期的结构体 .................... 176

在表达式中使用结构体 ........... 178

函数与结构体 .............. 181

用于存储时间的结构体 ........... 187

初始化结构体 .............. 190

复合字面量 ......... 191

结构体的数组 .............. 192

包含结构体的结构体 .. 196

包含数组的结构体 ...... 198

结构体变体 .................. 202

练习 .............................. 203

9 字符串 .............. 205

复习字符串的基础知识 .................... 205

字符数组 ...................... 206

变长字符串 .................. 209

字符串的初始化与显示 ........... 211

判断两个字符串是否相等 ....... 214

输入字符串 ......... 216

单字符输入 ......... 219

空字符串 ............. 224

转义字符 ...................... 228

再论常量字符串 .......... 230

字符串、结构体和数组 .................... 231

一种更好的搜索方法 ............... 235

字符操作 ...................... 240

练习 .............................. 243

10 指针 ............... 247

指针和间接性 .............. 247

定义指针变量 .............. 248

在表达式中使用指针 .. 252

使用指针和结构体 ...... 253

包含指针的结构体 ................... 256

链表 ..................... 258

关键字const 和指针 ...... 266

指针和函数 .................. 267

指针和数组 .................. 273

稍许离题:程序优化 ............... 277

是数组还是指针? ................... 278

指向字符串的指针 ................... 280

常量字符串和指针 ................... 282

递增和递减运算符回顾 ........... 283

指针操作 ...................... 287

指向函数的指针 .......... 288

指针和内存地址 .......... 289

练习 .............................. 291

11 位运算 ............ 295

位的基础知识 .............. 295

位运算符 ...................... 297

按位与运算符 ..... 297

按位或运算符 ..... 300

按位异或运算符 . 301

二进制求补运算符 ................... 301

左移运算符 ......... 304

右移运算符 ......... 304

移位函数 ............. 305

循环移位 ............. 307

位段 .............................. 309

练习 .............................. 314

12 预处理器 ........ 317

#define 语句 ............ 317

程序可扩展性 ..... 322

程序可移植性 ..... 323

更高级的定义类型 ................... 324

#运算符 ............... 330

##运算符 ............ 331

#include 语句 .......... 332

系统包含文件 ..... 335

条件编译 ...................... 335

#ifdef、#endif、#else 和#ifndef 语句 .....336

#if 和#elif 预处理器语句 .. 338

#undef 语句 ...... 339

练习 .............................. 339

13 用枚举数据类型、类型定义和数据类型转换扩展数据类型 ........................ 341

枚举数据类型 .............. 341

typedef 语句 ............ 345

数据类型转换 .............. 348

符号扩展 ............. 350

参数转换 ............. 350

练习 .............................. 351

14 处理大型程序 . 353

将程序分为多个文件 .. 353

由命令行编译多个源文件 ....... 354

模块之间的通信 .......... 356

外部变量 ............. 357

静态、动态变量与函数 ........... 359

有效使用头文件 . 362

其他处理大型程序的实用工具 ........ 364

make 实用工具 .. 364

cvs 实用工具 ..... 366

Unix 实用工具:ar、grep、sed 等 ................ 366

15 C 语言中的输入与输出操作 .. 369

字符I/O:getchar()和putchar() ...................... 369

格式化I/O:printf()和scanf() .......................... 370

printf()函数 .. 370

scanf()函数 .... 377

文件输入与输出操作 .. 382

将I/O 重定向到文件 ................ 382

文件尾 ................. 385

处理文件的特殊函数 .. 386

fopen 函数 ........ 387

getc()和putc()函数 ......... 389

fclose()函数 .. 389

feof 函数 .......... 391

fprintf()和fscanf()函数 .......................... 392

fgets()和fputs()函数 .... 392

stdin、stdout 和stderr 393

exit()函数 ....... 394

重命名和删除文件 ................... 395

练习 .............................. 396

16 其他及高级特性 ................... 397

其他语言语句 .............. 397

goto 语句 .......... 397

空语句 ................. 398

使用联合体 .................. 399

逗号运算符 .................. 402

类型限定符 .................. 403

register 限定符 ................... 403

volatile 限定符 ................... 403

restrict 限定符 ................... 404

命令行参数 .................. 404

动态内存分配 .............. 408

calloc()和malloc()函数 ............................ 409

sizeof 运算符 .. 410

free 函数 .......... 413

练习 .............................. 414

17 调试程序 ........ 415

用预处理器调试 .......... 415

用gdb 调试程序 ......... 422

处理变量 ............. 425

源文件显示 ......... 426

控制程序的执行 . 427

获得栈轨迹 ......... 432

调试函数,设置数组和结构体 ............................ 432

用gdb 命令获取帮助 .............. 433

杂项 ..................... 435

18 面向对象程序设计 ................ 437

到底什么是对象? ...... 437

实例与方法 .................. 438

编写一个处理分数的C 程序 ........... 440

定义一个处理分数的Objective-C 类 ........................... 441

定义一个处理分数的C++类 ............ 446

定义一个处理分数的C#类 .............. 448

附录A C 语言概要 .................... 453

1.0 双字符组和标识符 ................... 453

2.0 注释 ..................... 454

3.0 常量 ..................... 455

4.0 数据类型和声明 . 458

4.6 类型限定符const、volatile 和restrict ................ 468

5.0 表达式 ................. 469

6.0 存储类和作用域 . 482

7.0 函数 ..................... 483

8.0 语句 ..................... 486

9.0 预处理器 ............. 490

附录B 标准C 语言库 ................ 497

标准头文件 .................. 497

字符串函数 .................. 500

内存函数 ...................... 502

字符函数 ...................... 503

I/O 函数 ........................ 503

内存中的格式转换函数 .................... 509

字符串转换为数字 ...... 510

动态内存分配函数 ...... 512

数学函数 ...................... 513

复数运算 ...................... 519

通用函数 ...................... 521

附录C 用gcc 编译程序 ............ 525

通用命令格式 .............. 525

命令行选项 .................. 526

附录D 常见编程错误 ................ 527

附录E 资源 ......... 533

C 程序设计语言 .......... 533

C 编译器和集成开发环境 ................ 534

其他 .............................. 535

......(更多)

读书文摘

......(更多)

猜你喜欢

点击查看