新書推薦:
《
冯友兰和青年谈心系列:不是问题的问题(哲学大师冯友兰和年轻人谈心,命运解读)
》
售價:HK$
55.8
《
月与蟹(青鲤文库)荣获第144届直木奖,天才推理作家经典作品全新译本。一部青春狂想曲,带你登上心理悬疑之巅。
》
售價:HK$
50.4
《
索恩丛书·盛清统治下的太监与皇帝
》
售價:HK$
88.5
《
透过器物看历史(全6册)
》
售價:HK$
490.6
《
我在台北故宫博物院读名画
》
售價:HK$
109.8
《
尼罗河往事:古埃及文明4000年
》
售價:HK$
76.2
《
一个人·谁也不是·十万人(诺贝尔文学奖得主反思自我的巅峰之作)
》
售價:HK$
54.9
《
重写晚明史(全5册 精装)
》
售價:HK$
781.8
|
編輯推薦: |
每章由一个例子引入,全书贯穿一个系统开发案例,并在*后一章进行完整讲解。
|
內容簡介: |
本书以培养学生程序设计基本能力为目标,系统地介绍了C语言程序设计的基本知识和基本方法。全书共分12章,主要内容包括程序设计概述,数据类型与表达式,顺序结构、选择结构及循环结构程序设计,数组,函数与编译预处理,指针,指针与函数,构造数据类型,文件和综合实例。全书结构清晰,实例丰富,语言流畅,通俗易懂。 本书可作为普通高等学校理工类专业C语言程序设计课程的教材,也可作为C 语言程序设计爱好者的自学用书。
|
目錄:
|
第1章 程序设计概述 1
1.1 程序设计语言 2
1.1.1 机器语言与汇编语言 2
1.1.2 高级语言与翻译 3
1.2 程序设计基础 3
1.2.1 程序与程序设计概念 3
1.2.2 算法程序的灵魂 4
1.2.3 程序设计的一般过程 9
1.2.4 程序设计方法 9
1.3 C语言的发展与特点 10
1.4 C语言的程序结构 11
1.4.1 简单的C程序 12
1.4.2 C程序的基本结构 13
1.5 开发C语言程序的基本过程 14
1.5.1 C程序编程环境 14
1.5.2 C语言程序的实现过程 15
习题 15
第2章 数据类型与表达式 17
2.1 字符集、关键字和标识符 17
2.1.1 字符集 17
2.1.2 关键字 17
2.1.3 标识符 18
2.2 数据的存储 18
2.2.1 二进制 18
2.2.2 数据的存储 18
2.3 基本数据类型 19
2.3.1 整型 20
2.3.2 实型 21
2.3.3 字符型 23
2.4 常量与变量 23
2.4.1 常量 23
2.4.2 变量 26
2.5 运算符与表达式 28
2.5.1 算术运算 28
2.5.2 赋值运算 31
2.5.3 求字节数运算符 32
2.5.4 圆括号运算符 32
2.5.5 位运算 32
2.6 类型转换 35
2.6.1 自动类型转换 35
2.6.2 强制类型转换 37
习题 37
第3章 顺序结构程序设计 38
3.1 C语言基本语句 39
3.2 数据的输入输出 40
3.2.1 数据输入输出的概念 40
3.2.2 格式化的输入输出 41
3.2.3 字符的输入输出 51
3.3 顺序结构程序设计 52
3.3.1 顺序结构程序 53
3.3.2 良好的源程序书写风格 53
3.4 顺序结构程序设计实例 55
习题 57
第4章 选择结构程序设计 59
4.1 运算符与表达式 60
4.1.1 关系运算 60
4.1.2 逻辑运算 61
4.1.3 条件运算 63
4.1.4 逗号运算 64
4.2 if语句实现选择结构 64
4.2.1 if语句 64
4.2.2 if语句的嵌套 67
4.3 switch语句 71
4.4 选择结构程序设计实例 75
习题 80
第5章 循环结构程序设计 82
5.1 while语句 83
5.2 dowhile语句 86
5.3 for语句 88
5.4 循环的嵌套 92
5.5 循环语句的特点 94
5.6 与循环有关的控制语句 95
5.6.1 break语句 95
5.6.2 continue语句 97
5.6.3 goto语句 98
5.7 循环结构程序设计实例 98
习题 105
第6章 数组 107
6.1 数组的基本概念 109
6.2 一维数组 109
6.2.1 一维数组的定义与存储 109
6.2.2 一维数组元素的引用 110
6.2.3 一维数组的初始化 111
6.2.4 一维数组程序举例 112
6.3 二维数组 116
6.3.1 二维数组的定义与存储 116
6.3.2 二维数组元素的引用 118
6.3.3 二维数组的初始化 118
6.3.4 二维数组程序举例 119
6.4 字符数组 121
6.4.1 一维字符数组的定义与初始化 121
6.4.2 一维字符数组的输入输出 122
6.4.3 二维字符数组 125
6.4.4 字符串处理函数 127
6.4.5 字符数组程序举例 130
6.5 数组程序设计实例 131
习题 136
第7章 函数与编译预处理 138
7.1 程序与函数 139
7.2 函数的定义及调用 141
7.2.1 定义无参函数 141
7.2.2 定义有参函数 141
7.2.3 函数的调用 142
7.3 函数参数及其传递方式 147
7.3.1 变量做函数参数 148
7.3.2 数组做函数参数 149
7.4 函数的嵌套调用 152
7.5 函数的递归调用 154
7.6 变量的作用域、存储类型及生存期 156
7.6.1 变量的作用域 156
7.6.2 变量的存储类型 159
7.6.3 程序的内存布局及变量的生存期 162
7.6.4 小结 163
7.7 函数程序设计实例 164
7.8 编译预处理 170
7.8.1 宏定义 171
7.8.2 文件包含 175
7.8.3 条件编译 176
习题 179
第8章 指针 181
8.1 指针的概念 182
8.1.1 地址 182
8.1.2 指针的定义 183
8.2 指针变量 183
8.2.1 指针变量的定义 183
8.2.2 指针的基本运算 184
8.2.3 指针的初始化及赋值 185
8.2.4 零指针与void *类型指针 188
8.3 指针与数组 189
8.3.1 指针与一维数组 189
8.3.2 指针的运算 192
8.3.3 指针与二维数组 194
8.4 指针与字符串 198
8.5 指针数组与指向指针的指针 201
8.5.1 指针数组 201
8.5.2 指向指针的指针 204
8.6 指针与动态内存分配 206
8.6.1 动态内存分配函数 206
8.6.2 动态内存分配的应用 207
8.7 指针程序设计实例 208
习题 211
第8章 指针与函数 212
9.1 指针作为函数的参数 213
9.1.1 指针变量为函数的参数 213
9.1.2 数组为函数的参数 215
9.1.3 字符指针变量为函数的参数 218
9.1.4 指向数组的指针变量为函数的参数 219
9.1.5 指针数组或二级指针变量为函数的参数 221
9.2 函数返回指针值 222
9.3 指向函数的指针 224
9.4 带参数的main函数 227
9.5 指针小结 229
9.5.1 关于指针的数据类型小结 229
9.5.2 指针运算小结 230
9.6 指针与函数程序设计实例 230
习题 236
第10章 构造数据类型 237
10.1 结构体类型 238
10.2 结构体变量 239
10.2.1 结构体变量的定义和存储分配 239
10.2.2 结构体变量的初始化 241
10.2.3 访问结构体变量成员 242
10.2.4 结构体的嵌套 243
10.2.5 结构体变量与函数 244
10.3 结构体数组 245
10.3.1 结构体数组的定义 245
10.3.2 结构体数组的初始化与引用 246
10.3.3 结构体数组作为函数参数 247
10.4 结构体类型的指针 249
10.4.1 指向结构体变量的指针 249
10.4.2 指向结构体数组的指针 251
10.4.3 结构体类型的指针作为函数参数 253
10.5 链表 255
10.5.1 单链表概述 255
10.5.2 链表的基本操作 256
10.6 共用体 264
10.6.1 共用体类型 264
10.6.2 共用体变量 265
10.6.3 访问共用体变量成员 267
10.7 枚举 267
10.7.1 枚举类型 268
10.7.2 枚举变量 268
10.8 用typedef定义类型名 269
10.9 程序设计实例 271
习题 275
第11章 文件 277
11.1 文件概述 277
11.1.1 文件的概念 277
11.1.2 缓冲文件系统 278
11.1.3 文件类型指针 278
11.2 文件的打开与关闭 279
11.2.1 文件的打开 279
11.2.2 文件的关闭 281
11.3 文件的顺序读写操作 281
11.3.1 读写字符函数 281
11.3.2 读写字符串函数 284
11.3.3 格式化读写数据函数 285
11.3.4 读写数据块函数 287
11.4 文件的随机读写操作 289
11.4.1 文件指针复位函数 289
11.4.2 文件指针随机移动函数 290
11.4.3 取文件指针当前位置函数 292
11.5 文件出错检测函数 293
11.5.1 ferror函数 293
11.5.2 clearerr函数 293
11.6 文件程序设计实例 293
习题 295
第12章 综合实例 296
12.1 应用程序开发流程 296
12.2 学生成绩管理系统开发实例 297
12.2.1 功能描述 297
12.2.2 系统设计 297
附录A 常用字符及其ASCII代码 313
附录B C语言的运算符及其结合性 316
附录C C语言库函数 318
参考文献 324
|
內容試閱:
|
C语言以其独特的魅力吸引了众多的软件开发者,是程序设计的一种基本语言,是掌握各种现代编程技术的重要基础。它兼具高级语言和低级语言之长,代码简洁、高效,功能强大。C语言程序设计课程是大学计算机基础教育的核心课程,是学生计算思维能力培养的重要载体。
为了提高教学质量,贯彻和实施以计算思维为切入点的教学改革,近年来,我们首先开展了计算机基础课程考试改革工作,实现了C语言程序设计课程上机考试。借助考试系统,把期末考核与阶段性测试相结合,以考带练,以练促考,使教与学学与练更好地结合起来。实践证明,考试改革既增强了学生的应用能力,又培养了学生自主学习的能力,使学生在编程中学习知识,在学习过程中拓展思维。随着考试改革的深入,为适应新的教学需求,我们编写了这本新的教材,教材内容更强调面向问题求解的思维方法训练。本书的主要特点如下。
(1)例题经典,分析透彻。选择典型例题,注重算法设计,强化程序设计能力的培养,帮助学生在应用中加深对C语言基本语法和程序设计方法的理解。例题的重点、难点在例题的分析说明注意中列出。
(2)设置引例,承前启后。每章均设置引例,学习新内容时,引例起承接、过渡的作用。简单、实用的引例使学生对新知识有感性的认识。引例引出语法,语法引入应用,把以语法为中心的程序设计教学转变为面向问题求解的程序设计教学,突出程序设计思想与方法。
(3)综合实例,贯穿全篇。以菜单驱动的学生成绩管理系统为主线,主要章节实例部分设置的例题均围绕第12章的综合实例逐步展开;引导学生逐步编写菜单驱动的学生成绩管理系统,提高系统思维能力。该内容可以作为课程设计的参考内容。
(4)注重实用性与趣味性。本书特别选择了实用有趣的题目,如鸡兔同笼、猜数游戏、小学生四则运算练习、建立计时器等,引导学生体会利用计算机解决问题的思路和方法,注重培养学生的计算思维和编程兴趣。
本次改版是根据教学实践的反馈,在第1版的基础上进行的。在保持第1版基本内容的基础上,做了适当的精简、调整与补充,具体有以下方面。
(1)微调了章节结构,使学生能尽快进入编程实践环节。将第2章数据类型与表达式的内容进行了调整,第2章介绍最基本的内容,其余内容调整到第4章,这样减少了第2章的内容,以便让学生更快地学以致用,进入编程实践。
(2)补充、修改了教学内容,使学生能更好地掌握难点和基本概念。为了加强学生对基本概念的理解,第2章补充了数据的存储一节,第7章修改了变量的作用域、存储类型及生存期一节的结构与内容。为了保证内容的完整性,第5章补充了goto语句一节。
(3)增加、删除、修改了部分例题,使例题更典型、更易理解。例如,第6章补充了典型的折半查找杨辉三角进制转换等例题,更注重介绍典型算法;第7章更新了函数嵌套调用的例题,使学生更容易理解函数的嵌套结构;第9章修改了函数参数为函数指针的例子,例题更简洁、明了,易于理解。
为了更好地满足学习者的需要,本书有配套教材《C语言程序设计学习指导》(ISBN 9787302460442),辅导学生巩固教材所学,加强上机实践能力。作者为选用本书的老师提供了配套的课件和例题源程序等教学资源,相关内容可从清华大学出版社网站
本书是作者在多年教学实践的基础上,对《C语言程序设计》第1版教材的内容进行的梳理、精简和充实。作者都是多年从事C语言程序设计教学的高校教师。本书各章节编写分工如下: 第1、2章由吕进、王俊、袁玲编写; 第3、10章由袁玲编写; 第4、5、12章由韦娜编写; 第6、7章由吴文红编写;第8、9章由王俊编写;第11章由卢江编写。全书由韦娜、王俊负责统稿。
清华大学出版社对本书的策划、出版做了大量工作,在此表示衷心的感谢!
由于作者水平所限,书中难免有疏漏之处,恳请广大读者批评指正。
作 者
2018年9月于西安
|
|