简介
由明日科技、陈振安和李鑫等编著的《C语言学习手册》从初学者的角
度出发,全面介绍了使用C语言进行程序开发的各种技术。在内容布局上由
浅入深,让读者循序渐进地掌握编程技术;在内容讲解上结合丰富的图解和
形象的比喻,帮助读者理解“晦涩难懂”的技术;在内容形式上附有大量的
提示、技巧、说明、情景应用、实战练习等,夯实读者编程技术,丰富编程
经验。全书共分18章,主要讲述了Turbo C 2.0和Visual C++ 6.0编译器的
使用、C语言的基础知识、常量和变量的使用、数据类型、表达式的写法、
运算符的使用、输入、输出函数的用法、选择结构程序的设计、使用数组的
方法、函数的用法、指针的使用、如何掌握结构体与公用体、数组的排序法
、链表的使用、位运算的算法、储存管理、函数类型、预处理和文件的读、
写,最后,通过一个实战项目――学生管理系统,使读者将所学知识更好地
应用到实际开发当中。
《C语言学习手册》附有配套光盘。光盘中包含本书所有程序的源代码
、重点难点的实例视频录像。其中,所有源代码都经过了精心的测试,能够
在Windows 2000、Windows XP、Windows 2003、Windows 7系统中编译和运
行。
《C语言学习手册》适用于C语言的爱好者、初学者和中级开发人员,也
可以作为大中专院校和培训机构的教材。
目录
《c语言学习手册》
第1篇 基础篇
第1章 初识c语言 16
1.1 c语言介绍 17
1.1.1 简述编程语言 17
1.1.2 c语言的产生 18
1.1.3 c语言的特点 19
1.2 选择c语言的理由 21
1.2.1 c语言的发展趋势 21
1.2.2 c语言的成功案例 23
1.2.3 c语言的应用领域 25
1.3 如何学好c语言 25
1.3.1 确立学习态度 26
1.3.2 打好基础 26
1.3.3 多请教、多交流 26
1.3.4 养成良好的编程习惯 27
1.3.5 多动手、勤思考 27
1.3.6 掌握学习方法 27
1.4 本章小结 28
第2章 c语言编程准备 29
.2.1 编写程序的格式 30
2.1.1 一个简单的c程序 31
2.1.2 标识符与关键字 34
2.2 开发环境 37
2.2.1 turbo c 2.0 38
2.2.2 visual c++ 6.0 42
2.3 一个完整的c程序 48
2.4 实战练习 52
2.4.1 编写一个简单的c程序 52
2.4.2 熟悉开发工具 53
2.5 本章小结 53
第3章 c语言的灵魂——算法 54
3.1 算法的基本概念 55
3.1.1 算法的特征 55
3.1.2 算法的优劣 57
3.2 描述算法 57
3.2.1 自然语言 58
3.2.2 描绘流程图 58
3.2.3 绘制n-s流程图 64
3.2.4 伪代码 68
3.3 本章小结 69
第4章 常量和变量 70
4.1 了解数据类型 71
4.2 解读常量 72
4.2.1 整型常量 72
4.2.2 实型常量 75
4.2.3 字符型常量 76
4.2.4 转义字符 80
4.2.5 符号常量 81
4.2.6 情景应用一:用putchar函数输出“i love c” 82
4.2.7 情景应用二:printf函数结合转义字符 83
4.3 变量 83
4.3.1 整型变量 84
4.3.2 情景应用:求出买水果一共花的钱数 86
4.3.3 实型变量 87
4.3.4 字符型变量 89
4.4 掌握混合运算 91
4.5 实战练习 93
4.5.1 使用printf语句输出变量 93
4.5.2 使用字符型变量输出字符串 94
4.6 本章小结 94
第5章 表达式与运算符 95
5.1 解读表达式 96
5.2 赋值运算符与赋值表达式 98
5.2.1 变量赋初值 98
5.2.2 自动类型转换 100
5.2.3 强制类型转换 100
5.3 掌握算术运算符与表达式 102
5.3.1 算术运算符 102
5.3.2 算术表达式 102
5.3.3 优先级与结合性 104
5.3.4 自增自减运算符 105
5.3.5 情景应用:求运算后的4个变量的值 107
5.4 了解关系运算符与表达式 108
5.4.1 关系运算符 108
5.4.2 关系表达式 109
5.4.3 优先级与结合性 110
5.5 解读逻辑运算符与表达式 111
5.5.1 逻辑运算符 111
5.5.2 逻辑表达式 112
5.5.3 优先级与结合性 112
5.6 运用位逻辑运算符与表达式 113
5.6.1 位逻辑运算符 114
5.6.2 位逻辑表达式 114
5.7 介绍逗号运算符与表达式 114
5.8 使用复合赋值运算符 116
5.9 判断条件运算符 117
5.10 了解运算符的优先级和结合性 118
5.11 实战练习 119
5.11.1 使用复合赋值运算符求出计算结果 119
5.11.2 用自增、自减运算符求出计算结果 120
5.11.3 编写简单的计算加班工资程序 121
5.12 本章小结 122
第6章 输入、输出函数 123
6.1 解读语句 124
6.1.1 表达式语句 124
6.1.2 空语句 124
6.1.3 复合语句 124
6.2 输入、输出字符数据 125
6.2.1 输出字符数据 125
6.2.2 输入字符数据 126
6.2.3 情景应用:使用getchar函数取消获取entet键 127
6.3 输入、输出字符串 128
6.3.1 使用字符串输出函数 128
6.3.2 掌握字符串输入函数 130
6.4 介绍格式输出函数 131
6.5 讲解格式输入函数 134
6.6 应用顺序程序设计 138
6.7 实战练习 141
6.7.1 将输入的小写字符转换为大写字符 141
6.7.2 模拟工资计算器 142
6.7.3 输入、输出古人名言 142
6.8 本章小结 143
第7章 选择结构程序设计 144
7.1 if选择语句 145
7.2 if语句的不同形式 145
7.2.1 单条件单分支的if语句 146
7.2.2 单条件双分支的if语句 149
7.2.3 多条件多分支的if语句 153
7.2.4 情景应用:输入数值检查字符类型 156
7.3 掌握if语句的嵌套形式 157
7.4 注意if语句的常见错误 160
7.4.1 使用分号的注意事项 161
7.4.2 条件放置注意事项 161
7.4.3 if和else的配对注意事项 162
7.4.4 大括号的重要性 162
7.5 判断分支选择switch语句 163
7.5.1 switch语句的基本形式 163
7.5.2 多路开关模式的switch语句 167
7.6 区分if…else语句和switch语句 169
7.7 应用选择结构程序 171
7.8 实战练习 173
7.8.1 计算函数,求出y值 173
7.8.2 输出三个变量中最大的数 174
7.8.3 计算增加后的工资 175
7.9 本章小结 175
第8章 循环语句 176
8.1 编写循环语句 177
8.2 实现while型循环 177
8.2.1 while循环语句的一般形式 178
8.2.2 情景应用:求出数值内的所有正整数的和 180
8.2.3 避免while循环语句的死循环 182
8.2.4 了解while循环语句的空循环体 183
8.2.5 注意while循环语句常见错误 183
8.3 解读for型循环语句 185
8.3.1 for循环语句的一般形式 185
8.3.2 灵活多变的for循环语句 189
8.3.3 应用for语句中的逗号 192
8.4 介绍do-while语句 193
8.5 比较三种循环 195
8.6 运用循环嵌套 195
8.6.1 各种结构的循环嵌套 195
8.6.2 循环嵌套实例 197
8.7 转移语句 199
8.7.1 goto语句 200
8.7.2 break语句 202
8.7.3 continue语句 203
8.8 区别三种跳转语句 205
8.9 实践练习 205
8.9.1 打印出大写字母的ascii码对照表 205
8.9.2 打印出小写字母的ascii码对照表 206
8.9.3 输出0~100之间不能被3整除的数 207
8.10 本章小结 209
第2篇 核心篇
第9章 数组 212
9.1 介绍数组的概念 213
9.1.1 数组的分类 213
9.1.2 数组的维数 213
9.2 应用一维数组 214
9.2.1 一维数组的定义 214
9.2.2 一维数组的引用 215
9.2.3 一维数组的初始化 217
9.2.4 一维数组的应用 220
9.3 掌握二维数组 222
9.3.1 二维数组的定义 222
9.3.2 二维数组的引用 223
9.3.3 二维数组的初始化 223
9.3.4 二维数组的应用 227
9.4 解读多维数组 228
9.5 使用字符数组 229
9.5.1 字符数组的定义 229
9.5.2 字符数组的引用 229
9.5.3 字符数组的初始化 229
9.5.4 字符数组的结束标志 231
9.5.5 字符数组的输出 232
9.5.6 字符数组的输入 233
9.5.7 输出完整的带有空格的字符串 234
9.5.8 字符数组的应用 235
9.6 字符串处理函数 236
9.6.1 字符串的复制 237
9.6.2 字符串的连接 238
9.6.3 字符串的比较 240
9.6.4 字符串大小写转换 241
9.6.5 获得字符串长度 243
9.7 熟练应用数组 245
9.7.1 反转输出字符串 245
9.7.2 使用数组统计学生成绩 246
9.7.3 情景应用:字符串的加密和解密 248
9.8 实践练习 250
9.8.1 实现strcpy函数的功能 250
9.8.2 统计字符中各元素的个数 251
9.8.3 重新排列字符串 251
9.9 本章小结 252
第10章 函数 253
10.1 函数概述 254
10.2 定义函数 256
10.2.1 函数定义的形式 256
10.2.2 定义与声明 259
10.3 了解返回语句 262
10.3.1 从函数返回 262
10.3.2 返回值 266
10.4 传递函数参数 269
10.4.1 形式参数与实际参数 269
10.4.2 数组作为函数参数 271
10.4.3 了解main的参数 276
10.5 调用函数 276
10.5.1 函数调用方式 277
10.5.2 嵌套调用 280
10.5.3 递归调用 282
10.6 灵活应用函数 285
10.6.1 函数的应用 285
10.6.2 情景应用:使用字符函数判断输入字符 290
10.7 实践与练习 292
10.7.1 输出较大的整数 292
10.7.2 求出10个学生的平均成绩 292
10.7.3 验证6174 293
10.8 本章小结 294
第11章 指针 296
11.1 了解指针相关概念 297
11.1.1 介绍地址与指针 297
11.1.2 解读变量与指针 298
11.1.3 使用指针变量 299
11.1.4 指针自加自减运算 303
11.1.5 情景应用:输出整型变量地址 304
11.2 掌握数组与指针 305
11.2.1 一维数组与指针 306
11.2.2 情景应用一:输出数组元素 309
11.2.3 二维数组与指针 310
11.2.4 情景应用二:将一个3行5列的二维数组的
第二行元素输出 313
11.2.5 字符串与指针 314
11.2.6 字符串数组 316
11.3 指向指针的指针 318
11.3.1 应用介绍指向指针的指针 318
11.3.2 情景应用:输出偶数 320
11.4 作为函数参数的指针变量 321
11.5 返回指针值的函数 331
11.5.1 介绍返回指针值的函数 331
11.5.2 情景应用:求长方形的周长 332
11.6 指针数组作为main函数的参数 333
11.7 实战练习 335
11.7.1 将数组中的元素值按照相反顺序存放 335
11.7.2 将两个字符串连接后输出 336
11.7.3 使用指针实现字符串的复制 336
11.8 本章小结 337
第12章 结构体和共用体 338
12.1 应用结构体 339
12.1.1 结构体类型的概念 339
12.1.2 结构体变量的定义 340
12.1.3 结构体变量的引用 342
12.1.4 结构体类型的初始化 344
12.1.5 情景应用:输出学生的信息 345
12.2 掌握结构体数组 348
12.2.1 定义结构体数组 348
12.2.2 初始化结构体数组 349
12.2.3 情景应用:输出学生信息 351
12.3 解读结构体指针 353
12.3.1 指向结构体变量的指针 353
12.3.2 指向结构体数组的指针 356
12.3.3 结构体作为函数参数 358
12.4 介绍包含结构的结构 360
12.5 应用共用体 362
12.5.1 共用体的概念 362
12.5.2 共用体变量的引用 363
12.5.3 共用体变量的初始化 364
12.5.4 共用体类型的数据特点 365
12.6 解读枚举类型 365
12.7 实战练习 366
12.7.1 统计候选人的得票 366
12.7.2 师生信息存储系统 367
12.7.3 计算学生的综合成绩 368
12.8 本章小结 368
第13章 链表与算法 369
13.1 介绍链表 370
13.1.1 链表概述 370
13.1.2 创建动态链表 371
13.1.3 输出链表 374
13.2 进行链表的相关操作 376
13.2.1 链表的插入操作 377
13.2.2 链表的删除操作 380
13.3 运用数组排序算法 384
13.3.1 选择法排序 385
13.3.2 冒泡法排序 387
13.3.3 交换法排序 389
13.3.4 插入法排序 391
13.3.5 折半法排序 394
13.3.6 比较数组排序算法 396
13.4 实战练习 397
13.4.1 链表的删除操作 397
13.4.2 使用选择法排序 398
13.4.3 使用冒泡、交换、插入、折半等算法进行排序 399
13.5 本章小节 399
第3篇 高级篇
第14章 位运算 402
14.1 解读位与字节 403
14.2 掌握位运算操作符 403
14.2.1 “与”运算符 404
14.2.2 “或”运算符 405
14.2.3 “取反”运算符 407
14.2.4 “异或”运算符 409
14.2.5 “左移”运算符 412
14.2.6 “右移”运算符 413
14.2.7 位运算复合赋值运算符 415
14.2.8 长度不同的数据进行位运算 415
14.3 循环移位 416
14.4 什么是位域 418
14.4.1 位域的概念与定义 419
14.4.2 位域相关说明 420
14.5 实战练习 421
14.5.1 求两个数进行“与”和“或”运算后的结果 421
14.5.2 求出一个数“左移”和“右移”后的结果 422
14.5.3 求一个数“循环左移”和“循环右移”后的结果 422
14.6 本章小结 423
第15章 存储管理 424
15.1 内存组织方式 425
15.1.1 了解内存组织方式 425
15.1.2 解读堆与栈 425
15.2 动态管理 428
15.2.1 动态分配一段内存空间——malloc函数 428
15.2.2 动态分配连续内存空间数组——calloc函数 429
15.2.3 改变ptr指针指向空间大小——realloc函数 431
15.2.4 情景应用:使用realloc函数重新分配内存 432
15.2.5 释放分配整型变量内存空间——free函数 432
15.3 内存丢失 433
15.4 变量的存储类别 434
15.4.1 动态存储与静态存储 435
15.4.2 修饰一个局部变量为自动的auto变量 435
15.4.3 声明位置不同、意义不同的static变量 436
15.4.4 寄存器存储类的register变量 437
15.4.5 外部存储的extern变量 437
15.5 实战练习 438
15.5.1 为数组动态分配内存 438
15.5.2 为数组动态分配并释放内存 439
15.5.3 用静态局部整型变量计算3的平方和立方 440
15.6 本章小结 440
第16章 函数类型和预处理 441
16.1 内部函数和外部函数 442
16.1.1 介绍内部函数 442
16.1.2 解读外部函数 443
16.2 灵活使用宏定义 444
16.2.1 不带参数的宏定义 445
16.2.2 带参数的宏定义 446
16.3 编写#include指令 448
16.4 掌握条件编译 450
16.4.1 #if命令 450
16.4.2 #ifdef及#ifndef命令 453
16.4.3 #undef命令 455
16.4.4 #line命令 455
16.4.5 #pragma命令 456
16.5 实践练习 457
16.5.1 求两个数相乘的积 457
16.5.2 从3个数中找出最小数 457
16.5.3 从3个数中找出最大数 458
16.6 本章小结 459
第17章 读写文件 460
17.1 文件概述 461
17.2 掌握文件基本操作 462
17.3 运用文件指针 463
17.4 打开和关闭文件 464
17.4.1 文件的打开 464
17.4.2 文件的关闭 465
17.5 读 写 文 件 466
17.5.1 写字符函数——fputc函数 466
17.5.2 读字符函数——fgetc函数 468
17.5.3 写字符串函数——fputs函数 469
17.5.4 读字符串函数——fgets函数 470
17.5.5 格式化写入函数——fprintf函数 472
17.5.6 格式化读取函数——fscanf函数 474
17.5.7 数据块读写函数——fread函数和fwrite函数 475
17.6 定位文件 478
17.6.1 随机读写操作——fseek函数 479
17.6.2 返回位置指针——rewind函数 481
17.6.3 ftell函数 483
17.7 实践练习 485
17.7.1 复制文件内容 485
17.7.2 保存学生信息 486
17.8 本章小结 487
第4篇 实战篇
第18章 学生管理系统 490
18.1 分析需求 491
18.2 设计系统 491
18.3 功能模块设计 492
18.3.1 功能选择界面 492
18.3.2 录入学生成绩信息 494
18.3.3 查询学生成绩信息 496
18.3.4 删除学生成绩信息 497
18.3.5 修改学生成绩信息 499
18.3.6 插入学生成绩信息 501
18.3.7 统计学生人数 504
18.4 本章小结 505
附录a 专业术语表 506
第1篇 基础篇
第1章 初识c语言 16
1.1 c语言介绍 17
1.1.1 简述编程语言 17
1.1.2 c语言的产生 18
1.1.3 c语言的特点 19
1.2 选择c语言的理由 21
1.2.1 c语言的发展趋势 21
1.2.2 c语言的成功案例 23
1.2.3 c语言的应用领域 25
1.3 如何学好c语言 25
1.3.1 确立学习态度 26
1.3.2 打好基础 26
1.3.3 多请教、多交流 26
1.3.4 养成良好的编程习惯 27
1.3.5 多动手、勤思考 27
1.3.6 掌握学习方法 27
1.4 本章小结 28
第2章 c语言编程准备 29
.2.1 编写程序的格式 30
2.1.1 一个简单的c程序 31
2.1.2 标识符与关键字 34
2.2 开发环境 37
2.2.1 turbo c 2.0 38
2.2.2 visual c++ 6.0 42
2.3 一个完整的c程序 48
2.4 实战练习 52
2.4.1 编写一个简单的c程序 52
2.4.2 熟悉开发工具 53
2.5 本章小结 53
第3章 c语言的灵魂——算法 54
3.1 算法的基本概念 55
3.1.1 算法的特征 55
3.1.2 算法的优劣 57
3.2 描述算法 57
3.2.1 自然语言 58
3.2.2 描绘流程图 58
3.2.3 绘制n-s流程图 64
3.2.4 伪代码 68
3.3 本章小结 69
第4章 常量和变量 70
4.1 了解数据类型 71
4.2 解读常量 72
4.2.1 整型常量 72
4.2.2 实型常量 75
4.2.3 字符型常量 76
4.2.4 转义字符 80
4.2.5 符号常量 81
4.2.6 情景应用一:用putchar函数输出“i love c” 82
4.2.7 情景应用二:printf函数结合转义字符 83
4.3 变量 83
4.3.1 整型变量 84
4.3.2 情景应用:求出买水果一共花的钱数 86
4.3.3 实型变量 87
4.3.4 字符型变量 89
4.4 掌握混合运算 91
4.5 实战练习 93
4.5.1 使用printf语句输出变量 93
4.5.2 使用字符型变量输出字符串 94
4.6 本章小结 94
第5章 表达式与运算符 95
5.1 解读表达式 96
5.2 赋值运算符与赋值表达式 98
5.2.1 变量赋初值 98
5.2.2 自动类型转换 100
5.2.3 强制类型转换 100
5.3 掌握算术运算符与表达式 102
5.3.1 算术运算符 102
5.3.2 算术表达式 102
5.3.3 优先级与结合性 104
5.3.4 自增自减运算符 105
5.3.5 情景应用:求运算后的4个变量的值 107
5.4 了解关系运算符与表达式 108
5.4.1 关系运算符 108
5.4.2 关系表达式 109
5.4.3 优先级与结合性 110
5.5 解读逻辑运算符与表达式 111
5.5.1 逻辑运算符 111
5.5.2 逻辑表达式 112
5.5.3 优先级与结合性 112
5.6 运用位逻辑运算符与表达式 113
5.6.1 位逻辑运算符 114
5.6.2 位逻辑表达式 114
5.7 介绍逗号运算符与表达式 114
5.8 使用复合赋值运算符 116
5.9 判断条件运算符 117
5.10 了解运算符的优先级和结合性 118
5.11 实战练习 119
5.11.1 使用复合赋值运算符求出计算结果 119
5.11.2 用自增、自减运算符求出计算结果 120
5.11.3 编写简单的计算加班工资程序 121
5.12 本章小结 122
第6章 输入、输出函数 123
6.1 解读语句 124
6.1.1 表达式语句 124
6.1.2 空语句 124
6.1.3 复合语句 124
6.2 输入、输出字符数据 125
6.2.1 输出字符数据 125
6.2.2 输入字符数据 126
6.2.3 情景应用:使用getchar函数取消获取entet键 127
6.3 输入、输出字符串 128
6.3.1 使用字符串输出函数 128
6.3.2 掌握字符串输入函数 130
6.4 介绍格式输出函数 131
6.5 讲解格式输入函数 134
6.6 应用顺序程序设计 138
6.7 实战练习 141
6.7.1 将输入的小写字符转换为大写字符 141
6.7.2 模拟工资计算器 142
6.7.3 输入、输出古人名言 142
6.8 本章小结 143
第7章 选择结构程序设计 144
7.1 if选择语句 145
7.2 if语句的不同形式 145
7.2.1 单条件单分支的if语句 146
7.2.2 单条件双分支的if语句 149
7.2.3 多条件多分支的if语句 153
7.2.4 情景应用:输入数值检查字符类型 156
7.3 掌握if语句的嵌套形式 157
7.4 注意if语句的常见错误 160
7.4.1 使用分号的注意事项 161
7.4.2 条件放置注意事项 161
7.4.3 if和else的配对注意事项 162
7.4.4 大括号的重要性 162
7.5 判断分支选择switch语句 163
7.5.1 switch语句的基本形式 163
7.5.2 多路开关模式的switch语句 167
7.6 区分if…else语句和switch语句 169
7.7 应用选择结构程序 171
7.8 实战练习 173
7.8.1 计算函数,求出y值 173
7.8.2 输出三个变量中最大的数 174
7.8.3 计算增加后的工资 175
7.9 本章小结 175
第8章 循环语句 176
8.1 编写循环语句 177
8.2 实现while型循环 177
8.2.1 while循环语句的一般形式 178
8.2.2 情景应用:求出数值内的所有正整数的和 180
8.2.3 避免while循环语句的死循环 182
8.2.4 了解while循环语句的空循环体 183
8.2.5 注意while循环语句常见错误 183
8.3 解读for型循环语句 185
8.3.1 for循环语句的一般形式 185
8.3.2 灵活多变的for循环语句 189
8.3.3 应用for语句中的逗号 192
8.4 介绍do-while语句 193
8.5 比较三种循环 195
8.6 运用循环嵌套 195
8.6.1 各种结构的循环嵌套 195
8.6.2 循环嵌套实例 197
8.7 转移语句 199
8.7.1 goto语句 200
8.7.2 break语句 202
8.7.3 continue语句 203
8.8 区别三种跳转语句 205
8.9 实践练习 205
8.9.1 打印出大写字母的ascii码对照表 205
8.9.2 打印出小写字母的ascii码对照表 206
8.9.3 输出0~100之间不能被3整除的数 207
8.10 本章小结 209
第2篇 核心篇
第9章 数组 212
9.1 介绍数组的概念 213
9.1.1 数组的分类 213
9.1.2 数组的维数 213
9.2 应用一维数组 214
9.2.1 一维数组的定义 214
9.2.2 一维数组的引用 215
9.2.3 一维数组的初始化 217
9.2.4 一维数组的应用 220
9.3 掌握二维数组 222
9.3.1 二维数组的定义 222
9.3.2 二维数组的引用 223
9.3.3 二维数组的初始化 223
9.3.4 二维数组的应用 227
9.4 解读多维数组 228
9.5 使用字符数组 229
9.5.1 字符数组的定义 229
9.5.2 字符数组的引用 229
9.5.3 字符数组的初始化 229
9.5.4 字符数组的结束标志 231
9.5.5 字符数组的输出 232
9.5.6 字符数组的输入 233
9.5.7 输出完整的带有空格的字符串 234
9.5.8 字符数组的应用 235
9.6 字符串处理函数 236
9.6.1 字符串的复制 237
9.6.2 字符串的连接 238
9.6.3 字符串的比较 240
9.6.4 字符串大小写转换 241
9.6.5 获得字符串长度 243
9.7 熟练应用数组 245
9.7.1 反转输出字符串 245
9.7.2 使用数组统计学生成绩 246
9.7.3 情景应用:字符串的加密和解密 248
9.8 实践练习 250
9.8.1 实现strcpy函数的功能 250
9.8.2 统计字符中各元素的个数 251
9.8.3 重新排列字符串 251
9.9 本章小结 252
第10章 函数 253
10.1 函数概述 254
10.2 定义函数 256
10.2.1 函数定义的形式 256
10.2.2 定义与声明 259
10.3 了解返回语句 262
10.3.1 从函数返回 262
10.3.2 返回值 266
10.4 传递函数参数 269
10.4.1 形式参数与实际参数 269
10.4.2 数组作为函数参数 271
10.4.3 了解main的参数 276
10.5 调用函数 276
10.5.1 函数调用方式 277
10.5.2 嵌套调用 280
10.5.3 递归调用 282
10.6 灵活应用函数 285
10.6.1 函数的应用 285
10.6.2 情景应用:使用字符函数判断输入字符 290
10.7 实践与练习 292
10.7.1 输出较大的整数 292
10.7.2 求出10个学生的平均成绩 292
10.7.3 验证6174 293
10.8 本章小结 294
第11章 指针 296
11.1 了解指针相关概念 297
11.1.1 介绍地址与指针 297
11.1.2 解读变量与指针 298
11.1.3 使用指针变量 299
11.1.4 指针自加自减运算 303
11.1.5 情景应用:输出整型变量地址 304
11.2 掌握数组与指针 305
11.2.1 一维数组与指针 306
11.2.2 情景应用一:输出数组元素 309
11.2.3 二维数组与指针 310
11.2.4 情景应用二:将一个3行5列的二维数组的
第二行元素输出 313
11.2.5 字符串与指针 314
11.2.6 字符串数组 316
11.3 指向指针的指针 318
11.3.1 应用介绍指向指针的指针 318
11.3.2 情景应用:输出偶数 320
11.4 作为函数参数的指针变量 321
11.5 返回指针值的函数 331
11.5.1 介绍返回指针值的函数 331
11.5.2 情景应用:求长方形的周长 332
11.6 指针数组作为main函数的参数 333
11.7 实战练习 335
11.7.1 将数组中的元素值按照相反顺序存放 335
11.7.2 将两个字符串连接后输出 336
11.7.3 使用指针实现字符串的复制 336
11.8 本章小结 337
第12章 结构体和共用体 338
12.1 应用结构体 339
12.1.1 结构体类型的概念 339
12.1.2 结构体变量的定义 340
12.1.3 结构体变量的引用 342
12.1.4 结构体类型的初始化 344
12.1.5 情景应用:输出学生的信息 345
12.2 掌握结构体数组 348
12.2.1 定义结构体数组 348
12.2.2 初始化结构体数组 349
12.2.3 情景应用:输出学生信息 351
12.3 解读结构体指针 353
12.3.1 指向结构体变量的指针 353
12.3.2 指向结构体数组的指针 356
12.3.3 结构体作为函数参数 358
12.4 介绍包含结构的结构 360
12.5 应用共用体 362
12.5.1 共用体的概念 362
12.5.2 共用体变量的引用 363
12.5.3 共用体变量的初始化 364
12.5.4 共用体类型的数据特点 365
12.6 解读枚举类型 365
12.7 实战练习 366
12.7.1 统计候选人的得票 366
12.7.2 师生信息存储系统 367
12.7.3 计算学生的综合成绩 368
12.8 本章小结 368
第13章 链表与算法 369
13.1 介绍链表 370
13.1.1 链表概述 370
13.1.2 创建动态链表 371
13.1.3 输出链表 374
13.2 进行链表的相关操作 376
13.2.1 链表的插入操作 377
13.2.2 链表的删除操作 380
13.3 运用数组排序算法 384
13.3.1 选择法排序 385
13.3.2 冒泡法排序 387
13.3.3 交换法排序 389
13.3.4 插入法排序 391
13.3.5 折半法排序 394
13.3.6 比较数组排序算法 396
13.4 实战练习 397
13.4.1 链表的删除操作 397
13.4.2 使用选择法排序 398
13.4.3 使用冒泡、交换、插入、折半等算法进行排序 399
13.5 本章小节 399
第3篇 高级篇
第14章 位运算 402
14.1 解读位与字节 403
14.2 掌握位运算操作符 403
14.2.1 “与”运算符 404
14.2.2 “或”运算符 405
14.2.3 “取反”运算符 407
14.2.4 “异或”运算符 409
14.2.5 “左移”运算符 412
14.2.6 “右移”运算符 413
14.2.7 位运算复合赋值运算符 415
14.2.8 长度不同的数据进行位运算 415
14.3 循环移位 416
14.4 什么是位域 418
14.4.1 位域的概念与定义 419
14.4.2 位域相关说明 420
14.5 实战练习 421
14.5.1 求两个数进行“与”和“或”运算后的结果 421
14.5.2 求出一个数“左移”和“右移”后的结果 422
14.5.3 求一个数“循环左移”和“循环右移”后的结果 422
14.6 本章小结 423
第15章 存储管理 424
15.1 内存组织方式 425
15.1.1 了解内存组织方式 425
15.1.2 解读堆与栈 425
15.2 动态管理 428
15.2.1 动态分配一段内存空间——malloc函数 428
15.2.2 动态分配连续内存空间数组——calloc函数 429
15.2.3 改变ptr指针指向空间大小——realloc函数 431
15.2.4 情景应用:使用realloc函数重新分配内存 432
15.2.5 释放分配整型变量内存空间——free函数 432
15.3 内存丢失 433
15.4 变量的存储类别 434
15.4.1 动态存储与静态存储 435
15.4.2 修饰一个局部变量为自动的auto变量 435
15.4.3 声明位置不同、意义不同的static变量 436
15.4.4 寄存器存储类的register变量 437
15.4.5 外部存储的extern变量 437
15.5 实战练习 438
15.5.1 为数组动态分配内存 438
15.5.2 为数组动态分配并释放内存 439
15.5.3 用静态局部整型变量计算3的平方和立方 440
15.6 本章小结 440
第16章 函数类型和预处理 441
16.1 内部函数和外部函数 442
16.1.1 介绍内部函数 442
16.1.2 解读外部函数 443
16.2 灵活使用宏定义 444
16.2.1 不带参数的宏定义 445
16.2.2 带参数的宏定义 446
16.3 编写#include指令 448
16.4 掌握条件编译 450
16.4.1 #if命令 450
16.4.2 #ifdef及#ifndef命令 453
16.4.3 #undef命令 455
16.4.4 #line命令 455
16.4.5 #pragma命令 456
16.5 实践练习 457
16.5.1 求两个数相乘的积 457
16.5.2 从3个数中找出最小数 457
16.5.3 从3个数中找出最大数 458
16.6 本章小结 459
第17章 读写文件 460
17.1 文件概述 461
17.2 掌握文件基本操作 462
17.3 运用文件指针 463
17.4 打开和关闭文件 464
17.4.1 文件的打开 464
17.4.2 文件的关闭 465
17.5 读 写 文 件 466
17.5.1 写字符函数——fputc函数 466
17.5.2 读字符函数——fgetc函数 468
17.5.3 写字符串函数——fputs函数 469
17.5.4 读字符串函数——fgets函数 470
17.5.5 格式化写入函数——fprintf函数 472
17.5.6 格式化读取函数——fscanf函数 474
17.5.7 数据块读写函数——fread函数和fwrite函数 475
17.6 定位文件 478
17.6.1 随机读写操作——fseek函数 479
17.6.2 返回位置指针——rewind函数 481
17.6.3 ftell函数 483
17.7 实践练习 485
17.7.1 复制文件内容 485
17.7.2 保存学生信息 486
17.8 本章小结 487
第4篇 实战篇
第18章 学生管理系统 490
18.1 分析需求 491
18.2 设计系统 491
18.3 功能模块设计 492
18.3.1 功能选择界面 492
18.3.2 录入学生成绩信息 494
18.3.3 查询学生成绩信息 496
18.3.4 删除学生成绩信息 497
18.3.5 修改学生成绩信息 499
18.3.6 插入学生成绩信息 501
18.3.7 统计学生人数 504
18.4 本章小结 505
附录a 专业术语表 506
C语言学习手册
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!