请输入您要查询的百科知识:

 

词条 C语言开发技术详解
释义

C语言从产生到现在,已经成为最重要和最流行的编程语言之一。《C语言开发技术详解》分上下两篇,分别介绍了C语言的基础和高级程序设计技巧。该书内容丰富、结构清晰、实例代码讲解详尽,可以作为C语言、Java语言初学者的入门教材,也可作为C程序员的参考手册,同时,还可作为大中专院校学生及电脑培训班的参考书。

书名:C语言开发技术详解

作者:戴建华 等

ISBN:9787121084904

类别:计算机,编程,C语言

页数:576页

定价:66.00元(含光盘1张)

出版社:电子工业出版社

出版时间:2009年5月1日

宣传语

该书特色:

从入门到精通:上篇介绍C语言基础,下篇介绍了C语言的高级程序设计技巧。

适用双操作系统:Windows+Linux环境。

循序渐进:本书编写顺序按C语言的知识点循序渐进地介绍。

实例丰富,讲解详细:386个实例,方便读者理解相应的知识点。

前言

引子:C语言作为一门最通用的语言,在过去很流行,将来依然会如此。几乎每一个理工科或者其他专业的学生毫不例外地要学习它。记得大学里,很多学校都把谭浩强教授的《C程序设计》作为入门教材,这是绝佳的选择。然而,要更进一步,更全面而深入地学习呢?显然有点力不从心。本书正是为了弥补这个缺憾而写的,希望能对想比较全面而深入学习C语言程序设计的人有所帮助。

从C语言产生到现在,它已经成为最重要和最流行的编程语言之一。在各种流行编程语言中,都能看到C语言的影子,如Java的语法与C语言基本相同。学习、掌握C语言是每一个计算机技术人员的基本功之一。

C语言具有高级语言的强大功能,却又有很多直接操作计算机硬件的功能(这些都是汇编语言的功能),因此,C语言通常又被称为中级语言。学习和掌握C语言,既可以增进对于计算机底层工作机制的了解,又为进一步学习其他高级语言打下了坚实的基础。

本书特点

从入门到精通:本书分上下两篇,上篇针对初学者,从C语言的基础开始,使略有计算机基础的人都能容易地学会C语言编程。下篇则介绍了C语言的高级程序设计技巧,包括常用算法、底层控制鼠标、绘图、加密、压缩等应用。

适用多种操作系统:本书实例都通过GCC编译器调试,读者不仅可在Windows环境下使用本书学习C语言,也可在Linux环境下使用本书学习C语言。

循序渐进:本书编写顺序按C语言的知识点循序渐进地介绍。例如,先介绍数据的存储,再介绍数据的输入/输出;先介绍简单的程序设计概念,再介绍指针等C语言的难点。

重点突出:指针是C语言的重点和难点,本书用了大量的篇幅,从不同方面对其进行讲解,并列举了大量的实例,帮助读者理解并掌握指针。

实例丰富,讲解详细:学习程序设计时,必须要多上机操作。本书对每个知识点都配有实例代码,并对实例代码进行了详细地讲解,在实例后,一般都附有实例程序的运行结果,方便读者对比理解相应的知识点。

注重实用:在本书下篇,详细介绍了数据加密、压缩、控制鼠标、绘制图形等实用程序。通过这些内容,可进一步提高读者C语言的应用能力。

实用超值的DVD光盘:为帮助读者更深入地学习,本书附赠DVD光盘1张,内容包括本书所有的章节实例,入门视频以及长达21小时的C语言学习视频教学课件,讲解关键知识点界面操作,手把手教会读者使用。

本书内容

本书分上下两篇,共26章,上篇共16章,主要介绍C语言的语法基础;下篇共10章,主要介绍C语言的高级程序设计。各章内容如下:

第1章为C语言概述,介绍了C语言的发展、特点,C语言程序的开发过程,最后,以一个简单的C程序,演示了编写C语言程序的方法。

第2章介绍了一个完整的C程序各部分的含义。

第3章介绍了C语言几种常见的开发环境,包括Dev-C++、Visual C++、Linux下C语言开发环境的使用等内容。

第4章介绍了C语言数据的表示方法,包括数据的存储、常量、变量、整数类型、字符类型、实数类型、混合运算及类型转换、C99新增数据类型等内容。

第5章详细介绍C语言中的表达式、各种运算符及运算优先级、C语言各类语句等内容。

第6章介绍了格式化输入/输出函数的使用,包括printf函数、scanf函数、getchar函数、getch函数、gets函数、putch函数、puts函数等的使用。

第7章介绍C语言分支结构程序设计的方法,包括使用if语句、嵌套if语句、if else if语句、switch语句等进行多种分支程序设计的内容。

第8章介绍C语言循环结构程序设计的方法,包括使用编写while循环、for循环,以及循环嵌套等内容。

第9章介绍在C语言中使用数组的方法,主要介绍了一维数组、二维数组、字符数组和字符串的使用。

第10章介绍在C语言中创建和使用函数的方法,包括函数的概念、编写函数、设置函数的参数、函数调用、递归函数的编写等内容。

第11章介绍模块化程序设计方法,包括模块化程序设计概念、C程序的组织、变量的作用域、变量的存储类型等内容。

第12章介绍C语言中指针的使用,指针是C语言最显著的特征。本章首先介绍变量在内存中的保存形式,然后介绍了指针和简单变量、指针和数组、指向多维数组的指针、指针和字符串、指针数组、指针和函数等内容。

第13章介绍结构、联合和枚举,包括结构的概念、结构的嵌套、结构数组、结构指针、向函数传递结构、联合、枚举等内容。

第14章介绍位运算和位域的使用,通过位运算符,可以方便地操作二进制位。

第15章介绍文件输入/输出的方法,主要介绍了数据流的概念、文件的打开与关闭、从文件中读写字符、从文件中读写字符串、二进制文件的读写、文件检测函数、文件的随机读写、管理缓冲区、输入/输出的重定向、文件管理等内容。

第16章介绍编译预处理,包括宏定义命令、条件编译、其他预处理命令、内联函数等内容。

第17章介绍处理字符串的方法,包括字符串的存储、字符和字符串检测函数、查找字符串、比较字符串、连接字符串、复制字符串、字符和字符串的转换等内容。

第18章介绍C语言的数学函数和时间函数,使用这些函数,可方便地处理数值、日期时间等类型的数据。

第19章介绍常用算法的C语言程序,包括用C语言编写的完成排序、查找、队列、堆栈、链表等程序。

第20章介绍用C语言进行存储管理的方法,包括内存动态分配和回收等内容。

第21章介绍用C语言编写鼠标的底层操作函数,包括初始化鼠标、复位鼠标、显示鼠标指针、隐藏鼠标指针、获取按钮信息等操作鼠标的底层函数。

第22章介绍用C语言编写数据加密程序的方法,如换位加密法、替换加密法、位加密法等程序的编写,最后,还简单介绍了MD5算法。

第23章介绍用C语言编写数据压缩程序的方法,首先,介绍了数据压缩基础,最后,详细介绍了LZW压缩算法的原理及实现过程。

第24章介绍C语言底层图形函数的编程,首先介绍了显示系统的基本概念,然后介绍了直接读取显存编写图形函数的方法,在此基础上,完成绘制线、圆、矩形、多边形等函数,最后还介绍了编辑图形的方法。

第25章介绍GCC调用汇编程序的方法,包括AT&T汇编简介、GCC内嵌汇编、调用汇编程序等内容。

第26章为一个用C语言编写的信息管理系统——员工管理系统,通过该实例程序的编写,可巩固本书前面各章所学内容。

读者对象

程序设计初学者入门

大中院校学生

大中院校教师

C程序员

电脑培训班

计算机爱好者

由于计算机技术发展很快,且编者水平和学识有限,书中难免有疏漏之处,敬请广大读者朋友批评指正,并多提出宝贵意见。

编 者

目录

第1篇 C语言基础

第1章 C语言概述 2

1.1 C语言发展历史 2

1.1.1 C语言发展过程 2

1.1.2 C语言标准 3

1.2 C语言的特点 4

1.2.1 简洁紧凑 4

1.2.2 灵活高效 4

1.2.3 强大的控制结构 5

1.2.4 可移植性 5

1.2.5 C语言的缺点 5

1.2.6 C与C++的关系 6

1.3 C语言程序开发过程 6

1.3.1 定义程序目标 6

1.3.2 设计程序 6

1.3.3 编写源代码 7

1.3.4 编译和链接 7

1.3.5 测试 8

1.3.6 维护和修改 8

1.3.7 总结 8

1.4 创建第一个C程序 9

1.4.1 C程序结构 9

1.4.2 输入程序代码 9

1.4.3 编译链接程序 10

1.4.4 调试程序 11

1.4.5 程序语句的含义 12

第2章 C程序的组成 13

2.1 一个完整的C程序 13

2.1.1 分析程序目标 13

2.1.2 设计程序 13

2.1.3 编写代码 14

2.1.4 编译运行程序 15

2.2 C程序的组成 16

2.2.1 包含指令 16

2.2.2 定义常量 16

2.2.3 声明函数原型 17

2.2.4 main函数 17

2.2.5 程序语句 17

2.2.6 函数定义 18

2.2.7 注释 18

2.3 C程序组成总结 19

第3章 C语言开发环境 20

3.1 C语言开发环境简介 20

3.1.1 C语言开发环境的组成 20

3.1.2 常用开发环境 20

3.2 使用Dev-C++ 22

3.2.1 Dev-C++操作界面 22

3.2.2 设置选项 22

3.2.3 用Dev-C++创建C程序 23

3.2.4 编译程序 24

3.2.5 运行Dev-C++编译的程序 25

3.3 使用Visual C++ 26

3.3.1 Visual C++操作界面 27

3.3.2 用Visual C++创建C程序 27

3.3.3 编译程序 29

3.3.4 运行Visual C++生成的程序 30

3.4 Linux C语言开发环境 31

3.4.1 Linux C语言开发环境的构成 31

3.4.2 代码编辑器 31

3.4.3 GCC编译器 33

3.4.4 在emacs中编译C程序 33

3.4.5 在Linux中编写C程序 34

第4章 数据的表示 37

4.1 数据的存储 37

4.1.1 内存单元 37

4.1.2 字符的存储 38

4.1.3 数值的存储 38

4.2 数据类型简介 39

4.3 常量 40

4.3.1 直接常量 40

4.3.2 符号常量 40

4.4 变量 42

4.4.1 标识符 42

4.4.2 声明变量 43

4.4.3 变量初始化 45

4.5 整数类型 45

4.5.1 整数类型及存储 45

4.5.2 整型常量的表示 48

4.5.3 整型数据输出 50

4.6 字符类型 53

4.6.1 字符常量 53

4.6.2 字符变量及初始化 53

4.6.3 转义字符 54

4.6.4 字符型数据的输出 55

4.7 实数类型 56

4.7.1 实数类型及存储 56

4.7.2 实型常量的表示 58

4.7.3 实型变量 59

4.7.4 实型数据输出 60

4.8 混合运算及类型转换 61

4.8.1 混合运算 61

4.8.2 强制数据类型转换 63

4.9 C99新增数据类型 64

4.9.1 逻辑型(_Bool) 64

4.9.2 复数类型(_Complex和_Imaginary) 64

4.10 总结 65

第5章 表达式、运算符和语句 66

5.1 表达式 66

5.1.1 简单表达式 66

5.1.2 逗号表达式 66

5.2 运算符 67

5.2.1 运算符概述 68

5.2.2 算术运算符 68

5.2.3 赋值运算符 73

5.2.4 关系运算符 75

5.2.5 逻辑运算符 76

5.2.6 位运算符 78

5.2.7 条件运算符 78

5.2.8 其他运算符 80

5.3 表达式的运算顺序 81

5.3.1 运算符优先级 81

5.3.2 运算符的结合性 82

5.3.3 自增自减运算符注意事项 83

5.4 语句 84

5.4.1 语句书写方式 84

5.4.2 表达式语句 85

5.4.3 空语句 86

5.4.4 复合语句 86

5.4.5 标号语句 87

第6章 格式化输出/输入 88

6.1 格式化输出——printf函数 88

6.1.1 printf函数的格式 88

6.1.2 printf的格式字符 89

6.1.3 修饰符 91

6.1.4 printf函数实例 93

6.1.5 动态设置输出宽度和精度 98

6.1.6 printf函数的返回值 99

6.1.7 理解输出列表 99

6.2 格式化输入——scanf函数 102

6.2.1 scanf函数的格式 102

6.2.2 scanf函数格式字符串 103

6.2.3 scanf函数注意问题 105

6.2.4 scanf函数的返回值 107

6.3 其他常用输入/输出函数 107

6.3.1 getchar函数 108

6.3.2 getch函数 108

6.3.3 gets函数 109

6.3.4 putch函数 110

6.3.5 puts函数 110

第7章 分支结构程序设计 112

7.1 分支程序流程 112

7.2 if语句 113

7.2.1 基本if语句 113

7.2.2 if else语句 116

7.2.3 再论条件表达式 117

7.3 嵌套if语句 117

7.3.1 嵌套if语句的形式 117

7.3.2 if语句嵌套实例 118

7.4 if else if语句 122

7.4.1 if else if语句格式 122

7.4.2 if else if实例 123

7.5 多路分支——switch 123

7.5.1 switch语句格式 123

7.5.2 switch实例 125

7.5.3 使用多重标号 126

7.5.4 switch和if比较 129

第8章 循环结构程序设计 130

8.1 循环结构的程序流程 130

8.2 while循环 131

8.2.1 while语句格式 131

8.2.2 理解循环条件 134

8.2.3 理解循环体 135

8.2.4 while循环需注意的问题 137

8.3 for循环 137

8.3.1 for语句格式 138

8.3.2 for语句的各种样式 139

8.3.3 for语句实例 142

8.4 do while语句 144

8.4.1 while语句不足 144

8.4.2 do while语句格式 146

8.5 循环嵌套 147

8.5.1 了解循环嵌套 147

8.5.2 循环嵌套的结构 149

8.5.3 循环嵌套实例 150

8.6 break和continue语句 154

8.6.1 break语句 154

8.6.2 continue语句 155

8.7 goto语句 157

第9章 使用数组 159

9.1 了解数组 159

9.1.1 使用数组的好处 159

9.1.2 数组的概念 160

9.1.3 数组的维数 161

9.2 一维数组 162

9.2.1 一维数组的声明 162

9.2.2 一维数组的存储 164

9.2.3 引用一维数组 165

9.2.4 一维数组的初始化 167

9.3 二维数组 168

9.3.1 二维数组的声明 169

9.3.2 二维数组的存储 169

9.3.3 二维数组的初始化 173

9.4 字符数组和字符串 174

9.4.1 字符数组 174

9.4.2 了解字符串 175

9.4.3 字符串的输入输出 177

9.5 数组的实例 178

9.5.1 字符串反转 178

9.5.2 查找最大数 179

9.5.3 数据排序 180

第10章 使用函数 183

10.1 函数的概念 183

10.1.1 函数概念 183

10.1.2 函数的分类 184

10.1.3 定义函数 185

10.1.4 main函数 186

10.2 函数的工作过程 187

10.2.1 程序结构 187

10.2.2 函数执行过程 187

10.3 编写函数 188

10.3.1 函数头 188

10.3.2 返回类型 189

10.3.3 参数列表 189

10.3.4 函数体 190

10.3.5 函数原型 190

10.4 函数的参数 192

10.4.1 参数传递过程 192

10.4.2 值调用 192

10.4.3 引用调用 194

10.4.4 数组调用 196

10.4.5 main的参数 198

10.5 函数调用 200

10.5.1 函数调用方式 201

10.5.2 被调函数的说明 201

10.5.3 返回函数结果 203

10.5.4 函数的嵌套调用 204

10.6 递归函数 205

10.6.1 函数的递归调用 205

10.6.2 递归的基本原理 207

10.6.3 递归函数设计 208

10.6.4 递归的优缺点 210

第11章 模块化程序设计方法 211

11.1 模块化程序设计概念 211

11.2 程序模块结构 212

11.2.1 C程序的组织 212

11.2.2 多文件模块的编译链接 213

11.2.3 文件包含 215

11.2.4 内部函数与外部函数 216

11.3 变量的作用域 217

11.3.1 局部变量 217

11.3.2 在复合语句中的变量 218

11.3.3 全局变量 219

11.3.4 全局变量和局部变量同名 222

11.4 变量的存储类型 223

11.4.1 了解存储类型 223

11.4.2 自动变量 224

11.4.3 寄存器变量 225

11.4.4 外部变量 226

11.4.5 静态变量 227

11.5 函数、文件、变量的关系 229

第12章 使用指针 230

12.1 内存和变量 230

12.1.1 计算机内存 230

12.1.2 变量的存储 231

12.2 指针和简单变量 232

12.2.1 指针的概念 232

12.2.2 创建指针 233

12.2.3 初始化指针 234

12.2.4 使用指针 235

12.2.5 给函数传递指针 238

12.3 指针和数组 239

12.3.1 指针、数组和地址间的关系 239

12.3.2 指针运算 241

12.3.3 用指针操作数组元素 242

12.4 指向多维数组的指针 245

12.4.1 理解二维数组的地址 245

12.4.2 多维数组的指针表示 247

12.4.3 指向多维数组的指针变量 248

12.4.4 数组名作为函数的参数 252

12.4.5 指向数组的指针小结 255

12.5 指针和字符串 256

12.5.1 字符串的指针表示 256

12.5.2 字符串指针作函数参数 258

12.5.3 字符数组和字符指针的区别 259

12.6 指针数组 260

12.6.1 指针数组的概念 261

12.6.2 用指针数组处理字符串 263

12.6.3 指针数组作函数参数 264

12.7 指向指针的指针 266

12.7.1 理解指向指针的指针 266

12.7.2 二级指针变量与数组 268

12.8 指针和函数 272

12.8.1 返回指针的函数 272

12.8.2 指向函数的指针 274

12.9 指针和const 276

12.9.1 用const控制指针 277

12.9.2 const的几种特殊用法 277

12.10 指针总结 278

12.10.1 明确分辨各种指针类型 278

12.10.2 理解指针的4项内容 279

第13章 结构、联合和枚举 280

13.1 结构的概念 280

13.1.1 定义结构类型 280

13.1.2 定义结构变量 281

13.1.3 使用结构变量 282

13.2 结构的嵌套 284

13.2.1 包含数组的结构 284

13.2.2 包含指针的结构 285

13.2.3 包含结构的结构 285

13.3 初始化结构变量 288

13.4 结构数组 289

13.4.1 结构数组的定义和引用 290

13.4.2 结构数组的初始化 291

13.4.3 结构数组实例 291

13.5 结构指针 292

13.5.1 定义结构指针 292

13.5.2 使用结构指针 293

13.5.3 用指针处理结构数组 294

13.6 向函数传递结构 295

13.6.1 传递结构变量的值 295

13.6.2 传递结构指针到函数 296

13.7 联合 297

13.7.1 定义联合类型 297

13.7.2 使用联合变量 298

13.7.3 在结构中嵌套联合类型 298

13.8 枚举 300

13.8.1 定义枚举类型 300

13.8.2 使用枚举变量 301

13.9 使用typedef 301

第14章 位运算和位域 303

14.1 了解二进制数 303

14.1.1 数据的存储 303

14.1.2 整数的二进制表示 304

14.1.3 实数的二进制表示 305

14.1.4 使用其他进制 305

14.2 位运算 307

14.2.1 位逻辑运算符 307

14.2.2 移位运算符 309

14.2.3 位运算的复合赋值运算符 310

14.2.4 位运算的用途 310

14.3 位域 311

14.3.1 定义位域结构 311

14.3.2 位域的使用 312

14.3.3 位域与联合的使用 314

第15章 文件输入/输出 316

15.1 文件与数据流 316

15.1.1 程序的输入/输出概念 316

15.1.2 流的概念 316

15.1.3 预定义的流 317

15.1.4 文件的基本概念 317

15.1.5 缓冲文件系统 318

15.2 文件的打开与关闭 318

15.2.1 文件指针 319

15.2.2 打开文件函数——fopen 319

15.2.3 关闭文件函数——fclose 321

15.3 从文件中读写字符 322

15.3.1 写字符函数——putc和fputc 322

15.3.2 读字符函数——getc和fgetc 323

15.3.3 合并文件 325

15.4 从文件中读写字符串 326

15.4.1 写字符串函数——fputs 326

15.4.2 读字符串函数——fgets 327

15.4.3 文件格式输出函数——fprintf 328

15.4.4 文件格式输入函数——fscanf 330

15.5 二进制文件的读写 332

15.5.1 写入整型数据函数——putw 332

15.5.2 读取整型数据函数——getw 333

15.5.3 写数据块函数——fwrite 333

15.5.4 读数据块函数——fread 335

15.5.5 文件检测函数 337

15.6 文件的随机读写 337

15.6.1 获取当前位置函数——ftell 337

15.6.2 重置文件位置指针函数——rewind 339

15.6.3 设置文件位置指针——fseek函数 340

15.7 管理缓冲区 342

15.8 输入/输出的重定向 343

15.8.1 操作系统的重定向功能 344

15.8.2 重定向输出 344

15.8.3 重定向函数——freopen 345

15.9 文件管理 346

15.9.1 重命名文件 346

15.9.2 删除文件 347

15.9.3 复制文件 348

15.9.4 创建临时文件 349

第16章 预处理 351

16.1 预处理简介 351

16.1.1 预处理功能 351

16.1.2 预处理命令 351

16.2 宏定义命令——#define 352

16.2.1 无参数的宏 352

16.2.2 带参数的宏 354

16.2.3 预处理操作符#和## 355

16.3 条件编译 357

16.3.1 使用#if 357

16.3.2 使用#ifdef和#ifndef 359

16.3.3 使用#defined和#undef 360

16.4 其他预处理命令 361

16.4.1 预定义的宏名 361

16.4.2 重置行号和文件名命令——#line 361

16.4.3 修改编译器设置命令——#pragma 362

16.4.4 产生错误信息命令——#error 362

16.5 内联函数 362

第2篇 C语言高级程序设计

第17章 处理字符串 365

17.1 字符串的存储 365

17.1.1 字符串的静态存储 365

17.1.2 字符串的动态存储 366

17.2 字符和字符串检测函数 368

17.2.1 字符检测函数简介 368

17.2.2 检测字符串长度函数——strlen 369

17.3 查找字符串 370

17.3.1 查找字符位置——strchr 370

17.3.2 查找相同字符——strspn 372

17.3.3 查找包含字符位置——strcspn 372

17.3.4 查找包含字符——strpbrk 373

17.3.5 查找子串——strstr 375

17.4 比较字符串 376

17.4.1 比较字符串——strcmp 376

17.4.2 比较部分字符串——memcmp 377

17.4.3 比较时忽略大小写——stricmp 379

17.5 连接字符串 380

17.5.1 连接字符串——strcat 380

17.5.2 连接部分字符——strncat 382

17.6 复制字符串 383

17.6.1 复制字符串——strcpy 383

17.6.2 复制部分字符——strncpy 384

17.6.3 更省事的复制函数——strdup 385

17.7 字符和字符串的转换 386

17.7.1 大小写字符的转换 386

17.7.2 转换大小写字符串 387

17.7.3 字符串与数值的转换 388

17.8 其他字符串函数 389

17.8.1 字符串反转——strrev 389

17.8.2 替换字符串中的字符——strset 390

17.8.3 分解字符串——strtok 391

第18章 数学函数和时间函数 393

18.1 数学函数 393

18.1.1 三角函数 393

18.1.2 双曲三角函数 394

18.1.3 指数函数和对数函数 395

18.1.4 其他数学函数 398

18.2 日期时间函数 399

18.2.1 表示日期时间的数据结构 399

18.2.2 获取日期时间 400

18.2.3 转换日期时间的表示形式 401

18.2.4 格式化日期时间 404

第19章 常用算法应用 408

19.1 排序 408

19.1.1 排序概述 408

19.1.2 冒泡排序法 409

19.1.3 选择排序法 410

19.1.4 插入排序法 411

19.1.5 Shell排序法 412

19.1.6 快速排序法 413

19.1.7 字符串的排序 414

19.2 查找 416

19.2.1 顺序查找 416

19.2.2 折半查找 417

19.3 队列 418

19.3.1 队列的概念 418

19.3.2 队列的操作 419

19.4 堆栈 422

19.4.1 堆栈的概念 422

19.4.2 堆栈的实现 422

19.5 链表 424

19.5.1 链表的概念 424

19.5.2 链表的基本操作 425

19.5.3 测试链表的功能 430

第20章 存储管理 432

20.1 内存组织方式 432

20.1.1 内存组织方式 432

20.1.2 堆和栈的比较 433

20.2 C语言的动态存储管理 434

20.2.1 分配内存函数——malloc 434

20.2.2 另一个分配内存的函数——calloc 436

20.2.3 调整已分配内存——realloc 437

20.2.4 释放分配的内存——free 439

20.2.5 丢失的内存 440

第21章 控制鼠标 442

21.1 鼠标驱动程序 442

21.1.1 通过中断访问鼠标驱动程序 442

21.1.2 新的开发环境 443

21.1.3 调用中断服务 444

21.2 鼠标库函数 445

21.2.1 定义头文件mouse.h 445

21.2.2 通过中断控制鼠标 446

21.2.3 初始化鼠标 447

21.2.4 复位鼠标 447

21.2.5 移动鼠标 448

21.2.6 显示鼠标指针 448

21.2.7 隐藏鼠标指针 449

21.2.8 获取按下按钮信息 449

21.2.9 获取释放按钮信息 450

21.2.10 获取鼠标状态信息 451

21.2.11 获取鼠标指针位置信息 451

21.2.12 保存鼠标指针位置 452

21.2.13 捕获键盘或鼠标 452

21.2.14 鼠标指针区域 453

21.3 鼠标应用实例 454

21.3.1 了解屏幕函数 454

21.3.2 实例程序 455

第22章 数据加密 458

22.1 密码技术的概念 458

22.2 加密方法 458

22.2.1 换位加密法 459

22.2.2 替换加密法 462

22.2.3 位加密法 464

22.3 MD5加密简介 466

22.3.1 MD5简介 466

22.3.2 MD5算法描述 467

第23章 数据压缩 469

23.1 数据压缩基础 469

23.1.1 数据压缩概述 469

23.1.2 数据压缩相关概念 469

23.1.3 常见压缩算法简介 470

23.2 LZW原理 471

23.2.1 LZW的相关概念 471

23.2.2 LZW压缩过程 471

23.2.3 LZW解压缩过程 473

23.3 LZW实现代码 473

23.3.1 程序构思 473

23.3.2 定义数据结构 474

23.3.3 压缩函数 474

23.3.4 搜索哈希表 476

23.3.5 输出压缩数据 477

23.3.6 解压缩函数 478

23.3.7 输入编码数据 480

23.3.8 解码函数 480

23.3.9 主程序 481

第24章 图形编程 483

24.1 显示系统简介 483

24.1.1 显示系统基本概念 483

24.1.2 显示卡种类 484

24.1.3 显示模式 484

24.2 绘图基础 486

24.2.1 设置显示模式 486

24.2.2 控制显示缓冲区 487

24.3 图形函数 488

24.3.1 绘制点 488

24.3.2 读取点的信息 489

24.3.3 绘制直线 489

24.3.4 绘制矩形 491

24.3.5 绘制圆 492

24.3.6 绘制多边形 493

24.4 编辑图形 494

24.4.1 复制图形 494

24.4.2 移动图形 495

24.4.3 保存图形 495

24.4.4 载入图形 496

第25章 调用汇编程序 498

25.1 AT&T汇编简介 498

25.1.1 了解汇编的两种格式 498

25.1.2 将C语言输出为汇编程序 500

25.2 GCC内嵌汇编 501

25.2.1 基本内联汇编 501

25.2.2 扩展内联汇编 501

25.2.3 内联汇编实例 505

25.3 调用汇编程序 507

25.3.1 C编译程序的调用约定 507

25.3.2 C语言调用汇编的结构 508

25.3.3 建立汇编函数的框架 509

25.3.4 调用汇编函数 510

第26章 程序设计实例 512

26.1 程序分析 512

26.1.1 模块划分 512

26.1.2 设计数据结构 513

26.2 头文件 514

26.3 主模块 515

26.3.1 main函数 515

26.3.2 检查初始化状态 516

26.3.3 检查登录密码 517

26.3.4 从文件创建链表 518

26.3.5 显示主菜单 519

26.3.6 将链表保存到文件 522

26.4 输入员工信息 523

26.5 查询员工信息 525

26.5.1 查询子菜单 525

26.5.2 查询函数 527

26.5.3 通用显示函数 528

26.6 显示员工信息 529

26.7 修改员工信息 530

26.7.1 修改子菜单 530

26.7.2 修改数据 532

26.8 删除员工信息 533

26.9 统计员工信息 535

26.10 重设系统密码 535

附录A ASCII关键字 537

附录B ANSI C关键字 540

实例目录

【程序1-1】第一个C语言程序 9

【程序2-1】C语言程序组成示例 14

【程序3-1】欢迎程序 25

【程序4-1】符号常量示例 40

【程序4-2】摄氏温度转换为华氏温度 44

【程序4-3】整型数据所占内存空间的大小 46

【程序4-4】整型数据输出示例 51

【程序4-5】整数转换为十六进制和八进制示例 52

【程序4-6】使用转义字符示例 55

【程序4-7】字符型数据输出示例 56

【程序4-8】实数类型占用的字节示例 57

【程序4-9】实型数据输出示例1 59

【程序4-10】实型数据输出示例2 60

【程序4-11】实型数据输出示例3 61

【程序4-12】char类型和int类型之间的转换示例 62

【程序4-13】将float转换为int类型示例 62

【程序4-14】强制类型转换示例 63

【程序4-15】复数操作示例 64

【程序5-1】输出逗号表达式的结果 67

【程序5-2】十进制数转换为二进制数示例(不使用循环) 69

【程序5-3】十进制数转换为二进制数示例(使用循环) 70

【程序5-4】自增运算符的后缀模式和前缀模式 71

【程序5-5】使用复合赋值运算符 75

【程序5-6】关系运算符示例 76

【程序5-7】逻辑运算符示例 77

【程序5-8】条件运算符示例 79

【程序5-9】使用sizeof运算符 80

【程序6-1】printf函数示例 89

【程序6-2】printf函数不同格式串输出示例 90

【程序6-3】printf函数输出最小宽度控制示例 91

【程序6-4】printf函数输出精度控制示例 92

【程序6-5】printf函数输出字符示例 94

【程序6-6】printf函数输出整数示例 95

【程序6-7】printf函数输出实数示例 96

【程序6-8】printf函数输出字符串示例 97

【程序6-9】printf函数动态设置输出宽度和精度示例 98

【程序6-10】printf函数的返回值示例 99

【程序6-11】printf函数输出列表示例1 100

【程序6-12】printf函数输出列表示例2 100

【程序6-13】scanf函数示例 102

【程序6-14】scanf函数不能控制输入精度示例 105

【程序6-15】scanf函数使用非格式字符示例 106

【程序6-16】scanf函数返回值示例 107

【程序6-17】getchar函数示例 108

【程序6-18】getch函数示例 109

【程序6-19】gets函数示例 109

【程序6-20】putch函数示例 110

【程序6-21】puts函数示例 111

【程序7-1】用if语句求最大数 114

【程序7-2】用if语句对两个数排序 115

【程序7-3】用if else语句对两个数排序 116

【程序7-4】检查输入字符类型示例(if语句嵌套) 119

【程序7-5】三个数排序示例(if语句嵌套方法) 120

【程序7-6】三个数排序示例(交换方法) 121

【程序7-7】检查输入字符类型示例(if else if语句) 123

【程序7-8】整数转换为中文星期名称(switch语句) 125

【程序7-9】switch语句多重标号示例(错误结果) 126

【程序7-10】分档计算运费(switch语句) 127

【程序8-1】求连续自然数之和示例(while语句,计数器递增) 132

【程序8-2】求连续自然数之和示例(while语句,计数器递减) 134

【程序8-3】求连续自然数之和示例(优化后的代码) 135

【程序8-4】求连续自然数之和示例(for语句) 139

【程序8-5】省略初始化部分的for循环示例 139

【程序8-6】改变for循环的循环变量递增方式示例 141

【程序8-7】用for循环输出指定期间的字符示例 142

【程序8-8】用for循环输出ASCII代码表示例 143

【程序8-9】用while循环显示菜单示例 144

【程序8-10】用do while循环显示菜单示例 146

【程序8-11】循环嵌套输出示例 148

【程序8-12】九九乘法表 150

【程序8-13】九九乘法表示例(优化后的代码) 151

【程序8-14】百钱买百鸡示例(循环嵌套) 152

【程序8-15】百钱买百鸡代码优化示例 153

【程序8-16】用break语句跳出循环示例 155

【程序8-17】用continue语句跳过循环部分语句示例 156

【程序8-18】用goto语句编写循环代码示例 157

【程序9-1】统计学生成绩示例(不使用数组) 159

【程序9-2】统计学生成绩示例(使用数组) 160

【程序9-3】使用变长数组示例(C99标准) 163

【程序9-4】越界访问数组示例 166

【程序9-5】输出未初始化的数组元素示例 167

【程序9-6】按线性方式输出二维数组元素示例 170

【程序9-7】输出数组各元素的内存地址示例 171

【程序9-8】字符数组示例 175

【程序9-9】输出字符数组示例 177

【程序9-10】字符串反转示例 179

【程序9-11】输出数组中的最大数示例 180

【程序9-12】数组元素排序示例 181

【程序10-1】求最大值函数示例 185

【程序10-2】函数返回值示例 189

【程序10-3】函数返回值示例 191

【程序10-4】函数的值调用示例 193

【程序10-5】函数的引用调用示例 194

【程序10-6】通过指针传递参数示例 195

【程序10-7】函数的数组调用示例 197

【程序10-8】main函数的参数示例 199

【程序10-9】输出用户输入的命令行参数示例 200

【程序10-10】函数嵌套调用示例 204

【程序10-11】函数递归调用示例 205

【程序10-12】汉诺塔(递归程序示例) 208

【程序11-1】引用多个源程序文件示例 213

【程序11-2】局部变量示例 217

【程序11-3】复合语句中的变量示例 219

【程序11-4】全局变量示例1 220

【程序11-5】全局变量示例2 221

【程序11-6】同名全局变量和局部变量示例 222

【程序11-7】自动变量示例 224

【程序11-8】寄存器变量示例 226

【程序11-9】外部变量示例 226

【程序11-10】静态变量示例 228

【程序12-1】查看变量地址示例 232

【程序12-2】错误初始化指针示例 235

【程序12-3】取地址运算符和取内容运算符示例 236

【程序12-4】用指针引用变量示例 237

【程序12-5】通过指针交换数据示例 237

【程序12-6】指针和数组地址之间的关系示例 240

【程序12-7】用指针操作数组元素示例 242

【程序12-8】将指针作为数组名使用示例 243

【程序12-9】输出数组的地址和长度示例 245

【程序12-10】输出数组各维的地址和长度示例 246

【程序12-11】输出数组各元素的地址和长度示例 247

【程序12-12】初始化二维数组示例 248

【程序12-13】用指针变量初始化二维数组示例 249

【程序12-14】用指针变量指向数组的一行数据示例 251

【程序12-15】一维数组作函数参数示例 253

【程序12-16】使用指向一维数组的指针变量传递参数示例 254

【程序12-17】字符串数组、字符串指针使用示例 257

【程序12-18】字符串指针作函数参数示例 258

【程序12-19】用指针数组指向二维数组每一行示例 261

【程序12-20】二维数组指针示例 262

【程序12-21】用指针数组处理字符串示例 263

【程序12-22】指针数组作函数参数示例 264

【程序12-23】指向指针的指针示例 267

【程序12-24】用二级指针操作一维数组示例 268

【程序12-25】用二级指针操作二维数组示例 270

【程序12-26】用二级指针作函数参数示例 271

【程序12-27】指针型函数示例 272

【程序12-28】指向函数的指针示例1 274

【程序12-29】指向函数的指针示例2 275

【程序12-30】指针和const的关系示例 278

【程序13-1】结构和结构变量示例 283

【程序13-2】嵌套结构成员赋值、输出示例 286

【程序13-3】初始化结构示例 289

【程序13-4】结构数组示例 291

【程序13-5】用指针处理结构数组示例 294

【程序13-6】传递结构变量的值到函数示例 295

【程序13-7】结构中嵌套联合类型示例1 298

【程序13-8】结构中嵌套联合类型示例2 299

【程序14-1】位或运算示例 308

【程序14-2】位反运算示例 308

【程序14-3】位运算用途示例 310

【程序14-4】位域示例 313

【程序14-5】二进制转换(位域与联合的使用)示例 314

【程序15-1】保存用户输入内容示例 322

【程序15-2】从文件中读取字符示例 324

【程序15-3】合并文件示例 325

【程序15-4】向文件中增加内容示例 326

【程序15-5】将文件内容显示到屏幕示例 328

【程序15-6】格式化文件数据示例 329

【程序15-7】读取格式化文件数据示例 330

【程序15-8】将整型数据写入文件示例 332

【程序15-9】从文件中读取整型数据示例 333

【程序15-10】保存二进制文件示例 334

【程序15-11】读二进制文件示例 336

【程序15-12】获取文件位置指针示例 338

【程序15-13】重置文件位置指针示例 339

【程序15-14】设置文件位置指针示例 341

【程序15-15】刷新标准输入流stdin缓冲区示例 343

【程序15-16】重定向输出到显示器示例 344

【程序15-17】重定向输出到文件示例 345

【程序15-18】重命名文件示例 346

【程序15-19】删除文件示例 347

【程序15-20】复制文件示例 348

【程序15-21】临时文件使用示例 349

【程序16-1】无参数宏示例 353

【程序16-2】操作符#示例 355

【程序16-3】操作符##示例 356

【程序16-4】条件编译示例 358

【程序16-5】条件编译嵌套示例 359

【程序16-6】使用预定宏名示例 361

【程序16-7】#line命令示例 361

【程序16-8】内联函数示例 363

【程序17-1】字符串动态存储示例 367

【程序17-2】字符检测函数示例 368

【程序17-3】字符串长度函数示例 369

【程序17-4】查找字符位置示例 370

【程序17-5】查找相同字符示例 372

【程序17-6】查找包含字符位置示例 373

【程序17-7】查找包含字符示例 374

【程序17-8】查找子串示例 375

【程序17-9】比较字符串示例 376

【程序17-10】比较部分字符串示例 378

【程序17-11】忽略大小写比较字符串示例 379

【程序17-12】连接字符串示例 381

【程序17-13】连接部分字符示例 382

【程序17-14】复制字符串示例 383

【程序17-15】复制部分字符示例 384

【程序17-16】用dup函数复制字符串示例 385

【程序17-17】大小写字符转换示例 386

【程序17-18】字符串大小写转换示例 387

【程序17-19】字符串与数值转换示例 388

【程序17-20】字符串反转示例 389

【程序17-21】替换字符示例 390

【程序17-22】分解字符串示例 391

【程序18-1】三角函数sin示例 394

【程序18-2】双三曲函数示例 395

【程序18-3】exp函数示例 396

【程序18-4】用frexp函数分解尾数和指数示例 396

【程序18-5】用ldexp函数组合实数示例 397

【程序18-6】ceil和floor函数示例 398

【程序18-7】modf函数示例 399

【程序18-8】获取日期时间示例 400

【程序18-9】转换日期时间表示形式示例 401

【程序18-10】秒数转换为对应的日期示例 402

【程序18-11】日期转换为秒数示例 403

【程序18-12】日期转换为字符串示例 404

【程序18-13】显示当前日期示例 407

【程序19-1】冒泡排序法示例 409

【程序19-2】选择排序法示例 411

【程序19-3】插入排序法示例 411

【程序19-4】Shell排序法示例 412

【程序19-5】快速排序法示例 413

【程序19-6】字符串排序示例 414

【程序19-7】顺序查找示例 416

【程序19-8】折半查找示例 418

【程序19-9】队列操作示例 419

【程序19-10】堆栈操作示例 423

【程序19-11】链表操作示例 425

【程序20-1】不同类变量分配内存空间示例 433

【程序20-2】用malloc函数动态分配内存创建动态数组示例 435

【程序20-3】用realloc函数动态分配内存示例 437

【程序20-4】用free函数释放分配内存示例 439

【程序20-5】内存分配丢失示例 440

【程序20-6】分配所有可用内存示例 441

【程序21-1】头文件,包含控制鼠标的函数原型定义 445

【程序21-2】控制鼠标的函数代码 446

【程序21-3】初始化鼠标函数代码 447

【程序21-4】复位鼠标函数代码 447

【程序21-5】移动鼠标函数代码 448

【程序21-6】显示鼠标指针函数代码 448

【程序21-7】隐藏鼠标指针函数代码 449

【程序21-8】获取按下按钮信息函数代码 450

【程序21-9】获取释放按钮信息函数代码 450

【程序21-10】获取鼠标状态信息函数代码 451

【程序21-11】获取鼠标指针位置信息函数代码 451

【程序21-12】保存鼠标指针位置函数代码 452

【程序21-13】捕获鼠标或键盘按钮函数代码 453

【程序21-14】判断鼠标指针区域代码 454

【程序21-15】测试鼠标库函数的代码 455

【程序22-1】换位加密法示例 459

【程序22-2】替换加密法示例 463

【程序22-3】位加密法示例 465

【程序23-1】LZW压缩算法头文件 474

【程序23-2】压缩函数代码 475

【程序23-3】搜索哈希表函数代码 477

【程序23-4】输出压缩数据函数代码 477

【程序23-5】解压缩函数代码 478

【程序23-6】输入编辑数据函数代码 480

【程序23-7】解压函数代码 480

【程序23-8】压缩主程序代码 481

【程序24-1】设置显示模式函数代码 486

【程序24-2】绘制点的函数代码(调用BIOS功能) 488

【程序24-3】绘制点的函数代码(直接存取显示内存) 489

【程序24-4】读取点信息的函数代码 489

【程序24-5】绘制直线的函数代码 490

【程序24-6】绘制矩形的函数代码 491

【程序24-7】绘制实心矩形的函数代码 491

【程序24-8】绘制圆的函数代码 492

【程序24-9】绘制实心圆的函数代码 493

【程序24-10】绘制多边形的函数代码 493

【程序24-11】绘制随机多边形的代码 494

【程序24-12】复制图形的函数代码 494

【程序24-13】移动图形的函数代码 495

【程序24-14】保存图形的函数代码 495

【程序24-15】载入图形的函数代码 496

【程序24-16】测试绘制函数的代码 497

【程序25-1】将C语言编译为汇编程序示例(C源程序) 500

【程序25-2】将C语言编译为汇编程序示例(汇编程序) 500

【程序25-3】简单内联汇编示例 503

【程序25-4】包含输入部分的内联汇编示例 504

【程序25-5】输出字符串的内联汇编示例 505

【程序25-6】读取寄存器值的内联汇编示例 506

【程序25-7】C语言函数调用约定示例 507

【程序25-8】add函数(C源程序) 508

【程序25-9】add函数编译后的汇编程序 508

【程序25-10】两数相乘的汇编程序示例 509

【程序25-11】C语言调用汇编程序示例 510

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/11/16 13:47:51