华信教育资源网
C语言大学实用教程(第5版)
丛   书   名: “十二五”普通高等教育本科国家级规划教材  国家精品在线开放课程教学成果  国家级一流本科课程教学成果
作   译   者:苏小红 出 版 日 期:2022-09-01
出   版   社:电子工业出版社 维   护   人:章海涛 
书   代   号:G0443340 I S B N:9787121443343

图书简介:

本书是“十二五”普通高等教育本科国家级规划教材和国家精品课程教材。全书共10章,内容包括:程序设计ABC,数据类型、运算符和表达式,键盘输入和屏幕输出,程序的控制结构,函数,数组,指针,结构体和共用体,文件操作,游戏程序设计等。本书注重教材的可读性和可用性,每章开头有内容关键词、重点和难点;每章结尾安排本章小结,给出了该章常见编程错误提示;典型例题一题多解,由浅入深,强化知识点、算法、编程方法与技巧;将程序测试、程序调试与排错、软件的健壮性和代码风格、结构化与模块化程序设计方法等软件工程知识以及弘扬传统文化和社会主义核心价值观的元素融入其中,新增对华为鲲鹏技术的相关内容的介绍,包括“C语言程序设计精髓”智能基座精品慕课中与华为鲲鹏技术相关的微视频;配套教材《C语言大学实用教程学习指导(第5版)》包括习题解答、上机实验指导、案例分析三部分,案例分析中给出了错误案例与趣味经典实例分析;为任课教师免费提供电子课件及全部例题和习题源代码。本书为新形态教材,配备丰富的教学资源,读者可以扫描相应的二维码来获取相关教学资源。本书是一本充满趣味性和实用性的大学C语言教材,适合作为大学各专业公共课教材、ACM程序设计大赛培训教材和全国计算机等级考试参考书。
定价 68.0
您的专属联系人更多
关注 评论(5) 分享
配套资源 图书内容 样章/电子教材 图书评价
  • 配 套 资 源

    本书资源

    会员上传本书资源

  • 图 书 内 容

    内容简介

    本书是“十二五”普通高等教育本科国家级规划教材和国家精品课程教材。全书共10章,内容包括:程序设计ABC,数据类型、运算符和表达式,键盘输入和屏幕输出,程序的控制结构,函数,数组,指针,结构体和共用体,文件操作,游戏程序设计等。本书注重教材的可读性和可用性,每章开头有内容关键词、重点和难点;每章结尾安排本章小结,给出了该章常见编程错误提示;典型例题一题多解,由浅入深,强化知识点、算法、编程方法与技巧;将程序测试、程序调试与排错、软件的健壮性和代码风格、结构化与模块化程序设计方法等软件工程知识以及弘扬传统文化和社会主义核心价值观的元素融入其中,新增对华为鲲鹏技术的相关内容的介绍,包括“C语言程序设计精髓”智能基座精品慕课中与华为鲲鹏技术相关的微视频;配套教材《C语言大学实用教程学习指导(第5版)》包括习题解答、上机实验指导、案例分析三部分,案例分析中给出了错误案例与趣味经典实例分析;为任课教师免费提供电子课件及全部例题和习题源代码。本书为新形态教材,配备丰富的教学资源,读者可以扫描相应的二维码来获取相关教学资源。本书是一本充满趣味性和实用性的大学C语言教材,适合作为大学各专业公共课教材、ACM程序设计大赛培训教材和全国计算机等级考试参考书。

    图书详情

    ISBN:9787121443343
    开 本:16(185*260)
    页 数:332
    字 数:525

    本书目录

    目  录
    第1章  程序设计ABC	1
    1.1  计算机与人	1
    1.2  计算机与程序设计语言	3
    1.3  程序设计语言的故事	5
    1.4  C语言的故事	7
    1.5  程序设计语言的工作原理	10
    本章小结	12
    习题1	12
    第2章  数据类型、运算符和表达式	13
    2.1  一个简单的C程序例子	13
    2.2  C语言程序常见符号分类	15
    2.3  数据类型	16
    2.3.1  为什么引入数据类型	16
    2.3.2  从基本数据类型到抽象数据类型	17
    2.3.3  类型修饰符	18
    2.3.4  标识符命名	19
    2.4  常量	20
    2.4.1  整型常量	20
    2.4.2  实型常量	20
    2.4.3  字符常量	21
    2.4.4  字符串常量	22
    2.4.5  宏常量	22
    2.4.6  枚举常量	23
    2.5  变量	24
    2.5.1  变量的定义与初始化	24
    2.5.2  const类型修饰符	25
    2.5.3  使用变量时的注意事项	25
    2.6  常用运算符及表达式	32
    2.6.1  运算符的优先级和结合性	32
    2.6.2  算术运算符	32
    2.6.3  关系运算符	34
    2.6.4  逻辑运算符	35
    2.6.5  赋值运算符	36
    2.6.6  增1和减1运算符	37
    2.6.7  类型强制转换运算符	39
    2.6.8  位运算符	40
    2.6.9  逗号运算符	41
    2.7  赋值运算和表达式中的类型转换	42
    本章小结	43
    习题2	44
    第3章  键盘输入和屏幕输出	46
    3.1  C语句分类	46
    3.2  表达式语句	46
    3.3  复合语句和空语句	47
    3.4  基本的输入、输出操作	48
    3.4.1  字符输入和输出	48
    3.4.2  格式输入/输出	49
    *3.4.3  使用scanf()函数时需要注意的问题	55
    本章小结	62
    习题3	63
    第4章  程序的控制结构	65
    4.1  算法及其描述方法	65
    4.1.1  算法的概念	65
    4.1.2  算法的描述方法	66
    4.2  顺序结构	68
    4.2.1  顺序结构的流程图表示	68
    4.2.2  应用程序举例	69
    4.3  选择结构	72
    4.3.1  应用场合	72
    4.3.2  选择结构的流程图表示	73
    4.3.3  条件语句	73
    4.3.4  开关语句	81
    4.4  循环结构	85
    4.4.1  应用场合	85
    4.4.2  循环结构的流程图表示	86
    4.4.3  循环语句	86
    4.4.4  单重循环程序实例	88
    4.4.5  嵌套循环及其程序实例	99
    4.5  流程转移控制语句	103
    4.5.1  goto语句	103
    4.5.2  break和continue语句	104
    4.5.3  程序实例	106
    *4.6  程序调试与排错	110
    4.6.1  程序中常见的出错原因	110
    4.6.2  程序调试与排错的基本方法	111
    4.6.3  使用getchar()需要注意的问题	113
    *4.7  结构化程序设计方法简介	119
    4.7.1  关于goto论战	119
    4.7.2  结构化程序设计的核心思想	119
    4.7.3 “自顶向下、逐步求精”的程序设计方法	120
    本章小结	124
    习题4	125
    第5章  函数	130
    5.1  程序设计的艺术	130
    5.2  函数的定义和使用	131
    5.2.1  函数的分类	131
    5.2.2  函数的定义	132
    5.2.3  函数的调用、参数传递和返回值	133
    5.2.4  函数原型	134
    5.2.5  主函数的特殊性	135
    5.3  变量的作用域和存储类型	136
    5.3.1  变量的作用域	136
    5.3.2  全局变量	137
    5.3.3  变量的存储类型	138
    5.4  函数封装	140
    5.5  预处理指令	140
    5.5.1  #include指令	140
    5.5.2  #define和#undef指令	141
    5.5.3  条件编译	143
    5.6  使用assert()查错	143
    5.7  模块和链接	145
    *5.8  模块化程序设计方法简介	147
    5.8.1  模块划分的原则	147
    5.8.2  应用实例——“猜数”游戏	148
    *5.9  递归	150
    5.9.1  递归问题的提出	150
    5.9.2  递归函数	151
    本章小结	154
    习题5	155
    第6章  数组	157
    6.1  数组类型的应用场合	157
    6.2  数组的定义、引用和初始化	157
    6.2.1  数组的定义	157
    6.2.2  数组的引用	159
    6.2.3  数组的初始化	160
    6.2.4  程序实例	161
    6.3  向函数传递一维数组	166
    6.4  向函数传递二维数组	176
    6.5  字符数组	180
    6.5.1  字符数组与字符串的关系	180
    6.5.2  字符数组的输入/输出	182
    6.5.3  字符串处理函数	183
    6.5.4  应用实例	184
    本章小结	187
    习题6	188
    第7章  指针	191
    7.1  指针概述	191
    7.1.1  指针的概念	191
    7.1.2  为什么引入指针的概念	193
    7.1.3  指针变量作为函数参数	195
    7.1.4  字符指针作为函数参数	203
    7.2  指针和数组间的关系	210
    7.2.1  一维数组的地址和指针	210
    7.2.2  二维数组的地址和指针	217
    7.3  指针数组	222
    *7.4  函数指针	226
    *7.5  带参数的main()函数	231
    *7.6  动态数组的实现	233
    7.6.1  C语言程序的内存映像	233
    7.6.2  动态内存分配函数	234
    7.6.3  一维动态数组的实现	236
    7.6.4  二维动态数组的实现	237
    *7.7  使用const修饰指针变量	238
    *7.8  代码风格	239
    7.8.1  程序版式	240
    7.8.2  命名规则	242
    7.8.3  函数设计	243
    7.8.4  防御性程序设计	243
    本章小结	244
    习题7	246
    第8章  结构体和共用体	248
    8.1  结构体的应用场合	248
    8.2  结构体类型与结构体变量	250
    8.2.1  结构体类型的声明	250
    8.2.2  用typedef定义结构体类型	250
    8.2.3  结构体变量的定义	251
    8.2.4  指向结构体变量的指针	253
    8.2.5  结构体变量的引用和初始化	254
    8.3  结构体数组	256
    8.3.1  结构体数组的定义	256
    8.3.2  结构体数组程序实例	257
    8.3.3  指向结构体数组的指针	260
    8.4  向函数传递结构体	261
    *8.5  动态数据结构	263
    8.5.1  问题的提出	263
    8.5.2  链表的定义	264
    8.5.3  链表的特点及操作原理	265
    8.5.4  链表的建立	265
    8.5.5  链表的删除操作	267
    8.5.6  链表的插入操作	269
    8.6  共用体	271
    本章小结	273
    习题8	273
    第9章  文件操作	275
    9.1  计算机中的流	275
    9.2  文件	276
    9.2.1  存储设备的使用	276
    9.2.2  目录	277
    9.2.3  文件格式	277
    9.3  基本文件操作	278
    9.3.1  基本文件操作函数	278
    9.3.2  错误处理	281
    9.3.3  程序示例	282
    9.3.4  基本文件操作的意义	285
    9.4  高级文件操作	285
    9.4.1  文件的打开和关闭	285
    9.4.2  文件的读和写	286
    9.4.3  程序实例	287
    9.4.4  标准输入和标准输出	289
    本章小结	290
    习题9	291
    第10章  游戏程序设计	293
    10.1  动画设计的基本原理	293
    10.2  人机交互走迷宫	294
    10.3  自动走迷宫	297
    本章小结	301
    习题10	301
    附录A  C关键字	303
    附录B  GCC中各数据类型所占字节数和取值范围	304
    附录C  C运算符的优先级与结合性	305
    附录D  ASCII字符编码	306
    附录E  ASCII表和ASCII扩展码字符表	307
    附录F  常用的ANSI C标准库函数	308
    附录G  Intel x86系列处理器与华为鲲鹏处理器的异同	313
    参考文献	316
    
    展开

    前     言

    前  言
    随便进入一家书店,来到计算机图书专柜,都可以看到琳琅满目的C语言书籍。在这种状况下写书,特色和实用性非常重要。
    本书的目标是力争成为最易懂、最专业、最时尚、最实用的C语言教材和参考手册。
    本书首先是一本教材,适合程序设计的初学者和想更深入了解C语言的人。每行文字的落笔,都以把问题讲清楚、讲明白、讲透彻,又不累赘为目标。同时抛弃了一些陈旧的内容,把程序设计领域最新、最有价值的思想和方法渗透到古老的C语言中,赋予C语言焕然一新的面貌。
    读者会这样的体会:只追求浅显的教材在读过一遍之后便可送人,没有长久保留的必要,也不会有常读常新的感觉。本书不同,我们做了大量的搜集和整理工作,把各种知识点、实际经验和常用算法等分散渗透到相应章节中,或者独立组织成文。这样做的目的是便于读者随时查阅,使本书成为一本有保留价值的参考手册。毕竟很多深刻的内容不是简简单单读一遍就能掌握的,需要逐渐积累。愿读者每次重读本书字句,都能获得新的提高。
    C语言在本书中仅是起点,而非终点。本着面向未来的精神,我们把程序设计中最基本的、放之四海而皆准的思想和方法挖掘出来,以C语言为工具描述它们,却不拘泥于C语言,以此培养读者无论在学习、工作中使用什么语言编程,都具有灵活应用这些思想和方法的能力。
    趣味也是本书的一大特色。学习本身是一件充满乐趣的事情,它之所以使很多人感到枯燥,是因为没有人帮助他们发掘趣味。本书的作者都是有多年开发和授课经验的大学教师,并一直乐在其中。他们自然而然流露出的对C语言的赞叹、喜爱和沉迷之情,一定会感染读者。那些驾轻就熟的诙谐语言和生动有趣的示例,更能带给读者全新的学习体验。
    本书的一个主要特色是,引入了Intel x86系列处理器与华为鲲鹏处理器的差异(作为附录介绍),同时将“C语言程序设计精髓”智能基座精品慕课中关于华为编程实践与编码规范、华为鲲鹏技术的微视频以二维码形式放入教材,供读者自主学习。
    融入中华优秀传统文化等,增强人文素质,是本书的另一特色。本书从内容知识点中挖掘中华优秀传统文化元素,潜移默化地将其融入教材内容中,成为本书的画龙点睛之笔,在弘扬传统文化、增强文化自信的同时,激励读者砥砺奋斗,使教材也像课堂一样成为弘扬主旋律、传播正能量的主阵地。
    全书共10章,内容包括:程序设计ABC,数据类型、运算符和表达式,键盘输入和屏幕输出,程序的控制结构,函数,数组,指针,结构体和共用体,文件操作,游戏程序设计等。最后一章为游戏程序设计,可谓锦上添花之笔,相信一定能激发读者的学习兴趣。文前的“致本书读者”则是作者多年从事程序设计的亲身体验和感悟,正所谓“众里寻他千百度,蓦然回首,那人却在灯火阑珊处”,希望点点滴滴的感悟能引起读者的共鸣。
    本书注重教材的可读性和可用性,每章开头有内容关键词、重点和难点,指导读者阅读;每章结尾安排本章小结,帮助读者整理思路,形成清晰的逻辑体系和主线,还给出了每章中的常见编程错误;典型例题一题多解,由浅入深,强化知识点、算法、编程方法与技巧;很多例题后面给出了思考题,不仅帮助读者了解什么是对的,还可以了解什么是容易出错的。本书还将程序测试、程序调试与排错、软件的健壮性和代码风格、结构化与模块化程序设计方法等软件工程知识融入其中;习题以巩固基本知识点为目的,题型丰富,包括简答题、选择题、阅读程序写出运行结果、程序改错、程序填空和编程题等各种全国计算机等级考试二级考试的常见题型;附录中给出了实用学习资料列表。
    本课程于2007年被教育部评为“国家精品课程”,2016年被评为“国家精品资源共享课”,2017年被评为“国家精品在线开放课程”,2020年被评为“国家级一流线上课程”。
    本书被列入“十二五”普通高等教育本科国家级规划教材。
    为方便高校各专业C语言教学和学生的自学,我们还会提供全方位的辅教和辅学方面的信息服务。
    本书配套教材《C语言大学实用教程学习指导(第5版)》提供全部习题解答、上机实验指导和案例分析内容。实验指导部分给出了Code::Blocks+gcc+gdb(本书后面将其简称为Code::Blocks)集成开发环境下的标准C程序调试方法。以主要知识点为主线设计的实验题目兼具趣味性和实用性,并以循序渐进的任务驱动方式指导读者完成实验程序设计,最后还给出了一个贯穿全书内容的综合应用实例(学生成绩管理系统),可作为课程设计内容。学习指导部分不仅给出了趣味经典实例、游戏设计案例,还给出了常见错误案例分析,帮助读者了解错误发生的原因、实质、排错方法以及解决对策。
    本书配套的多媒体教学课件、全部例题和习题的源代码都可在我们的C语言程序设计教材网站(请扫描封底的二维码)或华信教育资源网(http://www.hxedu.com.cn)上免费下载,基于C/S结构的C语言编程题考试自动评分系统(已获软件著作权登记)也将免费提供给使用本书的教学单位。有需要者可直接与作者本人联系(sxh@hit.edu.cn)。该系统可以根据程序的结构和语义以及程序运行结果对C语言编程题自动评分,对于有语法错误的编程题也能评分。另外,扫描二维码可以观看视频或动画演示,以及C程序设计常见错误及解决方案。
    学时建议:前面加“*”的章节和习题为有一定深度和开放性的选学内容,如果授课学时为30学时,教师可以留给学生自学;如果授课学时为50学时,可以有选择地讲授。具体学时分配建议如下所示。
    30学时	50学时
    章	学时	章	学时
    第1章  程序设计ABC	1	第1章  程序设计ABC	2
    第2章  数据类型、运算符和表达式	3	第2章  数据类型、运算符和表达式	4
    第3章  键盘输入和屏幕输出	2	第3章  键盘输入和屏幕输出	4
    第4章  程序的控制结构	6	第4章  程序的控制结构	8
    第5章  函数	4	第5章  函数	4
    第6章  数组	4	第6章  数组	8
    第7章  指针	5	第7章  指针	8
    第8章  结构体和共用体	3	第8章  结构体和共用体	6
    第9章  文件操作	2	第9章  文件操作	4
    /	第10章 游戏程序设计	2
      ?
    全书由苏小红统稿,第2、3、4、6、7章和附录A、B、C、D、E、F由苏小红编写,第1章、第5章(除了5.9节)、第9章由孙志岗编写,第8章及5.9节由陈惠鹏编写,第10章由江俊君编写,附录G由郑贵滨编写。在本次修订中,全部章节的修订工作均由苏小红完成。
    刘宏伟教授在百忙之中审阅了全部初稿,对本书提出了许多宝贵意见。
    王甜甜、赵玲玲、张彦航、张羽、袁永峰、叶麟、傅忠传、赵巍、车万翔、郭萍、李秀坤、孙大烈、单丽莉等参与了书稿的校对、例题和习题程序的调试工作。
    国防科技大学的徐锡山教授、长春理工大学光电信息学院的苗长彦、南京邮电大学计算机学院的朱立华、太原理工大学的马建芬等老师以及电子工业出版社童占梅老师都曾为教材的编写提出了许多宝贵的意见和建议,其中太原理工大学的马建芬还参与了第3版部分章节的修订工作;很多热心的读者给我们来信提出意见和建议,在此一并向他们表示衷心的感谢。
    因作者水平有限,书中疏漏在所难免,恳请读者批评指正。我们会在每次重印时修改发现的错误,并及时将教材勘误表刊登于我们的教材网站上,欢迎读者给我们发送电子邮件或在网站上留言,提出宝贵意见。
    作者E-mail地址为sxh@hit.edu.cn。
    
    
             					                   作  者
    于哈尔滨工业大学计算学部  
    
    
    展开

    作者简介

    苏小红,博士,教授,博士生导师,省级教学名师,中国计算机学会高级会员,全国高等学校计算机基础教育研究会理事,EI期刊《系统工程与电子技术》编委,《计算机学报》等国内多种核心以上期刊的审稿人,宝钢优秀教师奖、省师德先进个人、省优秀教师获得者。
  • 样 章 试 读
  • 图 书 评 价 我要评论
华信教育资源网