主页 详情

《狂人C 程序员入门必备》_键盘农夫著_12702814_9787115236494

【书名】:《狂人C 程序员入门必备》
【作者】:键盘农夫著
【出版社】:北京:人民邮电出版社
【时间】:2010
【页数】:482
【ISBN】:9787115236494
【SS码】:12702814

最新查询

内容简介

第1篇 理解程序设计

第1章 基础知识

1.1什么是编程

1.1.1计算机如何工作

1.1.2内存中的程序是哪里来的

1.1.3可执行文件的制作

1.1.4 C语言的演化

1.2怎样用C语言编程

1.2.1学习C语言编程都需要什么

1.2.2最简单的C语言程序的基本结构

1.2.3Dev C﹢﹢

1.3printf()函数初步

1.3.1简单的一般用法

1.3.2特殊的字符

1.4C语言的“字母”和“单词”

1.4.1 C语言的“字母”

1.4.2 C语言的“词”

小结

概念与术语

风格与习惯

常见错误

牛角尖

练习与自测

第2章 数据类型

2.1什么是数据类型

2.1.1“三个世界”理论

2.1.2问题世界:“万物皆数”

2.1.3代码世界:书写规则及含义

2.1.4机器世界里的“机器数”

2.1.5输出问题

2.1.6计算2的1到10次幂

2.1.7代码质量的改进

2.2让程序记住计算结果——变量

2.2.1计算机的记忆功能

2.2.2在代码中实现“记忆”

2.3int类型——总结与补充

2.3.1计算机表示负整数的几种方法

2.3.2计算机码制和C语言的关系

2.3.3暂时不必关心的一些细节

2.3.4int类型值的范围

2.3.5int类型常量在代码中的其他写法

2.3.6Dev C﹢﹢中int类型的机器数

2.4对数据类型的进一步讨论

2.4.1int数据类型的运算

2.4.2数学公式与数据类型

2.4.3数据类型——代码与编译器的约定

2.5莫名其妙的“整型”

2.5.1unsigned int类型

2.5.2long、short关键字描述的整数类型

2.5.3没有常量的char类型

2.5.4其他

2.6浮点类型

2.6.1 double类型常量的代码书写规则

2.6.2浮点类型数据存储模型

2.6.3浮点类型的一些特性

2.6.4浮点类型的运算

2.6.5 浮点类型的输出及其他

2.7数据类型与算法

2.7.1错误的数据类型

2.7.2所谓算法

2.7.3一个技巧

2.7.4更高效率的写法

2.8算法的特性

小结

概念与术语

风格与习惯

常见错误

牛角尖

练习与自测

第3章 运算符、表达式及语句

3.1 C的“动词”及“动词”的“宾语”

3.2表达式——C语言的“词组”

3.2.1初等表达式

3.2.2被误解的“()”

3.2.3带运算符的表达式

3.2.4不像表达式的表达式

3.2.5表达式:专业与副业

3.2.6赋值运算符左侧的标识符称为左值

3.2.7函数调用是表达式不是语句

3.3谁是谁的谁

3.3.1流行的谬误:优先级决定运算次序

3.3.2“左结合性”是运算对象先与左面的运算符相结合吗

3.3.3运算符、表达式小结

3.4右值的类型转换

3.4.1明确写出的显式转换——cast运算

3.4.2 cast运算的规则

3.4.3 赋值中的转换

3.4.4 1﹢1.0=?

3.4.5算术转换:早已废弃的规则和依然有效的规则

3.5语句的概念

3.5.1关于语句的闲话

3.5.2空语句有两种

3.5.3表达式语句

3.5.4顺序结构

3.5.5复合语句

3.6例题

3.6.1简单的类型转换

3.6.2最基础的算法——交换变量的值

3.6.3编程不是列公式

3.7算法和数据结构初窥

3.8在程序运行时提供数据

小结

概念与术语

风格与习惯

常见错误

牛角尖

练习与自测

第4章 选择语句

4.1关系运算

4.1.1“<”的数学含义及代码含义

4.1.2 4种关系运算符

4.1.3常见误区及与常识不符的结果

4.2 if语句

4.2.1语法格式及含义

4.2.2例题

4.2.3()内的表达式

4.2.4()后面的语句

4.3判等运算

4.4表达复杂的条件

4.5 if—else语句

4.6鸡肋——Bool类型(C99)

4.7判断三角形种类

4.8显得很有学问的运算符

4.9大师如是说goto

4.10给程序更多选项——switch语句

4.10.1 switch语句的一种应用形式

4.10.2 switch语句中的break语句

4.11程序开发的过程

小结

概念与术语

风格与习惯

常见错误

牛角尖

练习与自测

第5章 从循环到穷举

5.1造句:当就

5.1.1语法要素

5.1.2猴子吃桃问题更简洁的写法

5.1.3错误的循环变量

5.1.4次数不定的循环

5.1.5逗号表达式及其应用

5.2 do—while语句

5.2.1语法要素

5.2.2例题

5.3 for语句

5.3.1语法要素

5.3.2“﹢﹢”之惑

5.3.3 for语句应用

5.4不规则的循环及对循环的修整

5.4.1循环语句中的break语句

5.4.2 continue语句

5.5循环的嵌套与穷举法

5.5.1循环的嵌套

5.5.2穷举法

小结

概念与术语

风格与习惯

常见错误

牛角尖

练习与自测

第2篇 结构化程序设计与简单的数据结构

第6章 最复杂的运算符——“()”

6.1什么是函数

6.2步骤1:函数的声明

6.3步骤2:函数的定义

6.3.1函数定义的结构

6.3.2函数定义的位置

6.3.3函数头的写法、形参

6.3.4函数体的写法、return关键字

6.4步骤3:函数的调用

6.5程序的执行过程

6.6例题——为什么使用函数

6.7使用函数小结

6.7.1使用函数的步骤和方法

6.7.2常见问题

6.8函数与结构化程序设计

6.8.1明确程序功能

6.8.2确定程序的基本框架

6.8.3设计数据结构和算法

6.8.4任务的分解及函数原型

6.8.5完成函数定义

6.8.6 编程的步骤

6.8.7代码结构

6.9变量的作用域

6.10递归

6.10.1什么是递归

6.10.2递归是函数对自身的调用

6.10.3 递归的实现过程

6.10.4递归与循环

6.10.5递归的力量——Hanoi塔问题

6.10.6间接递归

6.11对局部变量的进一步修饰

6.11.1几乎一直是摆设的关键字——auto

6.11.2 static类别的局部变量

6.12使用库函数

6.13inline关键字(C99)

小结

概念与术语

风格与习惯

忠告

牛角尖

练习与自测

第7章 作为类型说明符和运算符的“[]”

7.1使用数组

7.1.1老式的解决办法

7.1.2首先要定义数组

7.1.3如何称呼数组中的各个数据对象

7.1.4完整的演示

7.2深入理解数组

7.2.1数组是一种数据类型

7.2.2数组定义的含义

7.2.3数组名是什么

7.2.4一维数组元素的引用

7.2.5数组元素引用是一个表达式

7.2.6数组名有值吗

7.2.7重复一遍

7.3熟练应用一维数组

7.3.1一维数组的遍历

7.3.2翻卡片问题

7.3.3筛法

7.3.4一维数组元素的赋初值

7.4数组名做实参

7.4.1数组名的值究竟是什么

7.4.2对应的形参

7.4.3调用原理

7.4.4不可以只有数组名这一个实参

7.4.5 const关键字

7.4.6例题——冒泡法排序

7.4.7测试与调试技巧——使用文件输入输出

7.5多维数组

7.5.1二维数组的定义

7.5.2二维数组元素的赋初值

7.5.3二维数组元素的引用和遍历

7.5.4更高维的数组

7.5.5生命游戏(Game of Life)

小结

概念与术语

风格与习惯

常见错误

牛角尖

练习与自测

第8章结构体、共用体与位运算

8.1结构体

8.1.1从一个简单例题说起

8.1.2声明结构体的类型

8.1.3定义结构体变量

8.1.4结构体数据的基本运算

8.1.5结构体变量赋初值及成员值的输入问题

8.1.6结构体“常量”(C99)

8.1.7一个不太专业的技巧

8.1.8结构体的其他定义方式及无名的结构体

8.2C语言中复数类型的历史和现状

8.2.1借助struct描述的复数类型

8.2.2-Complex、-Imaginary关键字(C99)

8.3共用体union

8.3.1概述

8.3.2对double类型的解析

8.4位运算

8.4.1位运算符

8.4.2更节省空间的筛法

8.5“小的变量”——位段

8.5.1位段概述

8.5.2如何定义位段

8.5.3位段的性质

8.5.4按二进制输出float类型数据

8.5.5对齐等问题

小结

概念

风格

常见错误

忠告

牛角尖

练习与自测

第9章 指针

9.1指针是什么

9.1.1指针是一类数据类型的统称

9.1.2指针是派生数据类型

9.1.3指针是一类数据的泛称

9.1.4指针专用的类型说明符——“*”

9.1.5指针的分类

9.2指向数据对象的指针

9.2.1什么是“数据对象”

9.2.2一元“&”运算

9.2.3数据指针变量的定义

9.2.4指针的赋值运算

9.2.5不是乘法的“*”运算

9.3指针的应用与误用

9.3.1指针有什么用

9.3.2C代码中的“×××到此一游”

9.3.3分桔子问题

9.4指针与一维数组

9.4.1数据指针与整数的加减法

9.4.2数据指针的减法

9.4.3数据指针的关系运算

9.4.4数据指针的判等运算

9.4.5“[]”运算

9.4.6数组名是指针

9.4.7数组名不仅仅是指针

9.4.8指向数组的指针

9.4.9与数组名对应的形参

9.5指针的应用(二)

9.6高维数组名

9.6.1高维数组名是指针

9.6.2高维数组名是内存

9.6.3“a[0]”或“*a”的含义

9.6.4数组与指针关系总结

9.6.5例题

9.7变量长度数组——VLA(C99)

9.7.1简述

9.7.2变量修饰类型(Variably modified type)

9.7.3变量长度数组与函数参数

9.8数组类型的字面量(C99)

9.9指针与结构体

9.9.1类型问题

9.9.2通过指针读写结构体的成员

9.10指针与函数

9.10.1函数名是指针

9.10.2指向函数指针的性质

9.10.3指向函数指针的运算

9.10.4例题

9.11指向虚无的指针

9.12参数不确定的函数

9.12.1printf()的函数原型

9.12.2“…”是什么

9.12.3实现原理

9.12.4标准形式

小结

概念与术语

常见错误

风格

牛角尖

练习与自测

第10章 字符串、字符数组及指向字符的指针

10.1字符串文字量

10.2字符串的输入与存储

10.2.1为输入的字符串准备存储空间

10.2.2 puts()函数

10.2.3字符数组的初始化

10.3例题

10.3.1求字符串长度

10.3.2比较两个字符串的大小

10.3.3 scanf中的转换

10.3.4字符处理库函数

10.4形参说明符“[]”里的修饰符(C99)

10.5常用的字符串函数

10.5.1字符串操作函数

10.5.2 sscanf、sprintf()函数

10.5.3 restrict关键字(C99)及memcpy()函数集

10.5.4字符串转换函数

10.6main()的参数

10.6.1指向指针的指针

10.6.2main()函数的第二种写法

10.7体现代码优美的数据类型——枚举类型

小结

概念

风格

常见错误

牛角尖

练习与自测

第3篇 复杂的数据结构、算法及其他话题

第11章 复杂的数据类型与算法

11.1 2222=0

11.2复杂数据类型的构造和解读

11.2.1数据类型的构造方法

11.2.2复杂数据类型的解读

11.2.3添乱的const等类型限定符

11.2.4 55555=19

11.3递归、穷举、回溯、排列

11.3.1 2、9、6能组成多少个两位数

11.3.2更自然地思考

11.3.3进一步的抽象和概括

11.3.4回溯法

11.3.5排列问题

11.4更自由地使用内存

11.4.1 100!=?

11.4.2老土的办法

11.4.3动态分配内存函数

11.4.4改进的方法

11.4.5 C99中的柔性数组成员(C99)

11.4.6进一步的思考

11.4.7用链表解决问题

11.5 typedef

小结

概念

风格

常见错误

忠告

牛角尖

练习与自测

第12章 程序的输入与输出

12.1面向文件的输入与输出

12.1.1把程序输出写入文件

12.1.2C程序怎样读文件

12.1.3格式化输入、输出的格式

12.1.4 fprintf()与printf()函数的等效性

12.2文卷、流、“FILE”及“FILE*”

12.2.1文卷(File)

12.2.2流(stream)

12.2.3“FILE”结构体

12.2.4FILE

12.2.5文本流和二进制流

12.2.6自动打开的流

12.2.7EOF

12.2.8其他几个用于文本文卷的I/O函数

12.3二进制文卷的读写

12.3.1二进制流

12.3.2用fwrite()写二进制文卷

12.3.3用fread()读二进制文卷

12.3.4feof()函数和ferror()函数

12.3.5讨论

12.4定位问题

12.4.1ftell()函数

12.4.2fseek()函数

12.4.3rewind()函数

12.4.4fgetpos()函数和fsetpos()函数

12.5制作素数表

小结

概念

常见错误

风格

牛角尖

练习与自测

第13章 程序组织与编译预处理

13.1简介

13.1.1一般特点

13.1.2预处理的几个阶段

13.2文件包含

13.3 Tic-Tac-Toe游戏

13.3.1分割——思考、手段和意义

13.3.2总结

13.3.3回到起点

13.3.4“走两步”

13.3.5重复#include的问题

13.3.6如何处理测试用的代码

13.3.7再次回到起点

13.3.8抽象的棋盘

13.4重新开始

13.4.1明确任务

13.4.2程序功能的初步定义

13.4.3输出

13.4.4抽签

13.5宏定义与宏替换

13.5.1类似对象的宏

13.5.2把东西都塞到柜子里去

13.5.3类似函数的宏

13.5.4显示空的棋盘

13.6使用外部变量

13.6.1外部变量

13.6.2外部变量的应用

13.7走棋

13.7.1多态

13.7.2拼接单词

13.7.3 static函数

13.7.4完成“棋手”模块

13.7.5 抽象棋盘——对封装的模拟

13.7.6具象棋盘的处理

13.7.7反省与检讨

13.8预处理命令的其他话题

13.8.1再谈宏

13.8.2其他编译预处理命令

小结

概念

常见错误

风格

牛角尖

练习与自测

第14章 标准库简介

14.1使用标准库的一些常识

14.1.1标准头与标准头文件

14.1.2使用库的禁忌

14.1.3并存的宏与函数

14.1.4函数定义域问题

14.2对语言的补充

14.2.1标准定义stddef.h

14.2.2 iso646.h

14.2.3 limits.h和float.h

14.2.4 stdarg.h

14.2.5 stdbool.h(C99)

14.2.6 stdint.h(C99)

14.3stdio.h

14.3.1数据类型

14.3.2宏

14.3.3函数

14.4通用函数:stdlib.h

14.4.1数值转换

14.4.2系列伪随机数生成函数

14.4.3内存管理函数

14.4.4环境通信函数

14.4.5查找与排序函数

14.4.6整数算术函数

14.4.7多字节、宽字节字符

14.5inttypes.h(C99)

14.6string.h

14.7数值计算

14.7.1 math.h(C89)

14.7.2 math.h(C99)

14.7.3 complex.h(C99)

14.7.4 tgmath.h(C99)

14.7.5 fenv.h(C99)

14.8错误处理:errno.h

14.8.1 errno:一个左值

14.8.2 errno的值

14.9断言与调试:assert.h

14.10非本地跳转setjmp.h

14.11信号处理signal.h

14.12time.h

14.13国际化问题

14.13.1 locale.h

14.13.2 ctype.h与wctype.h(C99)

14.13.3 wchar.h

附录

附录A C语言的关键字

附录B C语言的数据类型

附录C ASCII表

附录D C语言运算符

参考文献


书查询(www.shuchaxun.com)本网页唯一编码:
21d45dddd118ace21ade55747a1f5bc5#e4a45b6a0ff2b7d36733a253c14c6a5a#204695970#狂人C程序员入门必备_12702814.zip