第1章 C语言概述 1
1.1 C语言发展历史 1
1.1.1 C语言出现的历史背景 1
1.1.2 C语言标准 1
1.2 C语言的基本语法 2
1.2.1 C语言的字 2
1.2.2 C语言中的词 3
1.2.3 C语言的语句 4
1.2.4 C语言的基本结构 5
1.3 Visual C++ 6.0编程环境 6
1.3.1 VC的编辑环境 6
1.3.2运行 6
1.3.3调试 7
1.4 dev-cpp编程环境 7
1.4.1第一次使用 7
1.4.2编译与运行 9
1.4.3常见故障 9
1.5编程解决问题的过程 9
1.5.1编程解决问题的步骤 9
1.5.2算法及其描述工具 9
1.6小结 10
习题 11
第2章 基本C语言程序设计 12
2.1常量、变量与数据类型 12
2.1.1案例描述 12
2.1.2计算机的内存 12
2.1.3什么是常量 13
2.1.4什么是变量 13
2.1.5什么是数据类型 15
2.1.6不同数据类型的常量与变量 15
2.2基本的运算符和表达式 18
2.2.1案例描述 18
2.2.2赋值运算符和赋值表达式 19
2.2.3算术运算符和算术表达式 19
2.2.4关系运算符和关系表达式 20
2.2.5逻辑运算符和逻辑表达式 21
2.2.6随机数产生函数 22
2.2.7程序解析 22
2.3特殊运算符和表达式 23
2.3.1自增、自减运算符 23
2.3.2逗号运算符和逗号表达式 23
2.3.3条件运算符和条件表达式 24
2.3.4位运算符 24
2.4类型转换 25
2.4.1自动类型转换 26
2.4.2强制类型转换 26
2.5基本的输入输出函数 27
2.5.1案例描述 27
2.5.2输出函数printntf() 27
2.5.3输入函数scanf() 29
2.5.4程序解析 32
2.6常用数学库函数 32
2.7顺序结构程序设计 33
2.8小结 34
习题 34
第3章 选择结构程序设计 37
3.1显示输入的字母、数字或其他字符的ASCII码值 37
3.1.1案例描述 37
3.1.2字符输入和输出函数getchar()和putchar() 37
3.1.3字符串输入和输出函数gets()和puts() 39
3.1.4 if语句 40
3.1.5程序解析 41
3.2销售提成问题 42
3.2.1案例描述 42
3.2.2 if嵌套语句 42
3.2.3程序解析 43
3.3学生成绩与等级 43
3.3.1案例描述 43
3.3.2 switch语句 44
3.3.3程序解析 47
3.4小结 48
习题 48
第4章 循环结构程序设计 53
4.1蜡烛燃烧之谜(while循环) 53
4.1.1案例描述 53
4.1.2 while语句 54
4.1.3程序解析 56
4.2口令程序(do-while循环) 57
4.2.1案例描述 57
4.2.2 do-while语句 57
4.2.3程序解析 57
4.3阶乘问题(for循环) 59
4.3.1案例描述 59
4.3.2 for语句 60
4.3.3 goto语句和if语句构成循环 61
4.3.4转移语句 63
4.3.5程序解析 65
4.4杨辉三角形问题(多重循环) 65
4.4.1案例描述 65
4.4.2循环的嵌套 66
4.4.3程序解析 68
4.5综合应用 69
4.6小结 71
习题 71
第5章 函数 74
5.1自定义函数求E=1+1/1!+1/2!+…+1/10! 74
5.1.1案例描述 74
5.1.2自定义函数 75
5.1.3函数的调用 76
5.1.4程序解析 78
5.2变量的作用域与存储类别 79
5.2.1局部变量 79
5.2.2全局变量 80
5.2.3存储类别 81
5.3递归问题——求n! 83
5.3.1案例描述 83
5.3.2递归函数 83
5.3.3程序解析 83
5.4编译预处理 85
5.4.1宏定义 85
5.4.2文件包含命令 87
5.4.3条件编译 88
5.5综合应用 88
5.6小结 89
习题 90
第6章 数组 91
6.1一组数据的排序 91
6.1.1案例描述 91
6.1.2一维数组的定义 92
6.1.3一维数组的引用 92
6.1.4一维数组的初始化 93
6.1.5程序解析 94
6.1.6一维数组的应用 96
6.2矩阵转置 96
6.2.1案例描述 96
6.2.2二维数组的定义 97
6.2.3二维数组元素的引用 97
6.2.4二维数组的初始化 97
6.2.5程序解析 98
6.2.6多维数组 99
6.3判断字符串是否是回文 99
6.3.1案例描述 99
6.3.2字符数组与字符串的区别 99
6.3.3字符数组的定义及初始化 100
6.3.4字符数组的输入/输出 100
6.3.5字符串处理函数 101
6.3.6程序解析 104
6.4选择法排序 105
6.4.1案例描述 105
6.4.2数组元素和数组名作函数参数 105
6.4.3程序解析 105
6.5综合应用 107
6.6小结 108
习题 108
第7章 指针 109
7.1通过地址找同学 109
7.1.1案例描述 109
7.1.2地址 109
7.1.3指针类型和指针变量 110
7.1.4案例解析 112
7.2按正向和反向顺序打印字符串 112
7.2.1案例描述 112
7.2.2指针变量的定义 112
7.2.3指针变量的访问 113
7.2.4指针变量的引用 114
7.2.5程序解析 118
7.3指向数组的指针 118
7.3.1数组的指针和指向数组的指针变量 118
7.3.2通过指针引用数组元素 119
7.3.3指向多维数组的指针和指针变量 121
7.3.4动态内存分配 123
7.4字符串的复制 124
7.4.1案例描述 124
7.4.2字符串的表示形式 125
7.4.3字符数组和字符指针 126
7.4.4程序解析 127
7.5指针数组与指向指针的指针 127
7.5.1指针数组 127
7.5.2指针的指针 129
7.6指针与函数 130
7.6.1学生成绩分析——指针作为函数的参数 130
7.6.2调用求两数中较大者的函数——用指针调用函数 132
7.6.3输出对应月份的英文名称——指针型函数 133
习题 135
第8章 结构体 137
8.1学生信息管理 137
8.1.1案例描述 137
8.1.2结构体与结构体变量 138
8.1.3程序解析 140
8.2学生成绩管理 142
8.2.1案例描述 142
8.2.2结构体数组与函数 143
8.2.3程序解析 144
8.3单链表基本操作 147
8.3.1案例描述 147
8.3.2单链表及其基本操作 149
8.3.3程序解析 150
8.3.4利用循环链表解决猴子选大王问题 154
8.4综合应用 157
8.5小结 160
习题 161
第9章 文件 163
9.1将字符串写入文本文件 163
9.1.1案例描述 163
9.1.2文件概述 164
9.1.3文件的打开和关闭 165
9.1.4格式化文件写函数fprintf() 166
9.1.5程序解析 167
9.2从文件中读取学生的信息 168
9.2.1案例描述 168
9.2.2格式化文件读取函数fscanf() 168
9.2.3程序解析 169
9.3复制文件 170
9.3.1案例描述 170
9.3.2字符方式的文件读写函数fgetc()和fputc() 171
9.3.3字符串方式的文件读写函数fgets()和fputs() 172
9.3.4程序解析 173
9.3.5其他文件操作相关函数 173
9.4综合应用 175
9.4.1案例描述 175
9.4.2学生基本信息管理系统的分析和设计 176
9.4.3程序解析 176
9.5小结 178
习题 178
第10章 综合案例 180
10.1案例内容及设计要求 180
10.1.1综合案例目的 180
10.1.2综合案例的内容 180
10.1.3设计要求 180
10.1.4设计报告 181
10.2案例一:贪吃蛇游戏 181
10.2.1设计要求 181
10.2.2总体设计 181
10.2.3设计的具体实现 182
10.2.4调试及解决方法 186
10.2.5运行结果 186
10.3案例二:通讯录管理系统 187
10.3.1课题任务 187
10.3.2设计要求 187
10.3.3总体设计 187
10.3.4详细设计 188
10.3.5代码及注释 190
10.4小结 197
习题 197
附录1 ASCII表 199
附录2 C语言关键字 200
附录3运算符及其优先级 202
附录4基本库函数 204
参考文献 208