第1篇 基础知识 1
第1章 C语言概述与程序设计基础 1
1.1 C语言发展简史 1
1.2 C语言的特点 1
1.3 简单C语言程序举例 2
1.4 程序设计基础 3
1.4.1 算法概述 4
1.4.2 算法的常用表示方法 4
1.5 Visual C++6.0集成开发环境 6
小结 7
习题 7
第2章 数据类型、运算符与表达式 8
2.1 C语言的基本符号 8
2.1.1 标识符 8
2.1.2 数据类型 9
2.1.3 常量 10
2.1.4 变量 13
2.2 运算符和表达式 13
2.2.1 赋值运算符和赋值表达式 14
2.2.2 算术运算符和算术表达式 16
2.2.3 关系运算符和关系表达式 17
2.2.4 逻辑运算符和逻辑表达式 18
2.2.5 逗号运算符和逗号表达式 20
2.2.6 条件运算符和条件表达式 21
2.2.7 自增运算和自减运算 21
2.3 数据类型转换 22
2.3.1 不同数据类型的数据间的混合运算 23
2.3.2 强制类型转换 24
小结 25
习题 25
第3章 顺序结构程序设计 26
3.1 语句 26
3.2 数据的输入和输出 28
3.2.1 简单格式的输入与输出 28
3.2.2 复杂格式的输入与输出 32
3.2.3 字符数据的输入与输出 36
3.3 顺序结构应用举例 37
小结 38
习题 38
第4章 选择结构程序设计 40
4.1 if语句 40
4.1.1 if语句的三种形式 40
4.1.2 if语句的嵌套 44
4.2 switch语句 47
4.3 选择结构应用举例 48
小结 51
习题 52
第5章 循环结构程序设计 53
5.1 while循环语句 53
5.2 do...while循环语句 54
5.3 for循环语句 55
5.4 循环嵌套 58
5.5 break语句与continue语句 60
5.5.1 break语句的使用 60
5.5.2 continue语句的使用 61
5.6 循环结构应用举例 61
小结 64
习题 65
第6章 数组及其使用 66
6.1 一维数组 66
6.1.1 一维数组的定义和引用 66
6.1.2 一维数组的初始化 67
6.1.3 一维数组程序举例 68
6.2 二维数组 70
6.2.1 二维数组的定义和引用 70
6.2.2 二维数组的初始化 70
6.2.3 二维数组程序举例 71
6.3 字符数组 73
6.3.1 字符数组的定义 73
6.3.2 字符数组的初始化 73
6.3.3 字符数组的引用 73
6.3.4 字符数组与字符串 74
6.3.5 字符数组的输入和输出 74
6.3.6 字符串处理函数 75
6.3.7 字符数组应用举例 78
小结 79
习题 80
第7章 函数及其应用 81
7.1 函数的基本概念 81
7.1.1 函数的概念 81
7.1.2 函数的定义 83
7.1.3 函数的调用 85
7.1.4 函数的参数 87
7.1.5 函数的返回值 88
7.1.6 函数的原型声明 89
7.2 数组作为函数参数 91
7.2.1 数组元素作为函数参数 91
7.2.2 一维数组作为函数参数 92
7.2.3 二维数组作为函数参数 97
7.3 函数的嵌套调用和递归调用 98
7.3.1 函数的嵌套调用 98
7.3.2 函数的递归调用 99
7.4 变量的作用域和存储方法 103
7.4.1 局部变量和全局变量 103
7.4.2 变量的存储方法 106
7.5 预处理命令 110
7.5.1 宏定义 110
7.5.2 文件包含 113
7.5.3 条件编译 114
7.6 函数应用举例 115
小结 119
习题 120
第8章 指针及其应用 122
8.1 地址和指针的概念 122
8.1.1 地址的概念 122
8.1.2 指针的概念 124
8.2 指针变量 124
8.2.1 指针变量的定义 124
8.2.2 指针变量的操作 125
8.2.3 指针变量作为函数参数 128
8.3 指针指向数组 131
8.3.1 指向数组元素的指针 131
8.3.2 指针的运算 132
8.3.3 通过指针引用数组元素 133
8.3.4 指向二维数组元素的指针 136
8.4 指针指向字符串 136
8.4.1 字符指针与字符串指针 137
8.4.2 字符串的表示形式 137
8.4.3 字符指针作为函数参数 138
8.4.4 对使用字符指针变量和字符数组的讨论 139
8.5 指针数组和二级指针 141
8.5.1 指针数组 141
8.5.2 二级指针 143
8.6 动态内存分配与指向它的指针变量 144
8.6.1 什么是内存的动态分配 145
8.6.2 如何实现动态的分配与释放 145
8.7 指针应用举例 147
小结 149
习题 150
第9章 结构体与枚举 151
9.1 结构体类型与结构体变量 151
9.1.1 结构体类型的声明 151
9.1.2 结构体变量的定义 152
9.1.3 结构体变量的引用 153
9.2 结构体数组 154
9.2.1 结构体数组的定义 154
9.2.2 结构体数组的初始化 155
9.2.3 结构体数组的引用 155
9.2.4 结构体数组应用举例 155
9.3 结构体指针 156
9.3.1 指向结构体变量的指针 156
9.3.2 指向结构体数组的指针 157
9.4 结构体类型数据在函数间的传递 157
9.4.1 结构体变量作为函数参数 157
9.4.2 结构体指针变量作为函数参数 158
9.5 枚举类型的使用 159
9.5.1 枚举类型和枚举变量 160
9.5.2 枚举类型变量的赋值和使用 160
9.6 类型定义符typedef 161
小结 162
习题 163
第10章 文件 164
10.1 文件概述 164
10.1.1 文件的概念 164
10.1.2 文件的分类 164
10.1.3 文件缓冲区 165
10.1.4 文件类型指针 165
10.2 文件的打开与关闭 165
10.2.1 打开文件 166
10.2.2 关闭文件 167
10.3 文件的顺序读写 167
10.3.1 格式化读写函数fscanf()和fprintf() 167
10.3.2 字符方式读写函数fgetc()和 fputc() 168
10.3.3 数据块读写函数fread()和fwrite() 170
10.3.4 字符串读写函数fgets()和fputs() 172
10.4 文件的定位与随机读写 174
10.4.1 文件指针重定位函数rewind() 175
10.4.2 随机读写函数fseek() 175
10.4.3 其他相关函数 176
小结 176
习题 177
第2篇 实验指导 178
第1章 实验一般步骤及实验环境 178
1.1 实验的一般步骤 178
1.2 实验环境VC++6.0使用指南 179
第2章 学生成绩管理系统实验案例 185
2.1 实验案例分析 185
2.2 实验内容及要求 191
第3篇 习题及参考答案 199
综合练习题及参考答案 199
模拟试题及参考答案 221
附录 228
附录A 常用字符及其ASCⅡ码对照表 228
附录B 关键字 229
附录C 运算符的优先级和结合性 230
附录D 常用库函数 231
附录E 常用格式说明符 235
附录F VC++6.0编译错误信息 237
附录G 实验案例源程序 240
参考文献 246