C语言程序设计(第四版)
书 号:9787113213657
丛 书 名:普通高等院校计算机基础教育规划教材·精品系列
作 者:罗坚 徐文胜
译 者:
开 本:16开
装 帧:平装
正文语种:
出 版 社:中国铁道出版社有限公司
定 价:45元
-
内容简介
"本书以程序设计为主线,以编程应用为驱动,理论联系实际,通过丰富的实例分析详细地介
绍了C程序设计的思想及方法。全书叙述严谨、实例丰富、由浅及深、重点突出。
全书共8章,内容包括C程序设计入门,数据类型、运算符和表达式,算法与程序设计基础,
函数,数组类型与指针类型,结构类型与联合类型,文件,面向对象技术与C++,为读者在学完
C语言之后向C++过渡提供了帮助。为避免在学习过程中枯燥乏味,书中精选了一些实用性强、
趣味性足的实例,增强了全书的可读性和学生的参与性,便于学生在轻松愉快的气氛中学习。
本书适合作为高等院校各专业C语言程序设计课程的教材,也可作为广大编程爱好者的自学读
物,还可作为各类计算机等级考试的辅导书。" -
前言
C 语言历史悠久,是一种被广泛使用的计算机高级程序设计语言。
它以精练、灵活、可移植性好、应用领域广泛而著称,已经历经40 多个春秋,但至
今依旧活跃在计算机应用以及计算机专业教学领域,彰显出无穷的编程魅力和蓬勃的生
命力,国内外许多高校都将C 语言列为学习程序设计课程的首选语言。
C 语言程序设计课程特色鲜明,以编程语言为平台,详细介绍程序设计的思想及方
法。本书以培养学生掌握程序设计的方法与技能为重点,通过对本课程的学习,学生不
仅能掌握程序设计语言的知识,为后续专业课程的学习打下基础,更重要的是能在实践
中逐步培养求解问题和应用语言的能力。
本书作者长期从事高校C 语言课程的一线教学,教龄都在20 年以上,他们爱岗敬业,
乐意为祖国建设培养青年才俊,力争在平凡的教学岗位做出不平凡的业绩。在漫长的C 语
言课程的教学过程中,作者亲身感受到了学生在初学编程时所遇到的种种不易,既为学生
能够始终保持着强烈的学习兴趣和饱满的学习热情而感到高兴,也会因为学生遇到学习困
难而主动迎难而上,为他们答疑解惑、排忧解难。从2002 年开始撰写第一版的《C 语言
程序设计》(含配套实验教材),一直到第四版教材的修订出版,我们始终都在努力着。为
了更好地帮助学生领悟到程序设计的奥妙,适应新形势下创新人才培养模式的需要,我们
有责任把教材写得更好、更精彩,这正是编者殚精竭虑之所在。
在前后14 年的写书及教学过程中,我们编写的《C 程序设计教程》(含实验教程)
获得了江西省普通高等学校优秀教材一等奖,修订的《C 语言程序设计(第三版)》(含
实验教材)成功入选普通高等教育“十一五”国家级规划教材。
以本套书作为主讲教材、由王昌晶博士和罗坚共同主持,本书其他作者作为主要成
员参与的“C 语言程序设计”课程研究,被评为“2015 年度江西省高等学校(本科)省
级精品资源共享课” 和江西师范大学的优质精品共享课,相关的课程网站
(http://ntp.jxnu.edu.cn/G2S/site/preview#/home/v?currentoc=926)正在积极地完善中,内含
教学通知、师资队伍、课程介绍、教学资源、教学视频、科研课题、教学成果和文献资
源等版块。写书的成功和教学研究上的长进,永远是鞭策我们前进的动力。
全书以程序设计为主线,以编程应用为驱动,以丰富的实例详细介绍了C 语言程序设
计的思想及方法。全书共8章,第1 章介绍了C 程序的基本构成与Visual C++ 6.0 的使用;
第2 章介绍了基本数据类型、运算符和表达式、基本输入与输出操作;第3 章介绍了算法
的概念、结构化程序设计中的三种控制结构(即顺序、选择和循环);第4 章介绍了自定
义函数、变量的存储类型;第5 章介绍了数组类型、指针类型的定义与使用,以及字符串
函数、动态内存分配与动态数组的应用;第6 章介绍了结构类型和联合类型的使用,涉及
常用链表的定义及操作;第7 章介绍了数据文件的类型与操作方法;第8 章介绍了面向对
象程序设计的思想和C++的基本语法知识,供有较高要求的读者学习。
本书第四版延续了前三版教材叙述严谨、循序渐进、突出实践、方便自主学习的特
点,并在以下几方面进行了修订:
(1)删除了有关TurboC 2.0 上机环境的介绍,重写并完善了Visual C++ 6.0 集成开
发环境IDE 的使用,由浅入深地介绍了上机调试程序的完整过程,并列举了在调试中可
能出现的问题及其应对方案。
(2)受主教材篇幅的限制,把介绍另一种上机环境Code::Blocks(简称CB)的内容
移至配套的实验教材上进行介绍。
(3)考虑到全国高校不同专业的教学特点及实际需要,对原书的部分章节进行了重
写或者调整,使得新版书内容更加紧凑,实例更具有针对性,结构更加合理。
(4)修正了上一版教材中的错误,保证书中的所有源程序均能在Visual C++ 6.0 环
境下运行通过。
(5)为培养学生对编程的兴趣和爱好,书中继续补充了一些实用性强、趣味性足的
实例,并给出了详细的分析过程。
(6)调整了各章课后的习题,删减了部分实用性弱的题目,补充了一些技巧性强的练习。
(7)继续为读者参加全国计算机等级考试二级(C 语言)及其他同等级别的考试提
供帮助。
本书由罗坚、徐文胜任主编,傅清平、李雪斌任副主编,其中第1 章、第3 章和附
录A 由傅清平编写,第2 章、第4 章和附录B 由李雪斌编写,第5 章和第6 章由徐文胜
编写,第7 章、第8 章和附录C 由罗坚编写。全书由罗坚审核、修改及定稿。
为配合教学,我们还编写了配套的实验指导用书《C 语言程序设计实验教程(第二
版)》(中国铁道出版社出版)。书中除了为主教材《C 语言程序设计(第四版)》提供全
部的习题解答之外,还根据教学进度设计了同步的上机实验,并提供了五套模拟测试题,
方便读者进行自测。
在本套书的编写过程中,江西师范大学计算机信息工程学院的老师们给予了很大的
支持,对本书提出了宝贵的意见,在此表示感谢!中国铁道出版社的领导及编辑为本书
的校审出版提供了无私的帮助,一并表示感谢!此外,在编写过程中还参考了大量的文
献资料,在此谨向这些文献资料的作者表示感谢。
由于时间仓促和水平所限,书中难免存在疏漏和不足之处,恳请各位专家、读者批
评指正。
编 者
2015 年12 月于江西师范大学 -
目录
第1 章 C 语言程序设计入门................................................................................ 1
1.1 引例............................................................................................................ 1
1.2 C 语言概述................................................................................................. 6
1.2.1 程序、指令与程序设计语言............................................................ 7
1.2.2 C 语言的发展历史............................................................................ 7
1.2.3 C 语言的特点................................................................................... 8
1.2.4 关键字.............................................................................................. 8
1.2.5 标识符.............................................................................................. 9
1.2.6 其他符号.......................................................................................... 9
1.3 C 程序的上机调试...................................................................................... 9
1.4 Visual C++开发工具...................................................................................10
1.4.1 Visual C++ 6.0 的安装.....................................................................11
1.4.2 C 程序上机的一般过程...................................................................12
1.5 学习建议....................................................................................................14
习题...................................................................................................................15
第2 章 数据类型、运算符与表达式.................................................................... 16
2.1 数据在计算机内存中的表示......................................................................16
2.1.1 机器数与真值..................................................................................16
2.1.2 原码、反码与补码..........................................................................17
2.1.3 定点数与浮点数..............................................................................18
2.1.4 ASCII 码.........................................................................................19
2.2 常量...........................................................................................................19
2.2.1 整型常量.........................................................................................19
2.2.2 实型常量.........................................................................................20
2.2.3 字符常量.........................................................................................21
2.2.4 字符串常量.....................................................................................22
2.2.5 符号常量.........................................................................................22
2.3 变量...........................................................................................................23
2.3.1 整型变量.........................................................................................23
2.3.2 实型变量.........................................................................................25
C 语言程序设计 第四版
2
2.3.3 字符型变量.....................................................................................26
2.4 运算符与表达式.........................................................................................27
2.4.1 算术运算符与算术表达式...............................................................28
2.4.2 赋值运算符与赋值表达式...............................................................29
2.4.3 强制类型转换运算符.......................................................................29
2.4.4 自加、自减运算符..........................................................................30
2.4.5 逗号运算符与逗号表达式...............................................................31
2.4.6 位运算.............................................................................................31
2.5 基本的输入/输出.......................................................................................33
2.5.1 字符的输入/输出.............................................................................33
2.5.2 带格式数据的输入/输出..................................................................34
习题...................................................................................................................38
第3 章 算法与程序设计基础.............................................................................. 43
3.1 算法...........................................................................................................43
3.1.1 算法的概念.....................................................................................43
3.1.2 算法的特性.....................................................................................44
3.2 算法的常用表示方法.................................................................................45
3.2.1 自然语言表示法..............................................................................45
3.2.2 传统流程图.....................................................................................45
3.2.3 N-S 结构流程图..............................................................................47
3.2.4 伪代码表示法..................................................................................48
3.2.5 用计算机语言表示算法...................................................................49
3.3 结构化程序设计方法.................................................................................50
3.4 C 语句概述................................................................................................52
3.5 选择结构程序设计.....................................................................................55
3.5.1 关系运算符与关系表达式...............................................................55
3.5.2 逻辑运算符与逻辑表达式...............................................................56
3.5.3 if 语句.............................................................................................57
3.5.4 if 语句的嵌套..................................................................................60
3.5.5 条件运算符与条件表达式...............................................................62
3.5.6 switch 语句.....................................................................................63
3.5.7 选择结构程序设计举例...................................................................66
3.6 循环结构程序设计.....................................................................................71
3.6.1 goto 语句以及用goto 语句构成的循环...........................................72
3.6.2 while 语句......................................................................................72
3.6.3 do...while 语句................................................................................74
目 录
3
3.6.4 for 语句...........................................................................................75
3.6.5 多重循环.........................................................................................78
3.6.6 break 语句.......................................................................................80
3.6.7 continue 语句...................................................................................81
3.6.8 循环结构程序设计举例...................................................................82
3.7 综合程序应用举例.....................................................................................84
习题...................................................................................................................91
第4 章 函数....................................................................................................... 97
4.1 概述...........................................................................................................97
4.2 函数的定义.............................................................................................. 100
4.3 函数的调用与返回值............................................................................... 101
4.3.1 实参与形参................................................................................... 101
4.3.2 函数的调用................................................................................... 102
4.3.3 对被调用函数的原型声明............................................................. 103
4.3.4 函数的返回语句与返回值............................................................. 105
4.4 函数的参数传递方式............................................................................... 107
4.4.1 值传递方式................................................................................... 108
4.4.2 地址传递方式................................................................................ 109
4.5 函数的嵌套与递归................................................................................... 112
4.5.1 函数的嵌套调用............................................................................ 112
4.5.2 函数的递归调用............................................................................ 113
4.6 变量的作用域.......................................................................................... 118
4.6.1 局部变量....................................................................................... 118
4.6.2 全局变量....................................................................................... 118
4.6.3 外部变量....................................................................................... 120
4.6.4 分程序........................................................................................... 121
4.7 变量的生存期.......................................................................................... 122
4.7.1 自动变量....................................................................................... 122
4.7.2 静态变量....................................................................................... 123
4.7.3 寄存器变量................................................................................... 124
4.8 编译预处理命令....................................................................................... 124
4.8.1 宏定义........................................................................................... 125
4.8.2 文件包含....................................................................................... 127
4.8.3 条件编译....................................................................................... 128
习题................................................................................................................. 129
C 语言程序设计 第四版
4
第5 章 数组类型与指针类型............................................................................ 135
5.1 数据类型的构造....................................................................................... 135
5.2 数组类型.................................................................................................. 136
5.2.1 数组概述....................................................................................... 137
5.2.2 一维数组....................................................................................... 137
5.2.3 二维数组....................................................................................... 149
5.3 指针类型.................................................................................................. 154
5.3.1 指针概述....................................................................................... 154
5.3.2 一级指针....................................................................................... 155
5.3.3 二级指针....................................................................................... 160
5.3.4 函数指针....................................................................................... 162
5.4 数组与指针.............................................................................................. 163
5.4.1 指针变量访问数组........................................................................ 163
5.4.2 字符数组与字符串........................................................................ 164
5.4.3 指针数组....................................................................................... 170
5.4.4 动态数组....................................................................................... 173
5.4.5 数组指针....................................................................................... 177
习题................................................................................................................. 178
第6 章 结构类型与联合类型............................................................................ 183
6.1 结构类型与联合类型概述........................................................................ 183
6.2 结构类型.................................................................................................. 185
6.2.1 结构类型的定义............................................................................ 185
6.2.2 结构类型的基本操作..................................................................... 187
6.2.3 结构指针....................................................................................... 192
6.2.4 结构数组....................................................................................... 194
6.3 动态链表.................................................................................................. 197
6.3.1 链表的定义................................................................................... 197
6.3.2 动态链表的基本操作..................................................................... 202
6.3.3 动态链表编程举例........................................................................ 205
6.4 联合类型.................................................................................................. 208
6.5 位域类型.................................................................................................. 210
6.6 枚举类型.................................................................................................. 212
习题................................................................................................................. 214
第7 章 文件..................................................................................................... 217
7.1 文件概述.................................................................................................. 217
目 录
5
7.1.1 文件的概念................................................................................... 217
7.1.2 文件的分类................................................................................... 217
7.1.3 文件缓冲区................................................................................... 220
7.1.4 文件类型指针................................................................................ 220
7.1.5 文件的操作流程............................................................................ 221
7.2 打开文件与关闭文件............................................................................... 221
7.2.1 打开文件的函数............................................................................ 222
7.2.2 关闭文件的函数............................................................................ 223
7.3 文件的顺序读/写..................................................................................... 225
7.3.1 文本文件的顺序读/写................................................................... 225
7.3.2 二进制文件的顺序读/写................................................................ 240
7.4 文件的定位与随机读/写.......................................................................... 244
7.4.1 rewind()函数................................................................................. 244
7.4.2 fseek()函数.................................................................................... 245
7.4.3 ftell()函数...................................................................................... 248
7.5 文件状态检查函数................................................................................... 250
7.5.1 文件读/写结束检查函数feof() ...................................................... 251
7.5.2 文件出错检查函数ferror() ............................................................ 253
7.5.3 文件出错复位函数clearerr() ......................................................... 253
习题................................................................................................................. 254
第8 章 面向对象技术与C++............................................................................ 259
8.1 C++概述.................................................................................................. 259
8.2 简单的C++程序...................................................................................... 260
8.3 C++程序的开发过程................................................................................ 262
8.4 C++的输入与输出.................................................................................... 262
8.4.1 用cout 输出.................................................................................. 263
8.4.2 用cin 输入.................................................................................... 263
8.4.3 I/O 流类库操作符简介.................................................................. 264
8.5 设置函数参数的默认值............................................................................ 266
8.6 内联函数.................................................................................................. 267
8.7 重载函数.................................................................................................. 269
8.8 变量的引用.............................................................................................. 271
8.8.1 引用的概念................................................................................... 271
8.8.2 引用作为函数参数........................................................................ 272
8.9 面向对象的基础知识............................................................................... 273
8.9.1 面向对象的概念............................................................................ 273
C 语言程序设计 第四版
6
8.9.2 面向对象程序设计的优点............................................................. 275
8.9.3 面向对象系统的特性..................................................................... 275
8.10 类和对象................................................................................................ 276
8.10.1 类的定义..................................................................................... 276
8.10.2 对象的定义................................................................................. 279
8.10.3 对象的成员表示.......................................................................... 279
8.11 构造函数................................................................................................ 280
8.12 析构函数................................................................................................ 283
8.13 继承与派生类........................................................................................ 285
8.13.1 继承与派生类的概念................................................................... 285
8.13.2 派生类的定义格式...................................................................... 286
8.13.3 公有派生类................................................................................. 288
8.13.4 私有派生类................................................................................. 288
8.13.5 保护成员..................................................................................... 288
8.13.6 派生类的构造函数...................................................................... 289
习题................................................................................................................. 291
附录................................................................................................................... 296
附录A 常用字符与ASCII 码对照表.............................................................. 296
附录B 常用库函数介绍................................................................................. 297
附录C 常见C 编译错误信息汇总................................................................. 308
参考文献............................................................................................................ 314 -
作者介绍
罗坚,1968年11月6日出生,讲师。1990年本科毕业于江西师范大学计算机科学系(软件专业),1999年参加同等学历申请硕士学位(计算机软件)课程进修班学习,毕业至今一直从事计算机教育和软件开发工作,共开设《pascal语言程序设计》、《C语言程序设计》、《面向对象程序设计与C》、《foxpro程序设计》、《数据库原理及应用》、《数据结构》、《实用软件office》、《计算机文化基础》等十余门计算机专业课和计算机公共课,讲授学生包括计算机专业,软件工程专业和其它各个非计算机专业,每个学期平均开课4门以上。作为一名有十余年教龄的专业老师,经验丰富,爱岗敬业,讲课重点突出,思路清晰,语言诙谐幽默,教学效果良好,深受广大学生好评,每个学年的教师评估成绩优良,多次获得江西师大双育人或三育人先进个人,曾获江西师青年教师课堂竞赛三等奖,2000年荣获江西师大首届“百优教师”的光荣称号。主编教材1本,参编教材2本,参与多项省级课题研究,主持多项校内教研或科研课题,作为第二项目负责人曾有横向应用课题应用获省厅级奖励。徐文胜,男,1969年出生,1991年本科毕业于江西师大计算科学系软件专业,同年留校教书,并于2002年获得计算机学院软件理论专业硕士学位,博士研究生,讲师职称。该教师的教书特点是认真负责、因材施教,能根据不同班级中学生的情况进行备课,力争让每个同学都有所收获,曾获学校“三育人”和“百优教师”称号。研究方向包括:软件形式化开发,网络数据库应用,范畴及泛型设计思想。曾主讲过硕士公共必修课“C语言及应用”,计算机专业课“数据结构”,“操作系统”,“汇编语言”,计算机基础课“计算机文化基础”,“FOXPRO程序设计”,“实用软件技术”等课程,熟悉“程序设计方法学”,“java语言程序设计”,“数据库原理及应用”,“VC可视化程序设计”等课程的内容,并参与其中部分教材的编写。在校管课题的资助下开发了“校上机管理系统”,在等考办的资助下开发了“省等级考试报名系统”,现均已投入实际使用。该教师为保证教学质量,要求学生做到:认真、遵守纪律。 -
编辑推荐
-
书评书荐
-
附件下载
图书推荐