出版社:人民邮电出版社
年代:2012
定价:69.0
本书是初学者学习C语言的经典之作,以循序渐进的方式介绍了C语言编程方面的知识,并提供了丰富的实例和大量的练习。通过学习实例,并将所学知识用于完成练习,读者将逐步了解、熟悉并精通C语言。
第一周课程
第1天课程 C语言概览
1.1 C语言简史
1.2 为何要使用C语言
1.3 编程前的准备工作
1.4 程序开发周期
1.4.1 创建源代码
1.4.2 编译源代码
1.4.3 链接以创建可执行文件
1.4.4 结束开发周期
1.5 第一个C语言程序
1.6 总结
1.7 问与答
1.8 作业
1.8.1 小测验
1.8.2 练习
TYPE & RUN 1 打印程序清单
第一个TYPE & RUN
第2天课程 C语言程序的组成部分
2.1 一个简短的C语言程序
2.2 程序的组成部分
2.2.1 main函数(第8~23行)
2.2.2 #include编译指令(第2行)
2.2.3 变量定义(第4行)
2.2.4 函数原型(第6行)
2.2.5 程序语句(第11、12、15、16、19、20、22和28行)
2.2.6 函数定义(第26~29行)
2.2.7 程序注释(第1、10、14、18和25行)
2.2.8 使用花括号(第9、23、27和29行)
2.2.9 运行程序
2.2.10 有关精度的说明
2.3 重温程序的组成部分
2.4 总结
2.5 问与答
2.6 作业
2.6.1 小测验
2.6.2 练习
第3天课程 存储信息:变量和常量
3.1 计算机内存
3.2 使用变量存储信息
3.3 数值变量的类型
3.3.1 变量声明
3.3.2 typedef关键字
3.3.3 初始化变量
3.4 常量
3.4.1 字面常量
3.4.2 符号常量
3.5 总结
3.6 问与答
3.7 作业
3.7.1 小测验
3.7.2 练习
第4天课程 语句、表达式和运算符
4.1 语句
4.1.1 空白对语句的影响
4.1.2 创建空语句
4.1.3 使用复合语句
4.2 表达式
4.2.1 简单表达式
4.2.2 复杂表达式
4.3 运算符
4.3.1 赋值运算符
4.3.2 数学运算符
4.3.3 运算符优先级和圆括号
4.3.4 子表达式的计算顺序
4.3.5 关系运算符
4.4 if语句
4.4.1 else子句
4.5 判断关系表达式
4.5.1 关系运算符的优先级
4.6 逻辑运算符
4.7 再谈true/false值
4.7.1 运算符的优先级
4.7.2 复合赋值运算符
4.7.3 条件运算符
4.7.4 逗号运算符
4.8 再谈运算符优先级
4.9 总结
4.10 问与答
4.11 作业
4.11.1 小测验
4.11.2 练习
TYPE & RUN 2 猜数游戏
第5天课程 使用函数封装代码
5.1 函数是什么
5.1.1 函数的定义
5.1.2 函数的用法
5.2 函数的工作原理
5.3 函数和结构化编程
5.3.1 结构化编程的优点
5.3.2 规划结构化程序
5.3.3 从顶向下的方法
5.4 编写函数
5.4.1 函数头
5.4.2 函数的返回类型
5.4.3 函数名
5.4.4 参数列表
5.4.5 函数体
5.4.6 函数原型
5.5 将参数传递给函数
5.6 调用函数
5.7 函数的位置
5.8 内联函数
5.9 总结
5.10 问与答
5.11 作业
5.11.1 小测验
5.11.2 练习
第6天课程 基本的程序流程控制
6.1 数组的基本知识
6.2 控制程序的执行
6.2.1 for语句
6.2.2 嵌套for语句
6.2.3 while语句
6.2.4 嵌套while语句
6.2.5 do…while循环
6.3 嵌套循环
6.4 总结
6.5 问与答
6.6 作业
6.6.1 小测验
6.6.2 练习
第7天课程 信息读写基础
7.1 在屏幕上显示信息
7.1.1 printf函数
7.1.2 格式化字符串
7.1.3 转义序列
7.1.4 使用puts显示消息
7.2 使用scanf函数输入数值数据
7.3 三字符序列
7.4 总结
7.5 问与答
7.6 作业
7.6.1 小测验
7.6.2 练习
第一周复习
第二周课程
第8天课程 使用数值数组
8.1 数组是什么
8.1.1 一维数组
8.1.2 多维数组
8.2 命名和声明数组
8.2.1 初始化数组
8.2.2 初始化多维数组
8.2.3 数组的最大长度
8.3 总结
8.4 问与答
8.5 作业
8.5.1 小测验
8.5.2 练习
第9天课程 指针
9.1 指针是什么
9.1.1 计算机内存
9.1.2 创建指针
9.2 指针和简单变量
9.2.1 声明指针
9.2.2 初始化指针
9.2.3 使用指针
9.3 指针和变量类型
9.4 指针和数组
9.4.1 作为指针的数组名
9.4.2 数组元素的存储
9.4.3 指针算术
9.5 有关指针的注意事项
9.6 数组下标表示法和指针
9.7 将数组传递给函数
9.8 总结
9.9 问与答
9.10 作业
9.10.1 小测验
9.10.2 练习
TYPE & RUN 3 让程序暂停
第10天课程 字符和字符串
10.1 char数据类型
10.2 使用字符变量
10.3 使用字符串
10.3.1 字符数组
10.3.2 初始化字符数组
10.4 字符串和指针
10.5 不存储在数组中的字符串
10.5.1 编译时分配字符空间
10.5.2 malloc函数
10.5.3 使用malloc函数
10.6 显示字符串和字符
10.6.1 puts函数
10.6.2 printf函数
10.7 从键盘读取字符串
10.7.1 使用gets函数输入字符串
10.7.2 使用scanf函数输入字符串
10.8 总结
10.9 问与答
10.10 作业
10.10.1 小测验
10.10.2 练习
第11天课程 结构、共用体和TypeDef
11.1 简单结构
11.1.1 定义和声明结构
11.1.2 存取结构的成员
11.2 复杂结构
11.2.1 包含其他结构的结构
11.2.2 包含数组的结构
11.3 结构数组
11.4 初始化结构
11.5 结构和指针
11.5.1 将指针作为结构的成员
11.5.2 创建指向结构的指针
11.5.3 使用指针和结构数组
11.5.4 将结构作为参数传递给函数
11.6 共用体
11.6.1 定义、声明和初始化共用体
11.6.2 存取共用体的成员
11.7 使用typedef给结构创建别名
11.8 总结
11.9 问与答
11.10 作业
11.10.1 小测验
11.10.2 练习
第12天课程 变量作用域
12.1 作用域是什么
12.1.1 演示作用域
12.1.2 作用域为何重要
12.2 外部变量
12.2.1 外部变量的作用域
12.2.2 何时使用外部变量
12.2.3 extern关键字
12.3 局部变量
12.3.1 静态变量和动态变量
12.3.2 函数参数的作用域
12.3.3 外部静态变量
12.3.4 寄存器变量
12.4 局部变量和main函数
12.5 应使用哪种存储类型
12.6 局部变量和代码块
12.7 总结
12.8 问与答
12.9 作业
12.9.1 小测验
12.9.2 练习
TYPE & RUN 4 机密消息
第13天课程 高级程序流程控制
13.1 提早结束循环
13.1.1 break语句
13.1.2 continue语句
13.2 goto语句
13.3 死循环
13.4 switch语句
13.5 退出程序
13.6 在程序中执行操作系统命令
13.7 总结
13.8 问与答
13.9 作业
13.9.1 小测验
13.9.2 练习
第14天课程 操纵屏幕、打印机和键盘
14.1 流和C语言
14.1.1 何为程序的输入/输出
14.1.2 什么是流
14.1.3 文本流和二进制流
14.1.4 预定义的流
14.2 使用C语言的流函数
14.3 读取键盘输入
14.3.1 字符输入
14.3.2 格式化输入
14.4 控制屏幕输出
14.4.1 使用putchar、putc和fputc输出字符
14.4.2 使用puts和fputs输出字符串
14.4.3 使用printf和fprintf格式化输出
14.5 重定向输入/输出
14.6 何时使用fprintf
14.7 总结
14.8 问与答
14.9 作业
14.9.1 小测验
14.9.2 练习
第二周复习
第三周课程
第15天课程 有关指针的高级主题
15.1 声明指向指针的指针
15.2 指针和多维数组
15.3 指针数组
15.3.1 复习字符串和指针
15.3.2 声明char类型指针数组
15.3.3 范例
15.4 函数指针
15.4.1 声明函数指针
15.4.2 初始化并使用函数指针
15.5 链表
15.5.1 有关链表的基本知识
15.5.2 使用链表
15.5.3 演示简单链表
15.5.4 实现链表
15.6 总结
15.7 问与答
15.8 作业
15.8.1 小测验
15.8.2 练习
第16天课程 使用磁盘文件
16.1 将流与磁盘文件关联起来
16.2 磁盘文件的类型
16.3 文件名
16.4 打开文件
16.5 读写文件数据
16.5.1 格式化文件输入/输出
16.5.2 字符输入/输出
16.5.3 直接文件输入/输出
16.6 文件缓冲技术:关闭和刷新文件
16.7 顺序文件存取和随机文件存取
16.7.1 ftell和rewind函数
16.7.2 fseek函数
16.8 检测文件尾
16.9 文件管理函数
16.9.1 删除文件
16.9.2 给文件重命名
16.9.3 复制文件
16.10 使用临时文件
16.11 总结
16.12 问与答
16.13 作业
16.13.1 小测验
16.13.2 练习
TYPE & RUN 5 计算字符数
第17天课程 操纵字符串
17.1 确定字符串的长度
17.2 复制字符串
17.2.1 strcpy函数
17.2.2 strncpy函数
17.2.3 strdup函数
17.3 拼接字符串
17.3.1 strcat函数
17.3.2 strncat函数
17.4 比较字符串
17.4.1 比较两个完整字符串
17.4.2 比较字符串的一部分
17.4.3 比较字符串时忽略大小写
17.5 查找字符串
17.5.1 strchr函数
17.5.2 strrchr函数
17.5.3 strcspn函数
17.5.4 strspn函数
17.5.5 strpbrk函数
17.5.6 strstr函数
17.6 字符串转换
17.7 其他字符串函数
17.7.1 strrev函数
17.7.2 strset和strnset函数
17.8 将字符串转换为数字
17.8.1 将字符串转换为int
17.8.2 将字符串转换为long值
17.8.3 将字符串转换为long long值
17.8.4 将字符串转换为浮点数
17.9 字符检测函数
17.10 总结
17.11 问与答
17.12 作业
17.12.1 小测验
17.12.2 练习
第18天课程 有关函数的高级主题
18.1 将指针传递给函数
18.2 void类型的指针
18.3 接受可变数目参数的函数
18.4 返回指针的函数
18.5 总结
18.6 问与答
18.7 作业
18.7.1 小测验
18.7.2 练习
第19天课程 函数库
19.1 数学函数
19.1.1 三角函数
19.1.2 指数函数和对数函数
19.1.3 双曲线函数
19.1.4 其他数学函数
19.1.5 演示数学函数
19.2 处理时间
19.2.1 时间的表示
19.2.2 时间函数
19.2.3 使用时间函数
19.3 处理错误
19.3.1 assert宏
19.3.2 头文件errno.h
19.3.3 perror函数
19.4 查找和排序
19.4.1 使用bsearch进行查找
19.4.2 使用qsort进行排序
19.4.3 演示查找和排序
19.5 总结
19.6 问与答
19.7 作业
19.7.1 小测验
19.7.2 练习
TYPE & RUN 6 计算抵押贷款的偿还金额
第20天课程 管理内存
20.1 类型转换
20.1.1 自动类型转换
20.1.2 显式转换
20.2 分配内存的存储空间
20.2.1 使用malloc函数分配内存
20.2.2 使用calloc函数分配内存
20.2.3 使用realloc函数分配更多的内存
20.2.4 使用free函数释放内存
20.3 操纵内存块
20.3.1 使用memset函数初始化内存
20.3.2 使用memcpy复制内存中的数据
20.3.3 使用memmove函数移动内存中的数据
20.4 位的用法
20.4.1 移位运算符
20.4.2 按位逻辑运算符
20.4.3 求补运算符
20.4.4 结构中的位字段
20.5 总结
20.6 问与答
20.7 作业
20.7.1 小测验
20.7.2 练习
第21天课程 编译器的高级用法
21.1 使用多个源代码文件的编程
21.1.1 模块化编程的优点
21.1.2 模块化编程技术
21.1.3 模块的组成部分
21.1.4 外部变量和模块化编程
21.1.5 使用.obj文件
21.1.6 使用生成工具
21.2 C语言的预处理器
21.2.1 #define预处理器编译指令
21.2.2 使用编译指令#include
21.2.3 使用#if、#elif、#else和#endif
21.2.4 使用#if…#endif来帮助调试
21.2.5 避免将头文件包含多次
21.2.6 #undef编译指令
21.3 预定义的宏
21.4 使用命令行参数
21.5 总结
21.6 问与答
21.7 作业
21.7.1 小测验
21.7.2 练习
第三周复习
附加课程
第22天课程 附加课程1 面向对象编程语言
22.1 过程性语言和面向对象语言
22.2 面向对象的特征
22.2.1 多态
22.2.2 封装
22.2.3 继承
22.2.4 使用OOP
22.2.5 C++与C语言的关系
22.2.6 C++程序
22.3 Java编程语言
22.3.1 Java与C和C++的关系
22.3.2 Java的平台独立性
22.3.3 包
22.3.4 Java小程序(applet)和应用程序
22.3.5 Java的类库
22.3.6 使用Java编写一个显示Hello, World的程序
22.4 C#编程语言
22.5 总结
22.6 问与答
22.7 作业
22.7.1 小测验
22.7.2 练习
第23天课程 附加课程2 C++编程语言
23.1 第一个C++程序
23.2 C++的关键字
23.3 C++的数据类型
23.4 声明变量
23.5 运算
23.6 函数
23.6.1 重载函数
23.6.2 为参数设置默认值
23.6.3 内联函数
23.7 总结
23.8 问与答
23.9 作业
23.9.1 小测验
23.9.2 练习
第24天课程 附加课程3 C++类和对象
24.1 C++中的复杂数据类型
24.2 类的用法
24.2.1 控制对类中数据的访问
24.2.2 设置类数据的访问类型
24.3 创建存取成员函数
24.4 结构与类
24.5 类的内务管理
24.5.1 构造函数
24.5.2 析构函数
24.5.3 使用构造函数和析构函数
24.6 再谈函数重载
24.7 再谈C++的OOP特征
24.8 将类用作数据成员
24.9 继承
24.9.1 创建用于继承的基类
24.9.2 数据存取限定符protected
24.9.3 继承基类
24.9.4 再谈构造函数和析构函数
24.10 本书介绍的C++知识小结
24.11 详细介绍C++的图书
24.12 总结
24.13 问与答
24.14 作业
24.14.1 小测验
24.14.2 练习
第25天课程 附加课程4 Java语言基础
25.1 Java程序的结构
25.2 Java程序的基本组成部分
25.2.1 导入语句
25.2.2 方法
25.2.3 注释
25.3 Java中的关键字
25.4 Java标识符
25.5 数据类型
25.5.1 基本数据类型
25.5.2 常量
25.5.3 声明和初始化变量
25.5.4 变量的作用域
25.5.5 存储字符串数据
25.6 输入和输出
25.7 数组
25.8 运算符
25.9 流程控制
25.9.1 if…else
25.9.2 while和do…while
25.9.3 switch
25.9.4 for
25.10 总结
25.11 问与答
25.12 作业
25.12.1 小测验
25.12.2 练习
第26天课程 附加课程5 Java类和方法
26.1 定义类
26.1.1 指定类所属的包
26.1.2 创建类的属性
26.1.3 创建并使用一个简单的类
26.2 类的方法
26.2.1 方法演示
26.2.2 重载方法
26.2.3 类的构造函数
26.3 使用继承
26.4 总结
26.5 问与答
26.6 作业
第27天课程 附加课程6 其他Java技术
27.1 异常
27.2 读写文件
27.2.1 读文本文件
27.2.2 写文本文件
27.3 图形和Windows编程
27.3.1 创建Windows应用程序
27.3.2 绘制几何形状和直线
27.3.3 使用按钮和弹出式窗口
27.4 编写Java小程序
27.4.1 小程序和应用程序之间的区别
27.4.2 小程序的结构
27.4.3 将小程序加入到Web页中
27.4.4 使用小程序
27.5 总结
27.6 问与答
27.7 作业
第28天课程 附加课程7 C#编程语言
28.1 C#是什么
28.2 为何使用C#
28.2.1 C#是简单的
28.2.2 C#是现代的
28.2.3 C#是面向对象的
28.2.4 C#强大、灵活
28.2.5 C#包含的单词为数不多
28.2.6 C#是模块化的
28.2.7 C#是流行的
28.3 C#和其他编程语言的比较
28.4 C#程序的类型
28.5 创建C#程序
28.5.1 给源代码文件命名
28.5.2 执行C#程序
28.5.3 编译C#源代码
28.5.4 C#编译器和.NET运行环境
28.6 第一个C#程序
28.7 显示基本信息
28.8 C#和Web
28.9 总结
28.10 问与答
28.11 作业
28.11.1 小测验
28.11.2 练习
附加课程复习
附录A ASCII字符集
附录B C/C++中的保留字
附录C 使用二进制和十六进制数
C.1 十进制
C.2 二进制
C.3 十六进制
附录D 移植性问题
D.1 ANSI标准
D.2 ANSI关键字
D.3 区分大小写
D.4 可移植的字符
D.5 确保ANSI兼容性
D.6 绕开ANSI标准
D.7 使用可移植的数值变量
D.7.1 最大值和最小值
D.7.2 确定数字的类型
D.7.3 转换字符的大小写:一个可移植性范例
D.8 可移植的结构和共用体
D.8.1 字对齐
D.8.2 读写结构
D.8.3 在可移植的程序中使用非-ANSI特性
D.8.4 ANSI标准头文件
D.9 总结
D.10 问与答
D.11 作业
D.11.1 小测验
D.11.2 练习
附录E 常用的C语言函数
附录F 作业答案
第1天课程的答案
第2天课程的答案
第3天课程的答案
第4天课程的答案
第5天课程的答案
第6天课程的答案
第7天课程的答案
第8天课程的答案
第9天课程的答案
第10天课程的答案
第11天课程的答案
第12天课程的答案
第13天课程的答案
第14天课程的答案
第15天课程的答案
第16天课程的答案
第17天课程的答案
第18天课程的答案
第19天课程的答案
第20天课程的答案
第21天课程的答案
附加课程1的答案
附加课程2的答案
附加课程3的答案
附加课程4的答案
附加课程5的答案
附加课程6的答案
附加课程7的答案
附录G Dev-C++编译器
G.1 Dev-C++简介
G.2 在Microsoft Windows上安装Dev-C++
G.3 Dev-C++中的程序
G.4 使用Dev-C++
G.4.1 针对C语言编程定制Dev-C++
G.4.2 在Dev-C++中输入并编译程序
G.4.3 编译Dev-C++程序
G.4.4 运行Dev-C++程序
G.5 总结
《21天学通C语言(第6版·修订版)》是初学者学习C语言的经典教程。本版按最新的标准(ISO/IEC:9899-1999),以循序渐进的方式介绍了C语言编程方面知识,并提供了丰富的实例和大量的练习。通过学习实例,并将所学的知识用于完成练习,读者将逐步了解、熟悉并精通C语言。
《21天学通C语言(第6版·修订版)》包括四周的课程。第一周的课程介绍了C语言程序的基本元素,包括变量、常量、语句、表达式、函数和循环;第二周的课程介绍了数组、指针、字符和字符串、结构和共用体、变量的作用域、输入/输出等;第三周的课程介绍了有关指针和函数的高级主题、磁盘文件读写、字符串操纵函数、函数库、内存管理以及编译器的高级用法等;第四周是附加课程,简要地介绍了最流行的面向对象语言——C++、Java和C#。
本书针对初中级程序员编写,可作为学习C语言的教程或参考资料。