C语言编程:一本全面的C语言入门教程

C语言编程:一本全面的C语言入门教程
作 者: 科汉 张小潘
出版社: 电子工业出版社
丛编项: 一本全面的C 语言入门教程
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: C
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  Stephen G.Kochan是本计算机编程和Unix操作系统经典书籍的作者或合著者,这些书包括《Unix Shell编程》和《Objective-C编程语言》等。作者曾作为软件咨询顾问工作于AT&T的贝尔实验室,专门负责设计和教授Unix和C语言方面的课程。

内容简介

本书是极负盛名的C语言入门经典教材,其第一版发行至今已有20年的历史。本书内容详实全面,由浅入深,示例丰富,并在每个章节后面附有部分习题,非常适合读者自学使用。除此之外,《C语言编程》一书对于C语言标准的最新进展、C语言常见开发工具以及管理C语言大型项目等重要方面,也进行了深入浅出的说明。本书是一本完完整整介绍C语言基础的书籍。本书最大的特色在于举例精妙,讲解生动。通过一系列实际情形的需求,引入关于程序设计的基本知识,加上由浅入深地比较了C语言不同语法以及各种语句的区别,能够全面掌握C语言的语法特点。除此之外,本书并不仅仅着眼于入门知识讲解,对C语言在大型应用程序的应用以及C语言的最新发展都有了深入的讲解。本书的附录颇具特色,摘录了常用的C语言库函数,使读者能够快速掌握以及应用C语言开发。

图书目录

第1章 入门 1

第2章 基础知识 5

程序设计 5

高级编程语言 6

操作系统 6

编译程序 7

集成开发环境 10

解释型语言 10

第3章 编译并运行第一个程序 11

编译我们的第一个程序 11

运行我们的第一个程序 12

理解我们的第一个程序 13

显示变量的值 15

注释 17

练习 19

第4章 变量、数据类型和算术表达式 21

使用变量 21

数据类型与常量 23

基本整数类型 int 23

存储空间与范围 24

浮点数类型 float 24

扩展精度的浮点类型 double 25

字符类型 char 25

布尔类型 _Bool 26

类型修饰符:long, long long, short, unsigned和signed 28

使用算数表达式 30

整数算术和单目减法操作符 33

余数操作符 35

整型数与浮点数之间的转换 36

结合运算和赋值:运算赋值操作符 38

类型 _Complex和_Imaginary 39

练习 40

第5章 循环 43

for语句 44

关系操作符 46

对齐输出 50

程序输入 51

嵌套的for循环 53

for循环的变体 54

while语句 56

do语句 60

break语句 62

continue语句 62

练习 63

第6章 进行判断 65

if语句 65

if - else结构 69

复合关系表达式 72

嵌套的if语句 75

else if 结构 76

switch语句 84

布尔变量 87

条件操作符 91

练习 93

第7章 使用数组 95

定义数组 96

使用数组计数 100

产生Fibonacci数 103

使用数组产生质数 104

数组初始化 106

字符数组 108

使用数组完成基数转换 109

const修饰符 111

多维数组 113

变量长度的数组 115

练习 117

第8章 使用函数 119

定义函数 119

参数与局部变量 122

函数原型声明 124

自动局部变量 124

函数的返回值 126

函数调用…… 131

声明返回值类型以及参数类型 134

检查函数的参数 135

自顶向下的程序设计 137

函数与数组 137

赋值表达式 142

数组排序 143

多维数组 146

函数与可变长度的多维数组 150

全局变量 152

自动变量和静态变量 156

递归函数 159

练习 162

第9章 使用结构 165

用于存储日期的结构 166

在表达式中使用结构 168

函数与结构 171

用于存储时间的结构 177

结构的初始化 180

复合字面量 181

结构数组 182

包含结构的结构 185

包含数组的结构 187

结构的变形形式 190

练习 191

第10章 字符串 195

字符数组 196

可变长度的字符串 198

字符串的初始化和显示 201

检验字符串相等 204

输入字符串 206

单字符输入 208

空字符串 213

转义字符 216

关于字符串常量的进一步讨论 218

字符串、结构与数组 219

一个更好的搜索算法 222

字符运算 227

练习 230

第11章 指针 235

定义指针变量 235

在表达式中运用指针 239

使用指针和结构 240

包含指针的结构 243

链表 244

关键字const和指针 253

指针和函数 254

指针和数组 259

稍微离题一下--关于程序的优化 263

数组还是指针 264

指向字符串的指针 266

字符串常量和指针 267

再次谈谈递增和递减运算符 268

指针运算 272

指向函数的指针 273

指针和内存地址 274

练习 276

第12章 位运算 279

位运算符 280

按位与运算符(&) 281

按位或运算符(|) 283

按位异或运算符(^) 284

取反运算符(~) 285

左移运算符(<<) 287

右移运算符(>>) 287

移位函数 288

旋转移位 290

位域 292

练习 297

第13章 预处理器 299

#define语句 299

程序的可扩展性 303

程序的可移植性 305

预定义符号的高级形式 306

#操作符 312

##操作符 313

#include语句 313

系统头文件 316

条件编译 316

#ifdef、#endif、#else和#ifndef语句 316

#if和#elif语句 318

#undef语句 319

练习 320

第14章 进一步讨论数据类型 321

枚举类型 321

typedef语句 325

数据类型转换 327

符号扩展 329

参数转换 329

练习 330

第15章 处理大型程序 333

将程序分为多个文件 333

在命令行上编译多个源文件 334

模块之间的通信 336

外部变量 336

静态变量与外部变量/函数 339

有效的使用头文件 341

用于处理大型程序的其他工具 342

make 343

cvs 344

Unix的其他工具:ar、grep、sed等等 345

第16章 C语言的输入输出 347

字符I/O:getchar函数和putchar函数 348

格式化I/O:printf函数和scanf函数 348

printf函数 348

scanf函数 355

文件输入输出操作 359

将I/O操作重定向到文件中 359

文件结束标志 361

用于读写文件的特殊函数 363

fopen函数 363

getc和putc函数 365

fclose函数 365

函数feof 367

fprintf函数和fscanf函数 368

fgets函数和fputs函数 368

标准输入stdin、标准输出stdout和标准错误stderr 369

exit函数 370

重命名和删除文件 371

练习 371

第17章 杂项和高级特性 373

杂项语句 373

goto语句 373

空语句 374

使用联合 375

逗号操作符 378

类型修饰符 378

register修饰符 378

volatile修饰符 379

restrict修饰符 379

命令行参数 380

动态内存分配 383

malloc和calloc函数 384

sizeof操作符 385

free函数 387

第18章 调试程序 389

使用预处理器嵌入调试语句 389

使用gdb调试程序 395

查看和设置变量 398

显示源文件 399

控制程序的执行 400

查看调用堆栈 405

调用函数和给数组、结构变量赋值 405

获取gdb的命令帮助 406

其他零碎的东西 408

第19章 面向对象编程 411

什么是对象 411

实例和方法 412

编写处理分数的C语言程序 413

使用Objective-C定义用于处理分数的类 414

使用C++编写分数类 419

使用C#语言处理分数 422

附录A C语言小结 425

1.0 字元和标识符 425

1.1 字元 425

1.2 标识符 425

2.0 注释 426

3.0 常量 427

3.1 整数常量 427

3.2 浮点数常量 427

3.3 字符常量 428

3.4 字符串常量 429

3.5 枚举常量 430

4.0 数据类型与声明 430

4.1 声明 430

4.2 基本数据类型 430

4.3 导出数据类型 432

4.4 枚举数据类型 438

4.5 typedef语句 438

4.6 类型修识符const、volatile和restrict 439

5.0 表达式 439

5.1 C语言的操作符总结 440

5.2 常量表达式 442

5.3 算术操作符 443

5.4 逻辑操作符 444

5.5 关系操作符 444

5.6 位操作符 445

5.7 自增和自减操作符 445

5.8 赋值操作符 446

5.9 条件操作符 446

5.10 类型转换操作符 446

5.11 sizeof操作符 447

5.12 逗号操作符 447

5.13 数组的基本操作 447

5.14 结构的基本操作 448

5.15 指针的基本操作 448

5.16 复合字面量 450

5.17 基本数据类型的转换规则 451

6.0 存储类型与作用域 452

6.1 函数 452

6.2 变量 452

7.0 函数 454

7.1 函数定义 454

7.2 函数调用 455

7.3 函数指针 456

8.0 语句 456

8.1 复合语句 456

8.2 break语句 456

8.3 continue语句 457

8.4 do语句 457

8.5 for语句 457

8.6 goto语句 458

8.7 if语句 458

8.8 空语句 458

8.9 return语句 459

8.10 switch语句 459

8.11 while语句 460

9.0 预处理器 460

9.1 三元组 460

9.2 预处理器指令 461

9.3 预定义符号 466

附录B C语言标准库 467

标准头文件 467

<stddef.h> 467

<limits.h> 468

<stdbool.h> 469

<float.h> 469

<stdint.h> 469

字符串函数 470

内存函数 472

字符函数 473

输入输出函数 473

内存中的格式转换函数 478

字符串到数字的转换 479

动态内存分配函数 481

数学函数 482

复数算术 488

通用函数 490

附录C 使用gcc编译程序 493

命令的一般格式 493

命令行选项 494

附录D 常见编程错误 497

附录E C语言的其他资源 501

练习题答案和勘误表 501

C语言 501

书籍 501

网站 502

新闻组 502

C语言编译器和集成开发环境 502

gcc 502

MinGW 502

CygWin 502

Visual Studio 503

Code Warrior 503

Kylix 503

杂项 503

面向对象编程 503

C++编程语言 503

C#编程语言 503

Objective-C 编程语言 504

开发工具 504

索引 505