研究式学习--C语言程序设计(第二版)
书 号:9787113107970
丛 书 名:高等院校计算机应用技术规划教材
作 者:主 编 方娇莉 李向阳 副主编 潘晟旻 张启富
译 者:
开 本:16开
装 帧:平装
正文语种:
出 版 社:中国铁道出版社有限公司
定 价:26元
-
内容简介
第一章是快速入门,介绍C语言的基本语法,基本数据类型,基本操作,顺序结构的C程序;第二、三章介绍选择结构和循环结构的程序及基本算法;第四章介绍数组及相关算法;第五章介绍函数和变量的存储类型;第六章介绍用户定制数据类型;第七章介绍指针;第八章介绍文件;第九章介绍图形和音乐编程基础;第十章介绍面向对象的程序设计。 -
前言
本书尝试用研究式、启发式的学习方式来组织“C语言程序设计”课程的教学,在注重程序设计能力特别是创新能力培养的同时,也兼顾语言知识的培养,努力将本课程打造成精品课程。本书的参考学时为64学时,其中上课32学时,上机32学时,可根据实际情况增加一定的课外上机学时,使学生在上机编程能力方面得到加强。
本书的第二版在第一版的基础上对部分章节做了修改和完善。除了增加了第9章图形及音乐编程基础知识以外,原有章节都增加了理论知识的具体应用实例,加大了趣味编程的力度,使内容得到了进一步的丰富和充实。为了方便读者学习,教材中仅保留了编程题目,将习题、语法练习和编程题详细解答放到了与教材配套的《研究式学习——C语言程序设计习题与实验(第二版)》一书中,让读者加深和巩固所学知识。本书可作为高等院校计算机基础课程教材及相关专业程序设计课程的参考教材。
本教材每章都通过4个步骤来完成学习:
第1步,通过提出问题、分析问题来激发学生的兴趣,引起学生的思考。
第2步,通过问题的解决、相关知识点的跟进,使学生能逐步提升程序设计的能力,掌握C语言的知识,引导学生深入思考。
第3步,用一定数量的编程实例使学生深入理解和掌握所学知识,用具有趣味性的综合应用编程实例培养学生的逻辑思维能力和编程能力,挖掘学生的创新能力。
第4步,对每部分的知识进行小结,以便学生进一步巩固应掌握的知识。
本书主要针对初学者,选用基本的、实用的习题和算法,所有例题均通过调试。
本书共分10章,有3个层次:第1~3章是基础层次,第4~8章是提高层次,第9、10章是深入层次。其中,基础层次和提高层次的教学大约需要32学时,深入层次则视学生的接受情况和具体学时数而定。
本书第1、5章由潘晟旻和李向阳编写,第2、3章由楼静编写,第4章由郭玲和张燕涛编写,第6章由马晓静和张启富编写,第8章由王凌和张启富编写,第7、9章由方娇莉编写,第10章由耿植林编写。本书由方娇莉和李向阳任主编,潘晟旻和张启富任副主编,方娇莉负责本书第二版的统稿和校对,秦卫平审稿。
本书得到昆明理工大学精品课程项目的资助,得到教务处和计算中心领导和同志们的大力支持和帮助,在此对他们表示感谢!同时对本书所参考的书籍、资料的作者们表示感谢!
由于时间仓促且作者水平有限,不足之处在所难免,敬请广大读者批评指正。 -
目录
第1章 C语言入门 1
1.1 程序与算法 1
1.1.1 程序 1
1.1.2 算法 2
1.2 C程序介绍 3
1.2.1 简单C程序实践 3
1.2.2 标识符、变量和常量 5
1.2.3 数据与数据类型 6
1.3 C程序的基本操作 9
1.3.1 运算符与表达式 9
1.3.2 算术运算符和算术表达式 11
1.3.3 赋值运算符 11
1.3.4 复合赋值运算符 12
1.3.5 自增和自减运算符 12
1.3.6 逗号运算符 13
1.3.7 类型强制转换运算符 13
1.3.8 容量运算符 13
1.4 顺序结构 14
1.4.1 C程序语句 14
1.4.2 输出/输入函数 15
1.5 C语言规约 19
1.5.1 基本规约 19
1.5.2 可读性规约 20
1.5.3 结构化规约 20
1.5.4 正确性与容错性规约 20
1.6 小结 21
1.7 编程题 21
第2章 选择结构 22
2.1 问题的提出 22
2.1.1 问题 22
2.1.2 问题分析 22
2.1.3 程序 23
2.2 与选择结构有关的运算符和表达式 24
2.2.1 关系运算符和关系表达式 24
2.2.2 逻辑运算符和逻辑表达式 24
2.2.3 条件运算符和条件表达式 26
2.3 条件语句 27
2.3.1 if语句 27
2.3.2 switch语句 34
2.4 综合应用 36
2.5 小结 39
2.6 编程题 39
第3章 循环结构 41
3.1 问题的提出 41
3.1.1 问题 41
3.1.2 问题分析 41
3.1.3 程序 43
3.2 循环语句 44
3.2.1 for语句 44
3.2.2 while语句 48
3.2.3 do…while语句 50
3.2.4 循环嵌套 51
3.2.5 break和continue语句 54
3.3 综合应用 56
3.4 小结 60
3.5 编程题 61
第4章 数组 62
4.1 问题的提出 62
4.2 一维数组的定义及应用 63
4.2.1 一维数组的定义 63
4.2.2 一维数组元素的引用 63
4.2.3 一维数组的初始化 64
4.2.4 一维数组的应用 64
4.3 二维数组的定义及应用 68
4.3.1 二维数组的定义 68
4.3.2 二维数组元素的引用 69
4.3.3 二维数组的初始化 69
4.3.4 二维数组的应用 70
4.4 字符数组 73
4.4.1 字符数组的定义 73
4.4.2 字符数组元素的引用 74
4.4.3 字符数组的初始化 75
4.4.4 字符数组的应用 76
4.4.5 字符串处理函数 80
4.5 综合应用 82
4.6 小结 90
4.7 编程题 91
第5章 函数 92
5.1 认识函数 92
5.1.1 问题及分析 92
5.1.2 函数引例 93
5.1.3 函数的概念与分类 93
5.2 函数的定义和调用 95
5.2.1 函数头 95
5.2.2 函数体 95
5.2.3 函数原型声明与调用 96
5.3 函数的参数传递 97
5.3.1 问题的提出 97
5.3.2 问题分析 98
5.3.3 程序 98
5.4 函数的嵌套调用和递归调用 99
5.5 变量的作用域 100
5.5.1 问题及分析 100
5.5.2 示例程序 101
5.5.3 局部变量和全局变量 101
5.6 变量的存储类型 102
5.6.1 问题及分析 102
5.6.2 示例程序 102
5.6.3 局部变量的存储类型 103
5.6.4 全局变量的存储类型 104
5.7 编译预处理 105
5.7.1 宏定义命令 106
5.7.2 文件包含 107
5.8 综合应用 107
5.8.1 问题分析 107
5.8.2 主函数设计 108
5.8.3 及格率统计函数 109
5.8.4 平均分统计函数 109
5.8.5 不及格名单统计函数 109
5.8.6 系统集成 110
5.9 小结 110
5.10 编程题 111
第6章 用户自定义数据类型 112
6.1 枚举 112
6.1.1 问题的提出 112
6.1.2 问题的分析 112
6.1.3 程序 113
6.1.4 枚举类型的定义及使用规则 114
6.2 结构体 114
6.2.1 问题的提出 114
6.2.2 定义一个结构体类型 115
6.2.3 结构体变量的定义及使用 116
6.2.4 结构体中的结构体成员 119
6.2.5 结构体数组及其使用 119
6.2.6 函数间结构体变量的数据传递 121
6.3 共用体 123
6.3.1 问题的提出 123
6.3.2 问题分析 123
6.3.3 程序 124
6.3.4 共用体类型的定义与引用 125
6.4 综合应用 126
6.5 小结 128
6.6 编程题 130
第7章 指针 131
7.1 指针的引入 131
7.1.1 问题的提出 131
7.1.2 问题分析 131
7.1.3 程序 132
7.1.4 指针的定义及运算 133
7.2 数组与指针 134
7.2.1 指向一维数组的指针 134
7.2.2 指针指向数组时的运算 136
7.2.3 指向二维数组的指针 136
7.3 用指针实现字符串的操作 137
7.4 指针和函数 139
7.4.1 用指向函数的指针实现函数调用 139
7.4.2 返回指针值的函数 141
7.5 指针数组和指向指针的指针 142
7.5.1 指针数组的概念 142
7.5.2 指向指针的指针 143
7.5.3 指针数组作main()函数的参数 145
7.6 用指针实现数据的动态管理 146
7.6.1 问题 146
7.6.2 问题分析 146
7.6.3 程序 147
7.6.4 动态数据管理在插入、删除操作中的优点 150
7.7 综合应用 151
7.8 小结 152
7.9 编程题 154
第8章 文件 155
8.1 问题的提出 155
8.1.1 问题 155
8.1.2 问题分析 155
8.1.3 程序 155
8.2 文件的概念 158
8.2.1 文件的定义 158
8.2.2 文件的分类 158
8.2.3 文件缓存区 159
8.2.4 文件类型与文件指针 160
8.2.5 文件的操作过程 160
8.3 文件的打开和关闭 161
8.3.1 文件的打开 161
8.3.2 文件的关闭 162
8.4 文件的读/写操作 163
8.4.1 以字符为单位进行文件读/写的函数:fgetc()、fputc() 163
8.4.2 基于字符串的读/写的函数:fgets()、fputs() 164
8.4.3 格式化读/写函数:fscanf()、fprintf() 166
8.4.4 数据块读/写函数:fread()、fwrite() 167
8.5 文件的定位操作 169
8.6 文件的出错检测 172
8.7 综合应用 174
8.8 小结 178
8.9 编程题 179
第9章 图形及音乐编程基础 180
9.1 图形显示基础 180
9.1.1 问题的提出 180
9.1.2 问题分析 180
9.1.3 具体实现 180
9.1.4 图形系统的初始化和关闭 181
9.1.5 图形的坐标设置 183
9.1.6 背景色和作图色的设置 184
9.2 基本绘图函数 185
9.2.1 画点函数 185
9.2.2 有关画图坐标位置的函数 185
9.2.3 画线函数 187
9.2.4 画矩形和条形图函数 188
9.2.5 画椭圆、圆和扇形图函数 188
9.3 画线的线型设定函数 189
9.4 封闭图形的填色函数及有关画图函数 191
9.4.1 填色函数 191
9.4.2 与填充函数有关的作图函数 191
9.4.3 可对任意封闭图形填充的函数 193
9.5 图形模式下的文本输出 194
9.5.1 文本输出函数 194
9.5.2 有关文本字体、字型和输出方式的设置 194
9.6 音乐编程 196
9.6.1 音乐编程基础 196
9.6.2 计算机乐谱 197
9.7 综合应用 199
9.8 小结 205
9.9 编程题 205
第10章 面向对象的程序设计 206
10.1 问题的提出 206
10.1.1 问题 207
10.1.2 问题分析 207
10.1.3 程序 208
10.1.4 程序调试与运行 209
10.1.5 对该问题的进一步讨论 210
10.2 类和对象 213
10.2.1 定义类 213
10.2.2 创建和引用对象 214
10.2.3 构造函数与析构函数 215
10.3 继承与派生 217
10.3.1 单一继承 218
10.3.2 多重继承 219
10.3.3 友元函数和友元类 220
10.4 多态性 221
10.4.1 函数重载和运算符重载 222
10.4.2 虚函数 223
10.5 面向对象的程序设计方法 224
10.5.1 C语言的发展 224
10.5.2 面向对象的设计方法 225
10.5.3 用Microsoft Visual C++编程 225
10.6 综合应用 227
10.7 小结 234
10.8 编程题 234
附录A ASCII码表 235
附录B C语言中的关键字 237
附录C C标准库函数 238
参考文献 244 -
作者介绍
主要著译者顺序姓名学历职称学科专长通讯地址1方娇莉 工作单位昆明理工大学 邮政编码650093 电话13759570700 2 工作单位 邮政编码 电话 3 工作单位 邮政编码 电话 审校者(主审者) 学历 工作单位 邮政编码 电话 职称 工作单位 邮政编码 电话 -
编辑推荐
-
书评书荐
-
附件下载
图书推荐