第1章 C语言概述 1
1.1 C语言的语法 1
1.1.1 C语言的字 1
1.1.2 C语言的词 1
1.1.3 C语言的词组 3
1.1.4 C语言的语句 3
1.2 C语言编辑环境 5
1.2.1 Visual C编辑环境 5
1.2.2运行C程序的步骤 5
1.3 C语言的发展历史 9
1.4用C语言求解问题的过程 10
1.5本章小结 10
习题1 11
第2章 走进C语言程序设计 12
2.1在屏幕上显示Welcome to China! 12
2.1.1各种类型数据的输出函数printf() 12
2.1.2库函数和头文件 12
2.1.3主函数及自定义函数 15
2.2随机给出一道100以内的加法运算测试题 17
2.2.1常量、变量和基本数据类型 17
2.2.2算术运算符和算术表达式 20
2.2.3赋值运算符和赋值表达式 20
2.2.4关系运算符和关系表达式 20
2.2.5随机数产生技术 21
2.2.6二路决策判断if-clsc语句 22
2.2.7程序解析 23
2.3回答100以内的加法运算测试题 24
2.3.1各种数据类型变量值的输入函数scanf() 24
2.3.2程序解析 26
2.4特色运算符和表达式 26
2.4.1逗号运算符和逗号表达式 26
2.4.2条件运算符和条件表达式 27
2.4.3位运算符 27
2.4.4自增、自减运算符 29
2.5类型转换 30
2.5.1自动类型转换 30
2.5.2强制类型转换 30
2.6常用数学库函数 31
2.7 C程序书写风格 32
2.8本章小结 33
习题2 33
第3章 选择结构程序设计 36
3.1统计输入的一行字符中各类字符的数量 36
3.1.1字符类型 36
3.1.2字符型数据的输入getchar()和输出putchar()函数 38
3.1.3逻辑运算符和逻辑表达式 40
3.1.4多路决策判断else-if语句 41
3.1.5程序解析 44
3.2简单菜单选择响应 46
3.2.1 switch语句 46
3.2.2程序解析 50
3.3个人所得税计算 51
3.3.1多分支结构与嵌套的if语句 51
3.3.2程序解析 54
3.4综合应用——星期几的判断 56
3.5本章小结 57
习题3 57
第4章 循环结构程序设计 60
4.1利用格里高利公式求∏的近似值 60
4.1.1 while循环语句 60
4.1.2程序解析 65
4.2模拟彩票开奖 66
4.2.1 do-while循环语句 66
4.2.2程序解析 68
4.3统计一批学生成绩的最低分 69
4.3.1 for循环语句 69
4.3.2程序解析 73
4.3.3 break语句和continue语句 74
4.4循环结构程序设计 77
4.4.1几种循环的比较 77
4.4.2嵌套循环 77
4.4.3穷举法编程 79
4.5综合应用加法运算测试系统 82
4.6本章小结 83
习题4 83
第5章 函数 87
5.1计算圆的面积 87
5.1.1函数的定义 87
5.1.2函数的调用 91
5.1.3函数的原型声明 92
5.1.4程序解析 93
5.2使用函数编写程序 93
5.2.1函数的应用举例 93
5.2.2程序解析 95
5.3变量与函数 95
5.3.1局部变量与全局变量 95
5.3.2程序解析 97
5.3.3变量作用域与生存期 97
5.3.4静态局部变量、寄存器变量及外部静态变量 99
5.4递归方法在函数中的应用 101
5.4.1递归法 101
5.4.2递归函数 102
5.4.3汉诺塔问题 102
5.4.4程序解析 103
5.5编译预处理 105
5.5.1文件包含命令 105
5.5.2宏定义 105
5.5.3条件编译 106
5.6综合应用——四则运算测试系统 107
5.7本章小结 108
习题5 109
第6章 数组 112
6.1冒泡排序 112
6.1.1一维数组的定义和引用 112
6.1.2一维数组的初始化 113
6.1.3程序解析 114
6.1.4使用一维数组编程 115
6.2矩阵转置 116
6.2.1二维数组的定义和引用 116
6.2.2二维数组的初始化 116
6.2.3程序解析 117
6.2.4使用二维数组编程 118
6.3统计一行英文句子中单词个数 118
6.3.1一维字符数组的定义、初始化和引用 118
6.3.2字符串 119
6.3.3字符串处理函数 119
6.3.4程序解析 121
6.4综合应用——学生成绩统计与分析 122
6.5本章小结 123
习题6 123
第7章 指针 127
7.1通过收发室寻找学生公寓中的某位同学 127
7.1.1地址和指针 127
7.1.2指针变量的定义 127
7.1.3指针变量的初始化 129
7.1.4指针的间接引用 130
7.1.5指针的基本运算 131
7.1.6程序解析 133
7.2狸猫换太子 134
7.2.1指针作为函数的参数 134
7.2.2程序解析 135
7.3选择排序 137
7.3.1指向数组元素的指针 137
7.3.2通过指针引用数组元素 140
7.3.3用数组名作函数参数 141
7.3.4程序解析 142
7.4加密变换 144
7.4.1字符串的表示形式 144
7.4.2字符指针作函数参数 145
7.4.3常用字符串函数 146
7.4.4程序解析 147
7.5动态内存分配 148
7.6字符串排序 149
7.6.1指针数组的概念 150
7.6.2指向指针的指针 150
7.6.3程序解析 152
7.7函数与指针 154
7.7.1指针作为函数的返回值 154
7.7.2指向函数的指针 155
7.7.3函数指针作为函数的参数 157
7.7.4程序解析 157
7.8 const指针 158
7.8.1指向常量的指针 158
7.8.2指针常量 159
7.8.3指向常量的指针常量 160
7.9本章小结 160
习题7 161
第8章 结构体 166
8.1职工工资管理 166
8.1.1结构体的概念与定义 166
8.1.2结构体的嵌套定义 167
8.1.3结构体变量 168
8.1.4结构体数组 172
8.2模拟社会关系 174
8.2.1结构体指针的概念 174
8.2.2结构体指针作为函数参数 176
8.3学生成绩管理的单向链表实现 177
8.3.1链表的概念 177
8.3.2单向动态链表的建立 179
8.3.3插入结点 180
8.3.4删除结点 180
8.3.5遍历链表 181
8.3.6程序解析 184
8.4综合应用——构建手机通讯录 192
习题8 194
第9章 文件 197
9.1将字符串“Welcome to study C program!”写入文件 197
9.1.1文件的概念 197
9.1.2文本文件和二进制文件 198
9.1.3文件结构与文件类型指针 199
9.1.4文件的打开与关闭 200
9.1.5格式化文件写函数fprintf) 203
9.1.6程序解析 204
9.2读取学生基本信息文件 205
9.2.1格式化文件读函数fscanf() 205
9.2.2程序解析 206
9.3复制文件 207
9.3.1程序解析 207
9.3.2字符方式文件读写函数fputc()和fgetc() 208
9.3.3字符串方式文件读写函数fgets()和fputs() 209
9.3.4数据块读写函数fread()和fwrite() 210
9.3.5其他相关函数 212
9.4综合应用——个人收支记账本 213
9.5本章小结 215
习题9 216
附录A 常用字符与ASCII代码对照表 219
附录B C语言基本语法 220
参考文献 233