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

  • 购买积分:14 如何计算积分?
  • 作  者:郑平安等编
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2006
  • ISBN:7302123985
  • 页数:407 页
图书介绍:本书全面、系统地介绍了C语言程序设计的基本知识。包括:C语言的基本概念、变量、运算符、表达式、顺序结构、分支结构计、循环结构、数组、函数、指针、结构体、联合体和枚举类型、接口与函数库、文件。同时也介绍了一些与程序设计有关的知识,包括程序设计与分析、抽象数据类型、程序抽象等。本书结构清晰、语言通俗易懂、内容由浅入深、循序渐进、实例丰富、习题具有代表性。全书贯彻传授知识、培养能力、提高素质的教学理念。本书可以作为高等院校非计算机专业C语言程序设计的教材,也可以作为初次学习C语言程序设计的读者、准备计算机二级考试者和计算机工程技术人员参考。

目录 1

第1章 C语言概述 1

1.1 C语言的发展和特点 1

1.1.1 C语言的发展过程 1

1.1.2 C语言的主要特点 2

1.2 C程序的结构 3

1.3 Turbo C上机步骤 6

1.3.1 Turbo C 2.0文件简介 6

1.3.2 Turbo C启动 6

1.3.3 源程序的输入、编译、连接和运行 7

小结 8

习题 8

第2章 基本数据类型和运算符 9

2.1 关键字、标识符和保留标识符 9

2.2.1 常量和变量的概念 11

2.2 基本数据类型 11

2.2.2 整型常量和实型常量 14

2.2.3 整型变量 15

2.2.4 实型变量 18

2.2.5 字符常量和字符串常量 20

2.2.6 字符变量 23

2.2.7 用char定义小整数 25

2.2.8 符号常量 26

2.3 运算符和表达式 28

2.3.1 表达式的概念 28

2.3.2 算术运算符 30

2.3.3 标准系统库函数调用 31

2.3.4 数据类型的转换 33

2.3.5 赋值运算符 36

2.3.6 增量运算符 39

2.3.7 副作用和顺序点 41

2.3.8 关系运算符 42

2.3.9 逻辑运算符 43

2.3.10 条件运算符 47

2.3.11 逗号运算符和逗号表达式 48

2.3.12 运算符优先级和结合方向 48

小结 49

习题 50

第3章 顺序语句和选择语句 55

3.1 程序设计概述 55

3.2 scanf()函数和字符输入、输出函数调用 57

3.2.1 数据输入的概念 57

3.2.2 scanf()函数的调用 58

3.2.3 字符输入函数 60

3.2.4 字符输出函数 61

3.3 表达式语句 62

3.4 复合语句 62

3.5.1 if结构 63

3.5 if条件语句 63

3.5.2 if-else结构 67

3.5.3 if-else-if结构 69

3.5.4 条件语句的嵌套 73

3.6 switch语句 77

3.7 程序设计举例 81

小结 85

习题 85

第4章 循环语句和转移语句 88

4.1 循环的概念 88

4.2 for循环 89

4.3 while循环 98

4.4 do-while循环 102

4.5 break语句 104

4.6 continue语句 104

4.7 多重循环 106

4.8 goto语句 114

小结 115

习题 115

第5章 数组 119

5.1 一维数组 119

5.1.1 一维数组的定义 119

5.1.2 一维数组元素的引用 120

5.1.3 一维数组元素的初始化 122

5.2 二维数组 124

5.2.1 二维数组的定义 124

5.2.2 二维数组的引用 125

5.2.3 二维数组元素的初始化 126

5.3 字符型数组 129

5.3.1 字符数组的定义 129

5.3.2 字符数组的引用 130

5.3.3 字符数组的初始化 131

5.3.4 字符串及其结束标志 132

5.3.5 字符数组的输入/输出 134

5.3.6 常用的字符串处理函数 136

5.4 使用数组的程序设计方法 140

5.4.1 排序 140

5.4.2 查找 143

小结 149

习题 150

第6章 函数和模块设计 155

6.1 结构化程序设计 155

6.1.1 结构化程序设计的基本概念 156

6.1.2 结构化程序设计的基本特征 156

6.2 函数的定义和调用 157

6.2.1 函数的定义 158

6.2.2 函数的调用 159

6.2.3 函数的返回值 162

6.2.4 函数参数及函数间的数据传递 165

6.3.1 函数的嵌套调用 173

6.3 函数的嵌套调用和递归调用 173

6.3.2 函数的递归调用 176

6.4 作用域和存储类型 178

6.5 内部函数和外部函数 187

6.5.1 内部函数 187

6.5.2 外部函数 188

6.6 模块化程序设计 189

6.6.1 模块化程序设计方法的指导思想 189

6.6.2 模块分解的原则 190

6.7 应用举例 191

小结 197

习题 197

第7章 指针 200

7.1 指针的基本概念 200

7.2 指针变量的定义和初始化 201

7.2.1 指针变量的定义 201

7.3.1 取地址运算符& 202

7.2.2 指针变量的初始化 202

7.3 指针运算符 202

7.3.2 指针运算符* 203

7.4 指针变量的运算 203

7.4.1 赋值运算 203

7.4.2 加减算术运算 205

7.4.3 两指针变量进行关系运算 207

7.4.4 指针变量还可以与0比较 207

7.5 指针变量作为函数参数 210

7.6 指针和数组的关系 213

7.6.1 指向数组的指针变量 213

7.6.2 通过指针引用数组元素 214

7.6.3 通过指针引用数组元素时应注意几个问题 216

7.6.4 数组名作函数参数 217

7.7.1 字符串的表示形式 219

7.7 指向字符串的指针变量 219

7.7.2 使用字符串指针变量与字符数组的区别 220

7.7.3 字符串指针作为函数参数 221

7.8 指向多维数组的指针变量 223

7.8.1 多维数组的地址 223

7.8.2 指向数组的指针变量——数组指针变量 226

7.9 指针数组和多级指针 228

7.9.1 指针数组的概念 228

7.9.2 指针数组的应用 229

7.9.3 多级指针(指向指针的指针) 232

7.10 指向函数的指针 234

7.10.1 函数指针的概念 234

7.10.2 函数指针的应用 236

7.11 指针型函数 240

7.12 命令行参数 242

7.12.1 命令行参数的概念 242

7.12.2 打印命令行参数 243

7.12.3 命令行参数使用形式 244

7.12.4 main()函数的返回 244

7.12.5 从命令行提取文件名 245

小结 247

习题 250

第8章 结构体与联合体 257

8.1 结构体 257

8.1.1 结构的定义和结构变量的引用 257

8.1.2 结构类型变量的说明 258

8.1.3 结构变量成员的引用 260

8.1.4 结构变量的赋值 260

8.1.5 结构变量的初始化 261

8.1.6 结构数组的定义 261

8.1.7 结构指针变量的说明和使用 263

8.1.8 结构数据的动态存储分配 267

8.1.9 链表及其基本操作 268

8.2 联合体 274

8.2.1 联合的定义 275

8.2.2 联合变量的说明 275

8.3 其他自定义数据类型 277

8.3.1 枚举类型 277

8.3.2 类型定义符typedef 281

小结 282

习题 282

第9章 接口和函数库 285

9.1 预处理命令 285

9.1.1 概述 285

9.1.2 宏定义 285

9.1.3 文件包含 292

9.1.4 条件编译 293

9.2.1 格式输出函数(printf)中的格式说明 295

9.2 C的标准库 295

9.2.2 格式输入函数(scanf)中的格式说明 297

9.3 图形库 297

9.3.1 图形模式初始化函数 298

9.3.2 基本图形函数 298

9.4 屏幕控制函数库 303

9.5 自定义接口与接口设计的原则 307

习题 312

小结 312

第10章 文件 313

10.1 文件的概念 313

10.2 文件类型指针 314

10.3 文件的基本操作 315

10.3.1 文件的打开函数fopen 315

10.3.2 文件关闭函数fclose 317

10.3.3 字符读写函数fgetc和fputc 317

10.3.4 字符串读写函数fgets和fputs 319

10.3.5 数据块读写函数fread和fwrite 320

10.3.6 格式化读写函数fscanf和fprintf 322

10.3.7 文件的随机读写 323

10.3.8 文件检测函数 326

10.4 程序设计举例 326

小结 329

习题 329

第11章 数据结构和数据抽象 331

11.1 数据抽象 331

11.1.1 抽象数据类型的基本概念 331

11.1.2 抽象数据类型对程序设计的意义 332

11.1.3 数据结构、数据类型和抽象数据类型 332

11.2 线性表 333

11.2.1 线性表的定义 333

11.2.2 线性表的基本操作 334

11.2.3 线性表的顺序存储 335

11.2.4 顺序表上基本运算的实现 336

11.3 堆栈 339

11.3.1 抽象堆栈的定义及基本操作 340

11.3.2 抽象栈的定义 340

11.3.3 顺序栈的基本运算的实现 340

11.4 队列 342

11.4.1 队列的定义 342

11.4.2 队列的存储结构及其相关算法 343

小结 347

习题 348

第12章 算法和程序抽象 349

12.1 算法的概念 349

12.2 算法的类型与结构 350

12.2.1 数值算法和非数值算法 350

12.2.2 算法的基本结构 350

12.3.2 N-S图 351

12.3.1 流程图 351

12.3 算法的描述方法 351

12.3.3 伪代码 352

12.4 算法设计与分析 353

12.4.1 算法的设计与实现 353

12.4.2 算法分析与算法复杂度 355

12.4.3 常用算法设计与分析 361

12.5 软件设计的基本原则 363

12.5.1 软件评判标准 363

12.5.2 内聚性 364

12.5.3 耦合度 365

12.6 数据封装和信息隐藏 366

12.6.1 数据封装 366

12.6.2 信息隐藏 368

12.7 算法抽象 369

12.7.2 函数指针类型的使用 370

12.7.1 函数指针类型定义 370

12.7.3 算法抽象举例 371

12.8 程序设计方法 374

12.8.1 可行性研究与项目开发计划 374

12.8.2 软件需求分析 375

12.8.3 软件概要设计 376

12.8.4 软件详细设计 377

12.8.6 软件测试 378

12.8.5 程序编码 378

小结 379

习题 379

附录1 常用字符与ASCII代码对照表 381

附录2 C语言常用语法提要 382

附录3 Turbo C的集成开发环境的使用 387

附录4 Turbo C编译错误信息 393

附录5 C库函数 399

参考文献 407