目 录 第一篇 程序设计基础篇 第1章 程序设计与C语言 3 1.1 程序设计及算法 4 1.1.1 程序及程序设计 4 1.1.2 算法 5 1.2 程序设计语言 9 1.2.1 程序设计语言的发展历程 9 1.2.2 C语言的发展历程 10 1.2.3 C语言的特点 11 1.3 C语言的程序结构 12 1.3.1 C语言程序的基本词汇符号 12 1.3.2 C语言程序的基本结构与 框架 12 1.3.3 简单C程序示例 14 1.4 C语言程序的开发环境 16 1.4.1 C语言程序的开发过程 16 1.4.2 Visual C++集成开发环境 介绍 17 1.4.3 运行Visual C++程序的 步骤与方法 18 1.4.4 Dev-C++集成开发环境介绍 21 1.4.5 运行Dev-C++程序的步骤与 方法 22 1.4.6 有关开发环境的问题 27 本章小结 28 习题1 28 第2章 C语言程序设计基础 31 2.1 数据的表现形式 32 2.1.1 数据的表现形式概述 32 2.1.2 常量 32 2.1.3 变量 35 2.2 C语言的数据类型 37 2.2.1 数据类型概述 37 2.2.2 整型数据 38 2.2.3 实型数据 41 2.2.4 字符型数据 43 2.3 C语言运算符与表达式 45 2.3.1 运算符与表达式概述 45 2.3.2 算术运算符及表达式 46 2.3.3 自增自减运算符及表达式 47 2.3.4 赋值运算符及表达式 49 2.4 数据类型转换 50 2.4.1 自动转换 50 2.4.2 强制转换 50 本章小结 51 习题2 52 第3章 顺序结构程序设计 57 3.1 C语言的基本语句 58 3.2 字符数据的输入输出 59 3.2.1 字符输入函数getchar() 59 3.2.2 字符输出函数putchar() 61 3.3 格式输入输出 62 3.3.1 格式输入函数scanf() 62 3.3.2 格式输出函数printf() 64 3.3.3 格式输入输出函数的应用 67 3.4 顺序结构程序示例 71 本章小结 75 习题3 76 第4章 选择结构程序设计 81 4.1 关系运算符与关系表达式 82 4.1.1 关系运算符 82 4.1.2 判等运算符 82 4.1.3 关系表达式 83 4.2 逻辑运算符与逻辑表达式 83 4.2.1 逻辑运算符 83 4.2.2 逻辑表达式 85 4.3 条件运算符与条件表达式 85 4.4 if语句 86 4.4.1 if语句的三种形式 87 4.4.2 if语句的嵌套 90 4.4.3 “else悬空”问题 92 4.5 switch语句 92 4.6 选择结构程序示例 95 本章小结 99 习题4 100 第5章 循环结构程序设计 105 5.1 为什么需要循环结构 106 5.2 while语句 107 5.2.1 while语句的形式 107 5.2.2 while语句的执行过程 107 5.2.3 while语句的应用 108 5.3 do…while语句 112 5.3.1 do…while语句的形式 112 5.3.2 do…while语句的执行过程 112 5.3.3 while和do…while循环的 比较 112 5.3.4 do…while语句的应用 114 5.4 for语句 115 5.4.1 for语句的形式 115 5.4.2 for语句的执行过程 115 5.4.3 for语句的应用 116 5.4.4 for语句的变形 118 5.5 嵌套循环 120 5.6 循环控制和流程的控制转移 123 5.6.1 循环控制 123 5.6.2 流程的控制转移 125 5.7 循环结构程序示例 127 本章小结 130 习题5 131 第二篇 程序设计进阶篇 第6章 同一类型多个元素的 集合——数组 139 6.1 一维数组 140 6.1.1 一维数组的定义 140 6.1.2 一维数组的引用 141 6.1.3 一维数组的初始化 142 6.1.4 一维数组程序示例 142 6.2 二维数组 146 6.2.1 二维数组的定义 146 6.2.2 二维数组的引用 147 6.2.3 二维数组的初始化 149 6.2.4 二维数组程序示例 149 6.3 字符数组与字符串 152 6.3.1 字符数组的定义 152 6.3.2 字符数组的初始化 152 6.3.3 字符数组的引用 153 6.3.4 字符串和字符串结束标志 154 6.3.5 字符数组的输入输出 155 6.3.6 字符串处理函数 155 6.3.7 字符数组程序示例 160 本章小结 162 习题6 163 第7章 模块化程序设计——函数 167 7.1 函数概述 168 7.1.1 为什么需要函数 168 7.1.2 模块化程序设计的思想 169 7.1.3 函数的概念 171 7.1.4 函数的分类 172 7.2 函数定义 174 7.2.1 函数定义的结构 174 7.2.2 定义空函数 174 7.2.3 函数定义的形式 175 7.3 函数调用 176 7.3.1 函数调用概述 176 7.3.2 函数的声明 178 7.3.3 函数调用的形式 179 7.3.4 函数调用时的数据传递 180 7.3.5 函数参数传递的方式 183 7.4 数组作为函数的参数 184 7.4.1 数组元素作函数的参数 184 7.4.2 数组名作函数的参数 185 7.4.3 多维数组名作函数的参数 187 7.5 函数的嵌套调用 188 7.6 函数的递归调用 191 7.6.1 递归及递归调用 191 7.6.2 递归问题的分类及解决方法 193 7.7 变量的作用域与存储方式 198 7.7.1 变量的作用域 199 7.7.2 变量的存储方式 201 本章小结 202 习题7 203 第8章 C语言的精华——指针 207 8.1 指针的概念 208 8.2 指针变量 209 8.2.1 指针变量的定义 209 8.2.2 指针变量的赋值 210 8.2.3 指针变量的引用 211 8.3 指针与数组 214 8.3.1 指针与一维数组 214 8.3.2 指向数组的指针作函数 参数 218 8.3.3 指针与二维数组 221 8.4 指针与字符串 225 8.4.1 字符串的表示形式 225 8.4.2 字符指针作函数参数 228 8.5 指向函数的指针 229 8.5.1 指向函数的指针变量 229 8.5.2 指向函数的指针变量作函数 参数 231 8.6 返回指针的函数 232 8.6.1 返回指针型函数的定义 形式 232 8.6.2 返回指针的函数的应用 232 8.7 指针数组 233 8.7.1 指针数组的概念 233 8.7.2 指针数组作main函数的 形参 234 本章小结 235 习题8 236 第三篇 程序设计高级篇 第9章 用户自己建立数据类型 241 9.1 结构体的概念 242 9.1.1 结构体类型的定义 242 9.1.2 结构体类型变量的定义及 初始化 243 9.1.3 结构体类型变量成员的引用 245 9.2 结构体数组 247 9.2.1 结构体数组的定义 248 9.2.2 结构体数组的初始化 248 9.2.3 结构体数组的使用 249 9.3 指向结构体类型数据的指针 251 9.3.1 指向结构体变量的指针 252 9.3.2 指向结构体数组的指针 254 9.4 共用体 255 9.4.1 共用体类型的定义 256 9.4.2 共用体变量的定义 256 9.4.3 共用体变量的引用 257 9.5 用typedef定义数据类型 259 9.6 用户自己建立数据类型的程序设计 示例 261 9.7 链表 265 9.7.1 链表概述 265 9.7.2 内存管理库函数 266 9.7.3 链表的应用 267 本章小结 269 习题9 270 第10章 编译预处理 273 10.1 宏定义 274 10.1.1 不带参数的宏定义 274 10.1.2 带参数的宏定义 275 10.2 文件包含 277 10.3 条件编译 279 本章小结 282 习题10 283 第11章 文件 287 11.1 文件概述 288 11.1.1 为什么需要文件 288 11.1.2 文件的分类 289 11.1.3 缓冲文件系统 290 11.1.4 文件类型的指针 291 11.2 文件的打开与关闭 291 11.2.1 文件的打开 291 11.2.2 文件的关闭 293 11.3 文件的读写 293 11.3.1 字符读写函数:fgetc和 fputc 293 11.3.2 字符串读写函数:fgets和 fputs 295 11.3.3 数据块读写函数:fread和 fwrite 296 11.3.4 格式化读写函数:fscanf和 fprintf 298 11.4 文件的定位 299 11.5 文件检测函数 301 本章小结 302 习题11 302 第12章 位运算 305 12.1 位运算概述 306 12.2 逻辑位运算 307 12.2.1 按位取反运算 307 12.2.2 按位与、或和异或运算 307 12.3 移位运算 308 12.3.1 按位左移运算 308 12.3.2 按位右移运算 309 12.4 位运算的混合运算 310 12.5 位段 311 本章小结 313 习题12 314 附录一 常用字符与ASCII代码 对照表 317 附录二 C语言中的关键字及含义 318 附录三 C语言运算符的优先级和 结合性 319 附录四 C语言常用的库函数 320 参考文献 324