《新手学C语言》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:王欣惠,胡艳,邵国红等编著
  • 出 版 社:北京:北京希望电子出版社
  • 出版年份:2010
  • ISBN:9787894989895
  • 页数:436 页
图书介绍:

第1篇 基础篇 2

第1章 认识C语言 2

1.1程序设计语言 2

1.1.1程序设计语言的发展 2

1.1.2 C语言的发展 3

1.1.3 C语言的特点 4

1.2结构化程序设计 5

1.2.1程序设计的概念 5

1.2.2算法 5

1.2.3程序的三种基本结构 9

1.2.4结构化程序设计方法 11

1.3 C程序的特点 13

1.3.1 C程序实例 13

1.3.2 C程序的结构特点 14

1.3.3标识符和关键字 15

1.4 C程序的编译、连接和执行 17

1.5编译和运行C程序的一般步骤 19

1.5.1使用Turbo C 2.0开发 19

1.5.2使用Visual C++ 6.0开发 21

1.6常见面试题 23

1.7小结 24

1.8习题 24

第2章 数据类型、运算符、表达式和输入输出函数 25

2.1常量 25

2.1.1常量的定义 26

2.1.2符号常量 26

2.2变量 27

2.2.1变量定义 27

2.2.2变量命名 27

2.2.3变量的赋值和初始化 28

2.2.4变量的作用域 28

2.2.5使用extern声明变量 30

2.3数据类型 30

2.3.1整型 31

2.3.2实型 32

2.3.3字符型 34

2.4运算符和表达式 36

2.4.1运算符和表达式 36

2.4.2赋值运算符和赋值表达式 37

2.4.3算术运算符和算术表达式 38

2.4.4关系运算符和关系表达式 39

2.4.5逻辑运算符和逻辑表达式 40

2.4.6条件运算符和条件表达式 42

2.4.7逗号运算符和逗号表达式 43

2.4.8运算符的优先级 43

2.5不同类型数据之间的转换 43

2.5.1隐式转换 44

2.5.2显示转换 44

2.6数据的输入 46

2.6.1使用scanf函数实现数据输入 46

2.6.2使用getchar函数实现字符输入 48

2.7数据的输出 50

2.7.1使用printf函数实现数据格式输出 50

2.7.2使用putchar函数实现字符输出 52

2.8顺序结构程序设计举例 53

2.9常见面试题 54

2.10小结 55

2.11习题 55

第3章 选择结构设计 57

3.1选择结构简介 57

3.2使用if实现选择结构设计 57

3.2.1 if结构语法 58

3.2.2 if结构程序举例 58

3.3使用if-else实现选择结构设计 60

3.3.1 if-else结构语法 60

3.3.2 if-else结构程序举例 61

3.4使用多重if实现选择结构设计 62

3.4.1多重if结构语法 62

3.4.2多重if结构程序举例 63

3.5使用if嵌套实现选择结构设计 64

3.5.1 if嵌套结构语法 64

3.5.2 if和else配对问题 65

3.5.3 if嵌套结构程序举例 65

3.6使用switch实现选择结构设计 66

3.6.1 switch结构语法 66

3.6.2 switch语句的注意事项 68

3.6.3 switch的执行过程 68

3.6.4 switch结构程序举例 69

3.7 switch和多重if的比较 71

3.8选择结构程序设计举例 73

3.9常见面试题 77

3.10小结 78

3.11习题 78

第4章 循环结构设计 80

4.1循环结构简介 80

4.2使用while循环 81

4.2.1 while循环语法及含义 81

4.2.2使用while循环程序举例 82

4.3使用do-while循环 84

4.3.1 do-while循环语法及含义 84

4.3.2使用do-while循环程序举例 85

4.4使用for循环 87

4.4.1 for循环语法及含义 87

4.4.2 for循环的注意事项 88

4.4.3使用for循环程序举例 89

4.5循环嵌套 91

4.5.1 循环嵌套原则 91

4.5.2使用循环嵌套程序举例 92

4.6三种循环的比较 93

4.7跳转语句 95

4.7.1使用break语句实现程序跳转 95

4.7.2使用continue语句实现程序跳转 96

4.7.3使用goto语句实现程序跳转 97

4.8循环结构程序设计举例 98

4.9常见面试题 101

4.10小结 102

4.11习题 102

第5章 数组 104

5.1数组简介 104

5.2一维数组 105

5.2.1一维数组的定义 105

5.2.2一维数组的存储 105

5.2.3一维数组的初始化 105

5.2.4一维数组元素的引用 106

5.2.5一维数组使用举例 106

5.3二维数组 108

5.3.1二维数组的定义 108

5.3.2二维数组的存储 108

5.3.3二维数组的初始化 109

5.3.4二维数组元素的引用 110

5.3.5二维数组使用举例 110

5.4多维数组 112

5.4.1多维数组的定义 112

5.4.2多维数组的存储 112

5.4.3多维数组的初始化 112

5.4.4多维数组元素的引用 113

5.5字符数组和字符串 113

5.5.1字符数组定义 113

5.5.2字符数组初始化 114

5.5.3字符数组引用 115

5.5.4输入字符串 116

5.5.5输出字符串 117

5.5.6常用字符串处理函数 118

5.5.7字符串使用举例 126

5.6 数组应用举例 127

5.7常见面试题 131

5.8小结 132

5.9习题 132

第2篇 提高篇 136

第6章 函数的基本使用 136

6.1函数简介 136

6.2函数的定义 137

6.3函数的参数和返回值 139

6.3.1函数的形参和实参 139

6.3.2函数参数的注意事项 140

6.3.3函数的返回值 141

6.4调用函数 143

6.4.1调用函数的形式 143

6.4.2调用函数的方法 144

6.4.3调用函数的注意事项 146

6.4.4函数声明 146

6.5函数之间的参数传递方式 148

6.5.1使用传值方式 148

6.5.2使用传地址方式 149

6.6生存期和作用域 150

6.6.1变量的生存期 150

6.6.2变量的作用域 152

6.7局部变量和全局变量 153

6.7.1使用局部变量 154

6.7.2使用全局变量 155

6.7.3变量的屏蔽 157

6.8变量的存储类型和作用域 157

6.8.1变量的存储类型 158

6.8.2使用自动型变量 159

6.8.3使用静态变量 160

6.8.4使用外部变量 163

6.8.5使用寄存器变量 164

6.8.6存储类型小结 165

6.9函数的基本使用举例 165

6.10常见面试题 170

6.11小结 171

6.12习题 172

第7章 函数调用 173

7.1使用main函数 173

7.1.1 main函数的定义 173

7.1.2 main函数的类型 174

7.1.3 main函数传递参数 175

7.2数组与函数 176

7.2.1使用数组元素作函数实参 176

7.2.2使用数组名作函数参数 177

7.2.3使用多维数组作函数参数 179

7.3函数的嵌套调用 181

7.3.1函数嵌套调用的概念 181

7.3.2函数嵌套调用举例 181

7.4函数的递归调用 182

7.4.1函数递归调用概念 182

7.4.2函数递归调用举例 184

7.5外部函数和内部函数 186

7.5.1使用外部函数 186

7.5.2使用内部函数 187

7.6函数调用应用举例 188

7.7常见面试题 191

7.8小结 192

7.9习题 192

第8章 指针 194

8.1指针简介 194

8.1.1直接访问内存 195

8.1.2间接访问内存 195

8.2指针的定义和引用 196

8.2.1指针的概念 196

8.2.2指针变量的定义 196

8.2.3指针运算符 197

8.2.4指针的引用 197

8.3指针的运算 200

8.3.1指针的赋值运算 200

8.3.2指针的算术运算 201

8.3.3指针的关系运算 203

8.4数组的指针 204

8.4.1指向数组元素的指针变量的定义和赋值 204

8.4.2使用指针引用数组元素 205

8.4.3使用指向数组的指针作为函数参数 208

8.4.4使用指向多维数组的指针变量 211

8.5指针数组 214

8.5.1指针数组的概念 215

8.5.2使用指针数组 215

8.6指针和字符串 217

8.6.1字符指针 217

8.6.2使用字符指针 218

8.6.3使用字符串指针作函数参数 220

8.6.4字符串指针和字符数组的区别与联系 224

8.7函数和指针 226

8.7.1使用函数指针调用函数 226

8.7.2使用指向函数的指针作函数的参数 227

8.8指向指针的指针 229

8.8.1指向指针的指针的定义 229

8.8.2使用指向指针的指针 230

8.9指针应用举例 232

8.10常见面试题 234

8.11小结 235

8.12习题 236

第9章 结构体、共用体和枚举 239

9.1结构体的概念和定义 239

9.1.1结构体概念 239

9.1.2结构体的定义 240

9.2结构体变量的定义、引用和初始化 241

9.2.1 结构体变量的定义 241

9.2.2结构体变量的引用 243

9.2.2结构体变量的初始化 245

9.3结构体数组 247

9.3.1结构体数组定义 247

9.3.2结构体数组初始化 249

9.3.3结构体数组引用 250

9.4指向结构体类型的指针 253

9.4.1指向结构体类型变量的指针 253

9.4.2指向结构体类型数组的指针 254

9.5结构体变量和函数 256

9.5.1结构体变量作函数参数 256

9.5.2结构体变量作函数的返回值 258

9.6 动态存储分配 260

9.6.1动态存储分配概念 260

9.6.2链表的概念 260

9.6.3动态存储分配函数——malloc函数和free函数 262

9.6.4链表的创建 265

9.6.5链表的查询 267

9.6.6插入新结点 268

9.6.7链表的删除 269

9.7结构体应用举例 271

9.8共用体 276

9.8.1共用体的概念 276

9.8.2共用体的声明 276

9.8.3共用体变量成员的引用 279

9.8.4使用共用体应注意的问题 280

9.9枚举 282

9.9.1枚举类型的定义 282

9.9.2枚举类型变量的声明 282

9.9.3枚举类型变量的引用 283

9.9.4使用枚举应注意的问题 284

9.10自定义类型 286

9.11常见面试题 287

9.12小结 289

9.13习题 292

第10章 位运算 296

10.1位运算简介 296

10.1.1字节和位 296

10.1.2原码的运算 297

10.1.3反码的运算 297

10.1.4补码的运算 298

10.2使用位运算符 299

10.2.1按位与运算符及其运算 299

10.2.2按位或运算符及其运算 300

10.2.3按位异或运算符及其运算 301

10.2.4按位取反运算符及其运算 302

10.2.5左移运算符及其运算 302

10.2.6右移运算符及其运算 303

10.3位运算举例 304

10.4位段 306

10.4.1位段的概念和定义 306

10.4.2位段的引用 308

10.5常见面试题 309

10.6小结 309

10.7习题 310

第11章 编译预处理 312

11.1“文件包含”语句 312

11.1.1文件包含形式 312

11.1.2使用文件包含 313

11.1.3使用文件包含注意事项 314

11.2宏定义 314

11.2.1符号常量的定义 314

11.2.2不带参数的宏定义 315

11.2.3带参数的宏定义 317

11.2.4使用宏定义的注意事项 319

11.3条件编译 320

11.3.1使用#ifdef形式实现条件编译 320

11.3.2使用#ifndef形式实现条件编译 321

11.3.3使用#if形式实现条件编译 321

11.4常见面试题 322

11.5小结 322

11.6习题 322

第12章 文件 327

12.1文件概述 327

12.1.1 C语言文件 327

12.1.2文件类型指针 329

12.1.3文件处理过程 330

12.2打开和关闭文件 330

12.2.1使用fopen函数实现文件打开 330

12.2.2使用fclose函数实现文件关闭 332

12.3读写文件 333

12.3.1使用fgetc/fputc函数实现字符输入/输出 333

12.3.2使用fgets/fputs实现字符串输入/输出 336

12.3.3使用fscanf/fprintf函数实现将格式化数据输入/输出文件 339

12.3.4使用fread/fwrite函数实现将数据块输入/输出文件 341

12.3.5使用feof/ferror/clearerr函数实现文件状态检查 343

12.4文件定位 345

12.4.1使用rewind函数实现位置指针移动到文件头 345

12.4.2使用fseek函数实现文件位置指针随机移动 346

12.5常见面试题 348

12.6 小结 349

12.7习题 350

第3篇 实例篇 354

第13章 24点扑克牌游戏 354

13.1游戏描述 354

13.2游戏解析 354

13.2.1处理用户输入的表达式 354

13.2.2对后缀表达式求值 356

13.3两个重要函数的实现 356

13.4 “24点扑克牌游戏”的实现 359

13.4.1栈的基本操作函数的实现 360

13.4.2 随机发四张扑克牌函数的实现 361

13.4.3检查输入表达式正确性的函数的实现 362

13.4.4 main函数的实现 362

13.5小结 364

第14章 学生成绩管理系统 365

14.1需求分析 365

14.2系统设计 365

14.3系统基本设计思路 366

14.3.1系统设计方法 366

14.3.2程序基本流程 366

14.3.3程序流程的代码实现 367

14.4各主要功能模块的实现 369

14.4.1从指定的磁盘文件中读入学生信息 369

14.4.2将数据存入磁盘文件 370

14.4.3打印所有同学的成绩信息 371

14.4.4排序学生成绩并输出 372

14.4.5查询学生成绩信息 373

14.4.6增加学生成绩 375

14.4.7删除学生成绩 376

14.5小结 377

第15章 “俄罗斯方块”游戏的实现 378

15.1游戏描述 378

15.2游戏解析 379

15.2.1方块形状的形成 379

15.2.2控制方块运动的函数 381

15.2.3游戏画面绘制 381

15.3俄罗斯方块的程序实现 382

15.3.1准备工作 382

15.3.2游戏初始化 385

15.3.3绘制游戏画面 386

15.3.4切换游戏级别 391

15.3.5计算游戏得分 392

15.3.6方块移动控制 393

15.3.7 方块的消除 395

15.3.8游戏开始结束 399

15.3.9 main函数 399

15.3.10其他函数 401

15.4小结 403

附录 404

附录A Turbo C中常见错误提示的中英文对照 404

附录B ASCII编码 407

附录C Turbo C中各种数据类型 411

附录D函数间传递参数时类型的自动转换 411

附录E主要库函数的介绍 411

附录F C标准库介绍 413

F.1诊断<assert.h> 414

F.2字符类别测试<ctype.h> 414

F.3错误处理<errno.h> 415

F.4浮点算术运算常量<float.h> 415

F.5整型常量<limits.h> 416

F.6地域环境<locale.h> 416

F.7数学函数<math.h> 417

F.8非局部跳转<setjmp.h> 418

F.9信号<signal.h> 419

F.10可变参数表<stdarg.h> 421

F.11公共定义<stddef.h> 421

F.12输入输出<stdio.h> 422

F.13实用函数<stdlib.h> 423

F.14字符串函数<string.h> 424

F.15日期与时间函数<time.h> 425

附录G C语言专用字符函数 425

G.1 isalnum检查字符是否是字母或数字 426

G.2 isalpha检查字符是否是字母 427

G.3 isascii检查字符是否是ASCII码 427

G.4 iscntrl检查字符是否是控制字符 428

G.5 isdigit检查字符是否是数字字符 429

G.6 isxdigit检查字符是否是十六进制数字字符 430

G.7 isgraph检查字符是否是可打印字符(不含空格) 430

G.8 isprint检查字符是否是可打印字符(含空格) 431

G.9 ispunct检查字符是否是标点字符 432

G.10 islower检查字符是否是小写字母 432

G.11 isupper检查字符是否是大写字母 433

G.12 isspace检查字符是否是空格符 434

G.13 toascii将字符转换为ASCII码 434

G.14 tolower将大写字母转换为小写字母 435

G.15 toupper将小写字母转换为大写字母 436