新闻资讯
看你所看,想你所想

程式设计基础(C语言)(第3版)

程式设计基础(C语言)(第3版)

程式设计基础(C语言)(第3版)

《程式设计基础(C语言)(第3版)》是由高克宁等编着,2018年清华大学出版社出版的“十二五”普通高等教育本科国家级规划教材、高等学校计算机基础教育规划教材、教育部-英特尔精品课程配套教材、辽宁省精品课程配套教材。该教材适合作为高等学校程式设计基础课程的教材,也可供程式设计爱好者学习。

该教材介绍程式设计的基本方法和技术,全书共15章,以程式设计思想、程式设计语言、程式设计技术和软体工程管理四条主线组织内容。

基本介绍

  • 书名:程式设计基础(C语言)(第3版)
  • 作者:高克宁、李金双、赵长宽、柳秀梅、徐彬
  • ISBN:9787302488439
  • 类别:“十二五”普通高等教育本科国家级规划教材
  • 页数:489页
  • 出版社:清华大学出版社
  • 出版时间:2018年1月1日
  • 装帧:平装
  • 开本:16开
  • 字数:733千字
  • CIP核字号:2017284894

成书过程

修订情况

该教材由高克宁教授主编,副主编有李金双、赵长宽、柳秀梅和徐彬。其中第1章由高克宁编写,第2~5章由李金双编写,第7、12、14、15章由赵长宽编写,第6、9、11章由柳秀梅编写,第8、10、13章由徐彬编写。高克宁、赵长宽负责全书的统稿。

出版工作

2018年1月1日,该教材由清华大学出版社出版。
出版社工作人员
责任编辑封面设计责任校对责任印製
袁勤勇、战晓雷
常雪影
焦丽丽
李红英

内容简介

该教材共分15章。第1章按照计算设备的发展过程,介绍图灵机及现代计算机的工作原理、问题求解与算法以及主流的程式设计思想和程式设计语言。第2章从信息编码与存储着手,介绍基本标识符、数据类型、常量和变数。第3章从数值计算角度出发,介绍运算符、表达式、输入输出函式馆、数值计算函式馆以及基本程式设计语句。第4章重点介绍逻辑运算与选择结构及其实现。第5章介绍叠代逻辑与循环结构及其实现。
第6章从集合数据处理角度介绍数组、字元串及其实现。第7章从分工和重用角度介绍函式以及基于多档案的程式结构。第8章从地址角度介绍如何通过指针处理数据和指令。第9章围绕複杂数据结构的表示形式,介绍结构体、共用体和线性鍊表。第10章介绍预编译处理及其程式移植和泛化编程。
第11章从数据永久存储角度介绍档案和常用函式。第12章汇总了常见问题的求解算法。第13章从代码和数据封装的角度介绍面向对象的程式设计思想。第14章从高性能计算角度介绍并行程式设计的基本思想以及MPI、OpenMP和多执行绪技术。第15章从培养合格程式设计人员的角度介绍程式设计规範和代码重用技术,并引入软体工程的概念,初步介绍个体软体过程(PSP)。

教材目录

第1章计算机及程式设计概述11.1概述1
1.2计算与机器2
1.2.1计算器2
1.2.2机械式计算机2
1.2.3图灵机模型3
1.2.4电子数字计算机4
1.3指令与程式5
1.4计算机的典型套用6
1.5程式设计语言7
1.5.1机器语言8
1.5.2彙编语言8
1.5.3高级语言9
1.6问题求解与算法11
1.6.1算法定义12
1.6.2算法複杂性12
1.7算法描述13
1.7.1伪代码13
1.7.2流程图14
1.7.3NS图15
1.8程式设计15
1.8.1基本步骤15
1.8.2结构化程式设计16
1.8.3面向对象程式设计17
1.8.4并行程式设计17
1.8.5程式设计思想前沿18
1.9C语言简介18
1.9.1C语言的特点18
1.9.2简单的C程式设计19
1.9.3C语言程式结构21
1.9.4C程式设计过程23
1.10案例24
练习题25
第2章信息编码与数据类型27
2.1概述27
2.2二进制与信息编码27
2.2.1整数编码27
2.2.2实数编码28
2.2.3字元编码29
2.3标识符和关键字30
2.3.1标识符构成30
2.3.2关键字30
2.3.3自定义标识符31
2.4基本数据类型31
2.4.1整数类型33
2.4.2实数类型34
2.4.3字元类型34
2.4.4逻辑类型36
2.4.5複数类型36
2.5常量37
2.5.1整型常量37
2.5.2实型常量38
2.5.3字元常量38
2.5.4字元串常量39
2.5.5逻辑常量40
2.5.6複数常量40
2.5.7符号常量41
2.6变数41
2.6.1变数声明42
2.6.2变数初始化43
2.6.3变数赋值44
2.6.4变数读写45
2.7案例45
练习题46
第3章基本运算与顺序结构48
3.1概述48
3.2运算符与表达式48
3.3赋值运算50
3.4算术运算51
3.4.1基本算术运算51
3.4.2自增或自减运算52
3.4.3整数运算53
3.4.4实数运算55
3.4.5複合赋值运算56
3.5字元运算56
3.5.1算术运算56
3.5.2字元分类57
3.5.3字元转换58
3.6位运算58
3.6.1位逻辑运算58
3.6.2位移运算60
3.6.3複合位运算及补位原则61
3.7逗号运算61
3.8强制类型转换62
3.8.1算术运算中的隐式转换62
3.8.2赋值运算中的隐式转换62
3.8.3显式转换63
3.9sizeof运算64
3.10标準设备输入输出库64
3.10.1字元输入输出函式65
3.10.2格式化输出函式66
3.10.3格式化输入函式72
3.11数学库76
3.11.1实数计算函式76
3.11.2複数运算函式77
3.12基本语句78
3.12.1标籤语句78
3.12.2空语句78
3.12.3声明语句79
3.12.4表达式语句79
3.12.5複合语句79
3.13顺序结构80
3.14案例82
练习题83
第4章逻辑判断与选择结构85
4.1概述85
4.2关係运算85
4.3逻辑运算86
4.4条件运算88
4.5if语句89
4.5.1单分支选择结构89
4.5.2双分支选择结构91
4.5.3多分支选择结构93
4.6switch语句96
4.7选择结构嵌套101
4.8案例106
练习题108
第5章叠代计算与循环结构109
5.1概述109
5.2while语句110
5.3do…while语句112
5.4for语句115
5.5循环语句对比118
5.6循环嵌套119
5.7跳转控制语句124
5.7.1break语句124
5.7.2continue语句126
5.7.3goto语句126
5.7.4continue、break、goto语句的区别128
5.8案例129
练习题131
第6章集合数据与数组133
6.1概述133
6.2一维数组134
6.2.1一维数组定义134
6.2.2一维数组初始化135
6.2.3一维数组引用136
6.2.4一维数组套用137
6.3二维数组140
6.3.1二维数组定义141
6.3.2二维数组初始化142
6.3.3二维数组引用143
6.3.4二维数组套用143
6.4高维数组147
6.5字元数组与字元串149
6.5.1字元数组149
6.5.2字元串151
6.6字元串处理函式155
6.6.1字元串标準输入输出函式155
6.6.2字元串输入输出函式157
6.6.3字元串複製函式158
6.6.4字元串连线函式159
6.6.5字元串比较函式159
6.6.6字元串检索函式160
6.6.7字元串转换函式162
6.6.8其他字元串常用函式162
6.6.9宽位元组型字元串函式163
6.7数组新特性164
6.8案例165
练习题166
第7章模组化与函式168
7.1概述168
7.2函式定义170
7.2.1函式定义形式170
7.2.2函式返回值与函式类型173
7.3函式声明、头档案的使用和库函式声明176
7.3.1函式声明176
7.3.2头档案的使用177
7.3.3库函式声明178
7.4参数传递180
7.4.1形式参数180
7.4.2实际参数182
7.4.3值複製传递机制183
7.4.4地址複製传递机制185
7.4.5数组参数新特性189
7.5函式调用190
7.5.1函式调用形式190
7.5.2嵌套调用191
7.5.3递归调用192
7.6源程式档案与函式分类194
7.6.1外部函式194
7.6.2内部函式195
7.6.3内联函式196
7.7变数存储类型197
7.7.1普通变数197
7.7.2暂存器变数197
7.8变数作用域198
7.8.1局部变数199
7.8.2全局变数200
7.8.3静态变数203
7.8.4变数访问控制204
7.9源程式结构205
7.9.1单档案单函式结构205
7.9.2单档案多函式结构206
7.9.3多档案多函式结构206
7.10案例208
练习题210
第8章地址操作与指针212
8.1概述212
8.2指针和指针变数213
8.2.1指针变数声明213
8.2.2指针变数的赋值及初始化214
8.2.3指针变数的引用214
8.3指针运算215
8.3.1取地址与取值运算216
8.3.2算术运算216
8.3.3关係运算218
8.3.4指针类型转换218
8.4数组和指针220
8.4.1用指针访问数组元素220
8.4.2指向多维数组的指针221
8.5字元串和指针224
8.5.1指针处理字元串224
8.5.2使用字元指针变数与字元数组的区别225
8.6函式和指针227
8.6.1指针作为函式参数227
8.6.2指针作为函式的返回值232
8.6.3指向函式的指针233
8.7指针数组236
8.7.1指针数组定义236
8.7.2带参数的main函式239
8.8数组指针241
8.9指向指针的指针242
8.10记忆体访问控制244
8.11案例245
练习题249
第9章複杂数据类型与结构体251
9.1概述251
9.2结构体类型252
9.2.1结构体类型定义253
9.2.2结构体类型变数声明与初始化254
9.2.3结构体变数的引用257
9.2.4结构体数组259
9.2.5结构体与函式262
9.2.6结构体类型指针264
9.3共用体267
9.4枚举类型269
9.5类型重定义271
9.6日期和时间273
9.7鍊表274
9.7.1鍊表定义274
9.7.2动态记忆体管理函式275
9.7.3鍊表的基本操作279
9.8结构体新特性283
9.9案例285
练习题290
第10章泛化编程与预编译292
10.1概述292
10.2#define指令292
10.2.1不带参数的宏定义292
10.2.2带参数的宏定义294
10.3#include指令297
10.4条件编译299
10.4.1#ifdef … #else …#endif299
10.4.2#ifndef … #else …#endif299
10.4.3#if … #else …#endif300
10.5其他指令302
10.6预定义宏305
10.7异常处理305
10.8程式移植307
10.9案例308
练习题310
第11章数据存储与档案312
11.1概述312
11.2文本档案与二进制档案313
11.2.1文本档案313
11.2.2二进制档案313
11.3档案类型314
11.4档案打开与关闭315
11.4.1档案打开315
11.4.2档案关闭318
11.5档案读写319
11.5.1单字元读写319
11.5.2字元串读写322
11.5.3格式化读写323
11.5.4数据块读写325
11.6档案定位函式328
11.7档案状态跟蹤330
11.8其他档案操作函式332
11.9案例334
练习题338
第12章程式设计思想及範例 340
12.1概述340
12.2求和/求积问题340
12.2.1多项式求和341
12.2.2数列求和342
12.3遍历问题344
12.4叠代问题350
12.4.1二分叠代法350
12.4.2牛顿叠代法352
12.5排序问题354
12.5.1直接插入排序355
12.5.2起泡排序357
12.5.3选择排序359
12.6查找问题361
12.6.1顺序查找361
12.6.2折半查找362
12.7递归问题364
12.8矩阵运算367
12.8.1矩阵加/减运算367
12.8.2矩阵乘法368
12.8.3矩阵转置370
练习题371
第13章面向对象与C++基础373
13.1概述373
13.1.1结构化程式设计373
13.1.2模组封装与访问控制374
13.2面向对象程式设计376
13.3类与对象376
13.3.1类376
13.3.2对象378
13.3.3类在C++中的实现378
13.3.4成员变数384
13.3.5成员函式386
13.3.6构造函式和析构函式390
13.3.7函式重载392
13.3.8运算符重载394
13.3.9静态成员变数396
13.3.10静态成员函式398
13.4继承与多态400
13.4.1类继承400
13.4.2多态性与虚函式403
13.5案例407
练习题408
第14章高性能计算与并行程式设计409
14.1概述409
14.2并行算法409
14.2.1并行问题409
14.2.2并行算法设计410
14.3并行程式设计实现411
14.3.1并行程式设计模型411
14.3.2进程412
14.3.3创建进程412
14.3.4讯息传递413
14.4MPI程式设计基础416
14.4.1MPI简介416
14.4.2简单MPI程式设计417
14.4.3MPI初始化与关闭417
14.4.4MPI函式馆419
14.4.5MPI讯息传递420
14.5多核CPU与多执行绪428
14.5.1多核CPU428
14.5.2执行绪430
14.6OpenMP与多核程式设计431
14.6.1OpenMP简介431
14.6.2OpenMP并行程式结构431
14.6.3parallel节433
14.6.4for节434
14.6.5其他节435
14.6.6共享变数与信息传递436
14.7多执行绪技术437
14.7.1执行绪函式馆简介437
14.7.2Win32执行绪函式馆437
14.7.3C11标準执行绪函式馆444
练习题451
第15章个体软体过程管理453
15.1概述453
15.2编码规範定义454
15.3MPI编码规範454
15.3.1标识符命名规範455
15.3.2函式或过程规範455
15.4ANSI C程式编码规範456
15.4.1代码结构与组织456
15.4.2注释458
15.4.3标识符命名规範460
15.4.4代码风格与排版461
15.5代码重用技术462
15.5.1源程式档案463
15.5.2静态库463
15.5.3动态程式库465
15.5.4组件技术467
15.6软体生命周期模型简介468
15.7CMM简介470
15.8PSP简介470
15.9PSP0级471
15.9.1计画过程管理472
15.9.2开发过程管理472
15.9.3总结过程管理473
15.9.4PSP0过程管理文档474
15.9.5PSP0.1级475
15.10软体开发计画477
15.10.1软体开发计画基本内容477
15.10.2制定个体软体开发计画478
15.10.3PSP软体开发计画过程管理479
15.11PSP1级479
15.11.1规模计算480
15.11.2任务计画480
15.11.3进度计画481
15.12PSP2级481
15.12.1代码评审482
15.12.2设计评审483
15.12.3缺陷预防483
15.12.4PSP2级的改进483
练习题483
附录AASCII码錶485
附录B运算符和结合方向486
参考文献488
(注:目录排版顺序为从左列至右列

教学资源

  • 配套教材
该教材有配套的实验与测试教材——《程式设计基础(C语言)实验指导与测试(第3版)》,内容包括分别是实验指导、基本概念测试和工程案例等。
书名书号出版社出版时间作者
《程式设计基础(C语言)实验指导与测试(第3版)》
9787302498537
清华大学出版社
2018.05.01
高克宁等
  • 课程资源
该教材提供全部教学PPT教学课件、习题答案、教学计画、教学讲义(中英文)、教学素材、教学例题与案例、教学视频、线上测试系统等数字资源。

教材特色

  1. 该教材围绕程式设计能力培养,从程式设计思想、语言、技术和工程管理四个方面组织内容,以结构化程式设计思想为主,兼顾面向对象程式设计和并行程式设计;程式实现以C语言为主,介绍了C11标準,同时介绍其他语言的相应处理;从分解与重用的角度阐述函式、档案、库、组件等相关技术,从高性能计算的角度介绍MPI并行程式设计技术;从编码规範入手引入个体软体过程管理;
  2. 在教材内容编排模式上,採用将完整案例分解,逐级深入,引导学生有序地用程式设计思想解决实际工程问题;
  3. 配套实验与测试教材以知识点为单元组织线上资源,利用思维导图将知识点有机地联繫到一起;从高度、广度、深度三个方面立体展示了课程知识网路;
  4. 该教材中的部分程式要求採用支持C11标準的编译器,建议使用GCC4.9.2或更新版本。

作者简介

高克宁,女,工学博士,东北大学计算中心教育技术与云计算研究所长、教授、中国计算机学会办公自动化专业委员会委员、中国计算机学会高级会员、美国ACM学会会员。主要研究领域为Web信息处理、社会网路。

相关推荐

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com