第一章 C语言的入门知识 1
1.1 简单C语言的格式 1
1.2 标识符、常量和变量 2
1.2.1 认识标识符 2
1.2.2 常量 3
1.2.3 变量 4
1.3 整型数据 4
1.3.1 整型常量的表示方法 4
1.3.2 整型变量 10
1.4 实型数据 11
1.4.1 实型常量 11
1.4.2 实型变量 11
1.5 算术表达式和赋值表达式 12
1.5.1 算术运算符和算术表达式 12
1.5.2 强制类型转换 13
1.5.3 赋值运算符和赋值表达式 13
1.5.4 复合赋值表达式 14
1.6 逗号运算符和自加、自减运算符 15
1.6.1 逗号运算符和逗号表达式 15
1.6.2 自加和自减运算符 15
1.7 位运算 17
课后习题 19
第二章 顺序结构 23
2.1 语句 23
2.2 数据输出 24
2.2.1 printf函数的调用形式 24
2.2.2 printf函数的格式说明 26
2.2.3 printf函数说明 28
2.3 数据输入 29
2.3.1 scanf函数的调用形式 29
2.3.2 scanf函数的格式说明 31
课后习题 32
第三章 选择结构 36
3.1 关系运算 36
3.1.1 C语言的逻辑值 36
3.1.2 关系运算符和关系表达式 36
3.2 逻辑运算 37
3.2.1 逻辑运算符 37
3.2.2 逻辑表达式 37
3.3 if语句 38
3.3.1 if语句结构 38
3.3.2 含else的if语句 40
3.3.3 if-else-if语句结构 41
3.3.4 嵌套的if条件语句 42
3.4 条件表达式、switch语句、goto语句 43
3.4.1 条件表达式 43
3.4.2 switch语句 44
3.4.3 语句标号和goto语句 46
课后习题 47
第四章 循环结构 53
4.1 while语句 53
4.1.1 循环概述 53
4.1.2 while语句 53
4.2 do-while语句 56
4.3 for语句 58
4.4 循环结构的嵌套 60
4.5 break语句和continue语句 61
4.5.1 break语句 61
4.5.2 continue语句 62
课后习题 63
第五章 字符 70
5.1 字符型常量 70
5.1.1 字符编码 70
5.1.2 字符常量 70
5.2 字符型变量 72
5.3 字符的输入与输出 72
5.3.1 使用printf输出字符 72
5.3.2 使用scanf输入字符 73
5.3.3 使用putchar输出字符 74
5.3.4 使用getchar输入字符 74
课后习题 75
第六章 函数 79
6.1 函数的定义与返回值 79
6.1.1 函数的定义 79
6.1.2 函数的返回值 80
6.2 库函数 81
6.3 调用函数 81
6.3.1 函数的调用方式 81
6.3.2 函数调用时的语法要求 82
6.3.3 函数的递归调用 83
6.4 函数声明与数据传递 84
6.4.1 函数声明的形式 84
6.4.2 函数声明的位置 85
6.4.3 函数的参数传递与返回值 85
6.5 标识符的作用域与函数的存储分类 87
6.5.1 局部变量 87
6.5.2 全局变量 88
6.5.3 用extern说明函数 90
6.5.4 用static说明函数 90
课后习题 90
第七章 指针 97
7.1 变量地址与指针 97
7.1.1 变量的地址 97
7.1.2 指针变量 98
7.2 指针变量的操作 98
7.2.1 定义指针变量 98
7.2.2 给指针变量赋值 99
7.2.3 对指针变量操作 101
7.3 指针与函数 104
7.3.1 传值与传址 104
7.3.2 函数返回地址值 106
7.3.3 函数指针 107
课后习题 107
第八章 数组 113
8.1 一维数组 113
8.1.1 一维数组的定义 113
8.1.2 一维数组的初始化 114
8.1.3 一维数组的引用 114
8.1.4 程序举例 115
8.2 二维数组 116
8.2.1 二维数组的定义 116
8.2.2 二维数组的初始化 117
8.2.3 二维数组的引用 118
8.2.4 程序举例 119
课后习题 121
第九章 数组与指针、数组与函数 126
9.1 数组与指针 126
9.1.1 一维数组与指针 126
9.1.2 二维数组与指针 128
9.2 数组与函数 131
9.2.1 一维数组与函数 131
9.2.2 二维数组与函数 133
9.2.3 指针数组与函数 134
课后习题 135
第十章 字符串 141
10.1 字符串的基本概念 141
10.1.1 字符串常量 141
10.1.2 用字符数组处理字符串常量 141
10.1.3 用指针处理字符串常量 143
10.2 字符串操作 144
10.2.1 字符串输入输出 144
10.2.2 字符串处理函数 146
10.3 字符串操作 149
10.3.1 二维字符数组处理字符串数组 149
10.3.2 指针数组处理字符串数组 149
10.3.3 对main函数的深入说明 151
课后习题 152
第十一章 结构体和共同体 161
11.1 用户自定义类型 161
11.2 结构体 162
11.2.1 结构体类型的说明 162
11.2.2 结构体类型的变量、数组和指针变量的定义 163
11.2.3 给结构体变量、数组赋初值 165
11.2.4 引用结构体变量中的成员 165
11.2.5 函数之间结构体变量的数据传递 168
11.3 共同体 170
11.3.1 共同体类型的说明和变量定义 170
11.3.2 共同体变量的引用 171
11.4 链表 173
课后习题 176
第十二章 编译预处理、文件 183
12.1 编译预处理 183
12.1.1 宏定义 183
12.1.2 文件包含 185
12.2 动态内存分配 186
12.2.1 malloc函数 186
12.2.2 calloc函数 187
12.2.3 free函数 187
12.3 文件 188
12.3.1 C文件概述 188
12.3.2 文件指针 188
12.3.3 打开文件(fopen函数) 188
12.3.4 关闭文件(fclose函数) 190
12.3.5 文件操作 190
课后习题 195
附录一 关键字 203
附录二 C语言运算符优先级 204
附录三 常用字符与ASCII码对照表 206
附录四 C语言库函数 207
附录五 全国计算机等级考试二级C语言考试大纲 216