为你推荐
致本书读者
前言
第1章 程序设计ABC
1.1 计算机与人
1.2 计算机与程序设计语言
1.3 程序设计语言的故事
1.4 C语言的故事
1.5 程序设计语言的工作原理
1.6 本章小结
习题1
第2章 数据类型、运算符与表达式
2.1 一个简单的C程序例子
2.2 C程序常见符号分类
2.3 数据类型
2.4 常量
2.5 变量
2.6 常用运算符及表达式
2.7 赋值和表达式中的类型转换
2.8 本章小结
习题2
第3章 键盘输入与屏幕输出
3.1 C语句分类
3.2 表达式语句
3.3 复合语句和空语句
3.4 基本的输入/输出操作
3.5 本章小结
习题3
第4章 程序的控制结构
4.1 算法及其描述方法
4.2 顺序结构
4.3 选择结构
4.4 循环结构
4.5 流程转移控制语句
*4.6 程序调试与排错
*4.7 结构化程序设计方法简介
4.8 本章小结
习题4
第5章 函数
5.1 程序设计的艺术
5.2 函数的定义与使用
5.3 变量的作用域和存储类型
5.4 函数封装
5.5 预处理指令
5.6 使用assert()查错
5.7 模块和链接
*5.8 模块化程序设计方法简介
*5.9 递归
5.10 本章小结
习题5
第6章 数组
6.1 数组类型的应用场合
6.2 数组的定义、引用和初始化
6.3 向函数传递一维数组
6.4 向函数传递二维数组
6.5 字符数组
6.6 本章小结
习题6
第7章 指针
7.1 指针概述
7.2 指针和数组间的关系
7.3 指针数组
*7.4 函数指针
*7.5 带参数的main()函数
*7.6 动态数组的实现
*7.7 使用const修饰指针变量
*7.8 代码风格
7.9 本章小结
习题7
第8章 结构体与共用体
8.1 结构体的应用场合
8.2 结构体类型与结构体变量
8.3 结构体数组
8.4 向函数传递结构体
*8.5 动态数据结构
8.6 共用体
8.7 本章小结
习题8
第9章 文件操作
9.1 计算机中的流
9.2 文件
9.3 基本文件操作
9.4 高级文件操作
9.5 本章小结
习题9
第10章 C程序设计常见错误及解决方案
条款1:使用未初始化和未赋值的变量
条款2:不考虑数值溢出的可能
条款3:不用sizeof()获得类型或变量的字长
条款4:假定类型取值范围
条款5:期望两个整数的运算自动得出浮点数的结果
条款6:不预先判断除数是否为0
条款7:混淆“&,|”与“&&,||”
条款8:使用依赖编译器求值顺序的语句
条款9:使用依靠算符优先级的表达式
条款10:表达式过于复杂
条款11:用“==”时误用“=”
条款12:用“==”比较两个浮点数
条款13:使用幻数
条款14:printf()和scanf()中格式控制字符串与参数类型不匹配
条款15:循环或判断语句以“;”结尾
条款16:在循环体内改变循环结束条件
条款17:case分支不用break结束
条款18:switch-case语句没有default分支
条款19:不声明函数原型
条款20:不定义函数参数或返回值的类型
条款21:有返回值的函数不用return指明返回值
条款22:调用函数后,不检查函数是否正确执行
条款23:变量、函数和模块功能不单一
条款24:函数过长
条款25:函数的参数过于复杂
条款26:返回指向局部变量的指针
条款27:随意修改全局变量的值
条款28:数组下标越界
条款29:字符串没有'\0'终结符
条款30:使用不限制最大处理长度的字符串处理函数
条款31:用malloc()申请的内存不用free()
条款32:使用已经被free()的指针
条款33:文件打开后不主动关闭
条款34:成对函数不在同一个模块或函数内调用
条款35:头文件不加宏定义锁
条款36:忽略编译器警告
条款37:用“复制+粘贴”的方式复用代码
条款38:在字符串和注释以外的地方使用全角字符
条款39:代码风格不佳
条款40:代码与注释不一致
附录A 常用基本概念、名词、语句、运算符、数据类型和算法索引表
附录B C关键字
附录C Visual C++下各数据类型所占字节数和取值范围
附录D C运算符的优先级与结合性
附录E ASCII码的字符编码
附录F ASCII码和ASCII扩展码字符表
附录G 常用的ANSI C标准库函数
参考文献
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜