C语言程序设计基础与实验指导(第二版)
书 号:9787113263041
丛 书 名:普通高等院校计算机基础教育“十三五”规划教材
作 者:顾玲芳
译 者:
开 本:16开
装 帧:平装
正文语种:
出 版 社:中国铁道出版社有限公司
定 价:46元
-
内容简介
全书以程序设计为主线,以二级C语言考查点为线索,以编程应用为驱动,详细讲述了顺序结构、选择结构、循环结构的三种程序设计方法,以及数组、函数、指针、结构体、文件等概念和应用。并注重程序设计能力的培养,安排了读者熟悉的学生成绩管理系统实验案例,贯穿全书重难知识点,使读者在学习理论知识的同时,明确应该掌握的动手实践要求,使读者真正掌握程序设计的基本方法,并做到触类旁通、一通百通。 -
前言
“C 语言程序设计”是一门实践性很强的课程,旨在培养学生编写程序解决实际问题的能
力。当前,整个社会已经逐渐迈入人工智能时代(AI 时代),这是一个以计算机科学为基础的
时代。学习程序设计课程能够很好地培养学生的逻辑思维和创新能力,而C 语言是除了汇编语
言之外最接近硬件的程序设计语言,可以提供对操作系统和内存的精准控制,运行效率高,在
嵌入式系统等领域依然具有不可替代的地位。
C 语言作为一门经典的计算机编程语言,是目前国内高校大部分理工科专业本科阶段的第
一门重要的编程基础课程,它不仅能够满足现代编程的基本要求,而且是许多其他编程语言
(Java、C++等)的基础。要使用一门计算机语言,重要的是会用计算机思维来解决问题,提高
逻辑思维能力,熟练掌握使用编程语言解决实际问题的方法。
本书第一版于2015 年2 月出版,经过几年的教学实践,考虑到教学的需求、读者的需求,
我们在保留原书特色的基础上进行了修订。在修订过程中,编者始终以理论联系实际为出发点,
采用案例驱动的方式组织内容,通过贯穿全书的一个经典案例——消费者积分管理系统,将C
语言的理论知识与编程思维融为一体;通过另一个经典案例——学生成绩管理系统,贯穿实践
环节,突出计算思维、编程思维的培养,突出解决问题能力的培养。修订后的教材,内容比之
前更具实用性、实践性,更通俗易懂,这样更有利于教师的教学和读者的自学,更利于读者对
于C 语言理论知识的掌握与巩固。
全书分三篇。第1 篇为基础知识,重点讲解C 语言中重要的、具有一般性的语法知识,并
通过经典实例将语法知识化整为零。第2 篇为实验指导,将学生成绩管理系统按理论知识顺序
拆解成9 个实验,实验题题题相扣,直到完成最后一个实验题,即完成整个实验案例。第3 篇
为习题及参考答案,包括综合练习题和模拟练习题及其参考答案,收集了大量涵盖C 语言主要
知识点的练习题,也是与全国计算机等级考试二级C 语言接近的考题,力求重点突出、难点突
破,为学生学习提供指导,帮助读者验证自己对C 语言的掌握程度,发现自身的长处和不足。
本书由顾玲芳任主编,并编写了第1 篇中的第1~3、7、8 章和第2 篇及附录;由杨娜任
副主编,并编写了第1 篇中的第4~6、9、10 章和第3 篇。本书涉及的内容有一定的深度和广
度,既能满足高校计算机和非计算机专业编程初学者的需要,也能满足能力较强读者深入探讨
的愿望,亦可作为全国计算机等级考试(二级C 语言)的参考用书。
本书编者都是活跃在应用型本科院校计算机教学一线的教师,他们不仅了解学生的特点和
需求,而且能有针对性地进行教学内容、教学方法和教学手段方面的改革。
虽然本书凝聚了编者的思考和经验,但由于水平有限,书中难免存在不足及疏漏之处,敬
请专家、读者和同行不吝指正。
编 者
2019 年7 月 -
目录
第1篇 基 础 知 识
第1 章 C 语言概述与程序设计基础............................................ 1
1.1 C 语言发展简史............................................................................................................. 1
1.2 C 语言的特点................................................................................................................. 1
1.3 简单C 语言程序举例.................................................................................................... 2
1.4 程序设计基础................................................................................................................ 3
1.4.1 算法概述............................................................................................................ 4
1.4.2 算法的常用表示方法........................................................................................ 4
1.5 Visual C++ 6.0 集成开发环境....................................................................................... 6
1.6 需求——消费者积分管理系统.................................................................................... 7
小结......................................................................................................................................... 7
习题......................................................................................................................................... 7
第2 章 数据类型、运算符与表达式............................................ 8
2.1 C 语言的基本符号......................................................................................................... 8
2.1.1 标识符................................................................................................................ 8
2.1.2 数据类型............................................................................................................ 9
2.1.3 常量.................................................................................................................. 10
2.1.4 变量.................................................................................................................. 12
2.2 运算符和表达式.......................................................................................................... 13
2.2.1 赋值运算符和赋值表达式.............................................................................. 14
2.2.2 算术运算符和算术表达式.............................................................................. 16
2.2.3 关系运算符和关系表达式.............................................................................. 17
2.2.4 逻辑运算符和逻辑表达式.............................................................................. 18
2.2.5 逗号运算符和逗号表达式.............................................................................. 20
2.2.6 条件运算符和条件表达式.............................................................................. 21
2.2.7 自增运算和自减运算...................................................................................... 21
2.3 数据类型转换.............................................................................................................. 22
2.3.1 不同数据类型的数据间的混合运算.............................................................. 23
2.3.2 强制类型转换.................................................................................................. 24
2.4 案例——消费者属性数据的描述.............................................................................. 25
小结....................................................................................................................................... 25
习题....................................................................................................................................... 26
目录 CONTENTS
II C语言程序设计基础与实验指导(第二版)
第3 章 顺序结构程序设计................................................... 27
3.1 语句.............................................................................................................................. 27
3.2 数据的输入和输出...................................................................................................... 29
3.2.1 简单格式的输入与输出.................................................................................. 29
3.2.2 复杂格式的输入与输出.................................................................................. 33
3.2.3 字符数据的输入与输出.................................................................................. 36
3.3 顺序结构应用举例...................................................................................................... 38
3.4 案例——菜单的设计与实现...................................................................................... 39
小结....................................................................................................................................... 41
习题....................................................................................................................................... 41
第4 章 选择结构程序设计................................................... 42
4.1 if 语句........................................................................................................................... 42
4.1.1 if 语句的三种形式........................................................................................... 42
4.1.2 if 语句的嵌套................................................................................................... 46
4.2 switch 语句................................................................................................................... 49
4.3 选择结构应用举例...................................................................................................... 50
4.4 案例——菜单的选择.................................................................................................. 53
小结....................................................................................................................................... 55
习题....................................................................................................................................... 55
第5 章 循环结构程序设计................................................... 57
5.1 while 循环语句............................................................................................................. 57
5.2 do…while 循环语句..................................................................................................... 58
5.3 for 循环语句................................................................................................................. 59
5.4 循环嵌套...................................................................................................................... 62
5.5 break 语句与continue 语句......................................................................................... 64
5.5.1 break 语句的使用............................................................................................. 64
5.5.2 continue 语句的使用........................................................................................ 65
5.6 循环结构应用举例...................................................................................................... 65
5.7 案例——用户菜单的循环选择.................................................................................. 68
小结....................................................................................................................................... 70
习题....................................................................................................................................... 71
第6 章 数组及其使用....................................................... 72
6.1 一维数组...................................................................................................................... 72
6.1.1 一维数组的定义和引用.................................................................................. 72
6.1.2 一维数组的初始化.......................................................................................... 73
6.1.3 一维数组程序举例.......................................................................................... 74
6.2 二维数组...................................................................................................................... 76
6.2.1 二维数组的定义和引用.................................................................................. 76
目 录 III
6.2.2 二维数组的初始化.......................................................................................... 76
6.2.3 二维数组程序举例.......................................................................................... 77
6.3 字符数组...................................................................................................................... 79
6.3.1 字符数组的定义.............................................................................................. 79
6.3.2 字符数组的初始化.......................................................................................... 79
6.3.3 字符数组的引用.............................................................................................. 79
6.3.4 字符数组与字符串.......................................................................................... 80
6.3.5 字符数组的输入和输出.................................................................................. 80
6.3.6 字符串处理函数.............................................................................................. 81
6.3.7 字符数组应用举例.......................................................................................... 84
6.4 案例——以数组为数据结构的实现.......................................................................... 85
6.4.1 消费者清单数据描述...................................................................................... 85
6.4.2 “创建消费者清单”模块.............................................................................. 87
6.4.2 “浏览消费者”模块...................................................................................... 88
6.4.3 “统计积分”模块.......................................................................................... 88
小结....................................................................................................................................... 89
习题....................................................................................................................................... 89
第7 章 函数及其应用....................................................... 91
7.1 函数的基本概念.......................................................................................................... 91
7.1.1 函数的概念...................................................................................................... 91
7.1.2 函数的定义...................................................................................................... 93
7.1.3 函数的调用...................................................................................................... 95
7.1.4 函数的参数...................................................................................................... 97
7.1.5 函数的返回值.................................................................................................. 98
7.1.6 函数的原型声明.............................................................................................. 99
7.2 数组作为函数参数.................................................................................................... 101
7.2.1 数组元素作为函数参数................................................................................ 101
7.2.2 一维数组作为函数参数................................................................................ 102
7.2.3 二维数组作为函数参数................................................................................ 107
7.3 函数的嵌套调用和递归调用.................................................................................... 108
7.3.1 函数的嵌套调用............................................................................................ 108
7.3.2 函数的递归调用............................................................................................ 109
7.4 变量的作用域和存储方法........................................................................................ 113
7.4.1 局部变量和全局变量.................................................................................... 113
7.4.2 变量的存储方法............................................................................................ 116
7.5 预处理命令................................................................................................................ 120
7.5.1 宏定义............................................................................................................ 120
7.5.2 文件包含........................................................................................................ 123
IV C语言程序设计基础与实验指导(第二版)
7.5.3 条件编译........................................................................................................ 124
7.6 函数应用举例............................................................................................................ 125
7.7 再论C 程序组织结构................................................................................................ 129
7.7.1 分层和模块化程序设计................................................................................ 129
7.7.2 C 程序组织结构............................................................................................. 130
7.8 案例——以函数为模块化设计手段改写................................................................ 131
7.8.1 任务描述........................................................................................................ 131
7.8.2 接口设计........................................................................................................ 132
7.8.3 主模块的实现................................................................................................ 133
7.8.4 子模块的实现................................................................................................ 135
小结..................................................................................................................................... 138
习题..................................................................................................................................... 139
第8 章 指针及其应用...................................................... 141
8.1 地址和指针的概念.................................................................................................... 141
8.1.1 地址的概念.................................................................................................... 141
8.1.2 指针的概念.................................................................................................... 143
8.2 指针变量.................................................................................................................... 143
8.2.1 指针变量的定义............................................................................................ 143
8.2.2 指针变量的操作............................................................................................ 144
8.2.3 指针变量作为函数参数................................................................................ 147
8.3 指针指向数组............................................................................................................ 150
8.3.1 指向数组元素的指针.................................................................................... 150
8.3.2 指针的运算.................................................................................................... 151
8.3.3 通过指针引用数组元素................................................................................ 152
8.3.4 指向二维数组元素的指针............................................................................ 155
8.4 指针指向字符串........................................................................................................ 155
8.4.1 字符指针与字符串指针................................................................................ 156
8.4.2 字符串的表示形式........................................................................................ 156
8.4.3 字符指针作为函数参数................................................................................ 157
8.4.4 对使用字符指针变量和字符数组的讨论.................................................... 158
8.5 指针数组和二级指针................................................................................................ 160
8.5.1 指针数组........................................................................................................ 160
8.5.2 二级指针........................................................................................................ 162
8.6 动态内存分配与指向它的指针变量........................................................................ 163
8.6.1 内存的动态分配............................................................................................ 164
8.6.2 实现内存的动态分配与释放........................................................................ 164
8.7 指针应用举例............................................................................................................ 166
目 录 V
8.8 案例——以指针为编程手段改写............................................................................ 168
小结..................................................................................................................................... 169
习题..................................................................................................................................... 170
第9 章 结构体与枚举...................................................... 172
9.1 结构体类型与结构体变量........................................................................................ 172
9.1.1 结构体类型的声明........................................................................................ 172
9.1.2 结构体变量的定义........................................................................................ 173
9.1.3 结构体变量的引用........................................................................................ 174
9.2 结构体数组................................................................................................................ 175
9.2.1 结构体数组的定义........................................................................................ 175
9.2.2 结构体数组的初始化.................................................................................... 176
9.2.3 结构体数组的引用........................................................................................ 176
9.2.4 结构体数组应用举例.................................................................................... 176
9.3 结构体指针................................................................................................................ 177
9.3.1 指向结构体变量的指针................................................................................ 177
9.3.2 指向结构体数组的指针................................................................................ 178
9.4 结构体类型数据在函数间的传递............................................................................ 178
9.4.1 结构体变量作为函数参数............................................................................ 178
9.4.2 结构体指针变量作为函数参数.................................................................... 179
9.5 枚举类型的使用........................................................................................................ 180
9.5.1 枚举类型和枚举变量.................................................................................... 181
9.5.2 枚举类型变量的赋值和使用........................................................................ 181
9.6 类型定义符typedef.................................................................................................... 182
9.7 案例——以线性表为数据结构改写........................................................................ 183
9.7.1 数据描述........................................................................................................ 183
9.7.2 “创建消费者清单”模块.............................................................................. 183
小结..................................................................................................................................... 188
习题..................................................................................................................................... 189
第10 章 文件............................................................. 190
10.1 文件概述.................................................................................................................. 190
10.1.1 文件的概念.................................................................................................. 190
10.1.2 文件的分类.................................................................................................. 190
10.1.3 文件缓冲区.................................................................................................. 191
10.1.4 文件类型指针.............................................................................................. 191
10.2 文件的打开与关闭.................................................................................................. 191
10.2.1 打开文件...................................................................................................... 192
10.2.2 关闭文件...................................................................................................... 193
VI C语言程序设计基础与实验指导(第二版)
10.3 文件的顺序读写...................................................................................................... 193
10.3.1 格式化读写函数fscanf()和fprintf() ............................................................. 193
10.3.2 字符方式读写函数fgetc()和fputc() ............................................................ 194
10.3.3 数据块读写函数fread()和fwrite() ............................................................... 196
10.3.4 字符串读写函数fgets()和fputs() ................................................................. 198
10.4 文件的定位与随机读写.......................................................................................... 200
10.4.1 文件指针重定位函数rewind()..................................................................... 201
10.4.2 随机读写函数fseek() ................................................................................... 201
10.4.3 其他相关函数.............................................................................................. 202
10.5 案例——利用文件实现数据的输入与输出.......................................................... 202
10.5.1 数据的输入.................................................................................................. 202
10.5.2 数据的输出.................................................................................................. 203
小结..................................................................................................................................... 203
习题..................................................................................................................................... 204
第2篇 实 验 指 导
第11 章 实验一般步骤及实验环境........................................... 205
11.1 实验的一般步骤...................................................................................................... 205
11.2 实验环境VC++ 6.0 使用指南................................................................................. 206
第12 章 学生成绩管理系统实验案例......................................... 212
12.1 实验案例分析.......................................................................................................... 212
12.2 实验内容及要求...................................................................................................... 218
第3 篇 习题及参考答案
综合练习题及参考答案...................................................... 226
模拟试题及参考答案........................................................ 248
附 录
附录A 常用字符及其ASCII 码对照表........................................ 255
附录B 关键字............................................................ 256
附录C 运算符的优先级和结合性............................................ 257
附录D 常用库函数........................................................ 258
附录E 常用格式说明符.................................................... 262
附录F VC++ 6.0 编译错误信息.............................................. 264
附录G 实验案例源程序.................................................... 267
参考文献.................................................................. 273 -
作者介绍
顾玲芳:北京科技大学天津学院 计算机相关专业一线教师 主要承担C语言、C等相关专业课程;曾参与中国冶金教育学会2009年度教育科学研究规划重点课题《网络环境下应用型本科院校知识教学模式和学生在线学习模式研究》;先后发表论文《应用型本科VFP教学中的教学方法研究》、《VFP6.0索引教学经验谈》、《高校非计算机专业计算机基础教学改革之浅见》。 -
编辑推荐
-
书评书荐
-
附件下载
图书推荐