C语言程序设计
书 号:9787113246303
丛 书 名:高等院校计算机基础教育“十三五”规划教材
作 者:孙平安
译 者:
开 本:16开
装 帧:平装
正文语种:汉文
出 版 社:中国铁道出版社有限公司
定 价:48元
-
内容简介
本书共分为12章以及2个附录部分,书中所有示例程序均在VC6.0集成开发环境中调试并运行。考虑到教学课时较少以及读者专业特点,力求把C语言编程过程所必须掌握的知识点讲透讲明白,适时给出示例并对较难懂的示例进行结果分析。 本书旨在使读者通过学习快速掌握C语言基础语法、程序流程控制、函数与模块编写、字符串与指针、构造数据类型以及文件、常用算法等知识;借助单步调试技术,从变量地定义洞察其本质以及其在程序执行过程中变量值的变化,使读者更加清晰程序的流程控制以及每条语句的功能;通过参阅大量在线技术文档、文章,将需要读者掌握的技术其背后的知识点彻底的给读者交代清楚,使其知其然更知其所以然。本书适用于想学习C语言程序设计的初学者,尤其是应用型普通高校本专科的工科专业学生,也可用于非计算机专业科研人员学习C语言的参考,亦可以作为国家计算机等级考试二级的参考书,计算机专业的同学通过阅读此书也会受益匪浅,接受另一种视角下的C程序设计。 -
前言
在过去的几十年间,大量的程序设计语言被发明、被取代、被修改或组合在一起,但C语言依然长盛不衰,深受广大编程爱好者的喜爱。计算机作为一种现代化工具已被用于社会的各个行业,当代大学生应能够熟练驾驭此工具,以使自己在社会发展的滚滚洪流中成为中流砥柱。通过学习一门程序设计语言理解计算机中数据处理的过程,了解计算机的工作原理,在此过程中培养信息素养为未来工作、学习打下良好基础,
近年来,在国家政策的积极推动和引导下,应用技术型大学成为我国高等教育和职业教育领域的关注和研究热点。应用技术型人才的培养重在突出应用,同时应具有扎实的专业基础,以能够经得起技术的革新和变化,有能力通过再学习快速适应社会发展对人才的要求。在课时普遍压缩的背景下,为了满足应用型人才培养尤其是工科各专业的需要,我们组织编写了本书。本书旨在使读者通过学习,快速掌握C语言基础语法、程序流程控制、函数与模块编写、字符串与指针、构造数据类型,以及文件、常用算法等知识;借助单步调试技术,从变量的定义洞察其本质以及其在程序执行过程中变量值的变化,使读者更加清楚程序的流程控制以及每条语句的功能;通过参阅大量在线技术文档、文章将需要读者掌握的技术背后的知识点彻底交代清楚,使读者知其然更知其所以然;不在古怪、特殊情况下才被迫使用的方法上花费篇章,不钻牛角尖,以系统的全局观使读者快速掌握C语言程序设计,并使用其解决问题;每章的习题是从历年全国计算机等级考试(二级)真题中精心挑选而来,旨在举一反三,不搞题海战。
本书适合作为高等院校计算机专业的教材,也可供非计算机专业科研人员学习参考,亦可作为全国计算机等级考试(二级)的参考用书。读者通过阅读此书会接受另一种视角下的C程序设计。
本书由孙平安任主编,丁潇、蔡闯华任副主编。感谢熊孝存、陈荣旺两位领导以及武夷学院大学计算机基础教研室各位同仁的大力支持;感谢刘瑞军老师对本书提出的宝贵建议;感谢中国铁道出版社有限公司各位编辑老师对本书的辛勤付出以及给予的宝贵意见。
由于时间仓促,编者水平有限,书难免有疏漏与不妥之处,恳请读者和同行批评指正。
编者
2020年10月 -
目录
第1章 计算机基础知识
1.1 计算机硬件基础
1.1.1 计算机与冯·诺依曼型结构
1.1.2 内存地址
1.1.3 计算机的三大系统总线
1.1.4 CPU指令系统
1.1.5 计算机工作原理
1.2 二进制及计算机编码
1.2.1 进位计数制与二进制 4
1.2.2 不同进位计数制间的转换 5
1.3 二进制数值表示与计算 7
1.3.1 整数的计算机表示 7
1.3.2 实数的计算机表示 9
1.3.3 字符编码 11
1.3.4 其他非数值型数据编码 15
1.4 计算机程序设计语言的发展 15
1.4.1 机器语言 15
1.4.2 汇编语言 16
1.4.3 高级语言 16
1.4.4 程序启动运行过程 16
小结 17
习题 18
第2章 C语言概述 19
2.1 C语言的发展历程 19
2.1.1 C语言的起源 19
2.1.2 C语言的标准化 19
2.1.3 C语言和C++语言的交融
发展 20
2.2 C语言的主要特点、应用场合 20
2.2.1 C语言的主要特点 20
2.2.2 C语言的应用场合 21
2.2.3 如何学好C语言 22
2.3 开始C语言之旅 22
2.3.1 第一个C语言程序 23
2.3.2 Visual C++ 6.0开发平台 23
2.3.3 C语言程序编译、连接、执行的
过程(以Windows操作系统
为例) 27
2.3.4 计算机如何帮助人类计算 30
小结 31
习题 31
第3章 变量与常量、数据类型 33
3.1 变量与常量 33
3.1.1 变量 33
3.1.2 常量 33
3.2 C语言的关键字、保留字和标
识符 35
3.2.1 C语言的关键字 35
3.2.2 C语言的保留字 36
3.2.3 标识符 36
3.3 C语言的数据类型 36
3.3.1 C语言数据类型 36
3.3.2 数据类型的自动转换 43
3.3.3 格式化输入/输出 46
3.3.4 字符数据的输入/输出 49
3.3.5 字符串数据的输入/输出 50
3.3.6 C函数库帮助文档的查阅 51
小结 51
习题 52
第4章 运算符与表达式 54
4.1 算术运算符号 54
4.1.1 加减乘除、取余运算符 54
4.1.2 自加、自减运算符 55
4.2 赋值运算符与逗号运算 56
4.2.1 赋值运算符 56
4.2.2 赋值表达式与赋值语句、
空语句 57
4.2.3 逗号运算符与逗号
表达式 58
4.3 字节数运算符、按位运算符 58
4.3.1 求字节运算符sizeof 58
4.3.2 位运算符 59
4.4 强制类型转换 60
4.4.1 隐式转换 60
4.4.2 显式转换 61
4.5 关系与逻辑运算符 61
4.5.1 关系运算符 62
4.5.2 逻辑运算符与短路现象 62
4.5.3 条件运算符“? :” 63
4.6 运算符的优先级与结合性 64
小结 66
习题 66
第5章 程序流程控制 69
5.1 三种程序流程控制结构与复合
语句 69
5.2 选择控制结构 70
5.2.1 if单分支选择结构 70
5.2.2 if构成的双分支选择
结构 70
5.2.3 if构成的多分支选择控制
结构 71
5.2.4 switch构成的多分支选择
控制结构 73
5.3 循环控制结构 76
5.3.1 for语句构成的计数循环 77
5.3.2 while 构成的条件循环 80
5.4 循环中的break语句和continue
语句 84
5.4.1 break语句 85
5.4.2 continue语句 86
5.5 循环结构的嵌套 87
5.6 goto语句 92
小结 93
习题 94
第6章 数组 98
6.1 一维数组 98
6.1.1 一维数组的引用 99
6.1.2 一维数组的初始化 99
6.1.3 数组的越界危险 101
6.2 二维数组 103
6.2.1 二维数组的定义 103
6.2.2 二维数组的引用 104
6.2.3 二维数组的初始化 105
6.2.4 程序举例 106
6.3 字符数组与字符串 108
6.3.1 字符数组 108
6.3.2 使用字符串常量初始化
字符数组 109
6.3.3 对字符数组进行输入/输出
操作 109
6.3.4 字符串函数 111
6.4 典型错误及典型例题 116
小结 121
习题 121
第7章 模块化与函数 125
7.1 函数的定义与调用 125
7.1.1 函数的定义 125
7.1.2 函数的调用与return语句 126
7.1.3 函数的嵌套调用 127
7.2 函数的声明与主函数 128
7.2.1 函数的声明 128
7.2.2 main()函数 128
7.3 函数参数的传递 128
7.4 函数的递归调用 130
7.5 库函数和头文件 134
7.6 变量的存储类别 135
7.6.1 自动变量与外部变量 135
7.6.2 静态变量 141
7.6.3 寄存器变量 144
7.7 程序的预处理指令与宏 144
7.7.1 宏定义 144
7.7.2 文件包含 146
小结 147
习题 147
第8章 指针 155
8.1 指针的概念 155
8.2 指针的定义及其基本用法 157
8.2.1 指针的定义 157
8.2.2 指针运算符的使用 158
8.2.3 指向指针的指针 160
8.2.4 指针的运算 161
8.3 指针与函数 162
8.3.1 形参的数据类型是指针
类型 162
8.3.2 返回值是指针类型的函数 166
8.3.3 指向函数的指针 166
8.4 指针与数组 169
8.4.1 指针与一维数组 169
8.4.2 指针与二维数组 174
8.4.3 指向二维数组的指针变量 176
8.4.4 指针与字符串 177
8.4.5 指针数组 179
8.5 指针所指向空间的动态分配 181
8.5.1 C语言内存分配与释放
函数 182
8.5.2 内存分配实例 183
小结 184
习题 184
第9章 构造数据类型 190
9.1 结构体(struct) 190
9.1.1 结构体类型的定义 190
9.1.2 结构体数据类型的存储
结构与初始化 191
9.1.3 结构体成员变量类型为
结构体类型 193
9.1.4 typedef关键字的使用 194
9.1.5 结构体数组 194
9.1.6 指向结构体的指针 195
9.2 共同体(union) 196
9.3 枚举类型(enum) 199
9.4 结构体的综合应用(链表
实现) 199
9.4.1 链表的概念 199
9.4.2 静态链表的实现 200
9.4.3 动态链表 201
9.4.4 链表的操作 201
小结 203
习题 204
第10章 文件操作 212
10.1 文件的概念 212
10.2 文件的类型与文件存取方式 213
10.2.1 文件的类型 213
10.2.2 文件的存取方式 214
10.3 文件流、缓冲区和标准输入/
输出 214
10.3.1 文件流 214
10.3.2 缓冲区 214
10.3.3 标准输入/输出 216
10.4 C语言文件操作 217
10.4.1 文件的打开与关闭 217
10.4.2 文件的顺序读写 218
10.4.3 按二进制方式读写数据块 222
10.4.4 文件的随机读/写 224
小结 226
习题 226
第11章 计算机算法基础 231
11.1 算法的概念 231
11.2 算法的复杂度 232
11.2.1 算法的时间复杂度 232
11.2.2 算法的空间复杂度 235
11.3 排序算法 236
11.3.1 冒泡排序算法 236
11.3.2 选择排序法 238
11.3.3 快速排序法 239
11.4 查找算法 240
11.4.1 顺序查找 240
11.4.2 二分查找算法 241
11.4.3 插值查找算法 242
小结 243
习题 243
第12章 国际计算机协会—国际大学生
程序设计竞赛
(ACM-ICPC) 245
12.1 ACM-ICPC的历史 245
12.2 比赛规则 246
12.3 赛事构成 246
12.4 评分标准 246
12.5 比赛的意义 247
12.6 OJ在线平台 248
附录A C程序内存区域分配 249
附录B 程序单步调试技术 251
参考文献 252 -
作者介绍
-
编辑推荐
-
书评书荐
-
附件下载
图书推荐