目录Contents 第一部分基 础 入 门 第1章C语言程序设计入门3 1.1计算机、算法与程序3 1.1.1计算机的基本原理简介3 1.1.2计算机语言4 1.1.3算法与程序6 1.2结构化程序设计描述方法7 1.2.1结构化程序设计描述方法简介7 1.2.2简单程序分析10 1.3C语言的优缺点及程序设计原理12 1.3.1C语言的发展历史12 1.3.2C语言的优缺点14 1.3.3C语言程序设计的工作原理14 1.3.4简单的C语言实例15 1.4C语言开发环境介绍18 1.4.1Code::Blocks18 1.4.2DevC++24 1.4.3GCC26 1.4.4调试程序实例27 1.5本章小结33 1.6习题34 第2章C语言基础知识36 2.1C语言标识符36 2.2C语言的数据类型37 2.3输入输出函数39 2.3.1格式化屏幕输出函数printf()39 2.3.2格式化键盘输入函数scanf()422.3.3printf()和scanf()函数常见错误44 2.3.4其他输入输出函数45 2.4常量和变量46 2.4.1常量46 2.4.2变量50 2.5运算符和表达式52 2.5.1运算符和表达式简介52 2.5.2算术运算符及表达式53 2.5.3赋值运算符及表达式54 2.5.4自增、自减运算符及表达式55 2.5.5求字节运算符sizeof56 2.5.6逗号运算符及表达式56 2.6本章小结57 2.7习题59 ◆深入浅出C语言程序设计(第3版·微课版)目录第3章选择结构65 3.1C语言语句分类65 3.2条件判断表达式的设计67 3.2.1关系运算符及表达式67 3.2.2逻辑运算符及表达式68 3.2.3关系表达式和逻辑表达式常见错误69 3.3if语句70 3.3.1单分支if语句70 3.3.2双分支if语句72 3.3.3多分支if语句76 3.3.4if语句的嵌套结构78 3.4switch语句81 3.5条件运算符及表达式84 3.6选择结构综合实例86 3.7本章小结90 3.8习题92 第4章循环结构96 4.1while语句96 4.1.1while语句的一般形式96 4.1.2while语句常见错误99 4.2dowhile语句101 4.3for语句103 4.3.1for语句的一般形式103 4.3.2for语句缺省表达式的形式104 4.3.3比较三种循环语句106 4.4循环嵌套107 4.5break语句111 4.6continue语句114 4.7goto语句116 4.8循环结构综合实例117 4.9本章小结119 4.10习题120 第二部分进 阶 提 高 第5章数组127 5.1为何要使用数组127 5.2一维数组127 5.2.1一维数组定义127 5.2.2一维数组元素引用128 5.2.3一维数组初始化129 5.2.4一维数组常见错误130 5.2.5一维数组应用举例131 5.3二维数组133 5.3.1二维数组定义133 5.3.2二维数组元素引用134 5.3.3二维数组初始化134 5.3.4二维数组应用举例135 5.4数组综合实例138 5.5本章小结141 5.6习题142 第6章函数146 6.1为何要使用函数146 6.2函数定义147 6.2.1函数的分类147 6.2.2用户自定义函数148 6.2.3函数定义的格式149 6.2.4函数定义的四种形式151 6.3函数调用151 6.3.1函数调用的格式151 6.3.2参数传值154 6.3.3函数调用的三种形式155 6.3.4函数常见错误156 6.4函数声明157 6.5函数嵌套调用158 6.6变量的作用范围和存储类别160 6.6.1变量的作用范围160 6.6.2变量的存储类别162 6.7函数递归调用166 6.8编译预处理命令168 6.8.1文件包含168 6.8.2宏定义169 6.8.3条件编译命令172 6.9函数综合实例173 6.10本章小结175 6.11习题176 第7章指针180 7.1为何要使用指针180 7.2指针变量182 7.2.1指针变量定义182 7.2.2指针变量赋值183 7.2.3指针变量间接引用184 7.2.4指针变量常见错误186 7.3指针与函数187 7.3.1指针作为函数参数(参数传地址)187 7.3.2指针作为函数返回值191 7.4指针与一维数组192 7.4.1指针的算术运算和关系运算192 7.4.2指针指向一维数组193 7.4.3函数与一维数组196 7.5指针与二维数组200 7.5.1指向指针的指针200 7.5.2指针数组与二维数组200 7.5.3行指针与二维数组202 7.5.4函数与二维数组204 7.6指针综合实例204 7.7本章小结206 7.8习题208 第8章字符串213 8.1字符串的概念213 8.2字符数组与字符串214 8.2.1字符数组初始化字符串214 8.2.2字符串的输入输出215 8.2.3字符数组与字符串编程实例217 8.2.4字符数组与字符串常见错误218 8.3字符指针与字符串218 8.3.1字符指针指向字符串219 8.3.2字符指针与字符串编程实例220 8.3.3比较字符数组与字符指针222 8.4字符串处理函数222 8.4.1求字符串长度函数222 8.4.2字符串复制函数224 8.4.3字符串连接函数226 8.4.4字符串比较函数227 8.5字符串数组228 8.5.1二维数组构造字符串数组228 8.5.2指针数组构造字符串数组229 8.5.3比较二维数组和指针数组230 8.6字符串综合实例230 8.7本章小结231 8.8习题233 第三部分高 级 应 用 第9章构造类型241 9.1为何要使用构造类型241 9.2结构体242 9.2.1定义结构体类型242 9.2.2使用typedef命名结构体类型243 9.2.3结构体变量244 9.2.4结构体指针248 9.2.5结构体数组250 9.2.6结构体与函数253 9.3共用体258 9.3.1定义共用体类型258 9.3.2共用体变量260 9.4枚举类型263 9.5构造类型综合实例264 9.6本章小结265 9.7习题266 第10章文件270 10.1文件概述270 10.1.1为什么要使用文件270 10.1.2文件分类270 10.1.3文件指针271 10.1.4文件操作步骤272 10.2文件的打开与关闭272 10.2.1文件打开273 10.2.2文件关闭275 10.3文件读写函数275 10.3.1文件的格式化读写276 10.3.2文件的字符读写278 10.3.3文件的字符串读写279 10.3.4文件的数据块读写281 10.3.5文件结束判断283 10.4文件的定位283 10.4.1文件定位函数283 10.4.2获取位置函数284 10.4.3反绕函数285 10.5文件综合实例286 10.6本章小结288 10.7习题289 第11章位运算292 11.1位运算符292 11.1.1为什么需要位运算292 11.1.2位运算符分类292 11.1.3按位逻辑运算293 11.1.4移位运算295 11.2位运算综合实例297 11.3本章小结299 11.4习题300 第12章指针高级应用302 12.1指针的动态存储分配302 12.1.1为何要使用动态存储分配302 12.1.2动态存储分配与释放303 12.1.3动态一维数组305 12.1.4动态二维数组306 12.2链表307 12.2.1链表概述307 12.2.2链表的创建与输出308 12.2.3链表的插入操作310 12.2.4链表的删除操作311 12.3函数指针313 12.4main()函数的参数315 12.5本章小结316 12.6习题317 附录A常用字符及ASCII码表322 附录BC语言关键字324 附录CC语言运算符优先级和结合性326 附录DC语言常用库函数328 附录E部分习题参考答案333 参考文献338