C程序设计导引 第2版
作者 : 尹宝林 编著
出版日期 : 2020-06-12
ISBN : 978-7-111-65672-2
定价 : 69.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 302
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD : 无CD
绝版 :
图书简介

本书是一本讲解C程序设计的入门教材,根据学生对新知识学习和认知的规律,从C语言和C程序的基本要素以及程序设计的基本方法开始,循序渐进地引入对程序设计专业化的要求和相关的知识。全书全面地介绍了c语言的基本语法及c语言程序的设计方法,内容包括:C程序的创建及其基本结构,常量、变量和表达式,条件语句和开关语句,循环语句和goto语句,函数,数组,指针初步,程序设计的基本方法, 结构和联合,输入/输出和文件。

图书特色

上架指导

计算机\程序设计

封底文字

本书特色
  本书是一本讲解C程序设计的入门教材,以C语言为工具讲解程序设计,围绕程序设计的基本方法讲解C语言,目的是使读者通过本书的学习,掌握程序设计的基本方法和技术,能够较为熟练、规范地完成不涉及复杂算法和数据结构的小型C程序的设计、编码和调试,为进一步发展自己的专业程序设计能力打下一定的基础。
  因为是入门级的教材,所以本书不讨论复杂的算法、技巧和数据结构,也不要求读者学习过这方面的课程;因为是基础性程序设计教材,所以本书不过多地讨论在基本程序设计中很少遇到的语言内容和较为深入的工程性细节,而是把重点放在如何有条理地思考所面对的程序设计问题、运用已有的知识描述对问题的求解思路、运用C语言准确地表达自己的思想等方面。
  本书根据人们的认知规律,从增强学生的感性知识入手,通过大量的例题分析和示范了关键知识和技术的运用,不仅有助于学生从模仿开始,循序渐进地理解相关的知识内容、掌握程序设计的方法、提高实际的编程能力,而且有助于学生逐步养成理论联系实际的思维方法。本书还提供了大量的习题和参考答案,可用于学生复习和巩固学习内容、检验学习成果。

作者简介
尹宝林 北京航空航天大学计算机系教授、博士生导师,全国信息学奥林匹克科学委员会副主席。从事计算机专业教学和科研工作多年,曾主讲“C语言程序设计”“高级语言程序设计”“UNIX程序设计环境”“计算机图形学”“图像处理”等课程,其中“高级语言程序设计”被评为北京市精品课程。

图书目录

再版说明
第1版作者自序
教学建议
例题索引
第0章 引言1
第1章 C程序的创建及其基本结构8
1.1 C程序的创建过程8
1.2 C程序的基本组成10
1.3 调试初步—语法错误的定位15
1.4 数据的输入/输出和标准文件18
习题19
第2章 常量、变量和表达式20
2.1 常量20
2.1.1 数字常量20
2.1.2 字符常量23
2.1.3 字符串字面量23
2.2 变量24
2.2.1 变量名和变量类型24
2.2.2 变量的赋值和类型转换26
2.2.3 变量的初始化27
2.2.4 类型限定符const27
2.3 算术表达式28
2.3.1 算术运算符28
2.3.2 增量和减量运算符30
2.3.3 位运算31
2.3.4 复合赋值运算符31
2.4 强制类型转换32
2.5 数据输出/输入函数printf()和scanf()36
2.5.1 数值的输出函数printf()36
2.5.2 数值的输入函数scanf()37
2.6 常量的符号表示方法39
2.6.1 常量宏39
2.6.2 枚举常量40
习题41
第3章 条件语句和开关语句44
3.1 关系运算符和逻辑运算符44
3.2 运算符的优先级46
3.3 从实际问题中的条件到逻辑表达式47
3.4 条件语句48
3.4.1 条件语句中的条件49
3.4.2 复合语句49
3.4.3 条件语句的嵌套和级联51
3.4.4 使用条件语句时的注意事项54
3.4.5 条件运算符和条件表达式55
3.5 switch语句56
习题59
第4章 循环语句和goto语句61
4.1 while语句61
4.2 for语句64
4.3 do while语句67
4.4 循环语句的选择和使用69
4.5 逗号表达式69
4.6 循环语句的嵌套70
4.7 循环语句中的非常规控制73
4.8 goto语句76
习题77
第5章 函数80
5.1 函数的基本概念80
5.2 函数的调用81
5.3 函数的结构84
5.4 函数的定义85
5.5 函数的调用关系和返回值89
5.6 局部变量和全局变量90
5.6.1 局部变量91
5.6.2 全局变量92
5.6.3 对全局变量的访问93
5.7 函数参数的传递94
5.8 标准库函数95
5.8.1 常用的头文件95
5.8.2 常用的数据输入/输出函数96
5.8.3 字符类型判断函数98
5.8.4 字符串处理函数100
5.8.5 其他常用函数100
5.9 递归初步101
习题104
第6章 数组106
6.1 一维数组106
6.1.1 一维数组的定义和初始化106
6.1.2 一维数组元素的使用108
6.1.3 数组的复制111
6.1.4 作为函数参数的一维数组111
6.1.5 数组元素的排序和查找114
6.2 使用一维数组的常用数据结构118
6.2.1 散列表118
6.2.2 栈120
6.2.3 队123
6.3 字符串和字符数组125
6.3.1 字符串126
6.3.2 字符数组126
6.4 常用的标准字符串函数127
6.4.1 字符串输出函数127
6.4.2 字符串输入函数130
6.4.3 字符串复制和追加函数131
6.4.4 字符串比较函数133
6.4.5 字符串检查函数134
6.4.6 字符串扫描函数sscanf()135
6.5 二维数组136
6.5.1 二维数组的定义136
6.5.2 二维数组元素的引用137
6.5.3 二维数组元素的遍历138
6.5.4 二维数组元素的排列方式140
6.5.5 作为参数的二维数组142
习题145
第7章 指针初步148
7.1 地址与指针148
7.2 指针变量150
7.2.1 指针变量的定义和赋值150
7.2.2 通过指针访问数据151
7.2.3 作为函数参数的指针152
7.2.4 返回指针的函数154
7.3 指针运算156
7.3.1 指针与整数的加减156
7.3.2 指针相减157
7.3.3 指针的比较157
7.3.4 指针的强制类型转换和void *160
7.3.5 不合法的指针运算161
7.3.6 指针类型与数组类型的差异161
7.4 指针与数组162
7.5 指向二维数组的指针164
7.6 多重指针165
7.7 指针数组166
7.7.1 一维指针数组166
7.7.2 命令行参数168
7.8 函数指针170
7.8.1 函数指针变量的定义170
7.8.2 具有函数指针参数的库函数171
习题174
第8章 结构和联合177
8.1 结构177
8.1.1 结构类型的定义177
8.1.2 结构成员的访问179
8.1.3 包含结构的结构182
8.2 联合186
8.2.1 联合类型的定义186
8.2.2 联合成员的访问187
8.3 类型定义语句190
8.4 复杂类型的解读193
习题194
第9章 输入/输出和文件196
9.1 输入/输出的基本过程和文件类型196
9.2 文件的打开、创建和关闭197
9.3 文件数据的正文格式读写199
9.4 读写操作中的定位202
9.5 文件数据的二进制格式读写205
习题207
第10章 程序设计的基本方法210
10.1 程序设计的基本过程210
10.2 问题分析211
10.2.1 程序功能和输入/输出数据211
10.2.2 对程序性能的要求213
10.2.3 程序中的错误处理213
10.2.4 程序的测试214
10.2.5 问题分析的结果214
10.3 方案设计216
10.3.1 解题思路216
10.3.2 算法的描述218
10.3.3 数据结构和算法的选择225
10.4 编码:从算法到代码231
10.4.1 代码的结构232
10.4.2 代码的检查238
10.4.3 代码中的注释239
10.5 程序的调试239
10.5.1 调试的基本方法240
10.5.2 调试工具的基本功能和使用241
10.5.3 标准输入/输出的重新定向243
10.6 初学者程序中容易出现的错误244
10.6.1 容易混淆的运算符244
10.6.2 运算符优先级和结合关系244
10.6.3 变量的初始化245
10.6.4 数组的使用245
10.6.5 条件和边界245
10.6.6 字符函数的参数和返回值类型246
10.6.7 编程习惯和工作方法246
习题247
附录A 部分习题参考答案250
附录B vi/vim的常用命令271
附录C 使用MS VC++ 6.0 IDE创建C程序的基本过程273
附录D 使用CodeBlocks创建和运行C程序277
附录E cc/gcc的常用命令行选项280
附录F 常用的标准库函数名及其头文件281
附录G ASCII编码283
附录H 调试工具GDB的常用命令284
附录I 不同版本的C语言标准之间的主要区别285
附录J 基本数据类型的长度287
参考文献和推荐书目288
例题索引
【例1-1】最简单的C程序 10
【例1-2】产生可见效果的C程序 11
【例1-3】生成直角三角形 12
【例1-4】生成质数表 13
【例1-5】生成镶边的等腰三角形 13
【例1-6】猜数游戏 14
【例2-1】十进制数转换为十六进制数 21
【例2-2】十六进制数转换为十进制数 21
【例2-3】表达式的类型和值 29
【例2-4】计算球体体积 29
【例2-5】星期几 29
【例2-5-1】星期几 29
【例2-6】求一元二次方程的根 29
【例2-7】时钟指针 34
【例2-8】整数的表示方式 37
【例2-9】浮点数和字符序列的输出格式 37
【例2-10】读入数据 38
【例2-11】计算实数乘积的整数部分 38
【例3-1】判断闰年 47
【例3-2】水仙花数 47
【例3-3】获奖 47
【例3-4】名次预测 48
【例3-5】计算并输出一元二次方程的根 50
【例3-6】判断季节 52
【例3-7】四则运算 52
【例3-8】求最大值 55
【例3-9】输出比较结果的文字值 55
【例3-10】成绩信息 56
【例3-7-1】四则运算—使用switch语句 57
【例3-10-1】成绩信息 58
【例4-1】自然数的累加 61
【例4-2】最大公约数 62
【例4-3】数据读入 63
【例4-4】行数统计 63
【例4-5】阶乘 64
【例4-2-1】最大公约数 65
【例4-6】水仙花数 65
【例4-7】π的近似值 66
【例4-8】输出提示信息,读入应答 67
【例4-2-2】最大公约数 68
【例4-9】平行四边形图案 70
【例4-10】连续正整数 70
【例4-11】阶乘之和 72
【例4-1-1】自然数的累加 73
【例4-1-2】自然数的累加 74
【例4-10-1】连续正整数 74
【例4-12】乒乓球赛 75
【例4-13】数据求和 75
【例4-8-1】输出提示信息,读入应答 77
【例5-1】三角形的面积 83
【例5-2】星期几 86
【例5-3】最大公约数 87
【例5-4】水仙花数 88
【例5-5】π的近似值 88
【例5-6】判断整数的奇偶 90
【例5-7】局部变量和全局变量的访问 92
【例5-8】全局变量的共享 93
【例5-9】错误的变量交换函数 94
【例5-10】printf()的格式 98
【例5-11】最大公约数的递归计算 102
【例5-12】组合公式的计算 102
【例5-13】阿克曼函数的计算 102
【例5-14】梵塔(Hanoi Tower) 103
【例6-1】摄氏—华氏温度对照表 108
【例6-2】字符分类统计 109
【例6-3】质数表 109
【例6-4】数组复制 111
【例6-5】三维向量的点积 112
【例6-6】n维向量的点积 113
【例6-7】平均年龄 113
【例6-8】n维向量加法函数 114
【例6-9】选择排序 114
【例6-10】数组元素的顺序查找 115
【例6-11】数组元素的二分查找 117
【例6-12】首个重复字母的位置 118
【例6-13】区间合并 119
【例6-14】质数表的生成 120
【例6-15】括号匹配 121
【例6-16】一个int型的队 123
【例6-17】N位超级质数 124
【例6-18】字符串倒置 127
【例6-19】平行四边形图案 128
【例6-20】由参数确定输出的小数位数 129
【例6-21】分析日期和时间信息 135
【例6-22】第几天 137
【例6-23】矩阵相加 138
【例6-24】矩阵元素的Z形扫描 138
【例6-25】星期几 140
【例6-26】数据中的最长行 141
【例6-27】矩阵加法函数 142
【例6-28】使用二维数组绘制函数图像 143
【例7-1】数据中的最长行 151
【例7-2】数据统计函数 153
【例7-3】删除换行符 154
【例7-4】字符串替换 155
【例7-5】指针的加减运算 156
【例7-6】指针相减 157
【例7-7】多行数据的平均值 158
【例7-8】子串逆置 159
【例7-9】超长整数加法 163
【例7-10】星期几 167
【例7-11】计算命令行参数的代数和 169
【例7-12】使用qsort()对一维double数组排序 171
【例7-13】输入数据的编号 172
【例7-14】查质数表 174
【例8-1】结构类型的定义 178
【例8-2】输入数据的编号 180
【例8-3】矩形 182
【例8-4】同心圆 182
【例8-5】单向链表 183
【例8-6】排序二叉树的节点插入、查找和中序遍历 185
【例8-7】联合类型的定义 186
【例8-8】联合成员的访问 187
【例8-9】后缀表达式求值 188
【例8-10】显示当前时间 192
【例9-1】打开文件 198
【例9-2】日程列表 200
【例9-3】正文数据的字符数 203
【例9-4】文件按行倒置输出 203
【例9-2-1】日程列表的排序显示 204
【例9-5】二进制数据的字符数 206
【例10-1】矩阵乘法 212
【例10-2】两条线段的交点 212
【例10-3】流程控制关键字的统计 212
【例10-1-1】矩阵乘法 215
【例10-4】平方数 216
【例10-5】字符串循环移位 218
【例10-6】数字删除 218
【例10-7】整数中的数字分离 219
【例10-8】组合的生成 220
【例10-9】Cantor表的第n项 221
【例10-10】单向链表的逆置 223
【例10-11】公式求解 225
【例10-12】花朵数 227
【例10-13】整数的出现次数 230
【例10-14】最简分数排序 230
【例10-15】6174问题 232
【例10-16】序列的第N项 234
【例10-17】小数化为分数 237

教学资源推荐
作者: 王珊珊 臧洌 张志航 编著
作者: 郭志强 邱李华 曹青 等编著
作者: 杨树林 胡洁萍 编著
作者: 曹青 邱李华 郭志强
参考读物推荐
作者: [英]大卫·格里菲思(David Griffiths),[英]道恩·格里菲思(Dawn Griffiths) 著
作者: (美)Evan Burchard 著
作者: (加)Randy Kobes等
作者: (爱尔兰)Matt Smith (巴西)Chico Queiroz 著