图书介绍
C语言大学实用教程pdf电子书版本下载
- 苏小红,陈惠鹏,孙志岗等编著 著
- 出版社: 北京:电子工业出版社
- ISBN:7121037823
- 出版时间:2007
- 标注页数:437页
- 文件大小:20MB
- 文件页数:451页
- 主题词:C语言-高等学校-教材
PDF下载
下载说明
C语言大学实用教程PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 程序设计ABC 1
1.1 计算机与人 2
1.2 计算机与程序设计语言 3
1.3 程序设计语言的故事 6
1.4 C语言的故事 7
1.5 程序设计语言的工作原理 11
1.5.1 运行 11
1.5.2 内存 12
1.6 本章小结 13
习题1 13
第2章 数据类型、运算符与表达式 14
2.1 一个简单的C程序例子 15
2.2 C程序常见符号分类 16
2.3 数据类型 18
2.3.1 为什么引入数据类型 18
2.3.2 从基本数据类型到抽象数据类型 19
2.3.3 类型修饰符 19
2.3.4 标识符命名 21
2.4 常量 22
2.4.1 整型常量 22
2.4.2 实型常量 22
2.4.3 字符常量 23
2.4.4 字符串常量 24
2.4.5 宏常量 24
2.4.6 枚举常量 25
2.5 变量 26
2.5.1 变量的声明与初始化 26
2.5.2 const类型修饰符 27
2.5.3 使用变量时的注意事项 28
2.6 常用运算符及表达式 32
2.6.1 运算符的优先级与结合性 32
2.6.2 算术运算符 33
2.6.3 关系运算符 34
2.6.4 逻辑运算符 36
2.6.5 赋值运算符 37
2.6.6 增1和减1运算符 38
2.6.7 强制转换运算符 40
2.6.8 位运算符 41
2.6.9 逗号运算符 43
2.7 赋值和表达式中的类型转换 44
2.8 本章小结 45
习题2 46
第3章 简单的C程序设计 48
3.1 C语句分类 49
3.2 表达式语句 49
3.3 复合语句和空语句的作用 49
3.4 基本输入/输出操作的实现 51
3.4.1 字符输入/输出 51
3.4.2 格式输入/输出 53
3.4.3 使用函数scanf()时需要注意的问题 60
3.5 本章小结 70
习题3 71
第4章 程序的控制结构 75
4.1 算法及其描述方法 76
4.1.1 算法的概念 76
4.1.2 算法的描述方法 77
4.2 顺序结构 79
4.2.1 顺序结构的流程图表示 79
4.2.2 应用程序举例 80
4.3 选择结构 84
4.3.1 应用场合 84
4.3.2 选择结构的流程图表示 84
4.3.3 条件语句 85
4.3.4 开关语句 95
4.4 循环结构 100
4.4.1 应用场合 100
4.4.2 循环结构的流程图表示 100
4.4.3 循环语句 101
4.4.4 单重循环应用举例 103
4.4.5 嵌套循环及其应用举例 115
4.5 流程的转移控制 121
4.5.1 goto语句 121
4.5.2 break与continue语句 122
4.5.3 函数exit() 124
4.5.4 应用程序举例 127
4.6 程序排错 132
4.6.1 程序中常见的出错原因 133
4.6.2 程序调试与排错基本方法 134
4.6.3 使用函数getchar()的问题 136
4.7 结构化程序设计方法简介 146
4.7.1 关于goto论战 146
4.7.2 结构化程序设计的核心思想 147
4.7.3 自顶向下、逐步求精的程序设计方法 147
4.8 本章小结 151
习题4 152
第5章 函数 162
5.1 程序设计的艺术 163
5.2 函数的定义与使用 164
5.2.1 函数的分类 164
5.2.2 函数的定义 165
5.2.3 函数的调用、参数和返回值 165
5.2.4 函数原型 167
5.2.5 函数main()的特殊性 169
5.3 变量的作用域和存储类型 170
5.3.1 变量的作用域 170
5.3.2 全局变量 172
5.3.3 变量的存储类型 174
5.4 函数封装 177
5.5 预处理指令 177
5.5.1 #include 177
5.5.2 #define和#undef 178
5.5.3 条件编译 180
5.6 使用assert()查错 181
5.7 模块和链接 182
5.8 模块化程序设计方法简介 188
5.8.1 功能分解 188
5.8.2 模块划分的原则 189
5.8.3 应用实例 190
5.9 本章小结 193
习题5 193
第6章 数组 196
6.1 数组类型的应用场合 197
6.2 数组的定义、引用和初始化 197
6.2.1 数组的定义 197
6.2.2 数组的引用 199
6.2.3 数组的初始化 200
6.2.4 程序实例 201
6.3 向函数传递一维数组 208
6.4 向函数传递二维数组 221
6.5 字符数组 229
6.5.1 字符数组与字符串的关系 229
6.5.2 字符数组的输入/输出 231
6.5.3 字符串处理函数 233
6.5.4 应用举例 234
6.6 本章小结 235
习题6 237
第7章 指针 244
7.1 指针概述 245
7.1.1 指针的概念 245
7.1.2 为什么引入指针的概念 246
7.1.3 指针变量作为函数参数 249
7.1.4 字符指针作为函数参数 258
7.2 指针和数组间的关系 263
7.2.1 一维数组的地址和指针 264
7.2.2 二维数组的地址和指针 273
7.3 指针数组 279
7.4 指向指针的指针 284
7.5 带参数的函数main() 286
7.6 动态数组的实现 288
7.6.1 C程序的内存映像 288
7.6.2 动态内存分配函数 288
7.6.3 一维动态数组的实现 290
7.6.4 二维动态数组的实现 291
7.7 使用const修饰指针变量 293
7.8 代码风格问题 294
7.8.1 程序版式 295
7.8.2 命名规则 298
7.8.3 函数设计 299
7.8.4 防御性程序设计 299
7.9 本章小结 300
习题7 302
第8章 结构体与共用体 309
8.1 问题的提出 310
8.2 结构体类型与结构体变量 312
8.2.1 结构体类型的声明 312
8.2.2 关键字typedef的用法 313
8.2.3 结构体变量的定义 314
8.2.4 指向结构体变量的指针 317
8.2.5 结构体变量的引用和初始化 318
8.3 结构体数组 322
8.3.1 结构体数组的定义 322
8.3.2 结构体数组的应用实例 323
8.3.3 结构体数组与指针 327
8.4 结构体与函数 329
8.5 动态数据结构 332
8.5.1 问题的提出 332
8.5.2 链表的定义 334
8.5.3 链表的特点及操作原理 335
8.5.4 动态链表的建立 336
8.5.5 链表的删除操作 339
8.5.6 链表的插入操作 341
8.6 共用体 343
8.7 位段 347
8.8 本章小结 350
习题8 350
第9章 函数的高级应用 358
9.1 递归 359
9.1.1 递归问题的提出 359
9.1.2 递归函数 360
9.2 返回指针值的函数 364
9.3 函数指针 367
9.4 一个综合应用实例——学生成绩管理程序 372
9.5 本章小结 373
习题9 374
第10章 文件操作 378
10.1 计算机中的流 379
10.2 文件 379
10.2.1 存储设备的使用 379
10.2.2 目录 380
10.2.3 文件格式 381
10.3 基本文件操作 381
10.3.1 基本文件操作函数 381
10.3.2 错误处理 386
10.3.3 程序示例 386
10.3.4 基本文件操作的意义 393
10.4 高级文件操作 394
10.4.1 打开与关闭 394
10.4.2 读写 394
10.4.3 程序示例 396
10.4.4 标准输入与标准输出 398
10.5 本章小结 400
习题10 400
第11章 C程序设计常见错误及解决方案 401
条款1:使用未初始化和未赋值的变量 402
条款2:不考虑数值溢出的可能 402
条款3:不用sizeof()获得类型或变量的字长 403
条款4:假定类型取值范围 403
条款5:期望两个整数的运算自动得出浮点数的结果 404
条款6:不预先判断除数是否为0 405
条款7:混淆“&,|”与“&&,‖” 405
条款8:使用依赖编译器求值顺序的语句 406
条款9:使用依靠算符优先级的表达式 406
条款10:表达式过于复杂 406
条款11:用“==”时误用“=” 407
条款12:用“==”比较两个浮点数 407
条款13:使用幻数 408
条款14:printf()和scanf()中格式控制字符串与参数类型不匹配 409
条款15:循环或判断语句以“;”结尾 409
条款16:在循环体内改变循环结束条件 410
条款17:case分支不用break结束 410
条款18:switch-case语句没有default分支 410
条款19:不声明函数原型 411
条款20:不定义函数参数或返回值的类型 411
条款21:有返回值的函数不用return指明返回值 412
条款22:调用函数后,不检查函数是否正确执行 412
条款23:变量、函数和模块功能不单一 412
条款24:函数过长 413
条款25:函数的参数过于复杂 413
条款26:返回指向局部变量的指针 413
条款27:随意修改全局变量的值 413
条款28:数组下标越界 414
条款29:字符串没有\0′终结符 414
条款30:使用不限制最大处理长度的字符串处理函数 414
条款31:用malloc()申请的内存不用free() 414
条款32:使用已经被free()的指针 415
条款33:文件打开后不主动关闭 415
条款34:成对函数不在同一个模块或函数内调用 415
条款35:头文件不加宏定义锁 415
条款36:忽略编译器警告 416
条款37:用“复制+粘贴”的方式复用代码 416
条款38:在字符串和注释以外的地方使用全角字符 416
条款39:代码风格不佳 417
条款40:代码与注释不一致 417
后记 419
附录A 书中常用概念、名词、语句、运算符、数据类型和算法索引表 421
附录B C关键字 425
附录C Visual C++下各数据类型所占字节数和取值范围 426
附录D C运算符的优先级与结合性 427
附录E 常用ASCII字符表 428
附录F 常用字符表 429
附录G 常用的ANSI C标准库函数 430
参考文献 437