计算机类教材 > 算法与程序设计

C语言程序设计(第二版)

书号:9787113280956 套系名称:普通高等院校计算机基础教育“十四五”规划教材

作者:丁峻岭 出版日期:2021-08-01

定价:46.00 页码 / 开本: /16

策划编辑:贾星 责任编辑:贾星 贾淑媛

适用专业:计算机教材 适用层次:本科

最新印刷时间:2022-01-17

资源下载
教学课件 教学素材(暂无)
习题答案 教学案例(暂无)
教学设计(暂无) 教学视频(暂无)
内容简介 前言 目录 作者介绍 图书特色
  • C 语言是目前流行的通用程序设计语言,是许多计算机专业人员和计算机爱好者学习程序设计的首选语言。本书分为12章,内容包括C语言概述,数据类型、运算符与表达式,数据的输入和输出,选择型程序设计,循环控制,数组,函数,编译预处理,指针,结构体、共用体与枚举类型,位运算和文件。
    本书遵循结构化程序设计原则,运用文字、插图等表述方法,深入浅出地介绍了C 语言的基础算法和程序设计方法,具有良好的可读性和适用性。例题程序的编排由浅入深,注重强化知识点、算法、编程方法和技巧,并给出了详细的解释,更多地考虑到了初学者的需求。
    本书可作为高等院校本、专科各专业C 语言教材,也可作为计算机等级考试二级考试教材和自学者的参考书。
    
    ?
  • C 语言是目前流行的通用程序设计语言,之所以成为许多计算机专业人员和计算机爱好者学习程序设计的首选入门语言,除了C 语言的众多优点外,最主要的还是C 语言的实用性。
    C 语言是程序设计的工具,学会使用C 语言并不是学习的唯一目的,掌握计算机处理问题的思维方式和程序设计的基本方法,用以解决实际问题更为重要。因此,本书在详细阐述C 语言基础知识的基础上,着重讨论了程序设计的基本原理、概念和方法,并通过实例来巩固所学的知识。
    本书分为12 章,内容包括C 语言概述,数据类型、运算符与表达式,数据的输入和输出,选择型程序设计,循环控制,数组,函数,编译预处理,指针,结构体、共用体与枚举类型,位运算和文件。
    本书遵循结构化程序设计原则,运用文字、插图等表述方法,深入浅出地介绍了C语言的基础算法和程序设计方法,具有良好的可读性和适用性。例题程序的编排由浅入深,注重强化各知识点及编程方法和技巧,通过详细地解释,更多地考虑到了初学者的需求。建议读者在学习C 语言的过程中一定要多读程序,多动手编写程序,抓住“先模仿,在模仿的基础上改进,在改进的基础上提高”的学习规律。华侨大学范慧琳教授为本书编写的配套教材《C 语言程序设计习题解析与实验指导》,给出了本书各章习题的详细解答,以及实验安排与指导,强调动手实践,提高C 语言程序设计的能力。
    本书全部例题均由编者在Visual C++ 6.0 环境下调试通过,也可在Dev-Cpp 系统中运行。随本书配套的网络课程、作业库及PPT 课件已在超星泛雅网络教学平台发表,读者可通过“示范教学包”建立网络课堂,或登录网址https://mooc1.chaoxing.com/course/206159944.html 浏览、下载。本书由丁峻岭任主编,张伟华任副主编。其中,丁峻岭负责全书的策划和部分章节的编写工作,张伟华负责录制微课视频及部分章节的编写。本书在编写和修订过程中,得到了郑州商学院信息与机电工程学院的大力支持,衷心感谢院领导张晓冬、林海霞给予的关心和帮助。郑州商学院信息与机电工程学院的部分教师参与了本书的编写,崔刘浩、张菲菲、赵龙斌、徐英豪、李金鹏、金岗等同学参与了部分视频录制工作,在此一并表示感谢!
    由于时间仓促及水平所限,书中不妥之处在所难免,恳请读者批评指正。
    编 者
    2021 年4 月?
  • 第1 章 C 语言概述........................ 1
    1.1 程序与程序设计................................ 1
    1.2 C 语言的特点.................................... 2
    1.3 C 程序的基本结构............................. 3
    1.4 C 语言的词类.................................... 5
    1.4.1 字符集......................................... 5
    1.4.2 保留字......................................... 5
    1.4.3 标识符......................................... 5
    1.4.4 分隔符......................................... 5
    1.5 C 程序的上机过程............................. 6
    1.5.1 VC++ 6.0 编写C 程序的步骤..... 6
    1.5.2 VC++ 2010 编写C 程序的步骤... 9
    课后练习...................................................11
    第2 章 数据类型、运算符与表达式... 12
    2.1 C 语言的数据类型............................12
    2.2 常量与变量.......................................12
    2.2.1 常量............................................13
    2.2.2 变量............................................13
    2.3 整型数据...........................................15
    2.3.1 整型常量....................................15
    2.3.2 整型变量....................................15
    2.3.3 整型数据的存储方式.................16
    2.4 字符类型...........................................17
    2.4.1 字符与ASCII 码........................17
    2.4.2 字符常量....................................17
    2.4.3 字符变量....................................18
    2.4.4 字符数据的存储方式.................19
    
    2.4.5 字符串常量................................ 19
    2.5 实数类型.......................................... 20
    2.5.1 定点数与浮点数........................ 20
    2.5.2 实型常量................................... 21
    2.5.3 实型变量................................... 21
    2.5.4 sizeof 运算符............................. 22
    2.5.5 C 语言基本数据类型小结......... 22
    2.6 算术运算.......................................... 23
    2.6.1 运算符与表达式........................ 23
    2.6.2 双元算术运算符........................ 24
    2.6.3 复合算术赋值运算符................. 25
    2.6.4 自加和自减运算........................ 25
    2.6.5 正负号运算符............................ 26
    2.6.6 赋值类运算符的副作用及限制... 26
    2.7 关系运算与逻辑运算....................... 27
    2.7.1 关系运算................................... 27
    2.7.2 逻辑运算................................... 28
    2.7.3 条件运算符................................ 29
    2.8 逗号运算符和逗号表达式................ 30
    2.9 不同类型数据间的转换.................... 30
    2.9.1 基本概念................................... 30
    2.9.2 数据类型的隐式转换................. 32
    2.9.3 数据类型的显式转换................. 33
    课后练习................................................... 34
    第3 章 数据的输入和输出..............35
    3.1 printf()函数...................................... 35
    3.1.1 printf()函数格式........................ 35
    3.1.2 格式说明................................... 36
    
    3.2 scanf()函数........................................41
    3.2.1 地址表列....................................41
    3.2.2 格式控制参数............................41
    3.2.3 scanf()函数的执行过程..............43
    3.2.4 scanf()函数如何分隔数据项.......43
    3.2.5 scanf()函数的停止与返回..........45
    3.3 getchar()函数和putchar()函数..........46
    3.3.1 getchar()函数和putchar()函数的定义............................................46
    3.3.2 getchar()函数和putchar()函数的用法............................................46
    3.4 顺序结构程序设计举例....................47
    课后练习...................................................49
    第4 章 选择型程序设计................ 54
    4.1 算法和算法的表示............................54
    4.1.1 算法的概念................................54
    4.1.2 算法的基本特征.........................56
    4.1.3 算法的表示................................56
    4.1.4 结构化程序的三种基本结构......59
    4.2 C 语言的语句...................................61
    4.2.1 C 语言语句的基本概念..............61
    4.2.2 表达式语句................................62
    4.2.3 流程控制语句............................62
    4.2.4 复合语句....................................63
    4.3 选择型程序结构...............................63
    4.3.1 条件判断语句............................63
    4.3.2 多分支选择语句.........................67
    4.4 选择型程序设计举例........................69
    课后练习...................................................70
    第5 章 循环控制......................... 72
    5.1 先判断后执行循环控制语句while ....72
    5.2 先执行后判断循环控制语句do…while ..........................................74
    
    5.3 循环次数控制语句for...................... 77
    
    5.4 goto 语句以及用goto 语句构成的
    
    循环结构.......................................... 79
    
    5.5 循环的嵌套...................................... 79
    
    5.6 break 语句和continue 语句.............. 81
    
    5.7 程序举例.......................................... 83
    
    课后练习................................................... 86
    
    第6 章 数组...............................88
    
    6.1 一维数组.......................................... 88
    
    6.1.1 一维数组的定义........................ 88
    
    6.1.2 一维数组的初始化.................... 89
    
    6.1.3 数组元素的引用........................ 89
    
    6.2 二维数组.......................................... 91
    
    6.2.1 二维数组的定义........................ 91
    
    6.2.2 二维数组元素的引用................. 93
    
    6.2.3 二维数组的初始化.................... 94
    
    6.3 字符数组.......................................... 96
    
    6.3.1 字符串和字符串的存储方法..... 96
    
    6.3.2 字符数组的初始化.................... 97
    
    6.3.3 字符串的输入............................ 98
    
    6.3.4 字符串的输出............................ 99
    
    6.3.5 字符串运算函数...................... 101
    
    6.3.6 二维字符数组.......................... 102
    
    课后练习................................................. 104
    
    第7 章 函数............................. 106
    
    7.1 函数的基础知识............................. 107
    
    7.1.1 函数的基本概念...................... 107
    
    7.1.2 函数的传值调用...................... 112
    
    7.1.3 函数的嵌套调用...................... 113
    
    7.1.4 函数的递归调用...................... 114
    
    7.1.5 标准库函数.............................. 116
    
    7.2 变量的存储属性............................. 119
    
    7.2.1 存储属性的概念...................... 119
    
    7.2.2 自动(auto)变量....................120
    
    7.2.3 寄存器(register)变量...........122
    
    7.2.4 静态(static)变量..................123
    
    7.2.5 外部(extern)变量.................124
    
    7.2.6 存储类别小结..........................127
    
    课后练习.................................................129
    
    第8 章 编译预处理..................... 131
    
    8.1 宏定义(#define) .........................131
    
    8.1.1 不带参宏定义..........................131
    
    8.1.2 带参宏定义..............................133
    
    8.1.3 书写宏定义命令行应注意的问题..........................................135
    
    8.2 文件包含(#include)....................136
    
    8.2.1 文件包含的格式.......................136
    
    8.2.2 典型举例..................................136
    
    8.2.3 文件包含的使用特点...............137
    
    8.2.4 标准头文件..............................138
    
    8.3 条件编译.........................................138
    
    8.3.1 条件编译的概念.......................138
    
    8.3.2 条件编译的三种具体格式........139
    
    8.3.3 使用条件编译的优点...............139
    
    课后练习.................................................140
    
    第9 章 指针.............................141
    
    9.1 地址和指针.....................................141
    
    9.1.1 指针概述..................................141
    
    9.1.2 指针变量的定义.......................142
    
    9.1.3 指针变量的引用.......................143
    
    9.2 一维数组的指针表示方法..............144
    
    9.2.1 一维数组的地址表示法(地址法)................................144
    
    9.2.2 一维数组的指针表示法...........145
    
    9.2.3 使用指针法应注意的问题........146
    
    9.2.4 应用指针法举例.......................146
    
    9.2.5 指针变量的运算...................... 147
    
    9.3 二维数组的指针表示方法.............. 149
    
    9.3.1 二维数组的地址...................... 149
    
    9.3.2 二维数组中的行地址与列地址......................................... 150
    
    9.3.3 指针在二维数组中的应用举例......................................... 152
    
    9.4 函数参数与指针、数组.................. 153
    
    9.4.1 指针作为函数参数.................. 153
    
    9.4.2 数组名作为函数参数............... 155
    
    9.4.3 指向数组的指针作函数参数... 156
    
    9.4.4 用指针变量名加下标的形式访问数组................................. 158
    
    9.5 返回指针值的函数......................... 159
    
    9.5.1 返回指针值函数的定义形式... 159
    
    9.5.2 返回指针值的函数用法举例... 159
    
    9.6 指向函数的指针变量..................... 161
    
    9.6.1 函数的指针.............................. 161
    
    9.6.2 函数指针的定义...................... 161
    
    9.6.3 函数指针的特点...................... 162
    
    9.6.4 函数指针用法举例.................. 162
    
    9.6.5 使用函数指针的优点............... 164
    
    9.7 指针与字符串................................. 164
    
    9.7.1 指向字符串的指针用法举例... 165
    
    9.7.2 字符数组与字符指针的用法区别......................................... 166
    
    9.8 指针数组........................................ 166
    
    9.8.1 引入指针数组的原因............... 166
    
    9.8.2 定义指针数组的形式............... 167
    
    9.8.3 指针数组的应用举例............... 168
    
    9.9 指向指针的指针............................. 169
    
    9.9.1 指向指针的指针的定义........... 169
    
    9.9.2 双重指针的用法和举例........... 170
    
    9.9.3 多重指针的用法和举例...........173
    
    9.10 main()函数中的参数.....................173
    
    9.10.1 main()函数中的参数形式.......173
    
    9.10.2 main()函数参数的传递过程....174
    
    9.10.3 有关main()函数参数的举例....174
    
    9.11 指针数据小结...............................176
    
    9.11.1 常用的指针类型变量归纳......176
    
    9.11.2 指向void 类型的指针............176
    
    课后练习.................................................177
    
    第10 章 结构体、共用体与枚举型...179
    
    10.1 结构体类型的基本知识................180
    
    10.1.1 结构体类型的定义.................180
    
    10.1.2 定义结构体类型变量的方法....181
    
    10.1.3 结构体变量的初始化.............183
    
    10.1.4 结构体变量的引用.................184
    
    10.1.5 结构体变量的输入和输出......186
    
    10.2 结构体数组...................................186
    
    10.2.1 结构体数组的定义.................186
    
    10.2.2 结构体数组的初始化.............188
    
    10.2.3 结构体数组的引用.................188
    
    10.3 结构体变量与函数........................190
    
    10.3.1 结构体变量作为函数参数......190
    
    10.3.2 返回结构体类型值的函数......192
    
    10.4 结构体变量与指针........................193
    
    10.4.1 结构体指针............................193
    
    10.4.2 指向结构体数组的指针..........194
    
    10.4.3 用作函数参数的结构体指针....195
    
    10.5 链表..............................................196
    
    10.5.1 动态存储分配和链表的概念....196
    
    10.5.2 用包含指针项的结构体变量构成结点................................198
    
    10.5.3 内存动态分配函数.................200
    
    10.5.4 链表应用举例.........................201
    
    10.6 枚举类型数据............................... 208
    
    10.6.1 枚举类型的概念.................... 208
    
    10.6.2 枚举类型和枚举变量的定义.... 209
    
    10.6.3 有关枚举常量的说明............. 209
    
    10.6.4 有关枚举类型的举例............. 210
    
    10.7 共同体类型数据........................... 211
    
    10.7.1 共同体的概念........................ 211
    
    10.7.2 共同体变量的引用................. 213
    
    10.7.3 共同体变量的应用................. 214
    
    10.8 用typedef 定义类型..................... 216
    
    10.8.1 使用typedef 定义类型........... 216
    
    10.8.2 使用typedef 定义类型时应注意的问题........................ 217
    
    课后练习................................................. 218
    
    第11 章 位运算........................ 219
    
    11.1 位运算与位运算符....................... 219
    
    11.1.1 按位与运算符........................ 220
    
    11.1.2 按位或运算符........................ 221
    
    11.1.3 按位异或运算符.................... 222
    
    11.1.4 按位取反运算符.................... 223
    
    11.1.5 左移运算符............................ 223
    
    11.1.6 右移运算符............................ 224
    
    11.2 位运算应用举例........................... 225
    
    11.3 位段.............................................. 228
    
    11.3.1 位段概述................................ 228
    
    11.3.2 位段的引用............................ 230
    
    课后练习................................................. 231
    
    第12 章 文件........................... 232
    
    12.1 缓冲型文件指针变量的定义........ 234
    
    12.2 缓冲型文件的打开与关闭............ 234
    
    12.2.1 文件的打开(fopen()函数)..................... 234
    
    12.2.2 文件的关闭(fclose()函数) .................... 236
    
    12.3 缓冲型文件的读写........................237
    
    12.3.1 输入和输出一个字符.............237
    
    12.3.2 输入和输出一个字符串..........239
    
    12.3.3 格式化的输入和输出.............241
    
    12.3.4 按“记录”的方式输入和输出....................................242
    
    12.4 缓冲型文件的定位与随机读写.....245
    
    12.4.1 文件的定位............................245
    
    12.4.2 随机读写................................246
    
    12.5 缓冲型文件操作的出错检测.........248
    
    12.5.1 ferror()函数............................248
    
    12.5.2 clearerr()函数.........................249
    
    12.6 非缓冲文件系统(系统I/O)...... 249
    
    12.6.1 非缓冲文件系统的主要特点....................................... 249
    
    12.6.2 打开文件................................ 250
    
    12.6.3 文件的读写与关闭................. 251
    
    12.6.4 缓冲区的设置........................ 252
    
    课后练习................................................. 253
    
    附录A ASCII 码表.................... 255
    
    附录B C 常用库函数.................. 256
    
    附录C C 语言的关键字............... 260
    
    附录D 运算符的优先级与结合性.... 261
    
    ?
  • 丁峻岭,男,毕业于解放军信息工程大学。1991年从解放军某部调入解放军信息工程大学从事教学、科研等工作。后离开部队继续在地方院校工作。先后主讲了汇编语言、C语言、面向对象程序设计、数据结构等课程。独立或以第一作者出版并公开发行的主要著作有《汇编语言实用编程技巧》、《C语言实用程序设计与实现》、《数据结构导论》、《软件工程》、《操作系统概论》等多部。主持或参与的多项科研项目获部队或地方科技进步奖。
  • 随本书配套的网络课程、作业库及PPT 课件已在超星泛雅网络教学平台发表,读者可通过“示范教学包”建立网络课堂。
    书中大部分例题配备的操作微视频,扫描可观看。