《C语言程序设计 第2版》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:苏小红,王宇颖,孙志岗等编著
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2013
  • ISBN:9787040377040
  • 页数:422 页
图书介绍:本书是一本兼具趣味性和实用性的C程序设计教材,适合作为高等院校各专业计算机公共基础课教材。全书由13章组成,内容包括:为什么要学C语言,C数据类型、简单的算术运算符和表达式,键盘输入和屏幕输出,选择控制结构,循环控制结构,函数,数组,指针,字符串,指针和数组,结构体与共用体,文件操作。为了避免以往教材“实例不实、为解释语法而设计”、“语法堆砌、只见树木不见森林”、“忽视错误程序的分析和讲解”等问题,本书以应用为背景,面向工程实践和编程能力训练,从实际问题出发,在案例的不断深化中逐步引出知识点,形成逻辑清晰的脉络和主线,案例内容紧密结合实践,举一反三,融会贯通,尤其侧重错误案例的分析和讲解,在任务驱动下,由浅入深、启发引导读者循序渐进地编写规模逐渐加大的程序,让读者在不知不觉中逐步加深对C程序设计方法的了解。为任课教师免费提供多媒体课件、例题和习题源代码,以及基于C/S结构的编程题考试自动评分系统等教学资源。本书适合作为高等学校各专业的C语言程序设计课程教材,也可作为从事计算机相关工作的科技人员、计算机爱好者及各类自学人员参考。

第1章 为什么要学C语言 1

1.1引言 1

1.2游戏、黑客和C语言 1

1.3 C语言,不老的传说 4

1.4 C语言的爱与恨 5

1.5 C语言教给我们的事 5

1.6什么是“编程” 8

1.7本章小结 9

习题1 9

第2章 C数据类型 10

2.1常量与变量 10

2.1.1常量 10

2.1.2变量 12

2.2简单的屏幕输出 14

2.3数据类型 15

2.4如何计算变量或数据类型所占内存空间的大小 17

2.5变量的赋值和赋值运算符 19

2.6本章扩充内容 20

2.7本章知识点小结 23

2.8本章常见错误小结 24

习题2 24

本章实验题 24

第3章 简单的算术运算和表达式 25

3.1 C运算符和表达式 25

3.1.1算术运算符和表达式 25

3.1.2复合的赋值运算符 28

3.1.3增1和减1运算符 29

3.2宏常量与宏替换 31

3.3 const常量 33

3.4自动类型转换与强制类型转换运算符 34

3.5常用的标准数学函数 37

3.6本章知识点小结 39

3.7本章常见错误小结 40

习题3 40

本章实验题 41

第4章 键盘输入和屏幕输出 42

4.1单个字符的输入/输出 42

4.1.1字符常量 42

4.1.2字符的输入/输出 43

4.2数据的格式化屏幕输出 45

4.3数据的格式化键盘输入 48

4.4本章扩充内容 52

4.5本章知识点小结 55

4.6本章常见错误小结 56

习题4 56

本章实验题 58

第5章 选择控制结构 59

5.1生活中与计算机中的问题求解方法 59

5.2算法的概念及其描述方法 60

5.2.1算法的概念 60

5.2.2算法的描述方法 61

5.3关系运算符与关系表达式 63

5.4用于单分支控制的条件语句 64

5.5用于双分支控制的条件语句 65

5.6条件运算符和条件表达式 66

5.7用于多分支控制的条件语句 67

5.8用于多路选择的switch语句 72

5.9逻辑运算符和逻辑表达式 76

5.10本章扩充内容 79

5.10.1程序测试 79

5.10.2对输入非法字符的检查与处理 87

5.10.3位运算符 90

5.11本章知识点小结 93

5.12本章常见错误小结 94

习题5 95

本章实验题 97

第6章 循环控制结构 98

6.1循环控制结构与循环语句 98

6.2计数控制的循环 106

6.3嵌套循环 109

6.4条件控制的循环 112

6.5流程的转移控制 124

6.5.1 goto语句 124

6.5.2 break语句 124

6.5.3 continue语句 126

6.5.4穷举法编程实例 128

6.6本章扩充内容 131

6.6.1结构化程序设计的核心思想 131

6.6.2常用的程序调试与排错方法 132

6.6.3类型溢出 133

6.7本章知识点小结 134

6.8本章常见错误小结 135

习题6 136

本章实验题 142

第7章 函数 144

7.1分而治之与信息隐藏 144

7.2函数的定义 145

7.2.1函数的分类 145

7.2.2函数的定义 146

7.3向函数传递值和从函数返回值 147

7.3.1函数调用 147

7.3.2函数原型 149

7.3.3函数封装与防御性程序设计 151

7.3.4函数设计的基本原则 158

7.4函数的递归调用和递归函数 159

7.5变量的作用域和存储类型 162

7.5.1变量的作用域 162

7.5.2变量的存储类型 164

7.6模块化程序设计 172

7.6.1模块分解的基本原则 172

7.6.2自顶向下、逐步求精 172

7.6.3模块化程序设计实例 174

7.7本章扩充内容 180

7.8本章知识点小结 182

7.9本章常见错误小结 183

习题7 184

本章实验题 187

第8章 数组 189

8.1一维数组的定义和初始化 189

8.2二维数组的定义和初始化 194

8.3向函数传递一维数组 197

8.4排序和查找 203

8.5向函数传递二维数组 215

8.6本章知识点小结 220

8.7本章常见错误小结 221

习题8 222

本章实验题 228

第9章 指针 230

9.1变量的内存地址 230

9.2指针变量的定义和初始化 231

9.3间接寻址运算符 235

9.4按值调用与按地址调用 237

9.5用指针变量作函数参数的程序实例 243

9.6函数指针及其应用 246

9.7本章知识点小结 254

9.8本章常见错误小结 254

习题9 255

本章实验题 257

第10章 字符串 258

10.1字符串常量 258

10.2字符串的存储 258

10.3字符指针 260

10.4字符串的访问和输入/输出 261

10.4.1如何访问字符串中的单个字符 261

10.4.2字符串的输入/输出 261

10.5字符串处理函数 266

10.6向函数传递字符串 270

10.7从函数返回字符串指针 274

10.8本章扩充内容 277

10.9本章知识点小结 285

10.10本章常见错误小结 286

习题10 287

本章实验题 290

第11章 指针和数组 291

11.1指针和一维数组间的关系 291

11.2指针和二维数组间的关系 298

11.3指针数组及其应用 305

11.3.1指针数组用于表示多个字符串 305

11.3.2指针数组用于表示命令行参数 312

11.4动态数组 313

11.4.1 C程序的内存映像 313

11.4.2动态内存分配函数 314

11.4.3长度可变的一维动态数组 316

11.4.4长度可变的二维动态数组 318

11.5本章扩充内容 320

11.5.1常见的内存错误及其对策 320

11.5.2缓冲区溢出攻击 329

11.6本章知识点小结 331

11.7本章常见错误小结 332

习题11 332

本章实验题 336

第12章 结构体和共用体 338

12.1从基本数据类型到抽象数据类型 338

12.2结构体的定义 339

12.2.1为什么要定义结构体类型 339

12.2.2结构体变量的定义 341

12.2.3用typedef定义数据类型 343

12.2.4结构体变量的初始化 344

12.2.5嵌套的结构体 345

12.2.6结构体变量的引用 346

12.2.7结构体所占内存的字节数 350

12.3结构体数组的定义和初始化 351

12.3.1结构体数组的定义 351

12.3.2结构体数组的初始化 352

12.4结构体指针的定义和初始化 354

12.4.1指向结构体变量的指针 354

12.4.2指向结构体数组的指针 355

12.5向函数传递结构体 355

12.6共用体 362

12.7枚举数据类型 365

12.8动态数据结构——单向链表 366

12.8.1问题的提出 366

12.8.2链表的定义 367

12.8.3单向链表的建立 368

12.8.4单向链表的删除操作 372

12.8.5单向链表的插入操作 373

12.9本章知识点小结 376

12.10本章常见错误小结 377

习题12 378

本章实验题 379

第13章 文件操作 381

13.1二进制文件和文本文件 381

13.2文件的打开和关闭 383

13.3按字符读写文件 384

13.4按格式读写文件 391

13.5按数据块读写文件 397

13.6本章扩充内容 402

13.6.1文件的随机读写 402

13.6.2标准输入/输出重定向 405

13.7本章知识点小结 406

13.8本章常见错误小结 407

习题13 407

本章实验题 408

附录A C关键字 410

附录B Visual C++下基本数据类型的取值范围 411

附录C C运算符的优先级与结合性 412

附录D 常用字符与ASCII值对照表 413

附录E 常用的ANSI C标准库函数 414

参考文献 422