标题：C/C++程序设计教程
基本信息
  C/C++程序设计教程
作　者： 龚沛曾，杨志强　主编
出 版 社： 高等教育出版社[1]
出版时间： 2009-5-1 
开　本： 16开 
I S B N ： 9787040262995 
定价：￥24.00
内容简介
本书是普通高等教育“十一五”国家级规划教材，国家教学成果奖配套教材。本书根据教育部《关于进一步加强高等学校计算机基础教学的意见》中有关计算机程序设计基础课程的教学要求而编写。本书以VisualC++为开发环境，主要内容包括：C/C++概述，基本数据类型、运算符和表达式，结构化程序设计，数组和指针，函数，结构和链表，文件，面向对象程序设计基础，并针对课程内容设置了10个实验。
本书按照“夯实基础、面向应用、培养创新”的指导思想更加重了教材的基础性、应用性和创新性，成功地将传统的面向过程程序设计和现代的面向对象程序设计两部分有机地结合在一起，体现了教材的先进性。
本书可作为高等学校程序设计课程教材，也可作为培训或自学教材。
作者简介
龚沛曾，1982年毕业于华东理工大学自动控制系。现为同济大学计算机科学与技术系教授，任教育部高等学校计算机基础课程教学指导委员会委员、全国高校计算机教育研究会副理事长、上海市计算机基础教育协会副理事长。长期从事计算机基础教学与研究工作，主持多项教育部教改项目。承担的国家“七五”攻关项目获上海市科技进步三等奖；主编的《VisualBasic程序设计教程》、《大学计算机基础》于2003年、2007年连续两届获上海市优秀教材一等奖；主讲的“VisualBasic程序设计”、“大学计算机基础”于2003年和2005年被评为国家精品课程；主持的教改项目获国家级教学成果二等奖、2001年和2005年上海市教学成果一等奖；享受国务院特殊津贴，获上海市优秀教育工作者、上海市首届高校教学名师奖等荣誉称号。
目录
第一篇 教学篇
第1章 C/C++概述
1.1 C/C++发展简史
1.2 简单的C/c++程序实例
1.3 基本语法成分
1.4 数据的输入和输出
1.5 编译预处理
1.6 VisualC++简介
习题
第2章 基本数据类型、运算符和表达式
2.1 数据类型
2.2 变量和常量
2.3 运算符和表达式
2.4 指针
2.5 typedef语句
2.6 应用举例
习题
第3章 结构化程序设计
3.1 顺序结构
3.2 选择结构
3.3 循环结构
3.4 其他控制语句
3.5 应用举例
习题
第4章 数组和指针
4.1 一维数组
4.2 二维数组
4.3 字符数组
4.4 指针和数组
4.5 应用举例
习题
第5章 函数
5.1 函数的定义、调用和说明
5.2 函数间的参数传递
5.3 递归函数
5.4 函数参数缺省
5.5 函数重载
5.6 函数模板
5.7 作用域与存储类别
5.8 应用举例
习题
第6章 结构和链表
6.1 结构类型
6.2 结构的应用——链表
6.3 应用举例
习题　
第7章 文件
第8章 面向对象程序设计基础
第二篇 实验篇
参考文献
中国铁道出版社出版图书
基本信息书名：C/C++程序设计教程（第二版）
套系名称：21世纪大学计算机基础规划教材
书号：978-7-113-12491-5　版次：2版2次　开本：16开　页码：312页
作者：王连相 赵付青[2]
出版时间：2011-02-02 
定价：30 元
出版社：中国铁道出版社
适用专业：计算机与非计算机专业均适用
内容简介本书在第一版的基础上全面介绍了C语言的基本概念、语法规则和程序设计的基本方法，数组与函数，指针类型的各种操作，复合数据类型及应用，文件操作和C++程序设计基础等。本书从实用的角度出发，列举了大量有价值的程序示例，并且每一章都配有适量的习题。
本书非常适合高校作为教材，也可作为各种培训和编程爱好者及参加全国计算机等级（二级C语言）考试人员作为自学参考书。
图书目录第1章 C语言概述 1
1.1 C语言的起源 1
1.2 C语言是高级语言中的中级语言 1
1.3 C语言是结构化语言 2
1.4 C语言是面向程序员的语言 3
1.5 编译和解释 4
1.6 C语言程序结构 4
1.6.1 库和连接 6
1.6.2 分别编译 6
1.6.3 编译C语言程序 7
1.6.4 C语言的内存映像 7
1.7 术语 7
本章小结 8
习题 8
第2章 数据类型和表达式 9
2.1 数据类型 9
2.2 保留字、标识符 10
2.2.1 标识符 10
2.2.2 保留字 10
2.2.3 选择合适的标识符 11
2.2.4 常量与变量 11
2.3 基本数据类型 12
2.3.1 数据的内部表示 13
2.3.2 字符型 14
2.3.3 整型 16
2.3.4 浮点类型和双精度类型 17
2.3.5 字符串常量 18
2.3.6 符号常量 19
2.4 运算符与表达式 19
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.4.7 表达式的运算顺序 23
2.4.8 条件运算 23
2.4.9 sizeof运算 24
2.4.10 运算符优先级与结合性质 24
2.5 数据类型转换 26
2.5.1 隐式类型转换 26
2.5.2 强制类型转换 27
2.6 位运算 27
2.7 数组和指针 29
2.7.1 数组 29
2.7.2 指针 30
2.7.3 指针和数组的简单用法 32
2.8 简单应用程序举例 34
本章小结 36
习题 36
第3章 结构化程序设计 38
3.1 顺序结构程序设计 38
3.1.1 赋值语句 38
3.1.2 数据输入 40
3.1.3 数据输出 43
3.2 选择结构程序设计 49
3.2.1 条件语句（if） 49
3.2.2 开关选择语句 54
3.2.3 goto语句 57
3.3 循环结构程序设计 58
3.3.1 3种循环结构的流程表示及执行过程 58
3.3.2 循环的嵌套结构 61
3.3.3 循环程序举例 62
3.3.4 循环辅助控制 69
本章小结 72
习题 72
第4章 函数 74
4.1 C语言程序的结构 74
4.2 函数的定义和调用 74
4.2.1 函数的定义 74
4.2.2 函数的调用 75
4.3 变量的存储类别和变量的使用范围 78
4.3.1 变量的存储类别 78
4.3.2 变量的作用范围 80
4.4 函数间的传值 81
4.5 函数的嵌套调用 84
4.6 函数的递归调用 85
4.6.1 递归函数及其执行特点 85
4.6.2 实现递归调用的两种结构 86
4.6.3 递归结构的函数用法举例 87
4.7 函数的应用举例 89
本章小结 91
习题 91
第5章 编译预处理 93
5.1 宏定义 93
5.1.1 不带参数的宏定义 93
5.1.2 带参数的宏定义 95
5.2 文件包含 96
5.3 条件编译 98
本章小结 100
习题 100
第6章 复合数据类型 101
6.1 指针类型 101
6.1.1 指针的声明 101
6.1.2 指针的引用 102
6.1.3 指针的运算 102
6.2 数组类型 104
6.2.1 一维数组的声明 104
6.2.2 一维数组元素的引用与初始化 104
6.2.3 数组作为函数的参数 105
6.2.4 二维数组的声明与使用 107
6.2.5 二维数组元素的引用与初始化 108
6.2.6 指针与数组 109
6.2.7 指针数组与数组指针 110
6.3 字符串 113
6.3.1 字符串常量与变量 113
6.3.2 字符串数组 115
6.3.3 有关字符串操作的系统库函数 116
6.3.4 字符串的用法举例 118
6.4 结构类型 120
6.4.1 结构类型 120
6.4.2 访问结构体成员 122
6.4.3 结构指针和结构数组 124
6.4.4 结构指针作为函数的参数 128
6.4.5 结构体类型及结构指针的应用举例 129
6.5 关于指针的另外几种用法 138
6.5.1 指向函数的指针 138
6.5.2 指针类型的函数 141
6.5.3 指向指针的指针（二级指针） 142
6.6 main()函数的参数 143
6.7 联合、枚举和类型别名 147
6.7.1 联合类型 147
6.7.2 枚举类型 149
6.7.3 类型别名 150
本章小结 151
习题 151
第7章 文件及其操作 155
7.1 C语言文件的概念 155
7.1.1 ANSI C的I/O和UNIX C的I/O 155
7.1.2 流和文件 156
7.1.3 C语言文件 158
7.2 文件系统的基础 158
7.2.1 定义文件结构体类型的指针 159
7.2.2 用于文件操作的函数 160
7.3 建立文件的基本步骤 173
7.4 读取文件的基本步骤 174
7.5 非缓冲文件系统 175
7.5.1 open()函数 176
7.5.2 close()函数 176
7.5.3 creat()函数 177
7.5.4 read()和write()函数 177
7.5.5 unlink()函数 178
7.5.6 lseek()函数 179
7.5.7 缓冲文件系统和非缓冲文件系统的区别 180
本章小结 180
习题 180
第8章 基本应用综合举例 181
8.1 数组元素的查找和排序 181
8.1.1 排序及应用 181
8.1.2 查找 186
8.2 数值积分 188
8.2.1 矩形法 188
8.2.2 梯形法 189
8.2.3 辛普生法 190
8.3 非线性方程的求根 191
8.3.1 牛顿迭代法 192
8.3.2 二分法 193
8.3.3 弦截法 194
8.4 C语言动态数据结构及其用法 194
8.4.1 动态存储分配 194
8.4.2 线性动态数据结构及链表的应用 195
8.4.3 非线性动态数据结构及二叉树的应用 200
8.5 文件的应用 202
8.5.1 用户数据文件的应用 203
8.5.2 用户文本文件的应用 204
本章小结 210
习题 210
第9章 C++概述 211
9.1 从C到C++ 211
9.2 C++程序开发过程 212
9.3 C++编程环境介绍 213
9.3.1 环境简介 213
9.3.2 C++环境介绍 215
9.3.3 C++编辑步骤 216
9.3.4 Microsoft Visual C++的帮助 217
9.3.5 Visual C++开发环境概述 217
9.4 C++程序示例 218
9.5 C++对函数功能的增强 220
9.5.1 C++用函数组织程序 220
9.5.2 C++程序是函数驱动的 220
9.6 C++对数据类型的扩充 222
9.6.1 基本数据类型和自定义数据类型 222
9.6.2 从结构到类 223
9.6.3 类与结构的区别 224
9.7 C++对运算符的扩充 225
9.7.1 基本运算符 225
9.7.2 运算符重载 225
9.7.3 运算符作成员函数 227
9.7.4 转换运算符 230
9.7.5 赋值运算符 232
本章小结 234
习题 235
第10章 类与对象 236
10.1 从结构体到类 236
10.2 类的定义与对象的引用 237
10.2.1 类的定义 237
10.2.2 对象成员的访问 239
10.2.3 类与对象的关系 244
10.3 构造函数与析构函数 245
10.3.1 构造函数 245
10.3.2 析构函数 247
10.3.3 调用构造函数和析构函数的时机（对象的生存周期） 249
10.4 函数重载 250
10.5 友元 251
10.6 对象指针 255
10.6.1 运算符new与delete 255
10.6.2 动态地创建类对象 255
10.7 派生类与继承类 261
10.7.1 派生类及其定义 261
10.7.2 单继承的派生类 261
10.7.3 多继承的派生类 268
10.8 虚拟函数与多态性 272
10.8.1 虚拟函数使用方法 272
10.8.2 虚拟函数与重载函数 273
10.8.3 虚拟函数的继承 274
本章小结 275
习题 275
第11章 C++上机预备知识 280
11.1 简单的输入/输出 280
11.2 Visual C++6.0的操作环境 282
11.2.1 Visual C++ 6.0的工作窗口 283
11.2.2 使用Visual C++ 6.0 284
11.3 程序调试——Debug功能 286
本章小结 297
习题 297
参考文献 299