登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書

『簡體書』新概念C程序设计大学教程(第4版)

書城自編碼: 3079353
分類:簡體書→大陸圖書→教材研究生/本科/专科教材
作者: 张基温
國際書號(ISBN): 9787302481430
出版社: 清华大学出版社
出版日期: 2017-11-01
版次: 4
頁數/字數: 369/572000
書度/開本: 16开 釘裝: 平装

售價:HK$ 71.1

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
百酿成金 全球15家经典酒庄的品牌故事(精装)
《 百酿成金 全球15家经典酒庄的品牌故事(精装) 》

售價:HK$ 154.9
变局与应对: 全球经济金融趋势与中国未来
《 变局与应对: 全球经济金融趋势与中国未来 》

售價:HK$ 106.5
四大古国文明与河流:大河文明展
《 四大古国文明与河流:大河文明展 》

售價:HK$ 372.7
国家、族群与战争: 公元前西亚三千年
《 国家、族群与战争: 公元前西亚三千年 》

售價:HK$ 118.6
万千心理·成人情绪障碍跨诊断治疗的统一方案:治疗师指南
《 万千心理·成人情绪障碍跨诊断治疗的统一方案:治疗师指南 》

售價:HK$ 66.6
想要发财也无可厚非
《 想要发财也无可厚非 》

售價:HK$ 58.1
交易者
《 交易者 》

售價:HK$ 94.4
国际秩序:法律、武力与帝国崛起(1898—1922)
《 国际秩序:法律、武力与帝国崛起(1898—1922) 》

售價:HK$ 95.6

 

編輯推薦:
以C99标准为蓝本并兼顾C89标准。? 零起点,实例引导,轻松入门,螺旋式深入、扩展,适合不同层次的教学。? 彰显程序设计 = 计算思维 语言艺术 工程规范的程序设计教育理念。? 按照算法分析 代码示例 语法说明 测试设计的思路组织各知识单元。? 概念力求本质性,示例力求典型性、说明力求启迪性,结构力求便于梳理性。? 习题类型多、题量大,覆盖面宽。
內容簡介:
本书是一种以计算思维训练为核心,以能力培养为目标的C语言程序设计教材,基于程序设计 = 算法思维 语言艺术 工程规范的知识和能力框架,以及前期以培养解题思路为主,语法知识够用就行;后期补充必要的语法细节的教学策略编写。全书共9单元可分为4个部分。
第1部分是针对C程序设计的初级训练:第1单元介绍C语言程序设计首先应当掌握的一些基本概念和方法;第2、3单元在第1单元的基础上介绍判断结构和重复结构;第4单元介绍穷举、迭代、递归和模拟,奠定算法基础。
第2部分是在第1部分的基础上进行数据类型的扩展:第5单元介绍数组,第6单元介绍3种可定制数据类型构造体、共用体和枚举,第7单元介绍指针及其应用。
第3部分只有第8单元一个单元,介绍分治、回溯、贪心策略和动态规划,作为算法设计进阶,可以使读者的程序设计能力提升到较高水平。
第4部分即第9单元介绍一些可能用得着的有关内容,包括外部变量、内联函数、带参宏定义、契约式编程与防御式编程、文件操作。
这样的结构可以满足多种不同层次的教和学的需求,并兼顾自学。
作者在编写本书时力求概念准确、难点分散、例题经典、习题丰富、题型全面、注重效果,并以C99作为蓝本。
本书可以作为高等学校各专业的新一代程序设计课程教材,也可供从事程序设计相关领域的人员自学或参考。
關於作者:
张基温 研究和教学领域涉及计算机科学与技术、信息管理、信息经济学、电子政务与电子商务、新媒体、服务科学,发表论文百余篇,出版著作百余种;先后担任名古屋大学访问学者,山西财经大学、江南大学、华东政法大学、福建工程学院、晋城学院、广西职业技术学院等多所大学的专职、客座或兼职教授,北京大学博雅方略城市发展与信息化研究中心研究员,南京大学出版社总编顾问,太原高新技术区IT研究院实验室主任,山西省紧缺人才专家委员会副主任等职,中国信息经济学会常务理事,全国高等院校计算机基础教育研究会常务理事兼课程建设委员会副主任,中国计算机学会教育专业委员会委员,教育部NIT考试委员会委员,江苏省计算机基础教学指导委员会委员,山西省新世纪专家学者协会副会长;为清华大学出版社、电子工业出版社、中国水利水电出版社、南京大学出版社等出版社主编了信息管理与信息系统专业、计算机实验与实践、大学生信息素养等多个系列教材。在面向过程程序设计教学领域,从20世纪80年代初就开始进行有关研究和改革,尝试将软件工程方法和算法思想引入程序设计,倡导程序设计 = 计算思维 语言艺术 工程规范的程序设计教育理念,推行以思维训练为核心,程序测试与程序设计并行、前期重在逻辑思维和方法训练、语法够用就行;后期进行语法细节补充的程序设计课程教学方法。他主笔并与他人联合署名的《C语言程序设计教程》是国家级十一五规划教材,并于2007年被评为国家级精品教材。
目錄
目??录
第1单元 C程序起步 1
1.1 一个简单的计算器程序设计 1
1.1.1
用伪代码描述的简单计算器程序算法 1
1.1.2
将伪代码描述的算法逐步细化为C程序 2
1.1.3
C语言程序的编译、链接与执行 4
1.2 数据类型、标识符与声明 6
1.2.1
数据类型 6
1.2.2
C语言标识符规则 6
1.2.3
声明 7
1.3 表达式 8
1.3.1
字面量 8
1.3.2
数据实体 8
1.3.3
含有操作符的表达式及其求值规则 10
1.4 函数 13
1.4.1
用函数组织程序 13
1.4.2
函数定义、函数调用与函数返回 14
1.4.3
函数声明 16
1.4.4
main?函数 16
1.4.5
库函数与头文件 17
1.4.6
printf?函数的基本用法 17
1.4.7
scanf?函数的基本用法 19
1.5 程序错误与异常 21
1.5.1
程序中的语法错误与编译错误信息 21
1.5.2
程序中的逻辑错误及其测试 23
1.5.3
C语言的实现定义行为和未定义行为 24
1.5.4
C程序运行异常与契约失败 25
1.5.5
设计用户友好的程序 26
1.6 知识链接A:整数类型 26
1.6.1
有符号整数类型与无符号整数类型 26
1.6.2
标准整数类型与扩展整数类型 27
1.6.3
宏与整数类型的极值宏 28
1.6.4
整数常量使用的3种进制 30
1.6.5
整数常量的标识 30
1.7 知识链接B:浮点类型 31
1.7.1
浮点类型的值的特性:取值范围与精度 31
1.7.2
浮点数据的舍入模式 32
1.7.3
浮点类型数据的操作限制 33
1.7.4
浮点类型常量的书写格式 33
1.7.5
_Complex类型和_Imaginary类型 34
1.8 知识链接C:字符类型 34
1.8.1
字符编码概述 34
1.8.2
char类型的基本特点 35
1.8.3
转义字符 36
1.8.4
用scanf 和printf 输入与输出字符 36
1.8.5
用getchar?和putchar?输入与输出字符 37
习题1 38
第2单元 选择程序设计 44
2.1 可选择计算类型的计算器程序算法分析 44
2.1.1
粗略算法分析 44
2.1.2
计算函数calculate?的算法分析 45
2.1.3
判等操作符与关系操作符 46
2.2
if-else型选择语句 46
2.2.1
用if-else实现的calculate?函数 46
2.2.2
if-else语句的特点 47
2.2.3
if-else if语句 48
2.2.4
瘸腿if-else语句嵌套 49
2.2.5
逻辑操作符与逻辑表达式 50
2.2.6
条件表达式 51
2.2.7
良好的程序书写风格 52
2.3 选择结构的测试 53
2.3.1
白箱测试法 53
2.3.2
使用double类型数据的calculate?代码 54
2.3.3
等价分类法 55
2.4
switch型选择语句 58
2.4.1
基于整数值匹配的选择语句switch语句 58
2.4.2
一个字符分类程序 59
2.4.3
用switch语句的calculate?函数 61
2.4.4
switch语句与if-else语句的比较 62
2.5 知识链接D:变量的作用域与生存期 63
2.5.1
标识符的作用域 63
2.5.2
变量的生存期与存储分配 66
2.6 知识链接E:const限定符 68
2.6.1
用const限定变量 68
2.6.2
用const限定函数参数 70
2.7 知识链接F:左值表达式与右值表达式 70
2.7.1
左值表达式和右值表达式的概念与鉴定 70
2.7.2
左值表达式的应用 72
习题2 73
第3单元 循环程序设计 81
3.1 可连续计算的计算器算法分析 81
3.1.1
初步算法 81
3.1.2
算法细化 81
3.1.3
循环结构的C语言实现 82
3.2
while语句 82
3.2.1
while语句的格式与特点 82
3.2.2
采用while语句的可连续型计算器主函数 83
3.2.3
逗号操作符 84
3.3
do-while语句 85
3.3.1
do-while语句的格式与特点 85
3.3.2
采用do-while语句的可连续型计算器主函数 85
3.4
for语句 86
3.4.1
for语句的格式与特点 86
3.4.2
采用for语句的可连续型计算器主函数 86
3.4.3
计数型循环语句 88
3.4.4
复合赋值操作符与自增、自减操作符 92
3.5 循环结构的测试 93
3.5.1
基于路径覆盖的循环结构测试 93
3.5.2
边值分析法与循环结构测试 93
3.5.3
基于因果分析的程序测试 95
3.6
break与continue 97
3.6.1
break与continue语法概要 97
3.6.2
实例:求素数 98
3.7 知识链接G:表达式的副作用与序列点 100
3.7.1
表达式的副作用 100
3.7.2
序列点及其对表达式求值顺序的影响 101
3.7.3
副作用编程对策 103
3.8 知识链接H:算术数据类型转换 104
3.8.1
算术表达式中的数据类型转换 104
3.8.2
普通算术转换中的提升拉齐规则 104
3.8.3
传送转换中的数据类型转换 106
3.8.4
数据的显式类型转换 107
3.8.5
数据类型转换风险 108
习题3 112
第4单元 算法基础 120
4.1 穷举 120
4.1.1
搬砖问题 121
4.1.2
推断名次 123
习题4.1 127
4.2 迭代与递推 131
4.2.1
用二分迭代法求方程在指定区间的根 132
4.2.2
猴子吃桃子问题 135
4.2.3
用辗转相除法求两个正整数的最大公因子 137
习题4.2 140
4.3 递归 143
4.3.1
阶乘的递归计算 143
4.3.2
汉诺塔 146
4.3.3
台阶问题 149
习题4.3 150
4.4 模拟 151
4.4.1
产品随机抽样 152
4.4.2
用蒙特卡洛法求?的近似值 155
4.4.3
事件步长法中子扩散问题 156
4.4.4
时间步长法盐水池问题 158
习题4.4 162
第5单元 数组 165
5.1 一维数组 165
5.1.1
数组类型的特征 165
5.1.2
数组的定义 166
5.1.3
数组的初始化 167
5.1.4
下标变量 168
5.1.5
变长数组与常量数组 169
5.2 排序与查找 170
5.2.1
直接选择排序 170
5.2.2
冒泡排序 172
5.2.3
二分查找 175
5.3 二维数组 176
5.3.1
二维数组的概念 176
5.3.2
二维数组的初始化 177
5.3.3
访问二维数组元素 179
5.4 字符串 180
5.4.1
字符串字面量 180
5.4.2
字符数组与C字符串变量 181
5.4.3
字符串的输入与输出 182
5.4.4
字符串操作的库函数 185
习题5 188
第6单元 可定制数据类型 194
6.1 构造体类型 194
6.1.1
构造体类型的特征与定制 194
6.1.2
用typedef定义类型的别名 195
6.1.3
构造体变量 196
6.1.4
构造体变量的分量及其操作 199
6.1.5
构造体数组 200
6.1.6
复合字面量 203
6.2 共用体类型 204
6.2.1
共用体类型的定制及其变量的定义 204
6.2.2
共用体类型与构造体类型的比较 205
6.2.3
共用体变量的应用举例 207
6.3 枚举类型 209
6.3.1
枚举类型及其定义 209
6.3.2
枚举变量及其声明 210
6.3.3
对枚举变量和枚举元素的操作 210
6.3.4
用枚举为类提供整型符号常量名称 211
习题6 211
第7单元 指针 219
7.1 指针类型与指针变量 219
7.1.1
指针及其声明 219
7.1.2
同类型指针间的赋值与判等操作 220
7.1.3
指针的递引用 222
7.1.4
void指针 223
7.1.5
用const限定指针 223
习题7.1 224
7.2 数组与指针 229
7.2.1
数组名具有退化的左值性 229
7.2.2
下标表达式的指针含义 230
7.2.3
指针与字符串 232
7.2.4
二维数组与指针 234
习题7.2 236
7.3 函数与指针 242
7.3.1
指针作为函数参数 242
7.3.2
带参主函数 249
7.3.3
返回指针值的函数 250
7.3.4
函数类型与指向函数的指针 251
习题7.3 257
7.4 指向构造体的指针与链表 261
7.4.1
指向构造体类型变量的指针 261
7.4.2
链表及其特点 262
7.4.3
构建链表 263
习题7.4 265
7.5 动态存储分配 268
7.5.1
申请需要的存储空间 269
7.5.2
释放一个指针指向的存储空间 271
7.5.3
修改一个指针指向的存储空间大小 271
7.5.4
构建动态链表 272
7.5.5
带有弹性数组成员的构造体 276
习题7.5 277
第8单元 算法设计进阶* 278
8.1 分治策略 278
8.1.1
快速排序 278
8.1.2
自行车带人问题 281
习题8.1 284
8.2 回溯策略 286
8.2.1
迷宫问题 287
8.2.2
八皇后问题 290
习题8.2 292
8.3 贪心策略 294
8.3.1
旅行费用问题 294
8.3.2
删数问题 297
习题8.3 299
8.4 动态规划 301
8.4.1
动态规划概述 301
8.4.2
点数值三角形的最优路径 303
8.4.3
背包问题 305
习题8.4 309
第9单元 语海拾贝 312
9.1 外部变量 312
9.1.1
外部变量及其声明 312
9.1.2
外部变量的链接性 312
9.1.3
外部变量的风险 317
9.2 内联函数 317
9.2.1
内联函数的概念 317
9.2.2
内联函数的定义 318
9.2.3
内联函数的限制 319
9.3 带参宏 319
9.3.1
带参宏的基本定义格式 319
9.3.2
使用带参宏的注意事项 320
9.3.3
带参宏与函数的比较 320
9.4
C语言契约式编程与防御式编程 322
9.4.1
断言 322
9.4.2
库函数调用错误处理 324
9.4.3
程序运行异常处理 326
9.5 数据文件 329
9.5.1
数据文件及其分类 329
9.5.2
FILE类型及其指针 330
9.5.3
数据文件操作的一般过程 332
习题9 337
附录A C语言运算符的优先级和结合方向 344
附录B C语言的关键字 345
附录C 格式化输出函数printf
?的格式 346
C.1
printf?格式参数的结构 346
C.2
printf?格式符 346
C.3 长度修饰符 347
C.4 域宽与精度说明 348
C.5 格式前缀修饰符 348
附录D 格式化输入函数scanf
?的格式 349
D.1
scanf?指针参数 349
D.2
scanf?格式参数的结构 349
D.2.1
格式参数字符串的结构 349
D.2.2
基本格式符和长度修正 349
D.2.3
字段宽度 350
D.3
scanf?的停止与返回 351
D.4 数值数据的输入控制 351
D.5 字符型数据的输入控制 351
D.5.1
在格式字段前添加空格使格式字段可以跳过空白字符 351
D.5.2
用扫描集控制字符数组的读入 351
附录E 编译预处理命令 352
E.1 宏定义 352
E.2 文件包含 352
E.3 条件编译 352
附录F C标准库头文件 353
附录G C语言常用的标准库函数 354
G.1 数学函数 354
G.2 字符函数和字符串函数 355
G.3 输入与输出函数 356
G.4 动态内存分配函数 357
G.5 退出程序函数 358
G.6 数值转换函数 358
G.7 时间和日期函数 358
附录H C语言编译出错信息 360
H.1 致命错误 360
H.2 一般错误 360
H.3 警告 365

附录I C99、C89与K&R C 主要内容的比较 368
参考文献 369


V
內容試閱
第4版前言
(一)
当今是一个信息时代。作为时代的宠儿,计算机在各行各业发挥着神奇的威力,而其灵魂来自程序设计。现在,程序设计不仅被视为计算机及相关专业的看家本领,而且也成为这个时代文化的一部分,它所蕴含的逻辑思维给所有想开发脑力的人提供一种贴近时代的训练。为此,程序设计不仅作为计算机及其相关专业的必修课程被开设,而且几乎所有的理工科专业,甚至一些文科和艺术类专业也在开设。
屈指计算,程序设计课程已经开设半个多世纪了,但是教学效果却不尽如人意。因此,程序设计课程的改革成为课程改革的一个难点。笔者从20世纪80年代开始就将其作为自己努力的一个方向,并不断进行探索。
最早进行的改革是将典型算法,如穷举、迭代、递归和一些软件工程的方法融入程序设计教学中。这些成果反映在笔者的第一本著作《BASIC程序设计》(山西科学教育出版社,1985)中。之后,在这方面继续探索,在程序设计教学中进一步加入算法与数据结构的内容,以使学生得到更加系统的思维训练。这些探索成果总结在由笔者主笔、谭浩强主编的《BASIC程序设计教程》(高等教育出版社,1988)中。但是,这本书引入的算法和数据结构内容过多,尽管到了21世纪最初几年还有学校在使用它,但普遍反映其教学难度太大。
20世纪90年代中期,受国家考试中心邀请,笔者在NIT(国家信息技术考试)主持C模块的考试和教材编写。受CIT(剑桥信息技术测试)教材的启发,将程序测试加入到笔者编写的《程序设计(C语言)》(清华大学出版社,1999年)一书中,并且在这本书中将传统的语法体系改为问题体系。之后,在教学中不断修正,同时把改革扩展到面向对象程序设计(C、Java)中。在C语言方面,笔者先后出版了《新概念C语言程序设计》(中国铁道出版社,2003)、《C语言程序设计案例教程》(清华大学出版社,2004)、《新概念C程序设计教程》(南京大学出版社,2007)、《新概念C语言教程》(中国电力出版社,2011)、《新概念C程序设计大学教程》(清华大学出版社,2012)、《新概念C程序设计大学教程(C99版)》(清华大学出版社,2015)。
经过几十年的摸索,一套全新的C程序设计教学改革的框架逐渐明朗。
* 实现从语法体系向问题体系的转变。
* 建立程序设计 = 算法思维 语言艺术 工程规范的知识和能力框架。
* 树立以计算思维训练为核心,以能力培养为目标的指导思想。
* 采用前期以培养解题思路为主,语法知识够用就行;后期补充必要的语法细节的教学策略。
* 按照问题分析设计代码语法说明线索进行局部安排。
令笔者欣慰的是,目前类似的书已经陆续问世,品种不断增加,说明C语言程序设计教学改革的队伍在不断壮大。
(二)
C语言是一种高效、灵活、可移植、功能强大的程序设计语言。C语言从20世纪70年代初创立,迄今经久不衰,是程序设计语言历史上寿命最长的语言之一。
世界著名的TIOBE编程语言社区排行榜是编程语言流行趋势的一个风向标,每月更新,其数据取样于互联网上有经验的程序员、商业应用、著名搜索引擎(如谷歌、MSN等)的关键字排名、Alexa上的排名等。
表0.1为C语言于2017年5月发布的19872017三十年间,排名前十的编程语言位次变化情况。其中每年的位次是该年12个月的平均值。可以看出尽管其他程序设计语言跌宕起伏,但C一直平衡地牢居榜前。
表0.1 19872017年间排名前十的编程语言排名位次变化情况
Programming Language
2017
2012
2007
2002
1997
1992
1987
Java
1
1
1
1
14


C
2
2
2
2
1
1
1
C
3
3
3
3
2
2
4
C#
4
4
7
14



Python
5
7
6
9
27


PHP
6
5
4
5



JavaScript
7
9
8
7
20


Visual Basic .NET
8
21





Peri
9
8
5
4
4
11

Assembly language
10






COBOL
25
31
17
6
3
13
8
Lisp
31
12
14
10
9
9
2
Prolog
33
37
26
13
18
14
3
Pascal
102
13
19
29
8
3
5

当然,C语言也在不断发展之中。1978年美国电话电报公司(AT&T)的贝尔实验室正式发表了C语言。开发者Brian W.Kernighan和Dennis M.Ritchie随即编写了著名的The C Programming Language一书,通常简称为K&R C,也有人称之为K&R
C标准。但是,K&R C第一版在很多语言细节上不够精确。
1983年美国国家标准化协会(American National Standards Institute)制定了一个C语言标准并于同年发表,通常称之为ANSI C,并在此基础上不断修订,于1989年末提出了一个报告[ANSI 89]。1990?年,国际标准化组织ISO(International Organization for Standardization)通过了此项标准,将其作为ISOIEC
9899:1990国际标准,俗称C89或C90。
1995年,ISO修订C90,形成1995基准增补1(ISOIEC9899AMD1:1995),俗称C89修正案1或C95。1999年通过ISOIEC 9899:1999,ISO对C语言标准进行了更重要的改变,俗称C99。2011年12月8号,ISO 发布了 C 语言的新标准ISOIEC 9899:2011,俗称C11。
但是,国内C程序设计教材多数还基于C89甚至更早的标准,这种落后使得教学脱离应用,与世界潮流很不合拍。因此当务之急是过渡到C99,这是编写本书的一个主要动机。在出版本书之前,笔者已经在清华大学出版社出版了《新概念C程序设计大学教程(C99版)》,本书在此基础上进一步完善而成。
目前支持C99并且简单易用的开发平台是DEV C,它有两款,即Orwell Dev-C和wxDev-C。截至本书定稿,Orwell Dev-C的最新版本是5.7.0,wxDev-C的稳定版本是7.4.2,它们的下载地址分别如下。

http:bloodshed-dev-c.en.softonic.com
http:sourceforge.netprojectsorwelldevcpp?source=typ_redirect
http:wxdsgn.sourceforge.net
(三)
本书基于以计算思维训练为核心,以能力培养为目标的教学模式和前期以培养解题思路为主,语法知识够用就行;后期补充必要的语法细节的教学策略编写。全书共9单元可分为4个部分。
第1部分是针对C程序设计的初级训练:第1单元介绍C语言程序设计首先应当掌握的一些基本概念和方法;第2、3单元在第1单元的基础上介绍判断结构和重复结构,第4单元介绍穷举、迭代、递归和模拟,奠定算法基础。然而这个基础比较厚重,要想不冲淡突出程序设计思路的主体,又把这个厚重的基础语法讲清楚,在时间上,特别是在课时上是不允许的。为此,这3单元中都含有3个部分内容,即主体部分、知识链接和习题。在主体部分只从如何使用的角度介绍笔者所遇到的语法知识,把进一步的、较为系统的介绍放到知识链接中介绍。教师在讲授时可以以主体部分为主,参考知识链接部分;或者把知识链接部分作为学生课后的阅读材料使用。这样就可以解决学习内容厚重与教学学时有限之间的矛盾,也可以激发学生自学的热情,满足不同学生的学习需求。在这一部分还介绍了非常重要但在之前被忽略的一些语法知识,例如表达式的副作用以及序列点等。
第2部分是在第1部分的基础上进行数据类型的扩展,第5单元介绍数组,第6单元介绍3种可定制数据类型构造体、共用体和枚举,第7单元介绍指针及其应用。
第3部分只有第8单元一个单元,介绍分治、回溯、贪心策略和动态规划,作为算法设计进阶,可以使读者的程序设计能力提升到较高水平。
第4部分即第9单元,介绍一些可能用得着的有关内容,包括外部变量、内联函数、带参宏定义、文件、契约式编程与防御式编程。
这样的结构可以满足多种不同层次的教和学的需求。
以对程序设计作一般了解为目标者,可以重点学习第1部分,并对第2部分进行了解性学习;以掌握程序设计的基本方法为目标者,可以重点学习前两部分内容,对第3部分和第4部分进行了解性学习;以较深入掌握程序设计的方法为目标者,可以在熟练前两部分的基础上,进一步深入学习第3部分和第4部分。
(四)
为了便于不同角度的复习与训练,本书的习题中设置了5种栏目,即概念辨析、代码分析、探索验证、开发练习和思维训练。
概念辨析主要提供了一些选择题和判断题,旨在提高读者对基础语法知识的了解。
代码分析包括指出程序(或代码段)执行结果、改错和填空,旨在提高读者的代码阅读能力,因为读程序也是程序设计的一种基本训练。
探索验证主要用于提示或者指导学习者如何通过自己的上机验证来提高对语法知识的掌握,除了这个栏目中的习题以外,学习者最好能通过设计程序验证自己对于概念辨析栏目中的习题的判断是否正确。
开发练习是一种综合练习,应当要求学习者写出开发文档,内容主要包括问题(算法)分析、代码设计、测试用例设计、测试及调试结果分析等几个部分,重点应当放在问题分析、代码设计和测试用例的设计上,要把这些都做好后,再上机调试、测试。
思维训练中给出了有一定难度的问题,只用于算法设计训练,不要求给出程序。这个栏目仅在第4、5、8三个单元设置。
为了有的放矢地进行一些重要专题的训练,第4、7、8三个单元的习题以大节为单位给出。
(五)
在本书的编写过程中,肖玉巍、赵忠孝、张秋菊、张展为、张展赫、姚威、史林娟、戴璐、张友明等人参与了部分工作。此外,本书初稿完成之后,还承蒙《品悟C抛弃C程序设计中的谬误与恶习》一书的作者薛非先生为本书提出了许多宝贵的意见。
在本书即将出版之际,笔者由衷地感谢以上各位为本书所做的贡献,也要感谢在本书编写过程中参考过的有关资料的作者,包括一些网络佚名作者。同时,殷切地期待广大读者和同仁的批评与建议,让我们共同努力,把程序设计课程的改革做得更有实效。

张基温
2017年10月羊城小海之畔??

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.