第1章 C程序设计基础 1
1.1 C程序概述 1
1.1.1 C语言简介 1
1.1.2 C语言的程序 1
1.1.3 程序的基本结构 4
1.1.4 C程序的运行 4
1.2 C语言中的常量、变量和标识符 4
1.2.1 常数 4
1.2.2 变量 5
1.2.3 标识符 5
1.3 C语言的基本数据类型 6
1.3.1 数据类型 6
1.3.2 整型数据 7
1.3.3 实型数据 8
1.3.4 字符型数据 8
1.4 运算符和表达式 10
1.4.1 运算符概述 10
1.4.2 算术运算符和算术表达式 10
1.4.3 赋值运算符和赋值表达式 11
1.4.4 逗号运算符和逗号表达式 13
1.4.5 长度运算符 13
1.5 试题选解 13
1.5.1 选择题 13
1.5.2 填空题 16
习题 18
第2章 顺序结构 23
2.1 C语言的语句 23
2.1.1 C语句分类 23
2.1.2 赋值语句 24
2.2 字符的输入和输出 24
2.2.1 字符输出函数putchar 25
2.2.2 字符输入函数getchar 25
2.3 格式输出函数printf 26
2.3.1 printf的格式 26
2.3.2 格式控制串的组成 26
2.3.3 格式字符 27
2.3.4 格式字符中的附加符号 29
2.4 格式输入函数scanf 31
2.4.1 scanf的格式 31
2.4.2 scanf的格式字符 31
2.4.3 scanf的附加格式 32
2.4.4 scanf的使用说明 32
2.5 试题选解 33
2.5.1 选择题 33
2.5.2 填空题 35
习题 36
第3章 选择结构 40
3.1 关系运算和逻辑运算 40
3.1.1 关系运算符和关系表达式 40
3.1.2 逻辑运算符和逻辑表达式 41
3.2 if语句 43
3.2.1 if语句的基本形式 43
3.2.2 if语句的嵌套 45
3.3 switch语句和break语句 48
3.4 条件运算符和条件表达式 51
3.5 试题选解 53
3.5.1 选择题 53
3.5.2 填空题 58
习题 60
第4章 循环结构 70
4.1 实现循环的语句 70
4.1.1 while语句 70
4.1.2 do-while 语句 71
4.1.3 for语句 72
4.2 循环的嵌套 74
4.3 循环中控制语句的使用 75
4.3.1 break语句 75
4.3.2 continue语句 75
4.3.3 goto语句 76
4.4 循环结构的程序设计方法 77
4.5 试题选解 82
4.5.1 选择题 82
4.5.2 填空题 88
习题 90
第5章 构造数据类型——数组 98
5.1 一维数组 98
5.1.1 一维数组的定义 98
5.1.2 引用数组元素 99
5.1.3 一维数组的初始化 100
5.1.4 一维数组的编程举例 100
5.2 二维数组 104
5.2.1 二维数组的定义 104
5.2.2 二维数组的使用 105
5.2.3 二维数组的应用举例 107
5.3 字符数组 110
5.3.1 字符数组的定义 110
5.3.2 字符数组的输入输出 111
5.3.3 输出整个字符串 111
5.3.4 输入整个字符串 112
5.3.5 字符串处理函数 113
5.3.6 用二维字符数组处理多个字符串 115
5.4 试题选解 117
5.4.1 选择题 117
5.4.2 填空题 120
习题 122
第6章 函数 129
6.1 函数的概念及定义 129
6.1.1 函数的概念 129
6.1.2 函数的定义 130
6.2 函数的调用 131
6.2.1 函数的调用方法 131
6.2.2 函数的返回值 132
6.2.3 函数声明 134
6.2.4 函数的特殊调用 134
6.2.5 数组作为函数参数 136
6.3 局部变量和全局变量 137
6.4 变量的存储方式 140
6.5 函数的作用范围 142
6.6 试题选解 143
6.6.1 选择题 143
6.6.2 填空题 146
习题 148
第7章 指针 157
7.1 指针和指针变量的概念 157
7.2 指向变量的指针变量 158
7.2.1 指针变量的定义 158
7.2.2 指针变量参与的运算 159
7.2.3 函数调用时的地址传递 160
7.3 数组和指针 162
7.3.1 一维数组的地址和数组元素的引用 162
7.3.2 二维数组的地址 165
7.3.3 使用指针变量引用二维数组的元素 167
7.3.4 用二维数组的指针作为函数参数 168
7.4 字符串的指针 170
7.5 函数的指针和指向函数的指针变量 172
7.6 指针数组和多级指针 173
7.6.1 指针数组 173
7.6.2 指向指针的指针变量 174
7.6.3 用指针数组作为main函数的命令行参数 175
7.7 试题选解 176
7.7.1 选择题 176
7.7.2 填空题 182
习题 186
第8章 其他构造数据类型 196
8.1 结构体类型 196
8.1.1 结构体类型的定义 196
8.1.2 结构体类型变量、数组 197
8.1.3 指向结构体类型数据的指针变量 200
8.1.4 用结构体变量在函数之间传递数据 201
8.2 用指针处理链表 203
8.2.1 链表的概念 203
8.2.2 单向链表的组成 204
8.3 共用体类型 209
8.4 枚举类型 211
8.5 用typedef定义类型 211
8.6 试题选解 212
8.6.1 选择题 212
8.6.2 填空题 216
习题 216
第9章 编译预处理和位运算 222
9.1 编译预处理 222
9.1.1 宏定义 222
9.1.2 文件包含 225
9.2 位运算 226
9.2.1 位运算符 226
9.2.2 位段 229
9.3 试题选解 230
9.3.1 选择题 230
9.3.2 填空题 232
习题 233
第10章 文件 238
10.1 文件概述 238
10.1.1 数据文件 238
10.1.2 文件类型指针 239
10.1.3 文件结束的判定 239
10.2 文件的打开与关闭 240
10.2.1 打开文件函数fopen 240
10.2.2 文件的使用方式 241
10.2.3 文件的关闭 242
10.3 文件的读写 242
10.3.1 字符的输入输出 242
10.3.2 字符串的输入输出 243
10.3.3 文本文件的格式输入输出 244
10.3.4 二进制文件的块输入输出 246
10.4 文件的定位 247
10.5 试题选解 249
10.5.1 选择题 249
10.5.2 填空题 252
习题 255
C程序设计笔试模拟试题 260
参考答案 265
部分习题答案 266
附录1 C语言中的关键字 272
附录2 C语言的运算符 273
附录3 C语言的函数库 274
附录4 Turbo C集成环境的使用 279
参考文献 282