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

  • 购买积分:12 如何计算积分?
  • 作  者:刘欣亮著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2018
  • ISBN:9787121333040
  • 页数:328 页
图书介绍:本书是河南省省级精品课程教材。全书分为程序设计基础篇和程序设计提高篇两大部分,基础篇介绍基于Visual C++ 6.0的C语言开发环境、基本数据类型与表达式、基本输入/输出语句、顺序结构程序设计、选择结构程序设计、循环结构程序设计、数组、函数与预处理命令、典型算法与综合程序设计,提高篇主要介绍指针、结构体与共用体、位运算、文件和模块化程序设计方法。本书知识体系完整、结构清晰、叙述简洁、例题典型丰富,注重读者进行程序设计方法的基础训练,培养良好的程序设计风格。本书配有网络版的教学平台及考试系统,并提供相关的教学资源(电子课件、例题源代码等)。

程序设计基础篇 1

第1章 C语言概述 1

1.1 程序设计语言的发展过程 1

1.1.1 机器语言(第一代语言) 1

1.1.2 汇编语言(第二代语言) 1

1.1.3 高级语言 1

1.2 C语言简介 2

1.2.1 C语言的发展 2

1.2.2 C语言的特点 2

1.2.3 C语言和C++语言 3

1.3 C语言程序的结构 3

1.3.1 简单的C语言程序 3

1.3.2 C语言程序的结构 6

1.4 C语言程序的运行步骤和集成开发环境 7

1.4.1 C语言程序的运行步骤 7

1.4.2 C语言的集成开发环境 8

小结 9

习题1 9

第2章 数据类型、运算符与表达式 11

2.1 C语言数据类型概述 11

2.2 常量 12

2.2.1 常量的概念 12

2.2.2 符号常量 12

2.2.3 整型常量 13

2.2.4 实型常量 14

2.2.5 字符常量 15

2.2.6 字符串常量 17

2.3 变量 18

2.3.1 变量的概念及其应用 18

2.3.2 整型变量 18

2.3.3 实型变量 20

2.3.4 字符型变量 22

2.4 算术运算符和算术表达式 24

2.4.1 运算符概述 24

2.4.2 算术运算符和算术表达式 25

2.5 赋值运算符和赋值表达式 27

2.5.1 赋值运算符 27

2.5.2 赋值表达式及其值 27

2.5.3 复合赋值运算符 28

2.6 逗号运算符和逗号表达式 29

2.7 数据类型转换 30

2.7.1 数据类型的自动转换 30

2.7.2 数据类型的强制转换 32

小结 33

习题2 33

第3章 顺序结构程序设计 36

3.1 结构化程序设计方法 36

3.1.1 自顶向下、逐步求精、模块化的结构化程序设计方法 36

3.1.2 程序的结构 36

3.2 C语句概述 37

3.2.1 表达式语句 38

3.2.2 函数调用语句 39

3.2.3 控制语句 39

3.2.4 复合语句 39

3.2.5 空语句 40

3.3 程序的注释 40

3.4 数据的输入和输出 40

3.4.1 输入和输出的基本概念 40

3.4.2 输入和输出的实现 41

3.5 字符数据输入和输出函数 41

3.5.1 字符输入函数getchar() 41

3.5.2 字符输出函数putchar() 42

3.6 格式输入和输出函数 42

3.6.1 格式输入函数scanf() 42

3.6.2 格式输出函数printf() 46

3.7 顺序结构程序设计举例 50

小结 54

习题3 54

第4章 选择结构程序设计 57

4.1 关系运算符和关系表达式 57

4.1.1 关系运算符及其优先级和结合性 57

4.1.2 关系表达式 57

4.1.3 使用关系运算符应注意的问题 58

4.2 逻辑运算符和逻辑表达式 59

4.2.1 逻辑运算符及其优先级和结合性 59

4.2.2 逻辑表达式 60

4.2.3 使用逻辑运算符应注意的问题 60

4.3 if语句 61

4.3.1 选择结构引例 61

4.3.2 if-else双分支结构 62

4.3.3 if单分支结构 66

4.3.4 if语句嵌套形成多分支结构 68

4.4 条件运算符和条件表达式 74

4.4.1 条件运算符 74

4.4.2 条件表达式和求值规则 74

4.5 switch语句 76

4.5.1 switch语句的一般形式 76

4.5.2 switch语句的功能 76

4.5.3 switch语句使用说明 78

4.6 选择结构程序设计举例 79

4.7 switch语句与多分支if语句的比较 84

小结 84

习题4 84

第5章 循环结构程序设计 89

5.1 循环结构的引入 89

5.2 三种实现循环结构的语句 89

5.2.1 while语句 89

5.2.2 do-while语句 92

5.2.3 for语句 93

5.3 break语句和continue语句 100

5.3.1 break语句 100

5.3.2 continue语句 101

5.4 循环嵌套 102

5.4.1 循环嵌套的概念 102

5.4.2 循环嵌套常见的形式 102

5.4.3 循环嵌套的执行过程 102

5.4.4 使用注意事项 103

5.5 综合程序设计 104

5.5.1 穷举法 104

5.5.2 递推法 108

5.5.3 迭代法 110

小结 114

习题5 114

第6章 数组 118

6.1 数组的引入 118

6.1.1 问题的提出 118

6.1.2 数组的基本概念 119

6.1.3 数组的分类 120

6.2 一维数组 120

6.2.1 一维数组的定义 120

6.2.2 一维数组的引用 120

6.2.3 一维数组的存储 121

6.2.4 一维数组的初始化 121

6.2.5 一维数组的应用举例 123

6.3 多维数组 131

6.3.1 二维数组的定义 131

6.3.2 二维数组的引用 132

6.3.3 二维数组的存储 133

6.3.4 二维数组的初始化 133

6.3.5 二维数组应用举例 133

6.4 字符数组 138

6.4.1 字符数组的定义与初始化 138

6.4.2 字符数组的输入和输出 139

6.4.3 常用的字符串处理函数 141

6.4.4 字符数组的应用举例 144

小结 147

习题6 147

第7章 函数 151

7.1 函数引入 151

7.2 函数定义 154

7.2.1 函数定义的一般形式 154

7.2.2 函数定义的说明 155

7.3 函数调用 156

7.3.1 函数调用的方法 157

7.3.2 函数调用的数据传递 159

7.3.3 函数调用的过程 160

7.3.4 函数的返回值 161

7.4 函数声明 162

7.4.1 函数声明的形式 163

7.4.2 函数声明的位置 163

7.5 函数的嵌套调用和递归调用 165

7.5.1 函数的嵌套调用 165

7.5.2 函数的递归调用 166

7.6 数组作为函数参数 170

7.6.1 问题的提出 170

7.6.2 数组作为函数参数的形式 171

7.7 变量的作用域及存储类别 180

7.7.1 变量的作用域 180

7.7.2 变量的存储类别 184

7.7.3 变量的作用域和存储类别小结 188

7.8 多文件程序 189

小结 191

习题7 191

第8章 预处理命令 195

8.1 宏定义 195

8.2 文件包含 200

8.3 条件编译 201

小结 202

习题8 202

程序设计进阶篇 206

第9章 指针 206

9.1 指针的概念 206

9.2 访问变量的地址 207

9.3 定义及初始化指针变量 208

9.3.1 定义指针变量 208

9.3.2 初始化指针变量 209

9.4 通过指针访问变量 210

9.5 指针的运算 213

9.5.1 指针表达式 213

9.5.2 指针增加和比例因子 215

9.6 指针和数组 215

9.6.1 指针和一维数组 215

9.6.2 用指针引用数组元素 216

9.6.3 指针和二维数组 219

9.7 指针和字符串 222

9.7.1 指向字符的指针 222

9.7.2 指向字符串的指针 223

9.8 指针与函数 224

9.8.1 用指针变量作为函数参数 224

9.8.2 用指针变量作为函数返回值 226

9.8.3 指向函数的指针变量 227

9.9 二级指针和指针数组 229

9.9.1 二级指针 229

9.9.2 指针数组 230

小结 234

习题9 234

第10章 结构体与共用体 243

10.1 结构体引入 243

10.2 结构体变量的使用 244

10.2.1 结构体变量的定义 244

10.2.2 结构体变量的引用 246

10.2.3 结构体变量的初始化 247

10.2.4 结构体变量的使用 248

10.3 结构体数组 249

10.4 结构体变量作为函数的参数和返回值 251

10.5 结构体和指针 255

10.5.1 指向结构体变量的指针 255

10.5.2 指向结构体数组的指针 256

10.5.3 指向结构体变量的指针作为函数参数 258

10.5.4 函数返回值为指向结构体变量的指针 259

10.6 动态内存分配与链表 260

10.6.1 动态内存函数 261

10.6.2 用指针处理链表 262

10.6.3 链表的定义 264

10.6.4 链表的基本操作 264

10.7 共用体类型 270

10.7.1 共用体类型的定义 270

10.7.2 共用体变量的定义 270

10.7.3 共用体变量的使用 271

10.7.4 共用体实例 272

10.8 枚举类型 273

10.8.1 枚举类型的定义 273

10.8.2 枚举变量的定义 274

10.8.3 枚举变量的赋值和使用 274

10.9 自定义类型 275

小结 276

习题10 276

第11章 位运算 280

11.1 位运算符概述 280

11.1.1 与运算 280

11.1.2 或运算 282

11.1.3 异或运算 284

11.1.4 取反运算 285

11.1.5 移位运算 285

11.2 位运算赋值运算符 287

11.3 位域(位段) 287

11.3.1 位域的定义和位域变量的说明 287

11.3.2 位域的使用 288

小结 291

习题11 291

第12章 文件 293

12.1 文件概述 293

12.2 文件指针的定义 293

12.3 文件的基本操作 294

12.3.1 文件打开函数 294

12.3.2 文件关闭函数 295

12.3.3 文件检测函数 296

12.3.4 文件定位函数 296

12.3.5 字符读写函数 297

12.3.6 字符串读写函数 301

12.3.7 格式化读写函数 302

12.3.8 数据块读写函数 304

12.4 综合程序设计 305

小结 314

习题12 314

附录A 常用字符与ASCII码对照表 317

附录B 扩展ASCII码对照表 318

附录C C语言关键字 319

附录D C语言的9种控制语句 320

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

附录F 常用的ANSI C标准库函数 323

参考文献 328