目 录                                                   第1章C语言和结构化程序设计1 1.1C语言的产生过程及特点1 1.1.1C语言的产生过程1 1.1.2C语言的特点2 1.2C语言程序的结构、书写格式和简单的C语言程序3 1.2.1C语言程序的结构3 1.2.2C语言程序的书写格式4 1.2.3简单的C语言程序4 1.3C语言程序的开发过程及开发环境6 1.3.1C语言程序的开发过程6 1.3.2Turbo C集成开发环境及其使用7 1.3.3Dev C++集成开发环境及其使用10 1.3.4Visual C++开发环境及其使用13 1.4算法和结构化程序设计18 1.4.1算法18 1.4.2结构化程序设计21 1.4.3简单程序的设计21 习题123 第2章数据类型、运算符与表达式24 2.1C语言的数据类型25 2.2常量、变量27 2.2.1常量27 2.2.2变量30 2.2.3变量赋初值31 2.3C语言的运算符和表达式31 2.3.1算术运算符和算术表达式32 2.3.2赋值运算符和赋值表达式34 2.3.3复合的赋值表达式35 2.3.4逗号运算符和逗号表达式35 2.4不同类型数据之间的转换36 2.4.1自动类型转换36 2.4.2强制类型转换38 习题239 第3章顺序结构程序设计41 3.1顺序结构的程序特点42 3.2赋值语句42 3.3数据输入输出43 3.3.1格式输出函数——printf函数43 3.3.2格式输入函数——scanf函数48 3.3.3字符输出函数——putchar函数52 3.3.4字符输入函数——getchar函数53 3.4C语句概述54 3.4.1复合语句54 3.4.2空语句54 3.4.3表达式语句55 3.4.4控制语句55 3.4.5函数调用语句55 3.5应用举例56 习题358 第4章选择结构程序设计60 4.1关系运算符和关系表达式60 4.1.1关系运算符及其优先顺序60 4.1.2关系表达式61 4.2逻辑运算符和逻辑表达式62 4.2.1逻辑运算符及其优先顺序62 4.2.2逻辑表达式63 4.3if语句63 4.3.1if语句与单分支结构63 4.3.2if…else语句与双分支结构64 4.3.3else…if语句与多分支结构65 4.3.4if…else语句的嵌套与分支的嵌套结构67 4.4条件表达式构成的选择结构69 4.4.1条件运算符69 4.4.2条件表达式与双分支结构69 4.5switch语句70 4.5.1break语句70 4.5.2switch语句与多分支结构71 4.6goto语句和标号74 4.7应用举例75 习题479 第5章循环结构程序设计82 5.1while语句与用while语句构成的循环结构83 5.1.1while语句83 5.1.2while构成的循环结构83 5.2do…while语句与用do…while语句构成的循环结构85 5.2.1do…while语句85 5.2.2do…while构成的循环结构85 5.3for语句与用for语句构成的循环结构87 5.3.1for语句87 5.3.2for语句构成的循环结构87 5.4三种循环的比较和嵌套90 5.4.1三种循环的比较90 5.4.2三种循环的嵌套90 5.5循环结构中的break语句和continue语句92 5.5.1循环结构中的break语句92 5.5.2continue语句94 5.6应用举例95 习题5101 第6章数组与字符串105 6.1一维数组105 6.1.1一维数组的定义105 6.1.2一维数组的初始化106 6.1.3一维数组的引用107 6.1.4一维数组应用举例107 6.2二维数组113 6.2.1二维数组的定义113 6.2.2二维数组的初始化114 6.2.3二维数组的引用114 6.2.4二维数组应用举例115 6.3多维数组117 6.4字符数组和字符串119 6.4.1字符数组的定义119 6.4.2字符数组的赋值——字符串的存储方法120 6.4.3字符串的输入121 6.4.4字符串的输出122 6.4.5字符串运算函数123 6.4.6二维字符数组125 6.4.7字符数组和字符串应用举例126 习题6128 第7章函数131 7.1概述131 7.2函数的定义132 7.2.1有参函数定义的一般格式132 7.2.2无参函数定义的一般格式133 7.2.3空函数133 7.3函数的返回值133 7.3.1return语句133 7.3.2函数的返回值134 7.4函数的调用136 7.4.1函数的调用格式136 7.4.2函数调用时的语法要求137 7.4.3调用函数和被调函数之间的数据传递137 7.5函数的声明138 7.6函数的嵌套调用140 7.7函数的递归调用140 7.8库函数的调用142 7.9数组作函数参数147 7.9.1数组元素作函数实参147 7.9.2数组名作函数参数148 7.10应用举例149 习题7151 第8章对函数的进一步讨论154 8.1局部变量和全局变量154 8.1.1局部变量154 8.1.2全局变量155 8.2变量的存储属性156 8.2.1变量的存储类型156 8.2.2局部变量使用的存储类型157 8.2.3全局变量使用的存储类型160 8.3函数的存储属性164 8.3.1内部函数164 8.3.2外部函数165 8.4编译预处理165 8.4.1宏定义165 8.4.2文件包含168 8.4.3条件编译170 习题8172 第9章指针174 9.1地址、指针的概念和指针变量174 9.1.1地址与指针174 9.1.2指针运算符&和175 9.1.3指针变量的定义175 9.1.4指针变量的赋值176 9.1.5指针变量的使用176 9.1.6指针运算178 9.2指针与函数179 9.2.1指针作函数参数179 9.2.2指向函数的指针180 9.2.3返回指针的函数(函数的返回值是指针)182 9.3指针与数组184 9.3.1指针与一维数组184 9.3.2指针与二维数组190 9.3.3指针数组193 9.4指针与字符串195 9.5指向指针的指针196 9.6main函数的参数197 9.7指针与内存的动态存储分配198 9.7.1内存动态存储分配函数198 9.7.2内存动态存储分配函数的应用200 习题9201 第10章用户自己定义的数据类型205 10.1结构体和结构体变量205 10.1.1结构体类型的定义205 10.1.2结构体变量的定义206 10.1.3结构体变量的初始化208 10.1.4结构体变量的引用208 10.1.5结构体变量应用举例209 10.2结构体数组210 10.2.1结构体数组的定义210 10.2.2结构体数组的初始化211 10.2.3结构体数组的引用212 10.2.4结构体数组应用举例212 10.3结构体指针213 10.3.1指向一个结构体变量的指针213 10.3.2指向一个结构体数组的指针215 10.4结构体与函数216 10.4.1结构体的成员作函数参数216 10.4.2结构体变量作函数参数217 10.4.3指向结构体的指针作函数参数218 10.4.4结构体数组作函数参数219 10.4.5函数的返回值是结构体类型222 10.4.6函数的返回值是指向结构体变量或结构体数组元素的指针226 10.5链表228 10.5.1用指针和结构体构成链表229 10.5.2链表的基本操作230 10.6共用体233 10.6.1共用体类型的定义233 10.6.2共用体变量的定义233 10.6.3共用体变量的引用234 10.6.4共用体应用举例235 10.7枚举237 10.7.1枚举类型的定义237 10.7.2枚举变量的定义238 10.7.3枚举变量的引用238 10.7.4枚举应用举例239 10.8用typedef定义新类型名240 习题10241 第11章位运算243 11.1位运算简介243 11.1.1位逻辑运算符243 11.1.2移位运算符245 11.2位赋值运算符246 11.3位段247 11.4应用举例249 习题11251 第12章文件的读写操作253 12.1C文件的概念253 12.2文件的打开和关闭254 12.2.1文件类型指针254 12.2.2fopen函数255 12.2.3fclose函数256 12.3文件的读/写256 12.3.1fgetc和fputc(putc和getc)函数256 12.3.2fread函数和fwrite函数258 12.3.3fscanf函数和fprintf函数261 12.3.4fgets函数和fputs函数262 12.4文件的定位及出错检测264 12.4.1顺序存取和随机存取264 12.4.2rewind函数264 12.4.3fseek函数264 12.4.4ftell函数265 12.4.5出错检测函数265 习题12267 第13章上机实验与指导269 上机实验1C程序的运行环境和运行C程序的方法269 上机实验2数据类型、运算符与表达式270 上机实验3顺序结构程序设计271 上机实验4顺序结构程序设计(续)273 上机实验5选择结构程序设计274 上机实验6选择结构程序设计(续)276 上机实验7循环结构程序设计277 上机实验8循环结构程序设计(续)278 上机实验9选择、循环结构程序设计278 上机实验10一维数组280 上机实验11二维数组280 上机实验12字符数组和字符串282 上机实验13函数(一)283 上机实验14函数(二)284 上机实验15函数(三)285 上机实验16指针(一)286 上机实验17指针(二)287 上机实验18指针(三)288 上机实验19结构体与链表289 上机实验20共用体与枚举289 上机实验21位操作290 上机实验22文件290 第14章总结292 14.1数据的类型及表示形式292 14.1.1数据的类型292 14.1.2数据的表示形式292 14.2运算符与表达式293 14.3算法294 14.4三种基本结构294 14.5用函数实现模块化程序设计294 14.6用文件实现数据的输入输出295 附录AASCII字符编码一览表296 附录BC语言的关键字及其用途297 附录CC语言运算符的优先级别和结合方向299 附录DC语言库函数301 参考文献307