C/C++程序设计教程
书号:9787113095512 套系名称:普通高等学校计算机教育规划教材
作者:张世民 主编 出版日期:2009-02-01
定价:30.00 页码 / 开本:274 /16
策划编辑:杨勇 责任编辑:秦绪好
适用专业:无 适用层次:本科/高职高专
最新印刷时间:
本书主要内容包括预备知识、基本数据类型和表达式、C程序的流程控制、复杂数据类型、结构化程序设计的应用、函数和预处理、文件和面向对象程序设计。用Visual C++ 6.0作为调试和运行程序的环境。本书各章后附有多种类型的习题,可帮助学生从多个角度掌握所学内容。
本书适合作为高等院校“C程序设计”课程的教材,也可作为参加计算机等级考试和其他自学者的参考用书。高级语言程序设计是高等学校重要的计算机基础课程。这是一门以培养学生程序设计基本方法和技能为目标、以实践能力为重点的特色鲜明的课程。它以编程语言为平台,介绍高级语言程序设计的知识,在实践中逐步掌握程序设计的思想和方法,培养分析问题、解决问题和程序设计的能力。
C语言是国内外广泛使用的计算机程序设计语言之一,是国内外大学普遍开设的程序设计课程。C++是目前广泛使用的面向对象的程序设计语言。
C/C++语言程序设计是一门实践性很强的课程。学习者必须在深入理解教材知识的基础上,通过大量的上机实践加强程序设计技术的基本技能训练,从而逐步理解和掌握编程的基本思想和调试程序的能力。
我们编写本教材,力求突出以下特点:
① 符合C语言程序设计教学要求,按照大一新生第一次接触计算机语言零起点的角度组织编写,删繁就简,针对性强,教学内容循序渐进,符合学习规律。
② 书中示例丰富,习题类型多样、难易适中,覆盖面广,例题和习题突出了编程能力训练的重要性,多角度加深学生对程序设计思想的理解,提高编程能力。
全书共8章,主要内容包括预备知识、基本数据类型和表达式、C程序的流程控制、复杂数据类型、结构化程序设计的应用、函数和预处理、文件和面向对象程序设计。另外,每章均配有精心安排的多种类型的习题,以帮助提高学生学习兴趣和主动性,帮助学生多角度掌握所学内容。
本书的作者长期从事C/C++程序设计语言课程的教学工作,并利用C/C++等语言开发过多个软件项目,有着丰富的教学经验和较强的科研能力,对C/C++程序设计有比较深入的理解和掌握。
本书使用较流行的Visual C++ 6.0作为调试和运行程序的环境。本书中所给出的程序示例均在Visual C++ 6.0环境下通过调试与运行。
本书由张世民主编。各章编写分工如下:第1章由梁普选、杨秦建编写,第2章由李颖编写,第3章由李媛、李颖编写,第4章由王美华编写,第5章由张立岩、郑琨编写,第6章由张世民、刘志超编写,第7章由刘志超编写,第8章由梁普选、杨秦建编写。全书由张世民统稿。
本书适合作为高等院校“C程序设计”课程的教材,也可作为参加计算机等级考试和其他自学者的参考用书。
在编写本书的过程中参考了很多教材,在此向这些作者表示感谢。同时,向对教材提出中肯建议的老师表示谢意和致敬。由于作者水平有限,书中难免会有疏漏和不足之处,敬请读者指正。编 者
2008年11月第1章 预备知识 1
1.1 计算机软件基础 1
1.2 C语言发展史 2
1.3 C语言特征 3
1.4 C语言学习方法 5
1.5 程序与算法 6
1.6 C程序开发过程 7
1.7 Visual C++集成环境介绍 8
1.7.1 初识Visual C++ 8
1.7.2 Visual C++集成环境的使用 9
习题1 11
第2章 基本数据类型和表达式 12
2.1 C的数据类型 12
2.2 常量 12
2.2.1 整型常量 13
2.2.2 实型常量 13
2.2.3 字符常量 13
2.2.4 字符串常量 15
2.2.5 符号常量 15
2.3 变量 16
2.3.1 整型变量 17
2.3.2 实型变量 19
2.3.3 字符变量 20
2.3.4 变量赋初值 22
2.3.5 各类数值型数据的混合运算 22
2.4 库函数的使用 23
2.5 C的运算符与表达式 24
2.5.1 C运算符简介 24
2.5.2 算术运算符和算术表达式 25
2.5.3 逗号运算符和逗号表达式 27
2.5.4 表达式举例 28
习题2 30
第3章 C程序的流程控制 34
3.1 C语句 34
3.2 赋值语句 36
3.2.1 赋值表达式 36
3.2.2 赋值语句 36
3.2.3 复合赋值运算 37
3.2.4 用赋值语句实现简单计算 37
3.3 输入/输出 39
3.3.1 格式输出函数(printf()函数) 39
3.3.2 格式输入函数(scanf()函数) 42
3.3.3 字符输出函数(putchar()函数) 44
3.3.4 字符输入函数(getchar()函数) 45
3.4 顺序结构程序设计 46
3.5 选择结构 48
3.5.1 关系运算符和关系表达式 48
3.5.2 逻辑运算符和逻辑表达式 49
3.5.3 if语句 50
3.5.4 switch语句 58
3.5.5 选择结构程序举例 60
3.6 循环结构 62
3.6.1 goto语句 63
3.6.2 while语句 63
3.6.3 do…while语句 64
3.6.4 for语句 66
3.6.5 三种循环语句的比较 69
3.6.6 循环结构的嵌套 69
3.6.7 break和continue语句 70
3.6.8 循环结构程序举例 72
习题3 73
第4章 复杂数据类型 84
4.1 数组 84
4.1.1 数组的概念 84
4.1.2 一维数组 85
4.1.3 二维数组 88
4.1.4 字符数组 91
4.2 指针 95
4.2.1 指针和指针变量概念 95
4.2.2 指针变量的定义及其运算 96
4.2.3 指针变量和数组 99
4.2.4 字符串指针变量和字符串 105
4.2.5 指针数组与多级指针 107
4.3 结构体 108
4.3.1 结构体的定义 109
4.3.2 定义结构体类型变量的方法 109
4.3.3 结构体变量的引用 111
4.3.4 结构体变量的赋值和初始化 111
4.3.5 结构体数组的定义 112
4.3.6 结构体指针变量的说明和使用 113
4.4 共用体 115
4.4.1 共用体的概念 115
4.4.2 对共用体变量的访问方式 116
4.4.3 共用体类型数据的特点 116
4.5 枚举类型 116
4.5.1 枚举类型的定义和枚举变量的说明 116
4.5.2 枚举类型变量的赋值和使用 117
4.6 类型定义符typedef 117
习题4 118
第5章 结构化程序设计的应用 125
5.1 结构化程序设计思想 125
5.1.1 结构化程序设计思想 125
5.1.2 使用N-S图和流程图表示基本结构 126
5.2 选择和循环的应用 127
5.3 指针的应用 144
5.3.1 数组与指针 144
5.3.2 字符串与指针 148
5.3.3 指针数组与指向指针的指针 149
5.4 结构体的应用 151
5.4.1 结构体数组 151
5.4.2 结构体的嵌套定义 152
5.4.3 结构体指针 153
5.4.4 动态存储分配——链表 154
习题5 158
第6章 函数和预处理 165
6.1 函数概述 165
6.2 函数的定义和调用 166
6.2.1 无参函数的定义 166
6.2.2 有参函数的定义 167
6.2.3 函数的参数和返回值 168
6.2.4 函数的调用 169
6.3 函数间的参数传递 170
6.3.1 值传递 171
6.3.2 地址传递 171
6.3.3 数组作函数参数 172
6.3.4 指针数组名作函数参数 176
6.4 函数的嵌套调用和递归调用 177
6.4.1 函数的嵌套调用 177
6.4.2 函数的递归调用 178
6.5 变量的作用域和存储类别 181
6.5.1 变量的作用域 181
6.5.2 变量的存储类别 184
6.6 内部函数和外部函数 186
6.6.1 内部函数 186
6.6.2 外部函数 186
6.7 带参数的main()函数 187
6.8 编译预处理 188
6.8.1 概述 188
6.8.2 宏定义 189
6.8.3 文件包含 195
6.8.4 条件编译 196
6.9 程序举例 198
习题6 203
第7章 文件 212
7.1 文件的基本概念 212
7.2 文件类型指针 213
7.3 文件的打开与关闭 214
7.3.1 文件打开函数fopen() 214
7.3.2 文件关闭函数fclose() 216
7.4 文件的读/写 216
7.4.1 字符读写函数fgetc()和fputc() 216
7.4.2 字符串读写函数fgets()和fputs() 220
7.4.3 数据块读写函数fread()和fwrite() 221
7.4.4 格式化读写函数fscanf()和fprintf() 223
7.5 文件的随机读/写 225
7.5.1 rewind()函数 225
7.5.2 fseek()函数 225
7.5.3 ftell()函数 227
7.6 文件检测函数 227
7.6.1 文件结束标志检测函数feof() 227
7.6.2 读/写文件出错检测函数ferror() 227
7.6.3 文件错误标志和文件结束标志置0函数clearerr() 227
习题7 227
第8章 面向对象程序设计 231
8.1 C++的输入/输出 231
8.1.1 数据输出 231
8.1.2 数据输入 232
8.1.3 输入/输出的应用 232
8.2 类的定义 234
8.2.1 基本概念 234
8.2.2 类定义 235
8.3 对象及对象初始化 238
8.3.1 对象 238
8.3.2 访问数据成员 239
8.3.3 对象初始化 241
8.4 构造函数重载及参数的缺省值 242
8.4.1 理解函数重载 242
8.4.2 构造函数重载 243
8.4.3 函数参数的缺省值 245
8.5 静态成员及友元 246
8.5.1 静态数据成员 246
8.5.2 静态成员函数 247
8.5.3 友元函数 247
8.6 对象数组和对象指针 249
8.6.1 对象数组 249
8.6.2 对象指针 251
8.6.3 指向类成员的指针 252
8.7 综合实例 252
8.8 基类和派生类 254
8.8.1 基本概念 254
8.8.2 单继承 254
8.8.3 多重继承 261
8.9 虚函数与多态性 263
8.9.1 虚函数 264
8.9.2 多态性实例 265
8.10 运算符重载 267
8.10.1 类成员函数格式 267
8.10.2 友元函数格式 268
习题8 269
参考文献