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

  • 购买积分:12 如何计算积分?
  • 作  者:白忠建,罗福强,罗佳等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2011
  • ISBN:9787302246046
  • 页数:342 页
图书介绍:本书分基础篇、提高篇和实践篇,前两篇内容包括引论、数据类型和运算、顺序结构等内容。

基 础篇 3

第1章 引论 3

1. 1程序设计概述 3

1.1.1为什么需要程序设计 4

1.1.2程序设计语言 6

1.2计算机系统 9

1.2.1硬件系统 10

1.2. 2软件系统 11

1.2.3使用计算机系统的一些话题 11

1.3 C语言程序设计基础 12

1.3.1 C程序的基本结构 12

1.3.2 C程序的编写和运行 15

1.4关于数据结构和算法 18

1.5贯穿全书的案例 19

本章小结 20

习题一 20

第2章 数据类型和运算 22

2.1问题引入 22

2.2数据类型 23

2.2.1整数类型 23

2.2.2字符类型 25

2.2.3浮点类型 27

2. 3常量与变量 27

2.3.1标识符 27

2.3.2常量 28

2. 3.3变量 30

2.4运算符和表达式 31

2.4.1运算符和表达式概述 31

2.4.2赋值运算符和赋值表达式 33

2.4.3算术运算符和算术表达式 34

2.4.4关系运算符和关系表达式 37

2.4.5逻辑运算符和逻辑表达式 39

2.4.6条件运算符和条件表达式 40

2.4.7逗号运算符和逗号表达式 41

2.4.8复合赋值运算符和复合赋值表达式 42

2.4.9 sizeof运算符 43

2.5混合运算 44

2.5.1运算符的优先级规则 44

2.5. 2类型转换 46

2.6编程实例 48

2.7解决方案 53

本章小结 54

习题二 54

第3章 顺序结构 58

3.1问题引入 58

3.2 C语句 59

3.3字符输入输出 61

3.3.1 getchar()函数(字符输入函数) 61

3.3.2 putchar()函数(字符输出函数)& 6 2

3.4格式化输入输出& 6 3

3.4.1 printf()函数(格式化输出函数) 63

3.4.2 scanf()函数(格式化输入函数) 66

3.5编译预处理 70

3.5.1文件包含 70

3.5.2宏 70

3.5.3条件编译 71

本章小结 73

习题三 73

第4章 选择结构 75

4.1问题引入 75

4.2 if条件分支语句 76

4.2.1单分支if语句 76

4.2.2双分支ifelse语句 78

4.2.3多分支ifelse if语句 79

4.2.4 if语句的嵌套 81

4.3 switch多分支语句 83

4.4解决方案 88

本章小结 90

习题四 90

第5章 循环结构 92

5.1问题引入 92

5.2 while语句 93

5.2.1当型while 93

5.2.2直到型dowhile 97

5.3 for语句 99

5.4循环嵌套 103

5.5跳出循环语句 105

5.5.1 break语句 105

5.5.2 continue语句 108

5.6循环的应用 109

5.7解决方案 115

本章小结 116

习题五 116

第6章 函数 118

6.1问题引入 118

6.2函数的定义 119

6.2.1函数的分类 119

6.2.2函数定义的一般形式 120

6. 2.3函数的参数 122

6. 2.4函数的返回值 122

6.3函数的调用 123

6.3.1函数调用的一般形式 124

6.3.2函数调用的使用方式 126

6.3.3函数原型声明和定义 126

6.3.4嵌套调用 127

6.4函数的设计和调试 128

6. 5变量的分类 130

6.5.1局部变量和全局变量 131

6.5.2动态变量和静态变量 134

6.5.3外部变量 136

6. 6解决方案 137

本章小结 137

习题六 138

第7章 数组 140

7. 1问题引入 140

7. 2一维数组 141

7.2.1一维数组的声明 141

7.2.2一维数组元素的使用 142

7.2.3一维数组的初始化 145

7.2.4一维数组作为函数的参数 147

7.2.5一维数组的应用 149

7.3二维数组 156

7.3.1二维数组的声明和使用 156

7.3.2二维数组的初始化 159

7.3.3二维数组作为函数的参数 162

7.3.4二维数组的应用 163

7.3.5二维数组和一维数组的关系 169

7. 4字符数组 171

7.4.1字符数组、字符串及其初始化 171

7.4.2字符串处理函数 174

7.4.3一维、二维字符数组和字符串处理函数的应用 176

7. 5解决方案 179

本章小结 179

习题七 179

第8章 指针 183

8.1问题引入 184

8.2指针的定义和使用 184

8.2.1指针的定义 184

8.2.2指针的使用 186

8.3指针的运算 189

8.3. 1赋值运算 189

8.3.2比较运算 190

8.3.3算术运算 191

8.3.4 const作用于指针 193

8.4指针和数组 195

8.4.1指向数组元素的指针 195

8.4.2指向字符的指针、字符数组和字符串 200

8.4.3指针数组 202

8.4.4指向指针的指针 203

8. 5指针和函数 204

8.5.1指针作为函数的参数 204

8.5.2函数返回指针 209

8.6动态内存管理 211

8. 6.1动态内存分配 211

8.6.2动态内存释放 214

8.6.3动态内存管理的相关考虑 214

8. 7解决方案 215

本章小结 216

习题八 217

第9章 结构体 221

9. 1问题引入 221

9.2结构体的定义和使用 222

9.2.1结构体类型声明 222

9.2.2结构体变量定义 225

9.2.3结构体变量的使用和初始化 226

9.3结构体数组 229

9.4结构体与指针 231

9.4.1指针变量作为结构体的成员 231

9.4.2指向结构体变量的指针 232

9.4.3指向结构体数组的指针 233

9.5结构体与函数 235

9.5.1结构体变量用作函数参数传递 235

9.5.2返回值类型为结构体的函数 239

9.6解决方案 241

本章小结 241

习题九 241

第10章 文件 245

10.1问题引入 245

10.2文件的打开和关闭 246

10.2.1 fopen()函数(文件打开函数) 246

10.2.2 fclose()函数(文件关闭函数) 247

10.3文件的读写 247

10.3.1字符的读写(fgetc和fputc) 247

10.3.2字符串的读写(f gets和fputs) 249

10.3.3数据块的读写(f read和fwrite) 251

10.3.4格式化的读写(fscanf和fprintf) 252

10.4关于文件的其他函数 254

10.4.1 rewind函数 254

10.4.2 fseek函数 254

10. 4. 3 ftell函数 255

10.4.4 ferror函数 256

10.5最终解决方案 257

本章小结 264

习题十 264

提 高篇 267

第11章 位运算 267

11. 1按位运算 267

11.2移位 268

11.3实例 269

第12章 递归 270

12.1递归函数 270

12.2 Hanoi塔问题 273

第13章 深入了解指针 276

13. 1指向数组的指针 276

13.2指向多维数组的指针 277

13.2.1二维数组 278

13.2.2指针和二维数组 278

13.2.3二维数组作为函数的参数 280

13.2.4关于高维数组的考虑&28. 3

13.3指向函数的指针 284

13.4指向结构的指针 287

13.5指向复杂类型的指针 290

13.6关于指针的高级话题 291

13.6.1 restrict指针 291

13.6.2浅复制和深复制 292

实 践篇 295

第14章 常见错误和程序调试 295

14.1程序错误 295

14. 1.1语法错误 296

14.1.2运行时错误 297

14.1.3逻辑错误 297

14.2调试程序 299

14.2.1编译器调试 299

14.2.2人工调试 301

14.3常见错误及解决方案 303

本章小结 308

习题十四 308

第15章 上机实验 309

15.1实验一选择结构(一) 309

15.1.1实验目的 309

15 1.2实验要求 309

15.1.3实验步骤 309

15 1.4实验总结 310

15.2实验二选择结构(二) 310

15.2.1实验目的 310

15.2.2实验要求 310

15.2.3实验步骤 310

15.2.4实验总结 311

15.3实验三循环结构(一) 311

15.3.1实验目的 311

15.3.2实验要求 311

15.3.3实验步骤 312

15.3.4实验总结 312

15.4实验四循环结构(二) 312

15. 4.1实验目的 312

15. 4.2实验要求 313

15. 4.3实验步骤 313

15.4.4实验总结 314

15.5实验五函数(一) 314

15.5.1实验目的 314

15.5.2实验要求 314

15.5.3实验步骤 314

15.5.4实验总结 315

15.6实验六函数(二) 315

15.6.1实验目的 315

15.6.2实验要求 315

15.6. 3实验步骤 315

15.6. 4实验总结 316

15.7实验七数组(一 ) 316

15.7.1实验目的 316

15.7.2实验要求 316

15.7.3实验步骤 316

15.7.4实验总结 317

15.8实验八数组(二) 317

15.8.1实验目的 317

15.8.2实验要求 317

15.8.3实验步骤 317

15.8.4实验总结 318

15.9实验九指针(一 ) 318

15. 9.1实验目的 318

15.9.2实验要求 318

15.9.3实验步骤 318

15.9.4实验总结 319

15.10实验十指针(二) 319

15. 10.1实验目的 319

15.10.2实验要求 319

15.10.3实验步骤 320

15.10.4实验总结 320

15.11实验十一结构体 320

15.11.1实验目的 320

15.11.2实验要求 320

15.11.3实验步骤 320

15.11.4实验总结 322

15.12实验十二文件 322

15.12. 1实验目的 322

15. 12. 2实验要求 322

15.12.3实验步骤 322

15. 12.4实验总结 322

附录A部分习题参考答案 324

附录B ASCII码表 329

附录C标准C头文件 330

附录D进制和码制 331

D.1进制 331

D.2码制 333

附录E C编码规范 336

参考文献 339