《C语言程序设计项目化教程》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:王彩霞主编;任岚副主编
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2012
  • ISBN:9787302291893
  • 页数:397 页
图书介绍:本书以学生成绩管理系统这个项目为主线,既系统讲解了传统C语言程序设计的有关知识,又在讲授有关知识的同时,用学到的知识实现项目的对应的功能。并随着知识讲解的深入,逐步完善项目的功能。在完善项目功能的过程中我们可以体现到知识点的对比,使读者知道各类知识点的应用范围,并在项目开发中选择最适宜的算法和数据结构。

第1章 C语言概述 1

1.1 计算机语言的发展简介 1

1.1.1 计算机语言的种类以及发展阶段 1

1.1.2 C语言的诞生以及发展过程 3

1.2 简单C程序的编辑、调试以及运行 4

1.2.1 源程序、目标程序以及可执行程序 4

1.2.2 C程序的错误类型以及纠错方法 8

1.3 简单C程序的构成 12

1.3.1 函数和语句 12

1.3.2 库函数printf()简介 15

1.3.3 scanf()函数简介 16

1.3.4 printf()函数和scanf()函数的结合使用 17

1.4 第一个项目——小学生四则运算测试系统 18

1.4.1 项目开发流程简介 19

1.4.2 小学生四则运算测试系统简介 20

习题与上机实验 22

第2章 C的基本数据类型以及有关运算 23

2.1 C的基本数据类型 23

2.1.1 常量与变量 23

2.1.2 整型数据以及整型变量 27

2.1.3 实型数据以及实型变量 29

2.1.4 字符型数据以及字符型变量 32

2.1.5 字符串 36

2.2 运算符和表达式 38

2.2.1 算术运算符和算术表达式 38

2.2.2 比较运算符和比较表达式 39

2.2.3 逻辑运算符和逻辑表达式 41

2.2.4 赋值运算符和赋值表达式 42

2.2.5 自增(++)和自减(--)运算符 43

2.2.6 条件运算符和条件表达式 44

2.2.7 逗号运算符和逗号表达式 45

2.2.8 混合数据运算以及类型转换 45

2.3 整型数据在内存的表示形式以及运算溢出 46

2.3.1 整型数据的补码表示方法 46

2.3.2 数据的溢出以及舍入误差 47

2.4 附加——格式化输入输出 48

2.4.1 在printf语句中规定输出位数 48

2.4.2 scanf()函数的格式化输入 50

2.5 四则运算测试系统——以不同的数据类型接受用户输入 53

习题与上机实验 55

第3章 选择(分支)结构程序设计 57

3.1 顺序程序结构 57

3.2 用if语句进行选择 59

3.2.1 if语句的3种使用形式 59

3.2.2 if语句的嵌套使用 65

3.3 用switch语句进行选择 67

3.3.1 switch语句的使用形式 67

3.3.2 switch语句的使用举例 68

3.3.3 使用switch语句的注意事项 70

3.3.4 选择结构综合举例 70

3.4 小学生四则运算测试系统 73

3.4.1 对用户输入的判断 73

3.4.2 随机试题的生成 74

习题与上机实验 76

第4章 循环结构程序设计 77

4.1 循环引例 77

4.1.1 问题分析 77

4.1.2 循环体以及循环条件 79

4.2 构成循环的语句 79

4.2.1 用while语句实现循环 79

4.2.2 用do...while语句实现循环 83

4.2.3 用for语句实现循环 86

4.2.4 3种循环形式的相互转换 90

4.3 循环的嵌套 93

4.3.1 嵌套的应用分析 94

4.3.2 循环以及循环嵌套注意事项 97

4.4 其他与循环有关的语句 99

4.4.1 break和continue语句 99

4.4.2 用goto构成循环 101

4.5 循环综合举例 101

4.6 完善小学生四则运算测试系统 104

习题与上机实验 107

第5章 数组 108

5.1 一维数组 108

5.1.1 问题提出与分析 108

5.1.2 一维数组的定义与初始化 109

5.1.3 一维数组的使用 110

5.1.4 一维数组元素的排序 114

5.2 二维数组 120

5.2.1 二维数组的定义与初始化 120

5.2.2 二维数组的应用 121

5.2.3 二维数组与一维数组的关系 127

5.3 字符数组与字符串 128

5.3.1 逐元素使用字符数组 128

5.3.2 以字符串的形式使用字符数组 130

5.3.3 常用的字符串处理函数 132

5.3.4 字符数组的应用 133

5.4 数组综合举例 136

5.4.1 问题提出 136

5.4.2 问题分析 136

5.4.3 代码实现 136

5.5 项目案例——简易学生成绩管理系统 138

5.5.1 简易学生成绩管理系统功能分析 139

5.5.2 具体功能的实现以及说明 142

习题与上机实验 145

第6章 自定义函数 147

6.1 函数概述 147

6.1.1 什么是函数 148

6.1.2 函数的分类 150

6.2 函数的定义与调用 151

6.2.1 函数的定义及结构分析 151

6.2.2 函数的调用 155

6.2.3 函数的原型声明 156

6.3 函数的参数传递 160

6.3.1 一般变量做函数参数 160

6.3.2 数组名做函数参数 161

6.4 函数的嵌套调用和递归调用 168

6.4.1 函数的嵌套调用 168

6.4.2 函数的递归调用 169

6.5 函数变量以及变量共享 172

6.5.1 局部变量与全局变量 172

6.5.2 静态变量与动态变量 175

6.5.3 寄存器变量 177

6.6 内(外)部变量及内(外)部函数 178

6.6.1 内部变量与外部变量 178

6.6.2 内部函数与外部函数 180

6.7 多文件程序的编译和连接 181

6.8 用函数调用改写“简易学生成绩管理系统” 183

6.8.1 改写后的主函数架构 183

6.8.2 有关函数的定义和部分代码 185

习题与上机实验 197

第7章 结构体、共用体和枚举类型 199

7.1 结构体类型 200

7.1.1 结构体类型的定义 200

7.1.2 结构体变量的使用 202

7.2 结构体数组 207

7.2.1 结构体数组的定义以及使用 207

7.2.2 结构体变量的传递 209

7.2.3 结构体数组的综合应用 211

7.3 其他自定义类型的应用 213

7.3.1 共用体 213

7.3.2 枚举类型 218

7.3.3 用typedef定义类型符号 222

7.4 用结构体数组改写学生成绩管理系统 223

习题与上机实验 225

第8章 指针 226

8.1 指针概述 226

8.1.1 变量的地址与指针 227

8.1.2 指针变量的定义和初始化 228

8.2 指针变量的使用 229

8.2.1 取地址运算与指向运算 230

8.2.2 指向普通变量的指针变量 231

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

8.2.4 指针在函数间传递 235

8.3 数组与指针变量 238

8.3.1 通过指针变量来使用一维数组 239

8.3.2 数组的指针变量与数组名的关系 243

8.3.3 参数传递时的数组名及其指针变量 245

8.4 字符串与指针变量 247

8.4.1 字符串的特点 247

8.4.2 字符串的指针变量 249

8.4.3 字符串指针变量做函数参数 251

8.5 函数与指针 253

8.5.1 返回指针的函数 253

8.5.2 指向函数的指针 255

8.6 指针的其他使用 258

8.6.1 多维数组的指针 258

8.6.2 指针数组 263

8.6.3 指针变量的指针 267

8.6.4 void类型的指针变量 268

8.7 指针在“简易学生成绩管理系统”中的初步应用 269

习题与上机实验 273

第9章 链表 276

9.1 链表的准备知识 276

9.1.1 与链表有关的概念 277

9.1.2 与链表有关的函数(与动态内存分配有关的函数) 279

9.2 单向链表的有关操作 281

9.2.1 无头结点链表的建立与输出 281

9.2.2 带头结点链表的建立与输出 287

9.2.3 链表结点的删除和插入 290

9.3 应用举例 298

9.4 用链表实现“简易学生成绩管理系统”项目的所有功能 302

9.4.1 准备工作以及主函数架构 302

9.4.2 “输出成绩”功能 304

9.4.3 “录入成绩”功能 306

9.4.4 “查询修改”功能 309

习题与上机实验 313

第10章 文件 315

10.1 文件指针以及文件的打开和关闭 315

10.1.1 文件概述 315

10.1.2 文件类型的指针 316

10.1.3 文件的打开以及关闭 318

10.1.4 文件读写的准备知识 320

10.2 文件的顺序读写 321

10.2.1 以字符为单位读写文件 321

10.2.2 以字符串为单位读写文件 326

10.2.3 文件的格式化读写 329

10.3 二进制文件的顺序读写 333

10.3.1 写二进制文件 333

10.3.2 读二进制文件 335

10.4 文件的随机读写 337

10.4.1 文件读写位置的有关函数 338

10.4.2 随机读写举例 339

10.5 实现“简易学生成绩管理系统”的文件操作功能 341

习题与上机实验 345

第11章 预处理命令 347

11.1 概述 347

11.2 宏定义 347

11.2.1 无参宏定义 348

11.2.2 带参宏定义 350

11.3 文件包含预处理 354

11.4 条件编译 356

习题与上机实验 360

第12章 位运算 361

12.1 数值在计算机中的表示 361

12.1.1 数值在计算机中的存储方式 361

12.1.2 数据的表示方式 362

12.2 位运算符和位运算 363

12.2.1 “按位与”运算 364

12.2.2 “按位或”运算 366

12.2.3 “按位异或”运算 366

12.2.4 “求反”运算 367

12.2.5 “左移”运算 368

12.2.6 “右移”运算 368

12.3 位运算综合举例 369

12.4 位段 372

习题与上机实验 374

第13章 算法简介 375

13.1 算法概述 375

13.1.1 什么是算法 376

13.1.2 算法的特点 376

13.1.3 衡量算法的标准 377

13.2 表示算法的方法 377

13.2.1 用自然语言表示算法 377

13.2.2 用传统流程图表示算法 377

13.2.3 用N-S流程图表示算法 378

13.2.4 用伪代码表示算法 379

13.2.5 用计算机语言表示算法 380

13.3 常用算法分析 381

13.3.1 常用基本算法 381

13.3.2 常用算法应用举例 382

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

附录B 常用库函数 388

参考文献 397