第1章 计算机基础知识 1
1.1计算机系统与工作原理 1
1.1.1计算机系统的组成 1
1.1.2计算机硬件系统 2
1.1.3计算机软件系统 4
1.1.4计算机的工作原理 6
1.2数制与编码 7
1.2.1数制的基本概念 7
1.2.2常用的数制 8
1.2.3数制间的转换 12
1.2.4数据在计算机中的表示方式 14
1.2.5字符编码 17
1.2.6汉字编码 19
1.2.7存储单位 22
1.3个人计算机的基本配置及性能指标 24
1.3.1硬件 24
1.3.2操作系统 26
1.4习题 27
一、选择题 27
二、填空题 29
第2章C语言概述 30
2.1 C语言的发展历史 30
2.2 C语言的特点 31
2.3 C语言程序设计初步 32
2.3.1简单的C程序示例 32
2.3.2 C程序结构 34
2.4 C程序在计算机上的执行步骤 35
2.5习题 36
一、选择题 36
二、填空题 37
三、编程题 37
第3章 基本数据类型与常用库函数 38
3.1字符集与标识符 38
3.2数据类型与基本数据类型 39
3.2.1数据类型 39
3.2.2基本数据类型 40
3.3常量与变量 41
3.3.1常量 41
3.3.2符号常量 43
3.3.3变量 44
3.4输入/输出函数 45
3.4.1字符输入/输出函数 45
3.4.2格式输出函数printf 46
3.4.3格式输入函数scanf 49
3.5常用库函数 51
3.6习题 52
一、选择题 52
二、填空题 54
三、编程题 55
第4章 运算符和表达式 56
4.1算术运算符和算术表达式 56
4.2自增、自减运算 59
4.3位运算 59
4.4赋值运算 63
4.5关系运算与逻辑运算 64
4.5.1关系运算 65
4.5.2逻辑运算 66
4.6条件表达式与逗号表达式 67
4.6.1条件表达式 67
4.6.2逗号表达式 69
4.7习题 69
一、选择题 69
二、填空题 70
三、编程题 71
第5章C语言的控制结构 72
5.1算法与程序 72
5.1.1算法 72
5.1.2程序 73
5.2顺序结构 74
5.3选择结构 75
5.3.1 if语句 75
5.3.2 switch语句 80
5.4循环结构 85
5.4.1 while语句 85
5.4.2 do-while语句 86
5.4.3 for语句 88
5.4.4 break语句 90
5.4.5 continue语句 91
5.4.6单重循环程序举例 92
5.4.7多重循环结构 94
5.5习题 97
一、选择题 97
二、填空题 99
三、编程题 99
第6章 数组 101
6.1一维数组 101
6.1.1一维数组的定义 101
6.1.2一维数组的存储形式 102
6.1.3一维数组的初始化 102
6.1.4一维数组的引用 103
6.1.5一维数组的应用举例 103
6.2二维数组 107
6.2.1二维数组的定义 107
6.2.2二维数组的存储形式 107
6.2.3二维数组的初始化 108
6.2.4二维数组的引用 108
6.2.5二维数组应用举例 109
6.3字符数组 111
6.3.1字符数组的定义 111
6.3.2字符数组的初始化 112
6.3.3字符数组的输入和输出 113
6.3.4常用字符串处理函数 114
6.3.5二维字符数组 117
6.3.6字符串应用举例 118
6.4习题 120
一、选择题 120
二、填空题 121
三、编程题 122
第7章 函数 123
7.1函数定义和函数调用 123
7.1.1函数定义 123
7.1.2 return语句 126
7.1.3函数调用 126
7.1.4函数声明 127
7.1.5函数间的参数传递 129
7.2函数的嵌套调用和递归调用 131
7.2.1函数的嵌套调用 131
7.2.2函数的递归调用 132
7.3局部变量和全局变量 135
7.3.1局部变量 135
7.3.2全局变量 136
7.4变量的存储类别 139
7.4.1 auto(自动)变量 139
7.4.2 static(静态)变量 140
7.4.3 register(寄存器)变量 141
7.5内部函数和外部函数 141
7.6习题 142
一、选择题 142
二、填空题 145
三、编程题 146
第8章 编译预处理 148
8.1宏定义 148
8.1.1不带参数的宏定义 148
8.1.2带参数的宏定义 149
8.1.3终止宏定义 151
8.2文件包含 151
8.3条件编译 153
8.4习题 154
一、选择题 154
二、填空题 156
三、编程题 156
第9章 指针 157
9.1指针概述 157
9.1.1指针的概念 157
9.1.2指针变量 158
9.1.3指针运算 160
9.1.4指针作为函数的参数 161
9.2指针与一维数组 163
9.2.1一维数组元素的表示 164
9.2.2数组名作为函数的参数 166
9.3指针与二维数组 169
9.3.1二维数组中的指针 169
9.3.2指向二维数组元素的指针变量 171
9.3.3二维数组的行指针作函数参数 173
9.4指针与字符串 176
9.4.1字符串的表示形式 176
9.4.2字符串指针作函数参数 177
9.5指针与函数 179
9.5.1指向函数的指针 179
9.5.2返回指针的函数 180
9.6指针数组与多级指针 181
9.6.1指针数组的概念 181
9.6.2多级指针的概念 183
9.7习题 184
一、选择题 184
二、填空题 186
三、编程题(要求用指针完成) 188
第10章 结构体与共用体 190
10.1结构体类型的定义 190
10.2结构体类型变量 191
10.2.1结构体类型变量的定义 191
10.2.2结构体变量所占的内存空间 193
10.2.3结构体变量的引用 195
10.3结构体数组 197
10.3.1结构体数组的定义与初始化 197
10.3.2结构体数组的引用 198
10.4结构体和指针 199
10.5结构体和函数 201
10.5.1结构体作函数参数 201
10.5.2返回结构体的函数 204
10.6链表 206
10.6.1简单链表 206
10.6.2处理动态链表所需的库函数 208
10.6.3单向链表的基本操作 209
10.7共用体 218
10.8枚举 219
10.9用typedef定义类型 221
10.10习题 223
一、选择题 223
二、填空题 225
三、编程题 227
第11章 文件 228
11.1文件的基本概念 228
11.2文件的打开与关闭 229
11.2.1文件类型指针 229
11.2.2文件的打开 229
11.2.3文件的关闭 231
11.3文件的读写 231
11.3.1字符读写函数fgetc和fputc 231
11.3.2字符串读写函数fgets和fputs 234
11.3.3数据块读写函数fread和fwrite 235
11.3.4格式化读写函数fscanf和fprintf 237
11.4文件的随机读写 239
11.4.1文件定位 239
11.4.2文件的随机读写 240
11.5综合应用实例——学生成绩管理程序 241
11.6习题 256
一、选择题 256
二、填空题 258
三、编程题 258
附录A C语言中的关键字 259
附录B字符与ASCII码对照表 260
附录C运算符的优先级与结合性 261
附录D常用库函数 262
参考文献 268