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

  • 购买积分:12 如何计算积分?
  • 作  者:王小峰
  • 出 版 社:厦门:厦门大学出版社
  • 出版年份:2016
  • ISBN:7561563069
  • 页数:345 页
图书介绍:

第1章 C语言程序设计和编程平台概述 1

1.1 计算机语言和程序设计 1

1.1.1 机器语言 1

1.1.2 汇编语言 1

1.1.3 高级语言 2

1.2 C语言程序简介 2

1.2.1 C语言简介 2

1.2.2 简单的C程序举例 2

1.2.3 C语言程序的基本特点 4

1.3 C程序设计和编程平台 5

1.3.1 编程语言和编程平台 5

1.3.2 主流平台上的C开发流程概述 6

1.4 DOS平台下的C开发 8

1.4.1 Turbo C编程环境 8

1.4.2 编辑、编译、链接、运行第一个C程序 10

1.4.3 运行C程序前的Directories选项设置 12

1.4.4 编码规范及编程习惯 13

1.5 Windows平台下的C开发 13

1.5.1 Windows的窗口本质 14

1.5.2 Windows的消息驱动机制 14

1.5.3 安装和使用Visual C++6.0 IDE环境 16

1.5.4 Windows程序的框架结构 20

1.6 Linux平台下的C开发 24

总结与提高 25

第2章 C语言的基本数据类型及其基本操作 27

2.1 C语言的数据类型 27

2.1.1 基本数据类型 27

2.1.2 构造类型 27

2.1.3 指针类型 28

2.1.4 空类型 28

2.2 常量和变量 28

2.2.1 常量 28

2.2.2 变量 29

2.3 整型数据 30

2.3.1 整型常量的表示 30

2.3.2 整型常量的类型 31

2.3.3 整型变量 32

2.3.4 整型常量的类型匹配 34

2.4 实型数据 35

2.4.1 实型常量的表示 35

2.4.2 实型变量 35

2.5 字符型数据 37

2.5.1 字符型常量 37

2.5.2 字符串常量 38

2.5.3 字符变量 39

2.5.4 字符数据的存放形式及使用方法 39

2.6 算术运算符与算术表达式 40

2.6.1 基本算术运算符 40

2.6.2 算术表达式及算术运算符的优先级和结合性 41

2.6.3 逻辑表达式 41

2.6.4 自增、自减运算符 42

2.7 赋值运算符与赋值表达式 44

2.7.1 赋值运算符 44

2.7.2 复合赋值运算符 45

2.7.3 赋值表达式 46

2.8 逗号运算符与逗号表达式 46

2.9 位运算符 47

2.9.1 按位与(&) 47

2.9.2 按位或(|) 48

2.9.3 按位异或(∧) 48

2.9.4 按位取反(~) 49

2.9.5 移位运算(>>、<<) 49

2.10 基本的输入输出函数 49

2.10.1 printf函数 50

2.10.2 scanf函数 54

2.10.3 putchar函数与getchar函数 56

总结与提高 57

第3章 流程控制 60

3.1 顺序结构 60

3.1.1 顺序结构的概念 60

3.1.2 顺序结构程序举例 61

3.2 选择结构 63

3.2.1 选择结构的概念 63

3.2.2 关系表达式和逻辑表达式 64

3.2.3 if语句 65

3.2.4 switch语句 71

3.2.5 条件运算符和条件表达式 72

3.3 循环结构 73

3.3.1 循环结构的概念 73

3.3.2 while语句 74

3.3.3 do…while语句 78

3.3.4 for语句 79

3.3.5 break语句、continue语句和goto语句 81

总结与提高 83

第4章 数 组 87

4.1 一维数组的定义、初始化和引用 87

4.1.1 一维数组的定义方式 87

4.1.2 一维数组的初始化 89

4.1.3 一维数组元素的引用 89

4.1.4 一维数组程序举例 90

4.2 二维数组的定义、初始化和引用 94

4.2.1 二维数组的定义 94

4.2.2 二维数组的初始化 96

4.2.3 二维数组元素的引用 96

4.2.4 二维数组程序举例 97

4.3 字符数组与字符串 101

4.3.1 字符数组与字符串的关系 101

4.3.2 字符数组的定义 101

4.3.3 字符数组的初始化 102

4.3.4 字符数组的引用 103

4.3.5 字符数组的输入输出 104

4.3.6 字符串处理函数 106

4.3.7 字符串的输入输出 110

4.3.8 程序举例 110

总结与提高 115

第5章 结构体和共用体 118

5.1 结构体类型与结构体变量 118

5.1.1 结构体类型的定义 118

5.1.2 结构体变量的定义 119

5.1.3 结构体变量的初始化 122

5.1.4 结构体变量的引用 123

5.1.5 结构体变量的输入和输出 124

5.2 结构体数组 126

5.2.1 结构体数组的定义 126

5.2.2 结构体数组的初始化 128

5.2.3 结构体数组的引用 130

5.2.4 结构体数组的输入和输出 130

5.3 结构体指针 132

5.3.1 指向结构体变量的指针 132

5.3.2 指向结构体数组的指针 134

5.4 结构体作为函数参数 135

5.4.1 结构体变量作为函数参数 135

5.4.2 结构体指针变量作为函数参数 137

5.4.3 函数的返回值为结构体类型 138

5.5 链表 140

5.6 共用体 141

5.6.1 共用体的概念 141

5.6.2 共用体类型与共用体变量的定义 141

5.6.3 共用体变量的初始化和引用 143

5.6.4 共用体类型数据的特点 143

5.6.5 共用体的应用 144

5.7 枚举类型 144

5.8 用typedef定义类型 146

总结与提高 147

第6章 函 数 149

6.1 概述 149

6.1.1 什么是模块化 149

6.1.2 什么是函数 150

6.2 函数的定义与分类 151

6.2.1 函数的定义 151

6.2.2 函数的参数和返回值 152

6.2.3 函数的分类 155

6.3 函数的调用 156

6.3.1 函数调用的一般形式 156

6.3.2 函数调用的方式 157

6.3.3 对被调用函数的声明和函数原型 157

6.3.4 嵌套调用 159

6.3.5 递归调用 160

6.3.6 程序设计举例 161

6.4 常见的库函数 165

6.4.1 库函数概述 165

6.4.2 字符与字符串函数 165

6.4.3 简单数学函数 166

6.4.4 基本屏幕控制函数 167

6.5 变量的性质 171

6.5.1 变量的作用域(可见性)概述 172

6.5.2 变量的生命期(存在性)概述 172

6.6 变量的作用域(结合变量的性质) 172

6.6.1 局部变量 172

6.6.2 全局变量 173

6.6.3 全局变量作用域的扩展和限制 175

6.6.4 总结 178

6.7 变量的生命期(结合变量的性质) 178

6.7.1 动态局部变量 178

6.7.2 静态局部变量 179

6.8 内部函数和外部函数 181

6.8.1 外部函数 182

6.8.2 内部函数 182

6.9 多文件程序——项目 182

6.10 怎样创建项目、自己的库函数 183

6.10.1 创建并运行项目 183

6.10.2 创建自己的库函数 183

6.11 程序设计举例 185

总结与提高 187

第7章 指针 190

7.1 指针的基本概念 190

7.1.1 预备知识 190

7.1.2 指针 192

7.1.3 指针其名 192

7.1.4 变量的指针与指针变量 192

7.2 指针变量的定义和赋值 194

7.2.1 指针变量的定义 194

7.2.2 指针变量的赋值 195

7.2.3 void指针 196

7.3 指针变量的使用 197

7.3.1 与指针相关的运算符 197

7.3.2 变量的存取方式 198

7.3.3 停下来思考一下 198

7.3.4 指针变量作为函数参数 199

7.4 指针与数组 200

7.4.1 数组和数组元素的指针 200

7.4.2 指向数组和数组元素的指针变量 201

7.4.3 数组元素的引用 203

7.4.4 数组名作为函数参数 204

7.4.5 字符串的指针和指向字符串的指针变量 206

7.4.6 指针数组 208

7.4.7 指针与二维数组 210

7.5 指向指针的指针 213

7.5.1 指向指针的指针 213

7.5.2 定义指向指针变量的指针变量 213

7.5.3 指向指针的指针变量的应用 214

7.6 指针与结构 216

7.6.1 指向结构变量的指针/指针变量 217

7.6.2 指向结构体数组的指针/指针变量 217

7.6.3 指向结构体的指针作为函数参数 218

7.7 指针与函数 219

7.7.1 返回指针类型的函数 219

7.7.2 函数的指针和指向函数的指针变量 220

总结与提高 221

第8章 指针的应用——链表 226

8.1 链表概述 226

8.2 简单静态链表 227

8.3 动态链表和动态内存分配函数 228

8.3.1 动态链表 228

8.3.2 动态内存分配函数 229

8.3.3 利用指针和动态内存分配函数实现不定长数组 229

8.4 建立动态链表 230

8.5 对链表的插入与删除操作 233

8.5.1 对链表的插入操作 233

8.5.2 对链表的删除操作 235

8.6 链表综合应用 236

总结与提高 241

第9章 编译预处理 243

9.1 宏定义 243

9.1.1 不带参数的宏定义 243

9.1.2 带参数的宏定义 245

9.2 文件包含 248

9.3 条件编译 249

9.3.1 格式1 250

9.3.2 格式2 250

9.3.3 格式3 251

总结与提高 251

第10章 文件 253

10.1 C文件概述 253

10.1.1 二进制文件和文本文件 253

10.1.2 二进制文件和文本文件的比较 254

10.2 文件的打开与关闭 255

10.2.1 文件的打开(fopen函数) 255

10.2.2 文件的关闭(fclose函数) 258

10.3 文件的读写 258

10.3.1 fscanf函数和fprintf函数 258

10.3.2 fread函数和fwrite函数 260

10.3.3 fgetc函数和fputc函数 261

10.3.4 其他读写函数 264

10.4 文件的定位 266

10.4.1 rewind函数 266

10.4.2 fseek函数 267

10.4.3 ftell函数 268

10.5 文件的状态 269

10.5.1 feof函数 269

10.5.2 ferror函数 269

10.5.3 clearerr函数 269

10.6 文件综合应用:个人小金库的管理 270

10.6.1 顺序文件和随机文件 270

10.6.2 需求及功能分析 270

10.6.3 源程序 271

总结与提高 274

第11章 位运算 277

11.1 位运算的类型 277

11.1.1 按位与 277

11.1.2 按位或 278

11.1.3 按位异或 279

11.1.4 取反 279

11.1.5 左移 279

11.1.6 右移 279

11.2 位运算举例 280

11.3 位段 281

总结与提高 283

第12章 综合实例 285

12.1 贪食蛇游戏 285

12.1.1 程序说明 285

12.1.2 源程序代码 286

12.2 学生成绩管理系统 291

12.2.1 程序说明 291

12.2.2 源程序代码 292

12.3 学籍管理系统 308

12.3.1 函数简介 308

12.3.2 编程算法思路 309

12.3.3 设计小结 310

12.3.4 源程序代码 310

总结与提高 328

附录1 C语言语法之“大局观” 329

附录2 ASCII码表及其中控制字符的含义 331

附录3 C语言中的关键字 332

附录4 C语言运算符的优先级与结合性 333

附录5常用库函数 334

附录6常见错误分析及处理方法 340