目录 第1章C语言概述1 1.1初识C语言1 1.1.1C语言的发展史1 1.1.2C语言的特点2 1.1.3第一个C程序4 1.2C语言的语法基础4 1.2.1C语言字符集4 1.2.2标识符5 1.2.3保留字5 1.3设计简单的C程序6 1.3.1赋值语句6 1.3.2printf()函数7 1.3.3scanf()函数9 1.3.4库函数和头文件9 1.4C程序的开发过程11 1.4.1C程序的实现步骤11 1.4.2C语言常用集成开发环境12 1.5程序案例13 1.6习题17 第2章基本数据类型、运算符及表达式20 2.1C语言的数据类型20 2.2常量21 2.3变量25 2.3.1变量的定义25 2.3.2整型变量27 2.3.3实型变量30 2.3.4字符变量32 2.4运算符和表达式342.4.1运算符的分类34 2.4.2运算符的优先级与结合性35 2.4.3算术运算符和算术表达式35 2.4.4增1、减1运算符及表达式37 2.4.5赋值运算符和赋值表达式38 2.4.6关系运算符和关系表达式41 2.4.7逻辑运算符和逻辑表达式43 2.4.8逗号运算符和逗号表达式45 2.4.9sizeof运算符46 2.5数据类型的转换47 2.5.1自动类型转换47 2.5.2强制类型转换48 2.6程序案例49 2.7习题50 第3章顺序结构程序设计53 3.1结构化程序设计基础53 3.1.1算法的概念53 3.1.2算法的特点54 3.1.3算法的描述55 3.1.4结构化程序设计59 3.2输入语句62 3.3输出语句67 3.3.1字符输出函数和字符输出语句67 3.3.2格式输出函数和格式输出语句68 3.4程序案例75 3.5习题77 第4章选择结构和循环结构程序设计83 4.1if语句83 4.1.1if语句的分类83 4.1.2if语句的嵌套88 4.1.3条件运算符和条件表达式90 4.2switch语句91 4.3选择结构程序设计案例95 4.4while语句97 4.5do...while语句99 4.6for语句102 4.7循环嵌套107 4.8break语句和continue语句108 4.9语句标号和goto语句111 4.10循环结构程序设计案例112 4.11习题113 第5章数组120 5.1数组的概念120 5.2一维数组121 5.2.1一维数组的定义121 5.2.2一维数组元素的引用122 5.2.3一维数组的初始化123 5.2.4一维数组的应用124 5.3二维数组128 5.4字符数组131 5.5程序案例139 5.6习题141 第6章函数145 6.1C程序的模块化设计145 6.2函数的定义148 6.3函数的参数与返回值150 6.4函数的调用151 6.4.1函数调用的一般格式152 6.4.2函数调用的方式152 6.4.3对被调函数的声明154 6.4.4函数的嵌套调用155 6.4.5函数的递归调用157 6.5数组作为函数参数161 6.6变量的作用域和存储类别164 6.6.1变量的作用域164 6.6.2变量的存储类别166 6.6.3局部变量的存储类别166 6.6.4全局变量的存储类别172 6.7函数的作用域和存储类别175 6.8程序案例176 6.9习题179 第7章编译预处理188 7.1宏定义188 7.1.1不带参数的宏定义188 7.1.2带参数的宏定义191 7.1.3取消宏定义195 7.2文件包含195 7.3条件编译198 7.4程序案例201 7.5习题201 第8章指针207 8.1指针概述207 8.1.1内存地址与变量的地址207 8.1.2指针与指针变量208 8.2指针变量209 8.2.1指针变量的定义与初始化209 8.2.2指针变量的引用210 8.2.3指针变量作为函数的参数213 8.3通过指针引用数组217 8.3.1指向数组元素的指针217 8.3.2指针变量的运算217 8.3.3通过指针引用数组元素220 8.3.4数组名和指针变量作函数参数224 8.4指针与字符串227 8.4.1字符串指针变量的定义与使用227 8.4.2使用字符串指针变量与使用字符数组的区别230 8.5指针与函数231 8.5.1函数指针变量231 8.5.2指针型函数233 8.6指针数组和二级指针234 8.7main()函数的形参、动态存储分配和void指针236 8.7.1指针数组作为main()函数的形参236 8.7.2动态存储分配238 8.7.3void指针类型239 8.8程序案例240 8.9习题241 第9章构造数据类型247 9.1结构体247 9.1.1结构体类型声明247 9.1.2结构体变量的定义248 9.1.3结构体变量的初始化及成员的引用252 9.2结构体数组254 9.2.1结构体数组的定义254 9.2.2结构体数组的初始化255 9.3结构体与函数256 9.3.1结构体变量作为函数参数256 9.3.2结构体变量为函数的返回值258 9.4结构体与指针261 9.4.1结构体变量指针261 9.4.2结构体数组指针263 9.4.3用指向结构体的指针作函数参数265 9.5共用体266 9.6枚举类型268 9.7用typedef定义类型270 9.8程序案例272 9.9习题274 第10章文件280 10.1文件概述280 10.1.1文件的概念280 10.1.2文件指针281 10.1.3缓冲文件系统和非缓冲文件系统282 10.2文件的打开和关闭283 10.2.1用fopen()函数打开文件283 10.2.2用fclose()函数关闭文件286 10.3文件的顺序读/写287 10.3.1文本文件中字符的输入/输出287 10.3.2文本文件中字符串的输入/输出288 10.3.3文本文件的格式化输入/输出290 10.3.4二进制文件的输入/输出291 10.4文件的随机读/写292 10.5文件检测函数293 10.6程序案例294 10.7习题296 第11章C语言程序设计上机实训301 11.1VC++6.0集成开发环境的使用301 11.1.1VC++6.0开发环境概述301 11.1.2建立控制台应用程序311 11.1.3多文件C程序的开发318 11.1.4项目中文件的删除和插入320 11.2C语言程序设计上机实训内容322 11.2.1实训1C语言程序的运行环境和运行方法322 11.2.2实训2顺序结构程序设计323 11.2.3实训3选择结构程序设计325 11.2.4实训4循环结构程序设计326 11.2.5实训5数组327 11.2.6实训6函数329 11.2.7实训7编译预处理332 11.2.8实训8指针334 11.2.9实训9构造数据类型337 11.2.10实训10文件339 11.2.11实训11C语言程序设计项目开发342 参考文献358 附录A常用字符与ASCII代码对照表359 附录B运算符的优先级和结合性360