本书介绍利用C语言进行计算机程序设计的基本知识。全书共分13章,详细介绍了C语言的基本概念、输入和输出、选择结构、循环结构、数组、函数、编译预处理、指针、结构体与共用体、文件等内容,同时介绍了面向对象程序设计语言C++的基本概念和数据结构的基本内容。另外,每章配有大量例题和习题,便于读者巩固所学知识,掌握程序设计的基本方法与编程技巧。.
本书力求概念叙述准确、严谨,语言简练通俗,条理清晰易读。本书可作为高等院校理工科非计算机专业的“C语言程序设计”课程的教材,同时也可作为工程技术人员学习C语言的自学用书。..
C语言是一种应用非常广泛的结构化程序设计语言,既适合于编写应用软件,又特别适合于编写系统软件。
本书是作者根据多年的教学经验编写而成的,在内容编排上尽量体现出易学的特点,在文字叙述上力求条理清晰,在教材体系上重视理论结合实际,以便于读者低起点、高效率地掌握C语言。
目录
- 前言
- 第1章 C语言概述.1
- 1.1 C语言发展简史1
- 1.2 C语言的特点2
- 1.3 简单C语言程序举例2
- 1.4 C语言程序的组成与结构4
- 1.5 C语言程序的开发步骤5
- 小结6
- 习题6
- 第2章 数据类型.运算符与表达式8
- 2.1 C语言的基本符号8
- 2.1.1 标识符8
- 2.1.2 常量8
- 2.1.3 变量9
- 2.1.4 关键字10
- 2.2 C语言的数据类型10
- 2.2.1 整型数据11
- 2.2.2 实型数据13
- 2.2.3 字符型数据14
- 2.3 运算符和表达式16
- 2.3.1 算术运算符和算术表达式17
- 2.3.2 赋值运算符和赋值表达式18
- 2.3.3 逗号运算符和逗号表达式19
- 2.4 数据类型转换20
- 2.4.1 不同数据类型的数据间的混合运算20
- 2.4.2 强制类型转换21
- 2.5 自增运算和自减运算21
- 2.6 位运算22
- 小结24
- 习题25
- 第3章 数据的输入和输出27
- 3.1 数据的输出27
- 3.1.1 格式输出函数printf27
- 3.1.2 字符输出函数putchar31
- 3.2 数据的输入31
- 3.2.1 格式输入函数scanf31
- 3.2.2 字符输入函数getchar34
- 3.3 应用举例34
- 小结35
- 习题35
- 第4章 选择结构38
- 4.1 关系运算符和关系表达式38
- 4.1.1 关系运算符38
- 4.1.2 关系表达式38
- 4.2 逻辑运算符和逻辑表达式38
- 4.2.1 逻辑运算符38
- 4.2.2 逻辑表达式39
- 4.3 选择语句40
- 4.3.1 if语句40
- 4.3.2 if语句的嵌套42
- 4.3.3 switch语句43
- 4.4 条件运算符和条件表达式45
- 4.5 应用举例46
- 小结50
- 习题50
- 第5章 循环结构53
- 5.1 goto语句与标号53
- 5.2 while循环语句54
- 5.3 do-while循环语句56
- 5.4 for循环语句57
- 5.5 三种循环语句的比较60
- 5.6 循环嵌套60
- 5.7 break语句.continue语句和空语句62
- 5.7.1 break语句62
- 5.7.2 continue语句63
- 5.7.3 空语句64
- 5.8 应用举例65
- 小结68
- 习题68
- 第6章 数组74
- 6.1 数组的概念74
- 6.2 一维数组74
- 6.2.1 一维数组的定义和引用74
- 6.2.2 一维数组的初始化75
- 6.2.3 一维数组应用举例76
- 6.3 二维数组77
- 6.3.1 二维数组的定义和引用77
- 6.3.2 二维数组的初始化78
- 6.3.3 二维数组应用举例78
- 6.4 字符数组80
- 6.4.1 字符数组的定义80
- 6.4.2 字符数组的初始化80
- 6.4.3 字符数组的引用80
- 6.4.4 字符数组与字符串81
- 6.4.5 字符数组的输入和输出82
- 6.4.6 字符串处理函数83
- 6.4.7 字符数组应用举例85
- 小结86
- 习题87
- 第7章 函数91
- 7.1 函数的基本概念91
- 7.1.1 函数的概念91
- 7.1.2 函数的定义92
- 7.1.3 函数的调用94
- 7.1.4 函数参数的传递方式95
- 7.1.5 函数的返回值96
- 7.1.6 函数的原型声明97
- 7.2 数组作为函数参数99
- 7.2.1 一维数组作为函数参数99
- 7.2.2 二维数组作为函数参数101
- 7.2.3 数组作为函数参数的函数调用方式102
- 7.3 函数的嵌套调用和递归调用104
- 7.3.1 函数的嵌套调用104
- 7.3.2 函数的递归调用105
- 7.4 变量的作用域和存储方法108
- 7.4.1 局部变量和全局变量108
- 7.4.2 变量的存储方法111
- 7.5 内部函数和外部函数114
- 7.6 应用举例115
- 小结118
- 习题118
- 第8章 编译预处理124
- 8.1 宏定义124
- 8.1.1 无参宏定义124
- 8.1.2 带参宏定义126
- 8.2 文件包含..128
- 8.2.1 文件包含命令的形式128
- 8.2.2 文件包含的实现过程129
- 8.3 条件编译130
- 8.3.1 条件编译命令的形式130
- 8.3.2 条件编译命令的嵌套132
- 小结133
- 习题133
- 第9章 指针136
- 9.1 指针的基本概念及指针变量的定义136
- 9.1.1 指针的基本概念136
- 9.1.2 指针变量的定义方法136
- 9.2 指针运算137
- 9.2.1 赋值运算137
- 9.2.2 取地址运算137
- 9.2.3 取内容运算138
- 9.2.4 指针表达式与整数相加.减运算139
- 9.2.5 自增.自减运算139
- 9.2.6 同类指针相减运算140
- 9.2.7 关系运算140
- 9.2.8 强制类型转换运算141
- 9.2.9 空指针141
- 9.3 指针变量与一维数组142
- 9.3.1 指针变量与一维数组之间的联系和区别142
- 9.3.2 字符串指针与字符串143
- 9.4 指针与函数144
- 9.4.1 指针作为函数参数144
- 9.4.2 返回指针的函数147
- 9.4.3 函数的指针和指向函数的指针变量148
- 9.5 指针与二维数组150
- 9.5.1 二维数组的结构150
- 9.5.2 二维数组元素及其地址150
- 9.5.3 指针数组152
- 9.5.4 指针与字符串数组153
- 9.5.5 指向数组的指针变量154
- 9.6 二级指针156
- 9.7 内存空间的动态分配158
- 9.7.1 指向void的指针158
- 9.7.2 常用内存管理函数159
- 9.8 main函数的参数159
- 9.8.1 命令行参数160
- 9.8.2 指针数组作为main函数的形参160
- 9.9 应用举例161
- 小结167
- 习题167
- 第10章 结构体与共用体174
- 10.1 结构体类型和结构体变量174
- 10.1.1 结构体类型的定义174
- 10.1.2 结构体变量的定义175
- 10.1.3 结构体变量的引用176
- 10.1.4 结构体变量的初始化177
- 10.2 结构体数组177
- 10.2.1 结构体数组的定义178
- 10.2.2 结构体数组的引用178
- 10.2.3 结构体数组的初始化179
- 10.3 应用举例179
- 10.4 结构体指针变量181
- 10.4.1 结构体指针变量的定义181
- 10.4.2 结构体数组指针182
- 10.5 结构体类型数据在函数间的传递183
- 10.5.1 结构体变量作为函数参数183
- 10.5.2 结构体指针变量作为函数参数184
- 10.5.3 结构体数组作为函数参数185
- 10.6 共用体185
- 10.6.1 共用体类型的定义185
- 10.6.2 共用体变量的定义186
- 10.6.3 共用体变量的引用和初始化186
- 10.7 枚举类型189
- 10.7.1 枚举类型的说明189
- 10.7.2 枚举型变量的定义189
- 10.8 用typedef定义类型191
- 小结192
- 习题193
- 第11章 文件196
- 11.1 文件概述196
- 11.2 文件类型的指针197
- 11.3 文件的打开与关闭197
- 11.3.1 文件的打开函数fopen197
- 11.3.2 文件的关闭函数fclose198
- 11.4 文件的读写198
- 11.4.1 格式化读写函数fscanf和fprintf198
- 11.4.2 向文件读取或写入字符函数fgetc和fputc199
- 11.4.3 读写数据块函数fread和fwrite200
- 11.4.4 读写字符串函数fgets和fputs200
- 11.5 文件的定位201
- 11.5.1 文件指针重定位函数rewind201
- 11.5.2 随机读写函数fseek201
- 11.5.3 取文件指针的位置函数ftell202
- 11.5.4 检测调用文件是否出错的函数ferror203
- 11.5.5 检测文件指针函数feof203
- 小结203
- 习题203
- 第12章 面向对象程序设计与C++基础207
- 12.1 面向对象程序设计的基本思想207
- 12.1.1 结构化程序设计与面向对象程序设计的区别207
- 12.1.2 面向对象程序设计的基本概念209
- 12.2 面向对象程序设计语言C++简介211
- 12.2.1 C++程序结构211
- 12.2.2 C++对C的补充213
- 12.2.3 C++中的类216
- 12.2.4 C++中的构造函数和析构函数218
- 12.2.5 C++中的继承220
- 12.2.6 C++中的多态性.函数重载和虚函数221
- 小结223
- 习题224
- 第13章 数据结构基础226
- 13.1 概述226
- 13.1.1 数据结构的基本概念226
- 13.1.2 算法的基本概念228
- 13.2 线性表229
- 13.2.1 线牲表概述229
- 13.2.2 线性表的存储及运算229
- 13.3 栈和队列233
- 13.3.1 栈233
- 13.3.2 队列235
- 13.4 树与二叉树239
- 13.4.1 树的定义239
- 13.4.2 二叉树240
- 13.4.3 哈夫曼树244
- 13.5 图246
- 13.5.1 图的定义246
- 13.5.2 图的存储结构247
- 13.5.3 图的应用—最小生成树248
- 13.6 查找249
- 13.6.1 顺序查找249
- 13.6.2 折半查找250
- 13.6.3 散列查找251
- 13.7 排序252
- 小结253
- 习题254
- 习题参考答案255
- 附录A TurboC的主要文件259
- 附录B C语言的关键字261
- 附录C 双目算术运算中两边运算量
- 类型转换规律262
- 附录D 运算符的优先级和结合性263
- 附录E 常用字符与ASCII码对照表264
- 附录F 常用库函数266
- 参考文献...270