C语言程序设计(第二版)
书 号:9787113213084
丛 书 名:
作 者:孙辉 吴润秀
译 者:
开 本:16开
装 帧:平装
正文语种:
出 版 社:中国铁道出版社有限公司
定 价:42元
-
内容简介
本书结合VisualC++6.0集成开发环境,本书详细介绍了C程序设计的基本概念、程序
设计方法、集成开发环境中的调试工具和常用的调试技巧。同时,增加了Windows窗口
程序(图形程序)设计的内容,并在附录中介绍了VisualC++6.0编译器的使用。书中全
部程序均可在lcc3.3编译器或者MicrosoftVisualStudio2010编译下通过,前10章中
的程序,除个别程序外,也能在gcc3.0及以上版本的C编译器下编译通过。
全书的写作参照了建构主义的教学理论,简化了语法说明,突出了编程实践,同时
注重调试技术,强调动手能力的培养。本书配有《C语言程序设计实验指导与习题集》
一书。
本书适合作为大学本科计算机相关专业“C语言程序设计”课程教材或教学参考
书。如果去除Windows程序设计一章及部分较难的程序,也可供高职相关专业作为教
材使用。 -
前言
本次改版,基本上保留了原有教材的特点,对已过时的内容进行了更新,补充了新的案
例,尤其是C 语言调试方法的案例。附录A 中新增的调试案例,如果教师能仔细阅读,并
帮助学生掌握相关内容,则不但对于学生掌握集成开发环境中的工具,而且对于掌握调试技
巧乃至于更好地学习C 语言,均有帮助。为了保证教材内容的简洁与完整,与全国计算机
等级考试相关的内容,放在配套的《C 语言程序设计实验指导与习题集》一书中。由于
Microsoft Visual Studio 2010 一类新的集成开发环境过于庞大,使用复杂,不适用初学者,
故第二版的C 程序,仍基于Visual C++ 6.0 集成开发工具中的C 编译器。
全书由孙辉、吴润秀编著。吴润秀撰写了第5 章、第8 章、第9 章,孙辉撰写了其余章
节,并在出版前对全书进行了统一的修改及最后的统稿。
由于编者水平所限,书中不足之处在所难免,恳请读者批评指正。作者的电子信箱:
Sun_hui2006@yahoo.com.cn。 -
目录
第1 章 绪论..................................................................................................................... 1
1.1 C 语言简介......................................................................................1
1.2 程序设计的基本概念..........................................................................1
1.2.1 程序.................................................................................................................. 2
1.2.2 程序设计.......................................................................................................... 2
1.2.3 算法.................................................................................................................. 2
1.2.4 数据结构.......................................................................................................... 2
1.3 常用计算机高级语言简介....................................................................2
1.4 C 语言程序的开发过程.......................................................................4
1.5 对于C 语言学习的认识......................................................................6
1.6 本教材对C 语言的处理......................................................................6
第2 章 基本数据类型及顺序结构程序设计................................................................. 8
2.1 几个简单的C 语言程序......................................................................8
2.2 C 语言的字符集、关键字和标识符...................................................... 10
2.2.1 字符集............................................................................................................ 10
2.2.2 关键字............................................................................................................ 10
2.2.3 标识符............................................................................................................ 10
2.3 C 语言的数据类型........................................................................... 11
2.3.1 数据及数据类型的概念................................................................................ 11
2.3.2 基本类型........................................................................................................ 12
2.3.3 构造类型........................................................................................................ 12
2.4 常量............................................................................................. 12
2.4.1 整型常量........................................................................................................ 13
2.4.2 实型常量........................................................................................................ 13
2.4.3 字符常量........................................................................................................ 13
2.4.4 转义字符........................................................................................................ 13
2.4.5 字符串常量.................................................................................................... 14
2.4.6 符号常量........................................................................................................ 14
2.5 变量............................................................................................. 15
2.5.1 变量的概念.................................................................................................... 15
2.5.2 变量的说明.................................................................................................... 16
2.5.3 变量的类型.................................................................................................... 17
2.5.4 变量的初始化................................................................................................ 17
2.6 运算符和表达式.............................................................................. 18
2.6.1 算术运算符和算术表达式............................................................................ 19
2.6.2 赋值运算符和赋值表达式............................................................................ 20
2.6.3 自增(++)、自减(--)运算符................................................................... 21
2.6.4 逻辑量的概念................................................................................................ 22
2.6.5 关系运算符和关系表达式............................................................................ 22
2.6.6 逻辑运算符和逻辑表达式............................................................................ 23
2.6.7 条件运算符.................................................................................................... 24
2.6.8 位运算............................................................................................................ 25
2.6.9 逗号运算符和逗号表达式............................................................................ 29
2.6.10 sizeof运算符................................................................................................ 29
2.7 运算符的优先级.............................................................................. 29
2.8 混合运算中的类型转换问题............................................................... 30
2.8.1 自动类型转换................................................................................................ 30
2.8.2 强制类型转换................................................................................................ 31
2.9 数据输出和输入.............................................................................. 32
2.9.1 数据输出........................................................................................................ 32
2.9.2 数据输入........................................................................................................ 36
2.10 顺序结构程序设计举例................................................................... 41
小结..................................................................................................... 43
习题..................................................................................................... 44
第3 章 分支结构........................................................................................................... 47
3.1 if 语句........................................................................................... 47
3.1.1 if…else语句................................................................................................... 47
3.1.2 if语句的两种变形......................................................................................... 49
3.1.3 if语句的嵌套................................................................................................. 53
3.2 if 语句应用举例.............................................................................. 56
3.3 switch 语句.................................................................................... 58
3.4 无条件转移语句goto ....................................................................... 63
小结..................................................................................................... 64
习题..................................................................................................... 65
第4 章 循环结构........................................................................................................... 67
4.1 while 循环结构............................................................................... 67
4.1.1 while循环的结构.......................................................................................... 67
4.1.2 while循环的使用.......................................................................................... 68
4.2 do…while 循环结构........................................................................ 72
4.2.1 do…while循环的结构.................................................................................. 72
4.2.2 do…while循环的使用.................................................................................. 72
4.3 for 循环结构.................................................................................. 74
4.3.1 for循环的结构............................................................................................... 74
4.3.2 for循环的使用............................................................................................... 75
4.4 循环结构的嵌套.............................................................................. 78
4.5 循环中break 和continue 语句的使用................................................. 80
4.6 循环语句的使用举例........................................................................ 81
小结..................................................................................................... 84
习题..................................................................................................... 85
第5 章 函数................................................................................................... 87
5.1 函数的定义与调用........................................................................... 87
5.1.1 函数定义的一般形式.................................................................................... 89
5.1.2 函数过程的调用............................................................................................ 90
5.1.3 函数的返回值................................................................................................ 92
5.1.4 函数的声明.................................................................................................... 92
5.2 变量的存储类别.............................................................................. 94
5.2.1 自动变量........................................................................................................ 95
5.2.2 外部变量........................................................................................................ 95
5.2.3 有多个源程序文件的程序中外部变量的引用............................................ 96
5.2.4 静态变量........................................................................................................ 99
5.2.5 register变量................................................................................................. 101
5.3 变量的作用域................................................................................101
5.3.1 局部变量...................................................................................................... 101
5.3.2 全局变量...................................................................................................... 102
5.4 内部函数和外部函数.......................................................................104
5.4.1 内部函数...................................................................................................... 104
5.4.2 外部函数...................................................................................................... 104
5.5 函数的递归调用.............................................................................105
5.5.1 递归算法的概念.......................................................................................... 105
5.5.2 C函数的递归调用....................................................................................... 105
小结....................................................................................................110
习题....................................................................................................111
第6 章 数组..................................................................................................113
6.1 一维数组......................................................................................114
6.1.1 一维数组的定义.......................................................................................... 114
6.1.2 一维数组的引用.......................................................................................... 114
6.2 一维字符数组与字符串....................................................................118
6.3 字符串常用库函数..........................................................................122
6.4 二维数组及多维数组.......................................................................126
6.4.1 二维数组的定义.......................................................................................... 126
6.4.2 二维数组的初始化...................................................................................... 127
6.4.3 三维数组及讨论.......................................................................................... 128
6.4.4 二维数组应用举例...................................................................................... 128
6.5 数组综合应用举例..........................................................................134
小结....................................................................................................138
习题....................................................................................................138
第7 章 指针................................................................................................. 141
7.1 指针的概念...................................................................................141
7.1.1 指针变量的说明.......................................................................................... 143
7.1.2 指针运算符.................................................................................................. 144
7.1.3 指针的赋值.................................................................................................. 145
7.1.4 指针的算术运算.......................................................................................... 146
7.1.5 指针运算符与单目运算符的优先级.......................................................... 147
7.2 指针应用程序举例..........................................................................148
7.3 动态内存分配................................................................................149
7.3.1 动态内存分配函数...................................................................................... 149
7.3.2 动态内存分配程序设计.............................................................................. 151
7.4 参数指针的使用.............................................................................158
7.5 多级指针......................................................................................158
7.6 指针与数组...................................................................................159
7.6.1 利用指针访问数组元素.............................................................................. 160
7.6.2 数组指针...................................................................................................... 161
7.6.3 指针数组...................................................................................................... 165
7.7 函数指针......................................................................................166
7.7.1 函数指针的定义.......................................................................................... 166
7.7.2 函数指针的引用.......................................................................................... 166
7.8 命令行参数的使用..........................................................................168
小结....................................................................................................170
习题....................................................................................................171
第8 章 结构................................................................................................. 174
8.1 结构的定义和变量说明....................................................................174
8.1.1 结构的定义.................................................................................................. 174
8.1.2 结构类型变量的定义.................................................................................. 175
8.2 结构变量的初始化和引用.................................................................177
8.2.1 结构变量的初始化...................................................................................... 177
8.2.2 结构变量的引用.......................................................................................... 178
8.3 结构数组......................................................................................179
8.4 结构指针......................................................................................181
8.5 结构变量作为函数的参数.................................................................182
8.6 链表的概念及简单应用....................................................................186
8.6.1 链表的概念.................................................................................................. 186
8.6.2 链表中结点的数据定义方式...................................................................... 187
8.6.3 链表的简单应用.......................................................................................... 187
8.6.4 链表内结点的删除...................................................................................... 189
8.6.5 链表内结点的插入...................................................................................... 193
8.7 联合的概念及简单应用....................................................................195
8.8 枚举类型......................................................................................197
8.9 用typedef 定义类型.......................................................................198
8.10 位域的概念及简单应用..................................................................200
小结....................................................................................................203
习题....................................................................................................203
第9 章 文件................................................................................................. 206
9.1 文件的概念...................................................................................206
9.1.1 C语言文件概述........................................................................................... 206
9.1.2 标准级(流式)输入输出.......................................................................... 206
9.1.3 文件指针...................................................................................................... 206
9.2 文件的打开与关闭..........................................................................207
9.2.1 文件的打开.................................................................................................. 207
9.2.2 文件的关闭.................................................................................................. 207
9.3 常用文件读写函数..........................................................................209
9.3.1 字节级.......................................................................................................... 209
9.3.2 字符串级...................................................................................................... 211
9.3.3 格式化读写函数.......................................................................................... 212
9.3.4 块读写函数.................................................................................................. 215
9.4 文件操作错误检测..........................................................................218
9.5 文件定位与随机读写.......................................................................219
小结....................................................................................................221
习题....................................................................................................221
第10 章 预处理命令..................................................................................... 223
10.1 宏定义........................................................................................223
10.1.1 无参数的宏定义........................................................................................ 223
10.1.2 带参数的宏定义........................................................................................ 226
10.2 文件包含 #include .......................................................................228
10.3 条件编译.....................................................................................230
10.3.1 第1种条件编译........................................................................................ 230
10.3.2 第2种条件编译........................................................................................ 231
10.3.3 第3种条件编译........................................................................................ 231
小结....................................................................................................232
习题....................................................................................................232
第11 章 Windows 窗口程序设计................................................................... 233
11.1 Windows 窗口程序设计的概念........................................................233
11.1.1 Windows用户界面介绍............................................................................ 233
11.1.2 初识Windows窗口程序........................................................................... 234
11.1.3 Windows窗口程序最基本的结构............................................................ 235
11.1.4 Windows 程序中的消息机制................................................................... 238
11.1.5 Windows 程序基本结构的详细说明....................................................... 239
11.2 Windows 窗口程序中的输出...........................................................241
11.3 Windows 窗口程序中的常用数据类型..............................................244
11.4 Windows 窗口程序中的资源文件.....................................................245
11.4.1 菜单资源的使用........................................................................................ 246
11.4.2 对话框资源的使用.................................................................................... 250
11.5 Windows 窗口程序中的输入..........................................................256
11.6 Windows 图形程序设计.................................................................263
小结....................................................................................................266
习题....................................................................................................267
附录A Visual C++6.0 的使用........................................................................ 268
A.1 Visual C++6.0 概述.......................................................................268
A.2 Visual C++ 6.0 的工作环境.............................................................269
A.2.1 Visual C++ 6.0开发环境总览.................................................................... 269
A.2.2 File菜单...................................................................................................... 271
A.2.3 Edit 菜单..................................................................................................... 272
A.2.4 View菜单.................................................................................................... 273
A.2.5 Insert菜单................................................................................................... 273
A.2.6 Project菜单................................................................................................. 274
A.2.7 Build菜单.................................................................................................... 274
A.2.8 Tools菜单.................................................................................................... 275
A.2.9 Windows菜单............................................................................................. 276
A.2.10 Help菜单................................................................................................... 276
A.3 Visual C++ 6.0 编译器简介.............................................................276
A.3.1 编译参数的设置......................................................................................... 277
A.3.2 连接参数的设置......................................................................................... 280
A.3.3 其他编译参数的设置................................................................................. 281
A.3.4 注意事项...................................................................................................... 281
A.4 调试器的使用...............................................................................281
A.4.1 常用调试工具............................................................................................. 281
A.4.2 设置断点...................................................................................................... 283
A.4.3 单步执行...................................................................................................... 283
A.5 集成开发环境中程序调试实例..........................................................284
A.5.1 使用调试(Debug)模式和发布(Release)模式.................................. 284
A.5.2 多文件程序的编译..................................................................................... 285
A.5.3 程序调试实例............................................................................................. 287
A.6 Edit and Continue 简介.................................................................293
A.6.1 Edit and Continue的使用........................................................................... 293
A.6.2 Set Next Statement 命令的使用................................................................ 295
A.6.3 在调试中增加函数或变量......................................................................... 296
附录B 常用C 库函数................................................................................... 297
B.1 数学函数......................................................................................297
B.2 字符函数和字符串函数...................................................................298
B.3 输入输出函数................................................................................299
B.4 动态存储分配函数.........................................................................301
附录C 常用字符与ASCII 代码对照表............................................................ 302
参考文献..........................................................................................................................303 -
作者介绍
主要著译者顺序姓名学历职称学科专长通讯地址1 孙辉博士 教授 计算机基础教育 工作单位 南昌工程学院邮政编码 电话18970863593 2 工作单位 邮政编码 电话 3 工作单位 邮政编码 电话 审校者(主审者) 学历 工作单位 邮政编码 电话 职称 工作单位 邮政编码 电话 孙辉,男,工学博士,教授,硕士研究生导师。江西省政协委员,南昌工程学院信息工程学院院长。全国水利水电类专业教学指导委员会委员;中国人工智能学会粗糙集与软计算专业委员会委员;江西省高职高专IT专业教学专家组组长;江西省中青年学科带头人;南昌市“五一”劳动奖章获得者;水利部及江西省优秀教师;首届江西省普通高校教学名师奖获得者。 -
编辑推荐
-
书评书荐
-
附件下载
图书推荐