《C语言可以这样学》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:王金鹏著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2016
  • ISBN:9787302445708
  • 页数:349 页
图书介绍:本书主要讲述C语言的基础知识、语法、应用和编程技巧,内容全面,讲解准确独到,顺序自然新颖,并对市面上绝大多数教材中都存在的缺陷和错误进行了纠正,在教材的编写上,采用探究式、验证式的方法,突出了对C语言知识的理解

第1章 计算机基础知识 1

1.1 计算机的硬件组成 1

1.1.1 运算器 1

1.1.2 控制器 1

1.1.3 存储器 1

1.1.4 输入设备 3

1.1.5 输出设备 3

1.2 数制及数制间的转换 3

1.2.1 二进制 3

1.2.2 八进制 5

1.2.3 十六进制 5

1.3 原码、反码和补码 6

1.3.1 原码 6

1.3.2 反码 6

1.3.3 补码 6

1.4 路径及其表示* 6

1.4.1 路径的概念 6

1.4.2 当前盘和当前目录 7

1.4.3 绝对路径和相对路径 7

1.5 计算机语言 8

1.5.1 机器语言 8

1.5.2 汇编语言 9

1.5.3 高级语言 10

1.6 算法 11

1.6.1 算法的概念 11

1.6.2 算法的特性 12

1.6.3 算法的表示 12

1.6.4 程序的3种基本结构 13

习题1 14

第2章 C程序和C编译器简介 16

2.1 C语言及C标准简介 16

2.1.1 C语言的出现 16

2.1.2 C语言的特点 16

2.1.3 C标准 17

2.2 简单的C程序 18

2.3 C程序的构成 22

2.4 C编译器及操作简介 24

2.4.1 Turbo C 2.0编程环境及常用操作简介 24

2.4.2 Visual C++ 6.0编程环境及常用操作简介 28

习题2 33

第3章 C编程基础知识 35

3.1 常量和变量 35

3.1.1 常量 35

3.1.2 变量 35

3.2 基本数据类型 40

3.2.1 整型数据 40

3.2.2 实型数据 42

3.2.3 字符型数据 45

3.2.4 字符串 47

3.3 符号常量和常变量 48

3.3.1 符号常量 48

3.3.2 常变量 48

3.4 运算符和表达式 49

3.4.1 算术运算符 49

3.4.2 赋值运算符和赋值表达式 50

3.4.3 自增自减运算符 51

3.4.4 逗号运算符和逗号表达式 53

3.4.5 类型转换运算符 54

3.5 数据的类型转换 55

习题3 55

第4章 顺序结构程序设计 59

4.1 赋值语句 59

4.1.1 赋值语句及其执行过程 59

4.1.2 赋值的几种数据处理方式 59

4.2 输入输出函数 63

4.2.1 缓冲区的概念及作用 63

4.2.2 getchar()和putchar() 64

4.2.3 printf()和scanf() 65

4.3 顺序结构程序设计举例 70

习题4 72

第5章 选择结构程序设计 76

5.1 关系运算符和关系表达式 76

5.1.1 关系运算符 76

5.1.2 关系表达式 76

5.2 逻辑运算符和逻辑表达式 77

5.2.1 逻辑运算符 77

5.2.2 逻辑表达式 78

5.3 if语句 79

5.3.1 if语句的格式 79

5.3.2 if语句的使用说明 80

5.3.3 嵌套的if语句 83

5.3.4 if语句应用举例 85

5.3.5 if语句编程的常见问题 87

5.4 条件运算符和条件表达式 92

5.5 switch语句 93

5.5.1 switch语句的格式及执行过程 94

5.5.2 switch语句应用举例 96

5.5.3 switch语句编程的常见错误 97

习题5 98

第6章 循环结构程序设计 104

6.1 循环及其实现思想 104

6.2 循环语句 105

6.2.1 while循环 105

6.2.2 do-while循环 107

6.2.3 for循环 108

6.2.4 3种循环的比较 110

6.3 循环的控制 111

6.3.1 计数器控制循环和其他条件控制循环 111

6.3.2 break和continue 112

6.3.3 循环结束后循环变量的值与终值的比较 115

6.4 多重循环 116

6.5 循环编程举例 117

习题6 126

第7章 函数 132

7.1 函数的作用 132

7.2 函数的定义 134

7.2.1 函数定义的格式 134

7.2.2 函数的返回值 134

7.2.3 函数参数的设置 138

7.3 函数的调用 140

7.3.1 函数调用前的声明 140

7.3.2 函数调用的方式 142

7.4 函数的参数传递 143

7.4.1 形参与实参 143

7.4.2 参数的传递 143

7.4.3 参数传递的单向性 144

7.5 函数的嵌套调用 145

7.6 递归函数 146

7.6.1 递归的条件 146

7.6.2 递归函数的执行过程 147

7.6.3 递归与迭代 149

7.7 函数编程举例 150

7.8 内部函数和外部函数 153

习题7 154

第8章 变量的作用域和存储类别 158

8.1 变量的作用域 158

8.1.1 局部变量 158

8.1.2 全局变量 158

8.2 同名变量的辨析 160

8.3 变量的存储类别和生存期 162

8.3.1 内存的存储区域 162

8.3.2 动态变量 162

8.3.3 静态变量 163

8.4 变量的作用域和生存期 164

习题8 165

第9章 编译预处理 168

9.1 宏定义 168

9.1.1 无参宏定义 168

9.1.2 有参宏定义 169

9.1.3 嵌套的宏定义 170

9.2 文件包含 170

9.2.1 文件包含的格式 170

9.2.2 文件包含的作用 171

9.2.3 文件包含两种格式的区别 171

9.3 条件编译 172

9.3.1 条件编译的格式 172

9.3.2 条件编译应用举例 174

习题9 175

第10章 用指针变量访问变量 178

10.1 指针和指针变量 178

10.1.1 指针和指针变量的概念 178

10.1.2 直接寻址和间接寻址 179

10.1.3 指针变量的值、地址及类型 181

10.2 通过指针变量访问变量 181

10.2.1 指针变量的定义 181

10.2.2 指针变量的赋值 182

10.2.3 通过指针变量间接访问一个变量 183

10.3 指针变量在函数传递中的作用 183

习题10 188

第11章 数组 191

11.1 一维数组 191

11.1.1 一维数组的定义 191

11.1.2 一维数组的元素构成及一维数组的存储结构 192

11.1.3 数组名的指针类型 192

11.1.4 数组元素的表示方法 193

11.1.5 一维数组的引用 194

11.1.6 一维数组的初始化 196

11.1.7 一维数组应用举例 196

11.2 二维数组 201

11.2.1 二维数组的定义 201

11.2.2 二维数组的元素构成及二维数组的存储结构 202

11.2.3 二维数组名的指针类型 202

11.2.4 二维数组中下标变量的表示方法 203

11.2.5 二维数组的引用 204

11.2.6 二维数组的初始化 205

11.2.7 二维数组应用举例 205

11.3 字符数组和字符串处理函数 206

11.3.1 字符数组 206

11.3.2 字符串处理函数 207

11.3.3 字符数组应用举例 211

习题11 213

第12章 用指针变量访问下标变量 218

12.1 用指针变量访问下标变量的方法 218

12.1.1 知识回顾 218

12.1.2 用指针变量访问一维数组中的下标变量 218

12.1.3 用指针变量访问二维数组中的下标变量 220

12.2 用指针变量访问下标变量的适用场合 221

习题12 224

第13章 指针综述 228

13.1 指针类型简介 228

13.2 指向变量的指针 229

13.2.1 指向变量的指针常量 229

13.2.2 指向变量的指针变量 229

13.3 指向数组的指针 230

13.3.1 指向一维数组的指针常量 230

13.3.2 指向一维数组的指针变量 231

13.3.3 指向一维数组的指针变量的适用场合 232

13.4 指针与字符串 233

13.4.1 字符串的表示方式 233

13.4.2 用指针变量处理字符串 235

13.5 指针与函数 237

13.5.1 函数的入口地址 237

13.5.2 指向函数的指针变量 237

13.5.3 指向函数的指针变量的作用 238

13.5.4 指针函数 239

13.6 指针数组 240

13.6.1 指针数组的定义 240

13.6.2 指针数组的引用 241

13.6.3 指针数组应用举例 241

13.7 指向指针变量的指针 241

13.7.1 指向指针变量的不可变指针 241

13.7.2 指向指针变量的指针变量 242

13.7.3 应用举例 242

13.8 带参数的main()函数 245

13.8.1 C语言对main()函数参数的规定 245

13.8.2 带参数main()函数的作用 245

13.8.3 带参数的main()函数的执行过程 246

13.8.4 程序举例 246

13.9 动态内存分配 247

13.9.1 动态内存分配函数 247

13.9.2 动态内存分配举例 248

习题13 249

第14章 数据类型的自定义 254

14.1 结构体的定义和结构体变量的定义 254

14.1.1 结构体的概念和结构体的定义 254

14.1.2 结构体变量的定义和空间分配 256

14.1.3 结构体变量的初始化 258

14.1.4 结构体数组的定义和初始化 259

14.2 结构体变量的引用 259

14.2.1 结构体变量的引用方法 259

14.2.2 结构体变量引用举例 260

14.3 用指针变量操作结构体变量 261

14.3.1 为什么要通过指针变量访问结构体变量 261

14.3.2 应用举例 262

14.4 链表及链表操作简介 263

14.4.1 链表的概念 263

14.4.2 使用链表的优点 264

14.4.3 链表操作简介 264

14.5 共用体 269

14.5.1 共用体的概念 269

14.5.2 共用体的作用 270

14.5.3 共用体及共用体变量的定义 271

14.5.4 共用体变量(数组)的初始化 272

14.5.5 共用体变量的引用 272

14.6 枚举类型 273

14.6.1 枚举类型的定义 273

14.6.2 枚举变量的定义 274

14.6.3 枚举变量的使用 274

14.6.4 枚举应用举例 274

14.7 用typedef定义类型别名 275

习题14 277

第15章 位运算 280

15.1 C语言中的位运算符 280

15.2 位运算及应用 281

15.2.1 按位与 281

15.2.2 按位或 282

15.2.3 异或 283

15.2.4 取反 284

15.2.5 左移 284

15.2.6 右移 285

习题15 286

第16章 文件 288

16.1 文件及相关的概念 288

16.1.1 文件的范畴 288

16.1.2 文件中存储数据的两种方式 288

16.1.3 文件的种类 289

16.1.4 文件操作函数及缓冲区的概念 290

16.2 文件读写的原理 291

16.3 文件的读写位置指针和文件结束标志 292

16.3.1 读写位置指针 292

16.3.2 文件结束标志 292

16.4 文件的打开和关闭 293

16.4.1 文件的打开 293

16.4.2 文件的关闭 299

16.5 文件的读写 300

16.5.1 fgetc()和fputc() 301

16.5.2 fread()和fwrite() 303

16.5.3 fgets()和fputs() 307

16.5.4 fscanf()和fprintf() 308

16.6 读写位置指针的移动和定位 310

16.6.1 移动读写位置指针的函数 310

16.6.2 两个与读写位置指针有关的函数 311

16.7 文件的出错检测 312

16.8 文件操作举例 313

习题16 317

第17章 综合应用举例 320

17.1 简单的计算器(一) 320

17.2 简单的计算器(二) 322

17.3 数据库文件的读取 325

附录A C语言规约 335

附录B 输入输出重定向 337

附录C C语言的关键字 340

附录D 常用字符与ASCII码对照表 341

附录E 运算符的优先级和结合性 342

附录F 常用库函数 344

参考文献 349