21天学通C语言(中文第6版) PDF 高清电子书 免费下载 完整版 在线阅读- 高飞网
21天学通C语言

21天学通C语言(第6版)

中文版
信达工作室
C
浏览人数:124
读者:                         ...
   本书译自《Teach Yourself C in 21 Days》第6版,该书的前五版都登上了畅销书排行榜,是初学者学习C语言的经典之作。本版按最新的标准(ISO/IEC:9899-1999),以循序渐进的方式介绍了C语言编程方面的知识,并提供了丰富的实例和大量的练习。通过学习实例,并将所学知识用于完成练习,读者将逐步了解、熟悉并精通C语言。
   本书包括四周的课程,前三周详细介绍了C语言,第四周是附加课程,简要地介绍了最流行的面向对象语言--C++、Java和C#,附加课程的内容在光盘中以pdf格式文件提供。第一周的课程介绍了C语言程序的基本元素,包括变量、常量、语句、表达式、函数和循环;第二周介绍了数组、指针、字符和字符串、结构和共用体、变量的作用域、输入/输出等;第三周介绍了有关指针和函数的高级主题、磁盘文件读写、字符串操纵函数、函数库、内存管理以及编译器的高级用法等。
   本书是为初中级程序员编写的,可作为学习C语言的教程或参考资料。 

第一周课程 1   
第1天课程 c语言初步 2   
1.1 c语言简史 2   
1.2 为何要使用c语言 2   
1.3 编程前的准备工作 3   
1.4 程序开发周期 4   
1.4.1 创建源代码 4   
1.4.2 编译源代码 4   
1.4.3 链接以创建可执行文件 5   
1.4.4 结束开发周期 6   
1.5 第一个c语言程序 7   
1.5.1 输入并编译hello.c 7   
1.6 总结 9   
1.7 问与答 9   
1.8 作业 10   
1.8.1 小测验 10   
1.8.2 练习 10   
type&run1 打印程序清单 12   
第一个type&run 12   
第2天课程 c语言程序的组成部分 14   
.2.1 一个简短的c语言程序 14   
2.2 程序的组成部分 15   
2.2.1 main( )函数(第8~23行) 15   
2.2.2 #include编译指令(第2行) 15   
2.2.3 变量定义(第4行) 15   
2.2.4 函数原型(第6行) 16   
2.2.5 程序语句(第11、12、15、16、19、20、22和28行) 16   
2.2.6 函数定义(第26~29行) 16   
2.2.7 程序注释(第1、10、14、18和25行) 16   
2.2.8 使用花括号(第9、23、27和29行) 17   
2.2.9 运行程序 17   
2.2.10 有关精度的说明 18   
2.3 重温程序的组成部分 18   
2.4 总结 20   
2.5 问与答 20   
2.6 作业 20   
2.6.1 小测验 20   
2.6.2 练习 21   
第3天课程 存储信息:变量和常量 23   
3.1 计算机内存 23   
3.2 使用变量存储信息 24   
3.2.1 变量名 24   
3.3 数值变量的类型 25   
3.3.1 变量声明 27   
3.3.2 typedef关键字 27   
3.3.3 初始化变量 28   
3.4 常量 28   
3.4.1 字面常量 28   
3.4.2 符号常量 29   
3.5 总结 31   
3.6 问与答 32   
3.7 作业 32   
3.7.1 小测验 32   
3.7.2 练习 32   
第4天课程 语句、表达式和运算符 34   
4.1 语句 34   
4.1.1 空白对语句的影响 34   
4.1.2 创建空语句 35   
4.1.3 使用复合语句 35   
4.2 表达式 35   
4.2.1 简单表达式 35   
4.2.2 复杂表达式 36   
4.3 运算符 36   
4.3.1 赋值运算符 36   
4.3.2 数学运算符 37   
4.3.3 运算符优先级和圆括号 40   
4.3.4 子表达式的计算顺序 41   
4.3.5 关系运算符 41   
4.4 if语句 42   
4.4.1 else子句 44   
4.5 判断关系表达式 46   
4.5.1 关系运算符的优先级 47   
4.6 逻辑运算符 48   
4.7 再谈true/false值 48   
4.7.1 运算符的优先级 49   
4.7.2 复合赋值运算符 50   
4.7.3 条件运算符 50   
4.7.4 逗号运算符 51   
4.8 再谈运算符优先级 51   
4.9 总结 52   
4.10 问与答 52   
4.11 作业 53   
4.11.1 小测验 53   
4.11.2 练习 53   
type&run2 猜数游戏 55   
第5天课程 使用函数封装代码 57   
5.1 函数是什么 57   
5.1.1 函数的定义 57   
5.1.2 函数的用法 57   
5.2 函数的工作原理 59   
5.3 函数和结构化编程 60   
5.3.1 结构化编程的优点 60   
5.3.2 规划结构化程序 60   
5.3.3 从顶向下的方法 61   
5.4 编写函数 61   
5.4.1 函数头 62   
5.4.2 函数的返回类型 62   
5.4.3 函数名 62   
5.4.4 参数列表 62   
5.4.5 函数体 64   
5.4.6 函数原型 67   
5.5 将参数传递给函数 67   
5.6 调用函数 68   
5.6.1 递归 69   
5.7 函数的位置 70   
5.8 内联函数 70   
5.9 总结 71   
5.10 问与答 71   
5.11 作业 72   
5.11.1 小测验 72   
5.11.2 练习 72   
第6天课程 基本的程序流程控制 74   
6.1 数组的基本知识 74   
6.2 控制程序的执行 75   
6.2.1 for语句 75   
6.2.2 嵌套for语句 79   
6.2.3 while语句 80   
6.2.4 嵌套while语句 82   
6.2.5 do…while循环 84   
6.3 嵌套循环 87   
6.4 总结 88   
6.5 问与答 88   
6.6 作业 88   
6.6.1 小测验 89   
6.6.2 练习 89   
第7天课程 信息读写基础 90   
7.1 在屏幕上显示信息 90   
7.1.1 printf( )函数 90   
7.1.2 格式化字符串 90   
7.1.3 转义序列 91   
7.1.4 使用puts( )显示消息 96   
7.2 使用scanf( )函数输入数值数据 97   
7.3 三字符序列 100   
7.4 总结 101   
7.5 问与答 101   
7.6 作业 102   
7.6.1 小测验 102   
7.6.2 练习 102   
第一周复习 104   
第二周课程 109   
第8天课程 使用数值数组 110   
8.1 数组是什么 110   
8.1.1 一维数组 110   
8.1.2 多维数组 113   
8.2 命名和声明数组 114   
8.2.1 初始化数组 115   
8.2.2 初始化多维数组 116   
8.2.3 数组的最大长度 119   
8.3 总结 121   
8.4 问与答 121   
8.5 作业 121   
8.5.1 小测验 121   
8.5.2 练习 122   
第9天课程 指针 123   
9.1 指针是什么 123   
9.1.1 计算机内存 123   
9.1.2 创建指针 123   
9.2 指针和简单变量 124   
9.2.1 声明指针 124   
9.2.2 初始化指针 124   
9.2.3 使用指针 125   
9.3 指针和变量类型 126   
9.4 指针和数组 127   
9.4.1 作为指针的数组名 128   
9.4.2 数组元素的存储 128   
9.4.3 指针算术 130   
9.5 有关指针的注意事项 133   
9.6 数组下标表示法和指针 133   
9.7 将数组传递给函数 133   
9.8 总结 137   
9.9 问与答 137   
9.10 作业 138   
9.10.1 小测验 138   
9.10.2 练习 138   
type&run3 让程序暂停 139   
第10天课程 字符和字符串 141   
10.1 char数据类型 141   
10.2 使用字符变量 141   
10.3 使用字符串 144   
10.3.1 字符数组 144   
10.3.2 初始化字符数组 144   
10.4 字符串和指针 144   
10.5 不存储在数组中的字符串 145   
10.5.1 编译时分配字符空间 145   
10.5.2 malloc( )函数 145   
10.5.3 使用malloc( )函数 146   
10.6 显示字符串和字符 148   
10.6.1 puts( )函数 149   
10.6.2 printf( )函数 149   
10.7 从键盘读取字符串 150   
10.7.1 使用gets( )函数输入字符串 150   
10.7.2 使用scanf( )函数输入字符串 152   
10.8 总结 154   
10.9 问与答 154   
10.10 作业 155   
10.10.1 小测验 155   
10.10.2 练习 156   
第11天课程 结构、共用体和typedef 157   
11.1 简单结构 157   
11.1.1 定义和声明结构 157   
11.1.2 存取结构的成员 158   
11.2 复杂结构 160   
11.2.1 包含其他结构的结构 160   
11.2.2 包含数组的结构 162   
11.3 结构数组 164   
11.4 初始化结构 167   
11.5 结构和指针 168   
11.5.1 将指针作为结构的成员 168   
11.5.2 创建指向结构的指针 170   
11.5.3 使用指针和结构数组 171   
11.5.4 将结构作为参数传递给函数 173   
11.6 共用体 174   
11.6.1 定义、声明和初始化共用体 175   
11.6.2 存取共用体的成员 175   
11.7 使用typedef给结构创建别名 179   
11.8 总结 179   
11.9 问与答 179   
11.10 作业 180   
11.10.1 小测验 180   
11.10.2 练习 180   
第12天课程 变量作用域 182   
12.1 作用域是什么 182   
12.1.1 演示作用域 182   
12.1.2 作用域为何重要 184   
12.2 外部变量 184   
12.2.1 外部变量的作用域 184   
12.2.2 何时使用外部变量 184   
12.2.3 extern关键字 184   
12.3 局部变量 185   
12.3.1 静态变量和动态变量 186   
12.3.2 函数参数的作用域 187   
12.3.3 外部静态变量 188   
12.3.4 寄存器变量 188   
12.4 局部变量和main( )函数 189   
12.5 应使用哪种存储类型 189   
12.6 局部变量和代码块 189   
12.7 总结 190   
12.8 问与答 191   
12.9 作业 191   
12.9.1 小测验 191   
12.9.2 练习 191   
type&run4 机密消息 194   
第13天课程 高级程序流程控制 197   
13.1 提早结束循环 197   
13.1.1 break语句 197   
13.1.2 continue语句 199   
13.2 goto语句 200   
13.3 死循环 202   
13.4 switch语句 205   
13.5 退出程序 212   
13.5.1 exit( )函数 212   
13.6 在程序中执行操作系统命令 213   
13.7 总结 214   
13.8 问与答 215   
13.9 作业 215   
13.9.1 小测验 215   
13.9.2 练习 215   
第14天课程 操纵屏幕、打印机和键盘 217   
14.1 流和c语言 217   
14.1.1 何为程序的输入/输出 217   
14.1.2 什么是流 217   
14.1.3 文本流和二进制流 218   
14.1.4 预定义的流 218   
14.2 使用c语言的流函数 219   
14.2.1 例子 219   
14.3 读取键盘输入 220   
14.3.1 字符输入 220   
14.3.2 格式化输入 225   
14.4 控制屏幕输出 231   
14.4.1 使用putchar( )、putc( )和fputc( )输出字符 231   
14.4.2 使用puts( )和fputs( )输出字符串 233   
14.4.3 使用printf( )和fprintf( )格式化输出 234   
14.5 重定向输入/输出 238   
14.5.1 重定向输入 239   
14.6 何时使用fprintf( ) 239   
14.6.1 使用stderr 240   
14.7 总结 241   
14.8 问与答 241   
14.9 作业 242   
14.9.1 小测验 242   
14.9.2 练习 242   
第二周复习 244   
第三周课程 251   
第15天课程 有关指针的高级主题 252   
15.1 声明指向指针的指针 252   
15.2 指针和多维数组 253   
15.3 指针数组 259   
15.3.1 复习字符串和指针 259   
15.3.2 声明char类型指针数组 259   
15.3.3 范例 261   
15.4 函数指针 265   
15.4.1 声明函数指针 265   
15.4.2 初始化并使用函数指针 266   
15.5 链表 273   
15.5.1 有关链表的基本知识 273   
15.5.2 使用链表 274   
15.5.3 演示简单链表 278   
15.5.4 实现链表 280   
15.6 总结 286   
15.7 问与答 286   
15.8 作业 286   
15.8.1 小测验 287   
15.8.2 练习 287   
第16天课程 使用磁盘文件 289   
16.1 将流与磁盘文件关联起来 289   
16.2 磁盘文件的类型 289   
16.3 文件名 290   
16.4 打开文件 290   
16.5 读写文件数据 292   
16.5.1 格式化文件输入/输出 293   
16.5.2 字符输入/输出 296   
16.5.3 直接文件输入/输出 297   
16.6 文件缓冲技术:关闭和刷新文件 300   
16.7 顺序文件存取和随机文件存取 301   
16.7.1 ftell( )和rewind( )函数 301   
16.7.2 fseek( )函数 303   
16.8 检测文件尾 305   
16.9 文件管理函数 307   
16.9.1 删除文件 307   
16.9.2 给文件重命名 308   
16.9.3 复制文件 309   
16.10 使用临时文件 311   
16.11 总结 312   
16.12 问与答 312   
16.13 作业 313   
16.13.1 小测验 313   
16.13.2 练习 313   
type&run5 计算字符数 314   
第17天课程 操纵字符串 318   
17.1 确定字符串的长度 318   
17.2 复制字符串 319   
17.2.1 strcpy( )函数 319   
17.2.2 strncpy( )函数 320   
17.2.3 strdup( )函数 321   
17.3 拼接字符串 322   
17.3.1 strcat( )函数 322   
17.3.2 strncat( )函数 324   
17.4 比较字符串 325   
17.4.1 比较两个完整字符串 325   
17.4.2 比较字符串的一部分 326   
17.4.3 比较字符串时忽略大小写 328   
17.5 查找字符串 328   
17.5.1 strchr( )函数 328   
17.5.2 strrchr( )函数 329   
17.5.3 strcspn( )函数 329   
17.5.4 strspn( )函数 330   
17.5.5 strpbrk( )函数 331   
17.5.6 strstr( )函数 331   
17.6 字符串转换 332   
17.7 其他字符串函数 333   
17.7.1 strrev( )函数 333   
17.7.2 strset( )和strnset( )函数 334   
17.8 将字符串转换为数字 334   
17.8.1 将字符串转换为int 335   
17.8.2 将字符串转换为long值 335   
17.8.3 将字符串转换为long long值 335   
17.8.4 将字符串转换为浮点数 335   
17.9 字符检测函数 336   
17.9.1 ansi对大小写转换的支持 339   
17.10 总结 340   
17.11 问与答 340   
17.12 作业 341   
17.12.1 小测验 341   
17.12.2 练习 341   
第18天课程 有关函数的高级主题 343   
18.1 将指针传递给函数 343   
18.2 void类型的指针 346   
18.3 接受可变数目参数的函数 348   
18.4 返回指针的函数 350   
18.5 总结 352   
18.6 问与答 352   
18.7 作业 352   
18.7.1 小测验 352   
18.7.2 练习 353   
第19天课程 函数库 354   
19.1 数学函数 354   
19.1.1 三角函数 354   
19.1.2 指数函数和对数函数 354   
19.1.3 双曲线函数 355   
19.1.4 其他数学函数 355   
19.1.5 演示数学函数 355   
19.2 处理时间 356   
19.2.1 时间的表示 356   
19.2.2 时间函数 356   
19.2.3 使用时间函数 359   
19.3 处理错误 360   
19.3.1 assert( )宏 361   
19.3.2 头文件errno.h 362   
19.3.3 perror( )函数 362   
19.4 查找和排序 364   
19.4.1 使用bsearch( )进行查找 364   
19.4.2 使用qsort( )进行排序 365   
19.4.3 演示查找和排序 365   
19.5 总结 370   
19.6 问与答 370   
19.7 作业 370   
19.7.1 小测验 370   
19.7.2 练习 371   
type&run6 计算抵押贷款的偿还金额 372   
第20天课程 管理内存 374   
20.1 类型转换 374   
20.1.1 自动类型转换 374   
20.1.2 显式转换 376   
20.2 分配内存的存储空间 377   
20.2.1 使用malloc( )函数分配内存 377   
20.2.2 使用calloc( )函数分配内存 379   
20.2.3 使用realloc( )函数分配更多的内存 380   
20.2.4 使用free( )函数释放内存 381   
20.3 操纵内存块 383   
20.3.1 使用memset( )函数初始化内存 383   
20.3.2 使用memcpy( )复制内存中的数据 383   
20.3.3 使用memmove( )函数移动内存中的数据 383   
20.4 位的用法 385   
20.4.1 移位运算符 385   
20.4.2 按位逻辑运算符 386   
20.4.3 求补运算符 387   
20.4.4 结构中的位字段 387   
20.5 总结 389   
20.6 问与答 389   
20.7 作业 390   
20.7.1 小测验 390   
20.7.2 练习 390   
第21天课程 编译器的高级用法 392   
21.1 使用多个源代码文件的编程 392   
21.1.1 模块化编程的优点 392   
21.1.2 模块化编程技术 392   
21.1.3 模块的组成部分 394   
21.1.4 外部变量和模块化编程 395   
21.1.5 使用.obj文件 395   
21.1.6 使用生成工具 396   
21.2 c语言的预处理器 396   
21.2.1 #define预处理器编译指令 397   
21.2.2 使用编译指令#include 400   
21.2.3 使用#if、#elif、#else和#endif 400   
21.2.4 使用#if…#endif来帮助调试 401   
21.2.5 避免将头文件包含多次 401   
21.2.6 #undef编译指令 402   
21.3 预定义的宏 402   
21.4 使用命令行参数 403   
21.5 总结 405   
21.6 问与答 405   
21.7 作业 405   
21.7.1 小测验 405   
21.7.2 练习 406   
第三周复习 407   
附加课程(具体内容见光盘) 413   
附录a ascii字符集 414   
附录b c/c++中的保留字 418   
附录c 使用二进制和十六进制数 420   
c.1 十进制 420   
c.2 二进制 420   
c.3 十六进制 420   
附录d 移植性问题 422   
d.1 ansi标准 422   
d.2 ansi关键字 422   
d.3 区分大小写 422   
d.4 可移植的字符 424   
d.5 确保ansi兼容性 424   
d.6 绕开ansi标准 424   
d.7 使用可移植的数值变量 425   
d.7.1 最大值和最小值 426   
d.7.2 确定数字的类型 430   
d.7.3 转换字符的大小写:一个可移植性范例 434   
d.8 可移植的结构和共用体 434   
d.8.1 字对齐 434   
d.8.2 读写结构 435   
d.8.3 在可移植的程序中使用非-ansi特性 436   
d.8.4 ansi标准头文件 437   
d.9 总 结 438   
d.10 问与答 438   
d.11 作 业 438   
d.11.1 小测验 438   
d.11.2 练习 439   
附录e 常用的c语言函数 440   
附录f 作业答案 444   
第1天课程的答案 444   
小测验 444   
练习 444   
第2天课程的答案 445   
小测验 445   
练习 445   
第3天课程的答案 446   
小测验 446   
练习 446   
第4天课程的答案 447   
小测验 447   
练习 447   
第5天课程的答案 449   
小测验 449   
练习 449   
第6天课程的答案 452   
小测验 452   
练习 452   
第7天课程的答案 453   
小测验 453   
练习 453   
第8天课程的答案 457   
小测验 457   
练习 457   
第9天课程的答案 461   
小测验 461   
练习 461   
第10天课程的答案 463   
小测验 463   
练习 463   
第11天课程的答案 465   
小测验 465   
练习 466   
第12天课程的答案 467   
小测验 467   
练习 467   
第13天课程的答案 470   
小测验 470   
练习 471   
第14天课程的答案 471   
小测验 471   
练习 472   
第15天课程的答案 472   
小测验 472   
练习 473   
第16天课程的答案 473   
小测验 473   
练习 474   
第17天课程的答案 474   
小测验 474   
练习 474   
第18天课程的答案 475   
小测验 475   
练习 475   
第19天课程的答案 475   
小测验 475   
练习 476   
第20天课程的答案 476   
小测验 476   
练习 477   
第21天课程的答案 477   
小测验 477   
附加课程1的答案 478   
小测验 478   
附加课程2的答案 478   
小测验 478   
附加课程3的答案 478   
小测验 478   
附加课程4的答案 479   
小测验 479   
附加课程5的答案 479   
小测验 479   
附加课程6的答案 480   
小测验 480   
附加课程7的答案 480   
小测验 480   
练习 480   
附录g dev-c++编译器 482   
g.1 dev-c++简介 482   
g.2 在microsoft windows上安装dev-c++ 482   
g.3 dev-c++中的程序 484   
g.4 使用dev-c++ 484   
g.4.1 针对c语言编程定制dev-c++ 485   
g.4.2 在dev-c++中输入并编译程序 486   
g.4.3 编译dev-c++程序 488   
g.4.4 运行dev-c++程序 488   
g.5 总 结 489   
看过本书的人还看过