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

  • 购买积分:12 如何计算积分?
  • 作  者:吉根林,陈波主编;刘维富,王创伟,陆志平副主编
  • 出 版 社:北京:科学出版社
  • 出版年份:2016
  • ISBN:9787030446107
  • 页数:344 页
图书介绍:本教材分上篇、下篇两个部分。上篇为理论篇,下篇为实践篇。上篇介绍用C语言开发程序所必需的数据类型、程序语句与结构、常用算法等内容。下篇介绍上机环境、调试程序方法、上机实验、综合实训等。本教材采用”任务驱动”方式,从问题出发介绍C语言的知识点和程序设计思维方法,由浅入深、循序渐进,最后给出求解问题的程序。通过一些编程实例介绍编程算法,强调上机实践,注重计算思维和编程实践能力的培养。该书条理清晰、实例丰富、语言流畅,做到基础性、实用性、趣味性、拓展性四者相结合。

理论知识篇 2

第1章 绪论 2

1.1 程序与程序设计语言 2

1.1.1 计算机与程序 2

1.1.2 程序设计语言 2

1.1.3 高级语言程序的开发过程 3

1.2 C语言的发展和特点 4

1.2.1 C语言的发展历史 4

1.2.2 C语言的特点 5

1.2.3 C和C++ 6

1.3 C程序的结构与书写风格 7

1.4 本书组织结构和主要内容 8

本章小结 10

习题1 10

第2章 数据的基本类型与基本运算 11

【任务2.1】计算圆的面积和周长 11

2.1 基本数据类型 11

2.1.1 整型 12

2.1.2 实型 13

2.1.3 字符型 13

2.2 常量 14

2.2.1 字面常量 14

2.2.2 符号常量 15

2.3 变量 16

2.3.1 变量的概念与命名 16

2.3.2 变量的定义和初始化 16

2.3.3 变量的赋值 19

2.4 数据的基本运算 19

2.4.1 C语言运算符简介 19

2.4.2 算术运算符与算术表达式 20

2.4.3 关系运算符与关系表达式 20

2.4.4 逻辑运算符与逻辑表达式 21

2.4.5 自增、自减运算符 23

2.4.6 运算符的优先级与结合性 25

2.5 数据类型转换 26

2.5.1 自动类型转换 26

2.5.2 强制类型转换 28

2.6 完成【任务2.1】的程序 28

2.7 简单程序设计实例 29

本章小结 30

习题2 30

第3章 数据的输入/输出 33

【任务3.1】计算圆的面积和周长(改进版) 33

3.1 C语言的输入/输出 33

3.2 字符的非格式化输入/输出函数 33

3.3 格式化输出函数printf 34

3.3.1 printf函数概述 34

3.3.2 printf函数的格式说明 35

3.3.3 printf函数的使用 37

3.4 格式化输入函数scanf 39

3.4.1 scanf函数概述 39

3.4.2 scanf函数的格式说明 40

3.4.3 scanf函数的使用 41

3.5 完成【任务3.1】的程序 43

3.6 程序设计实例 43

本章小结 45

习题3 45

第4章 程序的基本结构与基本语句 48

4.1 程序与基本语句 48

4.1.1 程序 48

4.1.2 C基本语句 51

4.2 顺序结构 52

【任务4.1】利用海伦公式求三角形面积 53

4.2.1 赋值语句 53

4.2.2 逗号运算符与逗号表达式 55

4.2.3 完成【任务4.1】的程序 55

4.2.4 顺序结构程序设计举例 56

4.3 分支结构 57

【任务4.2】利用海伦公式求三角形面积(改进) 57

4.3.1 单分支if语句 57

4.3.2 双分支if语句 58

4.3.3 完成【任务4.2】的程序 59

【任务4.3】百分制成绩转换成五级记分制成绩 61

4.3.4 多分支if语句和if语句的嵌套 61

4.3.5 条件运算符与条件表达式 63

4.3.6 switch语句 64

4.3.7 完成【任务4.3】的程序 65

4.3.8 分支结构程序设计举例 67

4.4 循环结构 71

【任务4.4】求100以内所有自然数的累加和 71

4.4.1 for语句 71

4.4.2 while语句 72

4.4.3 do…while语句 73

4.4.4 几种循环的比较 74

4.4.5 break和continue语句 74

4.4.6 完成【任务4.4】的程序 76

【任务4.5】打印图形 77

4.4.7 循环的嵌套 78

4.4.8 完成【任务4.5】的程序 80

4.4.9 循环结构程序设计举例 81

本章小结 86

习题4 86

第5章 函数和模块化程序设计 90

5.1 模块化程序设计方法 90

5.2 用户自定义函数 91

【任务5.1】用函数实现累加求和 91

5.2.1 函数的定义与声明 91

5.2.2 函数调用 93

5.2.3 完成【任务5.1】的程序 95

5.3 系统库函数 96

【任务5.2】用函数实现素数判定 96

5.3.1 头文件与文件包含 97

5.3.2 数学函数 98

5.3.3 随机函数 99

5.3.4 完成【任务5.2】的程序 100

5.4 变量的作用域 100

5.4.1 局部变量 100

5.4.2 全局变量 102

5.4.3 重名问题 102

5.5 变量的生存期 103

5.5.1 动态变量 104

5.5.2 静态变量 104

5.6 函数的嵌套调用 105

【任务5.3】方程近似解 105

5.6.1 函数的嵌套调用 106

5.6.2 完成【任务5.3】的程序 106

5.7 递归函数 108

【任务5.4】求阶乘 108

5.7.1 函数的递归定义与调用 108

5.7.2 完成【任务5.4】的程序 108

5.8 函数应用程序设计实例 109

本章小结 115

习题5 116

第6章 数组 119

6.1 一维数组 119

【任务6.1】计算平均成绩 119

6.1.1 一维数组的定义与初始化 119

6.1.2 一维数组的操作 120

6.1.3 完成【任务6.1】的程序 121

6.1.4 一维数组应用举例 122

6.2 二维数组 125

【任务6.2】计算多科平均成绩 125

6.2.1 二维数组的定义与初始化 125

6.2.2 二维数组的操作 126

6.2.3 完成【任务6.2】的程序 127

6.2.4 二维数组应用举例 128

6.3 字符串与字符数组 130

【任务6.3】统计字符个数 130

6.3.1 字符数组的定义与初始化 130

6.3.2 字符串的输入/输出 132

6.3.3 字符串处理函数 135

6.3.4 完成【任务6.3】的程序 138

6.3.5 字符数组应用举例 139

6.4 数组名作为函数参数 140

【任务6.4】统计学生成绩 140

6.4.1 一维数组名作为函数参数 140

6.4.2 二维数组名作为函数参数 142

6.4.3 完成【任务6.4】的程序 143

6.5 数组应用程序设计实例 145

本章小结 146

习题6 147

第7章 指针 150

7.1 指向变量的指针 150

【任务7.1】通过自定义函数实现整数排序 150

7.1.1 指针的概念 150

7.1.2 指针变量的定义与初始化 151

7.1.3 通过指针访问变量 154

7.1.4 指针变量作为函数参数 154

7.1.5 指针的强制转换 157

7.1.6 void指针类型 157

7.1.7 完成【任务7.1】的程序 158

7.2 指向数组的指针 159

【任务7.2】通过自定义函数实现数组逆序 159

7.2.1 指针变量与一维数组 159

7.2.2 指针变量与二维数组 161

7.2.3 数组指针作为函数参数 165

7.2.4 完成【任务7.2】的程序 166

7.3 指针数组和指向指针的指针 167

【任务7.3】多个字符串排序 167

7.3.1 指针数组的定义与使用 168

7.3.2 指针数组与字符串数组 169

7.3.3 指向指针的指针 171

7.3.4 main函数的形参 172

7.3.5 完成【任务7.3】的程序 174

7.4 指向函数的指针 175

【任务7.4】主函数中实现对排序函数正序逆序操作的控制 175

7.4.1 函数指针的定义与使用 176

7.4.2 函数指针作为函数参数 176

7.4.3 完成【任务7.4】的程序 178

7.5 返回指针的函数 180

【任务7.5】 自定义函数中字符串的传入和传出 180

7.5.1 返回指针的函数定义与调用 180

7.5.2 完成【任务7.5】的程序 182

7.6 指针应用程序设计实例 183

本章小结 185

习题7 185

第8章 自定义数据类型与链表 187

8.1 结构体类型与结构体变量 187

【任务8.1】学生信息表中数据的输入和输出 187

8.1.1 结构体类型与结构体变量的定义与使用 187

8.1.2 嵌套的结构体类型与结构体变量 191

8.1.3 完成【任务8.1】的程序 193

8.2 结构体数组 194

【任务8.2】学生信息表中数据操作(改进1) 194

8.2.1 结构体数组的定义与初始化 194

8.2.2 完成【任务8.2】的程序 196

8.3 指向结构体的指针与内存管理 200

【任务8.3】学生信息表中数据操作(改进2) 200

8.3.1 指向结构体变量的指针 200

8.3.2 指向结构体变量的指针与无名变量 201

8.3.3 指向结构体变量的指针与动态数组 203

8.3.4 结构体指针作为函数参数 206

8.3.5 完成【任务8.3】的程序 207

8.4 单向链表 208

【任务8.4】学生信息表中数据操作(改进3) 208

8.4.1 链表的概念 209

8.4.2 单向链表中的基本操作 211

8.4.3 完成【任务8.4】的程序 216

8.5 共用体类型 220

8.6 给数据类型定义别名 223

8.7 枚举类型 224

8.8 结构体与链表应用程序设计实例 225

本章小结 226

习题8 227

第9章 文件 231

【任务9.1】学生记录文件保存 231

9.1 文件的概念 231

9.1.1 C文件的分类 231

9.1.2 文件操作的基本步骤 232

9.1.3 文件类型的指针 232

9.2 文件的常用操作 233

9.2.1 文件的打开与关闭 233

9.2.2 文件的读写 236

9.2.3 文件的定位 245

9.2.4 文件的检测 248

9.3 其他文件操作函数 249

9.4 完成【任务9.1】的程序 250

9.5 文件应用程序设计实例 251

本章小结 254

习题9 255

第10章 编译预处理与多文件组织 258

10.1 宏定义 258

10.1.1 无参宏定义 258

10.1.2 带参宏定义 260

10.2 条件编译 263

【任务10.1】方程近似解(多文件版) 263

10.2.1 条件编译的形式 263

10.2.2 保护头文件 265

10.3 完成【任务10.1】的程序 267

本章小结 269

习题10 269

第11章 位操作 271

【任务11.1】数据的循环移位 271

11.1 位运算符和位运算 271

11.1.1 按位与运算符 271

11.1.2 按位或运算符 272

11.1.3 按位异或运算符 272

11.1.4 取反运算符 274

11.1.5 左移运算符 274

11.1.6 右移运算符 274

11.2 完成【任务11.1】的程序 275

11.3 位运算程序设计举例 276

本章小结 277

习题11 277

第12章 综合应用实例 278

12.1 系统设计与分析 278

12.1.1 SMIS体系结构 278

12.1.2 SMIS的数据结构 279

12.2 功能模块的详细设计与实现 279

12.2.1 查询模块 279

12.2.2 修改模块 280

12.2.3 删除模块 281

12.2.4 插入模块 281

12.2.5 统计模块 283

12.2.6 报表模块 284

12.2.7 加载模块 285

12.2.8 保存模块 286

12.2.9 菜单设计方法 286

12.3 其他问题 288

12.3.1 文件编码问题 288

12.3.2 工程文件的组织和管理 288

上机实践篇 292

实验一 Visual C++6.0集成开发环境的使用 292

【实验1.1】Visual C++6.0集成开发环境的安装 292

【实验1.2】Visual C++6.0中程序的编辑、编译、连接和运行 293

【实验1.3】Visual C++6.0中程序的调试 299

实验二数据的基本类型与基本运算 303

【实验2.1】计算长方形的周长和面积 303

【实验2.2】计算本息和 303

实验三数据的输入与输出 304

【实验3.1】简单数据的计算与输入/输出 304

【实验3.2】程序改错与调试 304

实验四程序的基本语句与基本结构 305

【实验4.1】顺序结构程序设计 305

【实验4.2】分支结构程序设计 305

【实验4.3】循环结构程序设计 305

实验五函数 307

【实验5.1】基本函数设计与调用 307

【实验5.2】递归函数设计与调用 307

实验六数组 308

【实验6.1】一维数组的使用 308

【实验6.2】二维数组的使用 308

【实验6.3】字符数组的使用 309

【实验6.4】数组与函数 309

实验七指针 310

【实验7.1】指针与一维数组 310

【实验7.2】指针作函数参数 310

实验八 自定义数据类型与链表 311

【实验8.1】结构体变量和数组的定义和使用 311

【实验8.2】链表的基本操作 311

实验九文件 312

【实验9.1】文件格式化输入/输出 312

【实验9.2】文件数据块输入/输出 312

实验十综合实训 313

【综合实训1】服务明星评选 313

【综合实训2】图书管理信息系统 315

参考文献 317

附录A 字符的ASCII码表 318

附录B C语言运算符的优先级和结合性 319

附录C 模拟试卷 320

期末试卷(A卷) 320

期末试卷(B卷) 328

期末试卷(C卷) 336

期末试卷(D卷) 341