第1章 程序设计入门 1
1.1 简单的C程序 1
1.1.1 一个简单的C程序 1
1.1.2 C程序的结构与书写格式 2
1.2 C程序上机引导 2
1.3 格式化输入/输出 4
1.3.1 数据的输入/输出 4
1.3.2 格式化输出函数printf() 4
1.3.3 格式化输入函数scanf() 5
1.3.4 字符输出函数putchar() 6
1.3.5 字符输入函数getchar() 7
1.4 输入/输出应用案例 7
1.5 自主学习 8
1.5.1 结构化程序设计概念 8
1.5.2 顺序结构程序设计 9
1.5.3 printf()函数的其他格式 10
总结 10
习题 11
第2章 数据类型和运算 13
2.1 数据类型 13
2.1.1 程序引例 13
2.1.2 标识符和关键字 14
2.1.3 常量 15
2.1.4 变量 17
2.2 运算符和表达式 18
2.2.1 算术运算符和算术表达式 19
2.2.2 关系运算符和关系表达式 21
2.2.3 逻辑运算符和逻辑表达式 22
2.2.4 条件运算符和条件表达式 23
2.2.5 赋值运算符和赋值表达式 23
2.2.6 逗号运算符和逗号表达式 24
2.3 数据类型应用案例 25
2.4 自主学习 26
2.4.1 位运算符 26
2.4.2 sizeof运算符 27
2.4.3 混合运算以及数据类型转换 27
总结 29
习题 29
第3章 顺序和选择结构程序 32
3.1 顺序结构程序 32
3.2 选择结构程序设计 32
3.2.1 if语句 33
3.2.2 switch语句 38
3.3 选择结构程序应用案例 41
3.4 自主学习 44
总结 45
习题 45
第4章 循环结构程序 50
4.1 循环结构引例 50
4.2 循环语句 50
4.2.1 while语句 50
4.2.2 do...while语句 52
4.2.3 for语句 53
4.3 break和continue语句 55
4.4 循环的嵌套 57
4.5 循环结构应用案例 59
4.6 自主学习 62
总结 64
习题 64
第5章 数组 68
5.1 数组引例 68
5.2 一维数组 69
5.2.1 一维数组的定义 69
5.2.2 一维数组的初始化 70
5.2.3 一维数组的简单应用 71
5.3 二维数组 76
5.3.1 二维数组的定义 76
5.3.2 二维数组的初始化 77
5.3.3 二维数组简单应用 77
5.4 字符数组 80
5.4.1 字符数组定义与初始化 80
5.4.2 字符串处理函数 82
5.5 数组应用案例 85
5.6 自主学习 87
总结 89
习题 89
第6章 函数 93
6.1 函数定义 93
6.1.1 引例——多边形面积的计算 93
6.1.2 函数定义 95
6.2 函数调用 96
6.2.1 函数调用 96
6.2.2 函数声明 97
6.2.3 函数嵌套和递归调用 98
6.3 参数传递 100
6.3.1 形参和实参 101
6.3.2 传值和传地址 101
6.3.3 数组作为参数 103
6.4 变量的作用域与生存期 106
6.4.1 变量的作用域 106
6.4.2 变量的生存期 108
6.5 函数应用案例 109
6.6 自主学习 113
6.6.1 宏定义 113
6.6.2 图形编程 114
总结 116
习题 116
第7章 指针 120
7.1 指针引例 120
7.2 指针的概念 121
7.2.1 指针变量定义 122
7.2.2 指针变量初始化 122
7.2.3 指针运算 125
7.3 指针与数组 129
7.3.1 指针与一维数组 129
7.3.2 指针与二维数组 133
7.3.3 指向字符串的指针 135
7.3.4 指针数组 137
7.3.5 指向指针的指针 139
7.4 指针与函数 140
7.4.1 指针作为函数参数 141
7.4.2 返回指针的函数 145
7.4.3 指向函数的指针 145
7.5 指针应用案例 147
7.6 自主学习 152
总结 153
习题 153
第8章 数据文件 158
8.1 文件引例 158
8.2 文件的基本概念 159
8.2.1 文件 159
8.2.2 文件指针 159
8.3 文件的打开与关闭 160
8.3.1 文件的打开 160
8.3.2 文件的关闭 161
8.4 文件读/写操作 161
8.4.1 格式化读/写(fscanf和fprintf) 161
8.4.2 字符读/写(fgetc和fputc) 163
8.4.3 字符串读/写(fgets和fputs) 165
8.4.4 数据块读/写(fread和fwrite) 166
8.5 文件应用案例 166
8.6 自主学习 168
8.6.1 文件的定位 168
8.6.2 文件的出错检测 168
总结 169
习题 169
第9章 结构类型和链表 173
9.1 结构体引例 173
9.2 结构体类型 174
9.2.1 结构体类型的定义 174
9.2.2 结构体变量的定义 175
9.2.3 结构体变量赋初值 176
9.2.4 结构体变量的使用 177
9.3 链表 182
9.3.1 指向结构体自身的指针 182
9.3.2 动态分配内存函数 182
9.3.3 链表概述 183
9.3.4 链表的操作 185
9.4 链表应用案例 188
9.5 自主学习 191
9.5.1 类型定义符typedef 191
9.5.2 链表的综合应用 192
总结 196
习题 196
附录A C语言常用函数 202