《21天学通C语言》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:王正仲等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2009
  • ISBN:9787121079023
  • 页数:414 页
图书介绍:本书是C语言的入门教程,针对没有程序设计基础的读者,详细介绍了C语言的基本概念和编程技术。本书共分为八篇21章内容,第一篇为C语言入门篇,该篇介绍了C语言和程序特点以及编程的准备。第二篇为C语言基础篇,该篇介绍了C语言编程准备、常量与变量、整型、字符型与浮点型和表达式与操作符等内容。第三篇为结构编程篇,该篇通过两章的篇幅讲解了选择结构和循环结构两种常用的程序结构。第四篇为数组和字符串篇,该篇通过两章的篇幅分别讲解了C语言中数组和字符串的应用。第五篇为函数篇,该篇主要内容包括函数、函数与文件、函数中的变量和字符串处理函数等。第六篇为指针篇,该篇通过两章的篇幅来介绍了指针的重要概念和应用。第七篇为高级应用篇,该篇内容主要包括堆管理、位运算操作符、结构体、共用体、枚举和位域和预处理等。第八篇为综合案例篇,该篇以图书管理系统开发为例,详细介绍了C语言和文件处理开发的过程。

第一篇 C语言入门篇 19

第1章 C语言与程序概述(教学视频:36分钟) 19

1.1 C语言历史 19

1.1.1 C语言的诞生 19

1.1.2 C语言的标准化 20

1.1.3 C语言的特点 20

1.1.4 Hello,world! 21

1.2 数据结构与算法 22

1.2.1 数据结构 22

1.2.2 算法简介 24

1.3 程序设计 25

1.3.1 结构化程序设计 25

1.3.2 三种基本结构 25

1.3.3 算法描述方法 27

1.4 综合练习 29

1.5 小结 31

1.6 习题 31

第2章 C语言编程准备(教学视频:21分钟) 33

2.1 C程序介绍 33

2.1.1 两个简单的C程序 33

2.1.2 C程序的一些特点 35

2.1.3 标识符与关键字 35

2.1.4 编译、链接和运行 36

2.2 在不同的开发环境中开发C程序 37

2.2.1 Turbo C 37

2.2.2 Visual C++2005 39

2.2.3 GCC 3.2.2 41

2.3 综合练习 42

2.4 小结 42

2.5 习题 43

第二篇 C语言基础篇 44

第3章 常量与变量(教学视频:39分钟) 44

3.1 常量与变量 44

3.1.1 常量 44

3.1.2 变量 45

3.2 变量的使用 46

3.2.1 声明变量 46

3.2.2 定义变量 47

3.2.3 使用extern声明变量 47

3.2.4 赋值和初始化 48

3.2.5 地址操作符和指针操作符 50

3.3 格式化输入输出 51

3.3.1 printf函数 51

3.3.2 scanf函数 52

3.4 数据类型 53

3.5 综合练习 53

3.6 小结 54

3.7 习题 55

第4章 整型、字符型与浮点型(教学视频:89分钟) 56

4.1 整型数据类型 56

4.1.1 字节长度 56

4.1.2 修饰符signed和unsigned 57

4.1.3 整型常量 57

4.1.4 整型变量 58

4.1.5 整型的存储方式 59

4.1.6 整型的数值范围 60

4.2 字符型数据类型 63

4.2.1 字节长度 63

4.2.2 字符常量 64

4.2.3 字符变量 66

4.2.4 字符型的存储方式 67

4.3 浮点型数据类型 67

4.3.1 字节长度 67

4.3.2 浮点型常量 68

4.3.3 浮点型变量 68

4.3.4 浮点型的精度 68

4.3.5 浮点型的数值范围 69

4.3.6 浮点型的存储方式 71

4.4 使用typedef定义类型 73

4.4.1 typedef的标准形式 73

4.4.2 合理使用typedef 74

4.5 限定词const与volatile 75

4.5.1 使用const 75

4.5.2 使用volatile 76

4.6 综合练习 77

4.7 小结 78

4.8 习题 78

第5章 表达式与操作符(教学视频:167分钟) 80

5.1 表达式和语句 80

5.1.1 表达式 80

5.1.2 语句 82

5.1.3 复合语句 82

5.1.4 C语言操作符 84

5.2 赋值操作符与赋值表达式 85

5.2.1 赋值操作符 85

5.2.2 赋值操作符的结合性 86

5.2.3 左值和右值 86

5.2.4 赋值表达式中的类型转换 87

5.2.5 类型转换操作符 89

5.3 运算操作符与运算表达式 90

5.3.1 运算操作符 90

5.3.2 符号操作符 92

5.3.3 优先级与结合性 93

5.3.4 数值运算中的类型转换 95

5.3.5 复合的赋值操作符 96

5.4 自增、自减操作符 98

5.4.1 自增操作符 98

5.4.2 自减操作符 100

5.4.3 优先级与结合性 101

5.4.4 词法分析:贪婪法 102

5.4.5 自增、自减操作符的副作用 104

5.5 关系操作符与关系表达式 105

5.5.1 使用关系操作符 105

5.5.2 关系表达式的值 107

5.5.3 优先级与结合性 108

5.6 逻辑操作符与逻辑表达式 109

5.6.1 使用逻辑操作符 109

5.6.2 逻辑表达式的值 110

5.6.3 优先级和结合性 111

5.6.4 化简逻辑表达式 112

5.7 逗号操作符与逗号表达式 112

5.7.1 使用逗号操作符 112

5.7.2 逗号表达式的值 113

5.8 操作符优先级和结合性 114

5.8.1 优先级和结合性 114

5.8.2 使用小括号 116

5.8.3 减少语句的副作用 117

5.9 综合练习 119

5.10 小结 120

5.11 习题 120

第三篇 结构编程篇 122

第6章 选择结构(教学视频:66分钟) 122

6.1 if语句 122

6.1.1 使用if语句 122

6.1.2 else和if的配对使用 125

6.1.3 选择结构中的不平等分支 126

6.1.4 判断表达式中的=与== 127

6.2 switch语句 128

6.2.1 使用switch语句 129

6.2.2 break语句 129

6.2.3 else if语句和switch语句 132

6.2.4 switch中的标号 133

6.2.5 使用具名常量组成标号 134

6.3 条件操作符与条件表达式 136

6.3.1 使用条件操作符 136

6.3.2 条件表达式与if-else 136

6.3.3 条件表达式中的类型转换 137

6.3.4 条件表达式的嵌套 138

6.4 逻辑表达式的隐式选择 138

6.4.1 逻辑表达式的特点 138

6.4.2 隐式选择的作用 139

6.4.3 巧用隐式选择 140

6.5 综合练习 141

6.6 小结 142

6.7 习题 142

第7章 循环结构(教学视频:86分钟) 144

7.1 for语句 144

7.1.1 使用for语句 144

7.1.2 for头中的三个表达式 144

7.1.3 for头中的逗号表达式 146

7.1.4 for语句的嵌套 147

7.1.5 for语句使用举例 147

7.2 while语句 149

7.2.1 使用while语句 149

7.2.2 while语句与for语句 150

7.2.3 while语句使用举例 151

7.3 do-while语句 153

7.3.1 使用do-while语句 153

7.3.2 do-while语句与while语句 153

7.3.3 do-while语句使用举例 154

7.4 continue语句与break语句 156

7.4.1 使用continue语句 156

7.4.2 continue语句与if语句 158

7.4.3 循环结构中的break语句 158

7.4.4 使用break语句终止多层循环 160

7.5 goto语句 161

7.5.1 goto语句的标准形式 161

7.5.2 搭配使用goto语句与if语句 162

7.5.3 慎用goto语句 163

7.6 基本结构的嵌套使用 165

7.6.1 if-while与while-if 165

7.6.2 使用选择结构包含循环结构 166

7.7 综合练习 167

7.8 小结 168

7.9 习题 168

第四篇 数组和字符串篇 170

第8章 数组(教学视频:79分钟) 170

8.1 一维数组 170

8.1.1 定义一维数组 170

8.1.2 访问一维数组 171

8.1.3 未初始化的一维数组 172

8.1.4 初始化数组 173

8.1.5 数组元素地址 175

8.1.6 数组越界 176

8.1.7 一维数组使用举例 177

8.2 二维数组 180

8.2.1 定义二维数组 180

8.2.2 访问二维数组 181

8.2.3 二维数组的存储方式 182

8.2.4 初始化二维数组 182

8.2.5 二维数组使用举例 183

8.3 多维数组 185

8.3.1 定义多维数组 185

8.3.2 多维数组使用举例 185

8.4 综合练习 186

8.5 小结 187

8.6 习题 187

第9章 字符串(教学视频:68分钟) 189

9.1 字符数组 189

9.1.1 定义和赋值字符数组 189

9.1.2 字符数组的初始化 191

9.1.3 二维字符数组 191

9.1.4 字符数组使用举例 193

9.2 字符串常量与字符串变量 196

9.2.1 字符串常量 196

9.2.2 字符串变量 198

9.2.3 格式化输出字符串 198

9.2.4 字符终止符的作用 199

9.2.5 格式化输入字符串 200

9.3 字符串应用举例 200

9.3.1 使用strlen函数 200

9.3.2 统计单词数 201

9.3.3 颠倒单词顺序 203

9.3.4 颠倒单词顺序——改进 204

9.4 综合练习 206

9.5 小结 207

9.6 习题 207

第五篇 函数篇 209

第10章 函数(教学视频:63分钟) 209

10.1 什么是函数 209

10.1.1 模块化编程 209

10.1.2 定义函数 212

10.1.3 调用函数 212

10.1.4 函数使用举例 214

10.1.5 范例的改进 215

10.2 函数声明 216

10.2.1 声明的形式 217

10.2.2 声明与定义 217

10.3 函数值与形参列表 218

10.3.1 函数值类型 218

10.3.2 形参列表 220

10.3.3 函数值 221

10.3.4 使用const形参 224

10.4 函数体 226

10.4.1 定义变量 226

10.4.2 检查形参 227

10.4.3 return语句 227

10.5 main函数 229

10.5.1 main函数的声明 229

10.5.2 函数值类型 229

10.5.3 向main函数传递参数 230

10.6 综合练习 233

10.7 小结 234

10.8 习题 234

第11章 函数与文件(教学视频:47分钟) 236

11.1 多文件的程序 236

11.1.1 源文件和头文件 236

11.1.2 C工程的组织结构 237

11.1.3 一个简单的多文件工程 238

11.2 创建和运行多文件工程 240

11.2.1 Turbo C 240

11.2.2 Visual C++2005 241

11.2.3 GCC 3.2.2 241

11.3 函数的调用 241

11.3.1 嵌套调用 241

11.3.2 递归调用 243

11.3.3 递归调用使用举例 244

11.4 内部函数与外部函数 248

11.4.1 外部函数 248

11.4.2 内部函数 249

11.4.3 应用举例 249

11.5 综合练习 251

11.6 小结 252

11.7 习题 252

第12章 函数中的变量(教学视频:60分钟) 254

12.1 生存期和作用域 254

12.1.1 生存期 254

12.1.2 作用域 255

12.2 局部变量和全局变量 257

12.2.1 局部变量 257

12.2.2 全局变量 258

12.2.3 初始化全局变量 260

12.2.4 合理使用全局变量 261

12.2.5 同名变量和变量屏蔽 262

12.3 变量的存储类别 265

12.3.1 内存存储区 265

12.3.2 auto变量 265

12.3.3 static局部变量 266

12.3.4 register变量 268

12.3.5 extern变量 269

12.3.6 static全局变量 269

12.4 综合练习 270

12.5 小结 271

12.6 习题 271

第13章 字符串处理函数(教学视频:38分钟) 273

13.1 输入和输出函数 273

13.1.1 putchar函数和getchar函数 273

13.1.2 puts函数和gets函数 274

13.2 复制和拼接 275

13.2.1 strcpy函数 275

13.2.2 strncpy函数 276

13.2.3 strcat函数和strncat函数 278

13.3 比较和转换 279

13.3.1 strncmp函数和strcmp函数 279

13.3.2 strupr函数和strlwr函数 281

13.4 综合练习 282

13.5 小结 282

13.6 习题 283

第六篇 指针篇 284

第14章 指针(教学视频:60分钟) 284

14.1 什么是指针 284

14.1.1 访问内存的两种方式 284

14.1.2 指针的概念 285

14.1.3 指针变量的定义 285

14.2 指针的使用 286

14.2.1 指针变量的一次赋值 286

14.2.2 指针变量的多次赋值 288

14.2.3 将指针变量赋值为整数 290

14.2.4 初始化指针变量 291

14.2.5 使用const声明指针变量 291

14.3 指针与函数 292

14.3.1 指针形参 292

14.3.2 指针型函数值 294

14.3.3 函数型指针 295

14.4 void型指针 297

14.4.1 void型指针的含义 297

14.4.2 void指针型形参 297

14.4.3 void指针型函数值 298

14.5 综合练习 298

14.6 小结 299

14.7 习题 299

第15章 再论指针(教学视频:68分钟) 301

15.1 指针与数组 301

15.1.1 指向数组元素的指针 301

15.1.2 使用指针访问数组 301

15.1.3 数组元素型指针和数组变量 303

15.1.4 声明数组形参的三种方式 305

15.1.5 使用三种声明方式 306

15.1.6 调用含数组形参的函数 306

15.2 指针与二维数组 307

15.2.1 二维数组的地址 307

15.2.2 指针法访问二维数组 310

15.2.3 二维数组形参 311

15.3 指针与字符 315

15.3.1 字符指针 315

15.3.2 使用字符指针 317

15.3.3 字符串数组和字符指针数组 319

15.4 综合练习 320

15.5 小结 321

15.6 习题 321

第七篇 高级应用篇 323

第16章 堆管理(教学视频:24分钟) 323

16.1 分配和释放 323

16.1.1 malloc函数和memset函数 323

16.1.2 free函数 324

16.2 其他分配函数 325

16.2.1 calloc函数 325

16.2.2 realloc函数 326

16.3 动态数组的实现 328

16.4 综合练习 329

16.5 小结 330

16.6 习题 330

第17章 位运算操作符(教学视频:50分钟) 331

17.1 位运算 331

17.1.1 字节与位 331

17.1.2 补码 331

17.2 位运算操作符 332

17.2.1 取反操作符(~) 332

17.2.2 位或操作符(|) 333

17.2.3 位与操作符(&) 335

17.2.4 异或操作符(^) 338

17.2.5 右移操作符(>>) 340

17.2.6 左移操作符(<<) 341

17.2.7 位运算赋值操作符 343

17.3 位运算操作符使用举例 343

17.3.1 循环移位 343

17.3.2 使用子网掩码 345

17.4 综合练习 346

17.5 小结 346

17.6 习题 346

第18章 结构体(教学视频:46分钟) 348

18.1 结构体 348

18.1.1 结构体类型的概念 348

18.1.2 定义结构体变量 349

18.1.3 结构体的字节长度 350

18.2 结构体的使用 352

18.2.1 访问结构体成员 352

18.2.2 初始化结构体变量 353

18.2.3 浅复制和深复制 355

18.3 结构体数组 357

18.3.1 定义结构体数组 357

18.3.2 初始化结构体数组 358

18.3.3 结构体数组使用举例 359

18.4 结构体指针 360

18.4.1 指向结构体变量的指针 360

18.4.2 指向堆空间的结构体指针 361

18.4.3 指向结构体数组元素的指针 362

18.5 综合练习 363

18.6 小结 364

18.7 习题 365

第19章 共用体、枚举和位域(教学视频:33分钟) 366

19.1 共用体 366

19.1.1 共用体类型 366

19.1.2 共用体变量 367

19.2 枚举 369

19.2.1 定义枚举类型 369

19.2.2 枚举类型的使用 370

19.3 位域 372

19.3.1 位域的概念 372

19.3.2 位域的字长 373

19.3.3 位域成员的内存分布 374

19.4 综合练习 376

19.5 小结 378

19.6 习题 378

第20章 预处理(教学视频:61分钟) 380

20.1 宏定义 380

20.2 宏对象 381

20.2.1 使用宏对象 381

20.2.2 代替常用字符串 382

20.2.3 说明形参属性 384

20.2.4 宏定义的作用域 385

20.2.5 标准宏对象 386

20.3 宏函数 386

20.3.1 使用宏函数 386

20.3.2 宏函数与函数 387