高级语言程序设计——基于计算思维能力培养.pdf

高级语言程序设计——基于计算思维能力培养.pdf
 

书籍描述

内容简介
本书是一本以C语言为描述语言,介绍结构化程序设计方法的教材。全书共10章,内容包括:程序设计引论,C数据类型、运算符和表达式,算法和简单C程序设计,程序基本控制结构,函数及其应用,数组及其应用,指针及其应用,结构体及其应用,文件与数据存储,C综合性程序设计案例分析。
全书理论联系实际,将C语言的语法融入到问题求解方法的学习中。教材案例选取贴近生活,通俗易懂,紧密联系应用实践,易于激发读者的学习兴趣。内容组织由浅入深,重点突出,例题与实验设计举一反三,采用图文并茂的方式来解析教学重点与难点,使读者对于知识点的学习知其然,知其所以然。教学设计符合信息化学习模式需求,循序渐进地介绍模块化程序设计方法,潜移默化地提高读者问题求解与结构化程序设计能力,培养计算思维。
本书适合作为高等学校计算机相关专业的程序设计基础课程教材,也可作为非计算机专业C语言程序设计课程教材,亦可作为从事计算机相关工作的科技人员、程序设计爱好者及各类自学人员参考。教材配套了丰富的辅助教学资源,读者可以从出版社网站下载。

编辑推荐
江西师范大学《高级语言程序设计》课程是江西省高等学校精品资源共享课程,本教材内容已用讲义形式经过3届学生的使用,达到了很好的教学效果。
本书特色:
(1)理论联系实际,强化计算思维能力培养。
语言语法介绍以够用、实用和应用为原则,将C语言的语法融入到问题求题中;从实际应用案例中抽取教学要素,重点强化模块化程序设计方法与基本算法的学习。全书从数据组织的维度介绍了基本数据类型以及数组、指针和结构体等构造数据类型在数据处理中的应用;从算法维度将“迭代”、“穷举”、“递归”、“分治”、“检索”与“排序”等算法融入到实际应用问题的求解过程。让读者在学习的过程中潜移默化地提高计算思维能力。
(2)案例选取贴近生活,有助于提高学习兴趣。
全书通过贴近生活的案例来分析问题的本质,如程序设计语言为何要区分不同的数据类型,如何在程序设计中选择正确的数据类型,如何存储大规模数据等,书中用了通俗易懂的例子来进行说明。同时,从读者熟悉的应用软件中抽取教学案例,如网银认证的验证码,信息加密、计算器的进位制转换,手机通讯录查询等案例都贴近生活,突出了应用导向,有助于提高学生学习兴趣。
(3)内容呈现直观、形象,知识点讲解深入浅出,通俗易懂。
全书以图文并茂的方式深入剖析相关知识的底层原理,使读者对课程难点做到知其然,知其所以然。例如,通过递归调用图来说明递归程序的执行原理;通过详细的图示来说明指针、参数传递、链表等难点,并拓展了指针在生成动态不规则二维数组等方面的高级应用,这可为学生今后深入理解Java等新型程序设计语言的引用数据类型奠定基础。
(4)内容编排体现“以学为中心”的教学思想。
随着大规模在线教育课程(MOOC)和微课等新型教学媒体的出现,学生的学习呈现碎片化学习特点。本书在内容组织上进行了全新设计,将精选的相关练习与实验穿插到章节中间,使读者在学习完相关内容后能够及时巩固并拓展所学知识,做到举一反三,满足“翻转课堂”等新型教学范式的教学需求。全书还以小贴士的形式提供了大量的相关拓展知识,以丰富读者的视野。
(5)C标准与时俱进,程序代码规范统一。
引入部分C99与C11标准,提升编写C语言程序的灵活性。例如,引入C99的bool类型,使逻辑表达更加简洁,符合现代程序设计的规范。从第五章开始,大部分问题求解都以模块化的方式进行设计,有助于引导学生掌握模块化程序设计的思想。书中所有程序源码均通过了调试。
(6)注重

作者简介
揭安全,男,毕业于江西师范大学计算机系,获计算机软件与理论硕士学位,1997年参加工作,现任江西师大计算机学院副教授,计算机科学系系主任,2013年起低职高聘教授。主要承担《高级语言程序设计》、《数据结构》、《面向对象程序设计》等课程的教学工作,三门课程均被评为江西省高等学校精品资源共享课程。制作的《高级语言程序设计》教学课件获得江西省高校第四届多媒体课件大赛一等奖。获得江西省模范教师,江西省师德标兵,江西省高校中青年骨干教师,江西师范大学教学名师等荣誉称号。2014年3月~2014年8月California State University Fullerton 访学。

目录
第1章 程序设计引论 1
1.1 计算科学与问题求解 1
1.2 程序与程序设计 2
1.2.1 程序 2
1.2.2 程序设计 4
1.3 程序设计语言 4
1.3.1 程序设计语言分类 4
1.3.2 程序的执行方式 6
1.4 C语言简介 7
1.5 C语言程序开发工具 9
1.6 C语言程序开发步骤 14
本章小结 16
实验一 16
第2章 数据类型、运算符与表达式 18
2.1 C程序基本结构 18
2.2 C程序中常见的符号 21
2.3 数据类型 22
2.4 常量 26
2.4.1 整型常量 26
2.4.2 实型常量 27
2.4.3 字符常量 28
2.4.4 字符串常量 29
2.4.5 宏常量 29
练习2.1 30
2.5 变量 30
2.5.1 变量的声明 30
2.5.2 变量初始化 31
2.5.3 变量的访问与使用 32
练习2.2 34
2.6 运算符与表达式 34
2.6.1 算术运算符 35
2.6.2 运算符的优先级与结合性 36
2.6.3 关系运算符 37
2.6.4 复合赋值运算符 38
2.6.5 ++和--运算符 39
2.7 表达式的类型转换 40
2.7.1 赋值表达式的类型转换 40
2.7.2 强制类型转换 41
2.8 const常量 42
练习2.3 43
本章小结 43
实验二 44
第3章 算法与简单C程序设计 45
3.1 C语句 45
3.2 C程序输入/输出操作的实现 46
3.2.1 字符输入/输出 46
3.2.2 格式输入/输出 49
练习3.1 54
3.3 算法 54
3.3.1 问题求解过程中算法的作用 55
3.3.2 算法的特点 57
3.3.3 算法的描述 58
3.4 简单程序设计举例 64
练习3.2 67
本章小结 67
实验三 67
第4章 程序基本控制结构 68
4.1 逻辑运算符与逻辑表达式 68
4.1.1 逻辑运算符 68
4.1.2 逻辑表达式 69
练习4.1 70
4.2 选择控制结构 71
4.2.1 if单分支语句 71
4.2.2 if双分支语句 77
4.2.3 if多分支语句 78
4.3 条件表达式 83
练习4.2 83
4.4 switch多分支语句 84
练习4.3 88
4.5 循环控制语句 89
4.5.1 while循环语句 89
4.5.2 for循环语句 94
4.5.3 do while循环语句 99
练习4.4 101
4.6 程序跳转语句 102
4.6.1 break语句 102
4.6.2 continue 语句 104
4.6.3 goto语句 105
练习4.5 105
4.7 多重循环及其应用 106
练习4.6 110
4.8 循环程序设计方法 110
4.8.1 迭代法 110
4.8.2 穷举法 113
本章小结 115
实验四 116
第5章 函数及其应用 118
5.1 C函数概述 118
5.2 C函数的定义和调用 119
5.2.1 C函数的定义 119
5.2.2 return语句 121
5.2.3 函数调用 122
5.2.4 函数声明 124
练习5.1 125
5.3 引用库函数与自定义函数 126
5.3.1 库函数分类 126
5.3.1 #include指令 126
5.4 函数参数传递方式 127
练习5.2 129
5.5 函数嵌套调用 130
5.5.1 嵌套调用的概念 130
5.5.2 模块化设计基本方法 131
练习5.3 134
5.6 递归函数及其应用 135
5.6.1 递归的概念 135
5.6.2 递归程序分析 138
练习5.4 141
5.6.3 递归程序应用 141
练习5.5 145
5.7 变量的作用域与生存期 145
5.7.1 局部变量 145
5.7.2 全局变量 147
5.7.3 变量的存储类型 149
练习5.6 152
5.8 函数综合应用——趣味算术游戏 153
练习5.7 161
本章小结 161
实验五 161
第6章 数组及其应用 162
6.1 一维数组 162
6.1.1 一维数组的定义与引用 162
6.1.2 一维数组的初始化 166
练习6.1 168
6.2 向函数传递一维数组 168
练习6.2 172
6.3 基于数组的常用算法及其应用 173
6.3.1 顺序查找 173
6.3.2 数据删除 175
6.3.2 数据插入 176
6.3.4 寻找最大值 177
练习6.3 179
6.3.5 数据排序 179
6.3.6 数据倒置 185
6.3.7 二分查找 187
6.3.8 一维数组应用实例 189
练习6.4 192
6.4 二维数组 193
6.4.1 二维数组的定义、引用及初始化 193
6.4.2 二维数组应用实例 195
练习6.5 199
6.5 向函数传递二维数组 200
练习6.6 203
6.6 字符串及字符数组 203
6.6.1 字符串 203
6.6.2 字符数组的初始化 204
6.6.3 字符数组的输入/输出 205
6.6.4 字符串处理函数 207
6.6.5 字符串应用实例 209
练习6.7 214
6.7 基于数组的递归算法 215
练习6.8 217
本章小结 218
实验六 218
第7章 指针及其应用 220
7.1 指针的本质 220
7.2 指针变量的定义与初始化 221
7.3 间接寻址运算符 223
练习7.1 224
7.4 指针与函数 225
7.4.1 传值调用与传地址调用 225
7.4.2 指针作函数参数的应用实例 227
练习7.2 230
7.5 指针和一维数组 231
7.5.1 指针的算术运算与关系运算 231
7.5.2 应用指针访问一维数组 233
7.5.3 深入理解一维数组作函数参数的本质 236
练习7.3 237
7.6 字符指针 239
7.6.1 使用字符指针指示字符串常量 239
7.6.2 利用字符指针访问字符串变量 240
练习7.4 242
7.7 指针和二维数组 244
7.7.1 列指针 244
7.7.2 行指针 245
7.7.3 深入理解二维数组作函数参数的本质* 246
7.7.4 巧用列指针设计通用二维数组处理函数* 247
练习7.5 249
7.8 指针的高级应用 249
7.8.1 指针数组其应用 249
7.8.2 动态内存分配 254
7.8.3 二级指针* 257
7.8.4 指向函数的指针及其应用* 261
练习7.6 262
本章小结 263
实验七 264
第8章 结构体及其应用 265
8.1 为何要用结构体 265
8.2 结构体类型与结构体变量 265
8.2.1 结构体类型的声明 265
8.2.2 结构体变量的定义 267
8.2.3 对结构体变量的操作 268
8.2.4 结构体变量的初始化 269
练习8.1 270
8.3 指向结构体的指针 271
练习8.2 272
8.4 向函数传递结构体 272
8.4.1 值传递 272
8.4.2 地址传递 273
练习8.3 274
8.5 结构体数组 275
8.5.1 结构体数组的定义 275
8.5.2 结构体数组的初始化与引用 276
8.5.3 结构体数组的应用 278
练习8.4 281
8.6 动态数据结构——单链表 282
8.6.1 单链表的定义 283
8.6.2 在单链表插入新结点 284
8.6.3 建立单链表 285
8.6.4 单链表的遍历 287
8.6.5 在单链表中查找结点 288
8.6.5 在单链表中删除结点 289
练习8.5 292
本章小结 293
实验八 293
第9章 文件与数据存储 294
9.1 引例——学生文件信息的创建 294
9.2 文件概述 295
9.2.1 流的概念 295
9.2.2 文件的分类 296
9.2.3 文件指针 297
9.3 文件的打开和关闭 298
9.3.1 文件的打开 298
9.3.2 文件的关闭 299
练习9.1 300
9.4 文件检测函数 300
9.4.1 检测文件末尾函数 300
9.4.2 检测出错函数 301
9.5 文件的读/写操作 301
9.5.1 字符读/写函数 301
9.5.2 字符读/写函数应用实例 302
9.5.3 字符串读/写函数 303
9.5.4 字符串读/写函数应用实例 304
9.5.5 格式化读/写函数 304
9.5.6 格式化读/写函数应用实例 305
9.

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多