内容简介
本书采用通俗易懂的语言,全面系统地介绍了C语言程序设计的基本概念、面向过程的编程思想和方法以及解决实际问题的技巧。注重C语言在学科中的基础地位,在整体结构上进行了精心的构思,侧重于对专业发展有影响的内容。在章节结构上做了合理的安排,将概念、知识点与案例相结合,应用实例贯穿于本书始终,尽可能地贴切读者的接受能力,力求将复杂的概念用简洁浅显的语言来描述,做到深入浅出。本书是集众多长期从事C语言教学工作的一线教师的经验和体会,并参考大量的国内外有关资料编写而成。本书配有《C语言程序设计实验指导与课程设计》辅助教材,给出了详细的主教材习题解答。本书可作为高等院校各专业计算机程序设计教学用书,以及计算机爱好者自学用书和各类工程技术人员的参考书。
图书目录
第1章C语言概述1
1.1程序与程序设计语言1
1.1.1程序1
1.1.2程序设计语言2
1.1.3程序设计3
1.1.4结构化程序及设计步骤4
1.2算法概述4
1.2.1算法的含义5
1.2.2算法的特性6
1.2.3算法的表示7
1.3C语言概况8
1.4C程序的开发过程与开发环境11
1.4.1C程序的开发过程11
1.4.2C程序的调试11
1.4.3TurboC开发程序方法12
1.4.4VisualC++6.0开发程序方法13
本章小结16
习题117
第2章C程序设计基础19
2.1C语言语法基础19
2.1.1基本字符集19
2.1.2C语言词汇19
2.1.3语句21
2.1.4标准库函数22
2.2数据与数据类型23
2.3常量24
2.3.1数值常量24
2.3.2字符常量26
2.3.3字符串常量27
2.3.4符号常量27
2.4变量28
2.4.1变量的定义28
2.4.2整型变量29
2.4.3实型变量30
2.4.4字符变量31
2.5各类数值型数据间的混合运算及数据类型转换32
2.6数据的输入与输出34
2.6.1格式输出函数printf34
2.6.2格式输入函数scanf38
2.6.3单字符输入输出函数41
2.7基本运算符和表达式43
2.7.1运算符、表达式、优先级和结合性43
2.7.2算术运算符与算术表达式45
2.7.3赋值运算符与赋值表达式46
2.7.4自增、自减运算符与表达式49
2.7.5关系运算符与关系表达式50
2.7.6逻辑运算符与逻辑表达式51
2.7.7逗号运算符及逗号表达式53
2.7.8条件运算符与条件表达式54
2.7.9sizeof运算符54
本章小结55
习题256
第3章程序流程控制59
3.1顺序结构程序设计59
3.2选择结构程序设计59
3.2.1if语句59
3.2.2switch语句64
3.3循环结构程序设计66
3.3.1while语句66
3.3.2do-while语句69
3.3.3for循环69
3.3.4循环的嵌套71
3.3.5几种循环的比较73
3.4几种控制语句73
3.4.1break语句73
3.4.2continue语句74
3.4.3return语句75
3.4.4goto语句75
3.5程序设计举例76
本章小结81
习题382
第4章数组86
4.1一维数组86
4.1.1一维数组的定义、初始化86
4.1.2一维数组元素的引用87
4.2二维数组与多维数组90
4.2.1二维数组定义、初始化90
4.2.2二维数组元素的引用92
4.2.3多维数组94
4.3字符串数组和字符串95
4.3.1字符数组的定义与初始化95
4.3.2字符串与字符数组96
4.3.3字符数组的输入和输出97
4.3.4字符串处理函数99
4.4程序设计举例103
本章小结105
习题4106
第5章模块设计112
5.1函数的概念112
5.2模块的实现--函数114
5.2.1函数的定义114
5.2.2函数的调用118
5.2.3函数的声明118
5.3函数调用中参数的传递119
5.3.1值传递方式120
5.3.2地址传递方式121
5.3.3数组作为函数参数121
5.4变量的存储类别与作用域125
5.4.1变量的作用域:局部变量和全局变量125
5.4.2变量的存储类别129
5.5函数的嵌套调用与递归调用134
5.5.1函数的嵌套调用134
5.5.2函数的递归调用136
5.6程序设计举例137
5.7编译预处理139
5.7.1文件包含139
5.7.2条件编译140
5.7.3宏定义与宏替换141
本章小结145
习题5145
第6章指针149
6.1地址与指针的概念149
6.2指针变量的定义与引用151
6.2.1指针变量的定义151
6.2.2指针变量的引用151
6.3指针的运算153
6.4指针变量作为函数参数155
6.5指针与数组158
6.5.1指向一维数组的指针变量158
6.5.2数组指针作函数参数161
6.5.3指向二维数组的指针变量164
6.5.4内存的动态分配167
6.6指针与字符串169
6.6.1字符串的指针表示169
6.6.2字符串指针作函数参数171
6.6.3字符串指针变量与字符数组的区别172
6.7指针数组173
6.7.1指针数组的概念173
6.7.2带参数的main函数175
6.8指针与函数177
6.8.1指针型函数177
6.8.2指向函数的指针变量178
6.8.3指向函数的指针变量作函数参数179
6.9程序设计举例181
本章小结187
习题6190
第7章结构体与共用体196
7.1结构体类型的定义196
7.2结构体类型变量的定义及其初始化197
7.2.1结构体变量的定义197
7.2.2结构体变量的初始化199
7.3结构体类型变量的引用200
7.4结构体数组202
7.4.1结构体数组的定义与初始化202
7.4.2对结构体数组元素的操作203
7.4.3结构体数组作为函数参数204
7.5指向结构体的指针206
7.5.1指向结构体变量的指针206
7.5.2指向结构体数组的指针207
7.6结构体与函数209
7.7链表212
7.7.1链表的概念212
7.7.2单链表的建立212
7.7.3单链表的基本操作216
7.8共用体类型221
7.8.1共用体的定义与引用221
7.8.2共用体与结构体的不同223
7.9枚举类型224
7.10用typedef重定义类型名226
7.11程序设计举例227
本章小结234
习题7234
第8章位运算241
8.1几个基本概念241
8.2位运算符和位运算242
8.3位域(位段)245
8.4程序设计举例246
本章小结248
习题8249
第9章文件250
9.1文件及文件指针250
9.1.1文件的概念250
9.1.2文件指针251
9.2文件的打开与关闭252
9.3文件的读写253
9.3.1字符读写函数fgetc和fputc253
9.3.2字符串读写函数fgets和fputs256
9.3.3数据块读写函数fread和fwrite257
9.3.4格式化读写函数fscanf和fprintf258
9.4文件的随机读写260
9.4.1文件定位260
9.4.2文件的随机读写261
9.5文件检测函数262
9.6程序设计举例263
本章小结265
习题9265
第10章综合实训269
10.1通讯录管理程序269
10.1.1项目要求及分析269
10.1.2总体设计269
10.1.3代码实现270
10.1.4测试结果277
10.2学生成绩管理系统278
10.2.1项目要求及分析278
10.2.2总体设计278
10.2.3代码实现279
10.2.4测试结果291
本章小结292
第11章C++语言概述293
11.1面向过程和面向对象编程概述293
11.2C++语言的发展过程295
11.3将C源程序简单改写成C++源程序295
11.4面向过程和面向对象的程序设计方法比较296
本章小结298
习题11298
附录A标准ASCII码表300
附录B运算符的优先级和结合性301
附录CC语言的库函数303
参考文献308