目录 C语言程序设计第1章引言1 1.1C语言的发展1 1.2C语言的特点2 1.3C程序结构2 1.3.1C程序的基本组成2 1.3.2算法5 1.3.3C程序的三种基本结构6 1.4C程序的实现7 1.4.1C程序的开发步骤7 1.4.2C程序的编辑8 1.4.3C程序的调试12 1.4.4C程序的编译、连接及执行14 1.4.5项目的保存和打开16 1.5常见错误分析16 本章小结18 习题19 第2章数据类型及其运算22 2.1标识符和关键字22 2.1.1标识符22 2.1.2关键字23 2.2常量与变量24 2.2.1常量24 2.2.2变量24 2.3数据类型25 2.3.1整型数据26 2.3.2实型数据28 2.3.3字符型数据31 2.4数据类型的转换32 2.4.1隐式类型转换32 2.4.2强制类型转换33 2.5运算符和表达式34 2.5.1算术运算符和算术表达式35 2.5.2赋值运算符和赋值表达式36 2.5.3自增自减运算符37 2.5.4逗号运算符和逗号表达式39 2.6数据的输入和输出40 2.6.1格式输入函数scanf40 2.6.2格式输出函数printf43 2.6.3字符输入函数getchar()45 2.6.4字符输出函数putchar()45 2.7赋值语句和顺序结构程序设计46 2.7.1赋值语句46 2.7.2顺序结构程序设计47 2.8数学函数48 2.9应用举例51 2.10常见错误分析53 本章小结60 习题61 C语言程序设计目录 第3章选择结构及其应用67 3.1关系运算符和关系表达式67 3.1.1关系运算符67 3.1.2关系表达式68 3.1.3优先级和结合性68 3.2逻辑运算符和逻辑表达式69 3.2.1逻辑运算符69 3.2.2逻辑表达式69 3.2.3优先级和结合性70 3.3if语句71 3.3.1if分支71 3.3.2ifelse分支74 3.3.3嵌套的if语句79 3.4switch语句82 3.5条件运算符和条件表达式88 3.6应用举例88 3.7常见错误分析93 本章小结97 习题97 第4章循环结构及其应用103 4.1while循环语句103 4.2dowhile循环语句108 4.3for循环语句112 4.4三种循环语句的比较118 4.5循环嵌套121 4.6break语句和continue语句129 4.6.1break语句129 4.6.2continue语句133 4.7goto语句和标号135 4.8应用举例137 4.9常见错误分析148 本章小结151 习题151 第5章数组160 5.1一维数组160 5.1.1一维数组的定义和引用160 5.1.2一维数组的初始化166 5.1.3一维数组应用举例167 5.2二维数组172 5.2.1二维数组的定义和引用172 5.2.2二维数组的初始化173 5.2.3二维数组应用举例174 5.3字符数组和字符串177 5.3.1字符数组的定义和初始化178 5.3.2字符串179 5.3.3字符数组的输入和输出181 5.3.4字符串处理函数183 5.3.5字符数组应用举例186 5.4常见错误分析189 本章小结193 习题193 第6章函数198 6.1函数概述198 6.1.1函数的概念198 6.1.2库函数200 6.2用户自定义函数201 6.2.1函数定义的格式201 6.2.2形式参数和实际参数202 6.2.3函数的返回值206 6.3函数的调用207 6.3.1函数调用的一般形式208 6.3.2函数的调用方式208 6.3.3函数调用的过程210 6.3.4函数的原型声明211 6.3.5函数的参数传递212 6.4函数的嵌套调用和递归调用214 6.4.1函数的嵌套调用214 6.4.2函数的递归调用215 6.5数组作为函数的参数220 6.5.1一维数组名作为函数的参数220 6.5.2二维数组名作为函数的参数224 6.6局部变量和全局变量228 6.6.1局部变量228 6.6.2全局变量230 6.7变量的存储类别233 6.7.1局部变量的存储类别234 6.7.2全局变量的存储类别237 6.8内部函数和外部函数238 6.8.1内部函数239 6.8.2外部函数239 6.9应用举例239 6.10常见错误分析244 本章小结247 习题248 第7章预处理命令256 7.1宏定义256 7.1.1不带参数的宏定义257 7.1.2带参数的宏定义259 7.1.3撤销宏定义命令261 7.2文件包含命令262 7.3条件编译命令265 7.4常见错误分析268 本章小结270 习题270 第8章指针275 8.1变量的地址和指针276 8.2指针变量的定义277 8.3指针运算278 8.3.1取地址运算符278 8.3.2指针运算符278 8.3.3赋值运算279 8.3.4空指针与void指针281 8.4指针与函数282 8.4.1指针作为函数参数282 8.4.2指针作为函数的返回值288 8.4.3函数指针289 8.5指针与数组293 8.5.1一维数组的指针表示293 8.5.2二维数组的指针表示301 8.5.3指针与字符串310 8.6指针数组和指向指针的指针313 8.6.1指针数组313 8.6.2指向指针的指针316 8.7应用举例318 8.8常见错误分析321 本章小结323 习题324 第9章结构体与共用体332 9.1结构体332 9.1.1结构体类型的定义333 9.1.2结构体变量的定义334 9.1.3用typedef定义数据类型337 9.1.4结构体变量的引用338 9.1.5结构体变量的初始化339 9.2结构体数组340 9.2.1结构体数组的定义341 9.2.2结构体数组的初始化341 9.2.3结构体数组的引用342 9.3结构体指针变量344 9.3.1指向结构体变量的指针344 9.3.2指向结构体数组的指针345 9.3.3结构体变量和结构体指针变量作为函数参数345 9.4链表348 9.4.1链表的类型及定义349 9.4.2处理动态链表的函数351 9.4.3动态链表的基本操作352 9.4.4栈和队列360 9.5共用体361 9.6枚举类型363 9.7应用举例363 9.8常见错误分析371 本章小结374 习题374 第10章文件382 10.1文件概述382 10.2文件类型指针383 10.3文件的打开、读写和关闭384 10.3.1文件的打开函数fopen( )384 10.3.2文件的关闭函数fclose( )386 10.3.3文件的读写386 10.3.4文件读写函数的选择396 10.4文件的定位396 10.5应用举例400 10.6常见错误分析405 本章小结405 习题406 第11章项目实战: 学生成绩管理系统413 11.1系统设计413 11.1.1需求分析413 11.1.2总体设计414 11.1.3数据结构设计415 11.2功能设计415 11.2.1主控模块415 11.2.2显示学生信息模块420 11.2.3输入学生信息模块422 11.2.4删除学生信息模块426 11.2.5查询学生信息模块428 11.2.6修改学生信息模块431 11.2.7插入学生信息模块433 11.2.8统计学生成绩模块436 11.2.9学生成绩排序模块438 11.2.10保存学生信息模块441 11.3本章小结443 附录A常用字符与ASCII代码对照表444 附录B运算符的优先级和结合性表445 附录CC语言的关键字446 附录D常用标准库函数447 参考文献454