程序设计基础 C99PDF电子书下载
- 电子书积分:14 积分如何计算积分?
- 作 者:姜沐著
- 出 版 社:南京:东南大学出版社
- 出版年份:2015
- ISBN:9787564160562
- 页数:404 页
第1章 预备知识 1
1.1 什么是编程 1
1.1.1 计算机如何工作 1
1.1.2 内存中的程序来自何处 4
1.1.3 如何制作可执行文件 4
1.2 怎样用C语言编程 7
1.2.1 学习C语言编程的条件 7
1.2.2 编写最简单的C程序 8
1.3 输出字符序列 12
1.3.1 输出指定图案 12
1.3.2 printf()函数的简单用法 12
1.3.3 编写代码及测试 13
1.3.4 一些特殊字符的输出 14
1.4 C语言的“字母”和“单词” 16
1.4.1 C语言的“字母” 16
1.4.2 C语言的“单词” 17
第2章 整数类型及其五则运算 21
2.1 整数常量 21
2.1.1 输出123 21
2.1.2 整数常量的写法 21
2.1.3 用printf()函数输出整数值 22
2.1.4 整数常量的局限 23
2.2 整数类型的五则运算 23
2.2.1 加法运算 23
2.2.2 减法运算 24
2.2.3 乘法运算 24
2.2.4 关于除法的两个运算 27
2.2.5 数据类型 29
2.3 让程序“记忆”数据——变量 30
2.3.1 填数问题 30
2.3.2 用变量解决问题 35
2.4 其他整数类型 38
2.4.1 unsigned类型 39
2.4.2 short、long和long long类型 40
2.4.3 字符类型 42
2.5 卡片问题 44
2.6 运行时输入数据——调用scanf()函数 48
2.6.1 scanf()函数概述 48
2.6.2 scanf()函数的应用 49
2.6.3 scanf()函数注意事项 50
2.6.4 良好的风格 51
第3章 运算符、表达式及语句 52
3.1 运算符的基本概念 52
3.1.1 运算符 52
3.1.2 操作数 52
3.1.3 运算符的种类 52
3.2 表达式(Expression) 53
3.2.1 表达式的种类 53
3.2.2 认识表达式 53
3.2.3 表达式的作用与副效应 54
3.2.4 表达式的左值与右值 57
3.3 运算符的优先级和结合性 58
3.3.1 从sizeof说起 58
3.3.2 优先级的概念 58
3.3.3 结合性的概念 59
3.4 语句(Statement) 60
3.4.1 什么是语句 60
3.4.2 什么不是语句 62
3.4.3 关于语句的误区 62
3.5 算法与数据结构 62
3.5.1 算法及其特性 63
3.5.2 分橘子问题 63
3.5.3 算法的优化 65
3.5.4 什么是数据结构 66
3.5.5 找对手问题 66
3.5.6 大数相加 67
3.5.7 算法的表示 70
第4章 选择与判断 72
4.1 if语句 72
4.1.1 语法形式 72
4.1.2 判断奇偶问题 73
4.1.3 防患未然 74
4.1.4 对if语句的详细说明 76
4.2 判等运算、关系运算及逻辑运算 78
4.2.1 判等运算 78
4.2.2 关系运算 82
4.2.3 逻辑运算 89
4.3 if-else语句 95
4.3.1 代码回顾 95
4.3.2 if-else语句的语法形式 95
4.3.3 倒水问题 97
4.4 难解的嵌套 103
4.4.1 自我折磨式写法 103
4.4.2 可读性和良好的习惯 104
4.4.3 减少嵌套 110
4.4.4 另一种风格 113
4.5 条件表达式 116
4.6 多项选择——switch语句 117
4.6.1 先乘电梯再走下楼 117
4.6.2 先乘电梯再跳楼 121
4.6.3 switch语句的一般形式 125
第5章 循环 126
5.1 while语句 126
5.1.1 while语句的语法要点 126
5.1.2 良好风格 127
5.1.3 次数确定的循环 127
5.1.4 次数不定的循环 128
5.1.5 逗号表达式及其应用 133
5.2 do-while语句 134
5.2.1 统计字符数目问题 134
5.2.2 do-while语句的语法要点 135
5.2.3 良好风格 135
5.2.4 求逆序数问题 136
5.3 for语句 137
5.3.1 语法要点 137
5.3.2 ++、-- 139
5.3.3 Fibonacci数列 140
5.3.4 复杂的循环 141
5.3.5 正确书写表达式 141
5.4 不规则的循环及对循环的修整 142
5.4.1 循环语句中的break语句 142
5.4.2 continue语句 146
5.5 循环的嵌套与穷举法 147
5.5.1 循环的嵌套 147
5.5.2 穷举法 152
5.6 goto语句 155
5.7 浮点类型 156
5.7.1 浮点类型数据的存储模型 156
5.7.2 float类型、double类型与long double类型 156
5.7.3 double类型常量的写法 157
5.7.4 浮点类型数据的运算 157
5.7.5 浮点类型数据的输出 158
5.7.6 浮点类型数据的输入 159
5.8 近似计算 159
5.8.1 求调和级数和 159
5.8.2 误用浮点类型数据 161
5.8.3 求一元二次方程的根 162
5.8.4 求立方根(迭代和逼进) 163
5.8.5 求sin函数值(通项计算) 164
第6章 函数及结构化程序设计 167
6.1 函数的调用、声明和定义 167
6.1.1 从初学者常犯的一个错误谈起 167
6.1.2 “()”运算符 168
6.1.3 函数类型声明 169
6.1.4 函数定义 170
6.1.5 return语句 173
6.2 结构化程序设计 173
6.2.1 限制使用goto语句 173
6.2.2 自顶向下 174
6.2.3 逐步细化 174
6.2.4 模块化 174
6.2.5 求调和级数的和 174
6.3 递归 181
6.3.1 什么是递归 181
6.3.2 Hanoi塔问题 187
6.3.3 间接递归 190
6.4 局部变量的作用域及生存期 191
6.4.1 作用域(Scope) 191
6.4.2 作用域重叠问题 192
6.4.3 对局部变量的进一步修饰 192
第7章 指向数据对象的指针 196
7.1 传值调用的局限 196
7.1.1 约分问题 196
7.1.2 对错误的分析 197
7.2 什么是指针 198
7.2.1 指针是一类数据类型的统称 198
7.2.2 指针是派生数据类型 198
7.2.3 指针是一类数据的泛称 199
7.2.4 指针专用的类型说明符——“*” 199
7.2.5 指针的分类 199
7.3 指向数据对象的指针 200
7.3.1 什么是数据对象 200
7.3.2 “&”运算符 200
7.3.3 数据指针变量的定义 202
7.3.4 指针的赋值运算 203
7.3.5 “*”运算符 204
7.4 指针的应用与误用 206
7.4.1 指针有什么用 206
7.4.2 重新构造约分函数 209
7.4.3 对指针的误用及预防 210
7.4.4 再求分橘子问题 210
第8章 数组与指针 213
8.1 使用数组 213
8.1.1 老式的解决办法 213
8.1.2 定义数组 213
8.1.3 如何称呼数组中的各个数据对象 214
8.1.4 完整的演示 214
8.2 深入理解数组 215
8.2.1 数组是一种数据类型 215
8.2.2 数组定义的含义 216
8.2.3 数组名是什么 216
8.2.4 一维数组元素的引用 217
8.2.5 数组元素引用是一个表达式 217
8.2.6 数组名的值 218
8.2.7 重复一遍 218
8.3 熟练应用一维数组 219
8.3.1 一维数组的遍历 219
8.3.2 翻卡片问题 220
8.3.3 筛法 222
8.3.4 一维数组的初始化 224
8.4 数组与函数 225
8.4.1 数组名的值和类型 225
8.4.2 对应的形参 225
8.4.3 调用原理 226
8.4.4 不可以只有数组名这一个实参 227
8.4.5 const关键字 228
8.4.6 排序问题 231
8.5 一维数组与指针 233
8.5.1 数组名是什么 233
8.5.2 数据指针与整数的加减法 237
8.5.3 数据指针与整数的加法的应用举例 238
8.5.4 数据指针的其他运算 241
8.5.5 与数组名对应的形参 243
8.5.6 指向数组的指针 245
8.6 使用指针 246
8.6.1 通过指针操作数组 246
8.6.2 返回指针的函数 249
8.7 二维数组 251
8.7.1 二维数组的定义 251
8.7.2 二维数组元素的初始化 253
8.7.3 二维数组元素的引用和遍历 253
8.7.4 向函数传递二维数组 255
8.8 高维数组名的性质 257
8.8.1 高维数组名是指针 257
8.8.2 高维数组名是内存 259
8.8.3 a[0]或*a的含义 260
8.8.4 数组与指针关系的总结 261
第9章 字符串、字符数组及指向字符的指针 263
9.1 字符串文字量 263
9.1.1 字符串文字量的定义 263
9.1.2 字符串文字量的性质 264
9.2 字符串的输入与存储 266
9.2.1 为输入的字符串准备存储空间 266
9.2.2 puts()函数 267
9.2.3 字符数组的初始化 267
9.3 字符串操作的应用 267
9.3.1 求字符串长度 267
9.3.2 比较两个字符串的大小 269
9.3.3 scanf()函数中的转换 271
9.3.4 字符处理库函数 275
9.4 常用的字符串函数 276
9.4.1 字符串处理库函数 276
9.4.2 sscanf()与sprintf()函数 278
9.4.3 restrict关键字(C99)及memcpy()函数集 278
9.4.4 字符串转换函数 279
9.5 main()函数的参数 280
9.5.1 指向指针的指针 280
9.5.2 main()函数的第二种写法 280
9.6 枚举类型 282
第10章 结构体与共用体 285
10.1 结构体 285
10.1.1 从一个简单例题说起 285
10.1.2 声明结构体的类型 286
10.1.3 定义结构体变量 287
10.1.4 结构体数据的基本运算 288
10.1.5 结构体变量赋初值及成员值的输入问题 290
10.1.6 结构体类型的常量(C99) 291
10.1.7 一个不太专业的技巧 293
10.1.8 结构体的其他定义方式及无名的结构体 294
10.2 结构体与指针 295
10.2.1 类型问题 295
10.2.2 通过指针读写结构体的成员 296
10.3 共用体 297
10.3.1 概述 297
10.3.2 对double类型的解析 299
10.4 位运算 301
10.4.1 位运算符 301
10.5 位段 308
10.5.1 位段概述 308
10.5.2 如何定义位段 308
10.5.3 位段的性质 309
10.5.4 对齐等问题 309
第11章 数据类型的深入讨论 310
11.1 其他类型的指针 310
11.1.1 指向函数的指针 310
11.1.2 指向虚无的指针 316
11.2 复杂数据类型的构造方法和解读 317
11.2.1 复杂数据类型的构造方法 317
11.2.2 复杂数据类型的解读 321
11.2.3 添乱的const等类型限定符 324
11.3 更自由地使用内存 325
11.3.1 100!=? 325
11.3.2 初级的办法 325
11.3.3 使用动态分配内存函数 328
11.3.4 改进的方法 329
11.3.5 用链表解决问题 331
11.4 typedef 335
第12章 程序组织与编译预处理 337
12.1 编译预处理简介 337
12.1.1 预处理的一般特点 337
12.1.2 预处理的几个阶段 338
12.2 文件包含 338
12.3 宏定义与宏替换 339
12.3.1 类似对象的宏 340
12.3.2 类似函数的宏 340
12.3.3 拼接单词 342
12.4 预处理命令的其他话题 343
12.4.1 再谈宏 343
12.4.2 其他编译预处理命令 345
12.5 使用外部变量 347
12.5.1 外部变量 347
12.5.2 static函数 350
第13章 程序的输入与输出 351
13.1 面向文件的输入与输出 351
13.1.1 把程序输出写入文件 351
13.1.2 C程序怎样读文件 356
13.1.4 fprintf()与printf()函数的等效性 362
13.2 文件、流、FILE及FILE 363
13.2.1 文件 363
13.2.2 流(stream) 364
13.2.3 FILE结构体 364
13.2.4 FILE 364
13.2.5 文本流和二进制流 365
13.2.6 自动打开的流 366
13.2.7 EOF 366
13.2.8 其他几个用于文本文件的I/O函数 366
13.3 二进制文件的读写 367
13.3.1 二进制流 367
13.3.2 用fwrite()函数写二进制文件 367
13.3.3 用fread()函数读二进制文件 369
13.3.4 feof()函数和ferror()函数 370
13.3.5 讨论 372
13.4 定位问题 372
13.4.1 ftell()函数 372
13.4.2 fseek()函数 372
13.4.3 rewind()函数 373
13.4.4 fgetpos()函数和fsetpos()函数 373
第14章 标准库简介 374
14.1 使用标准库的一些常识 374
14.1.1 标准头与标准头文件 374
14.1.2 使用库的禁忌 375
14.1.3 并存的宏与函数 376
14.1.4 函数定义域问题 376
14.2 对语言的补充 376
14.2.1 标准定义头文件stddef.h 377
14.2.2 iso646.h 377
14.2.3 limits.h和float.h 378
14.2.4 stdarg.h 378
14.2.5 stdbool.h(C99) 378
14.2.6 stdint.h(C99) 379
14.3 stdio.h 380
14.3.1 数据类型 380
14.3.2 宏 380
14.3.3 函数 381
14.4 通用函数头文件:stdlib.h 383
14.4.1 数值转换函数 383
14.4.2 伪随机数序列生成函数 384
14.4.3 内存管理函数 384
14.4.4 环境通信函数 384
14.4.5 查找与排序函数 388
14.4.6 整数算术函数 389
14.4.7 多字节、宽字节字符和字符串转换函数 389
14.5 string.h 389
14.6 数值计算 389
14.6.1 math.h(C89) 390
14.6.2 math.h(C99) 391
14.6.3 complex.h(C99) 393
14.6.4 tgmath.h(C99) 393
14.6.5 fenv.h(C99) 393
附录A C语言的关键字 395
附录B C语言的数据类型 396
附录C ASCII表 397
附录D C语言的运算符 398
附录E Dev-C++使用简介 399
附录F VC++6.0的使用 401
参考文献 404
- 《市政工程基础》杨岚编著 2009
- 《零基础学会素描》王金著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《生物质甘油共气化制氢基础研究》赵丽霞 2019
- 《花时间 我的第一堂花艺课 插花基础技法篇》(日)花时间编辑部编;陈洁责编;冯莹莹译 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《Photoshop CC 2018基础教程》温培利,付华编著 2019
- 《看视频零基础学英语口语》宋德伟 2019
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《胃癌基础病理》(日)塚本彻哉编者;宫健,刘石译者 2019
- 《中国当代艺术经典名家 许钦松》西沐著 2011
- 《江水沐唯美写意花鸟画精选》江水沐著 2013
- 《王西京研究》西沐著 2009
- 《站在时光彼端的你》漩沐著 2012
- 《中国艺术品市场年度研究报告 2010》西沐著 2011
- 《中国画当代艺术概论 中国画当代艺术三十年》西沐著 2009
- 《中国艺术品市场年度研究报告 2008》西沐著 2009
- 《换个角度看恒山》紫沐著 2009
- 《匈奴史研究》武沐著 2009
- 《浮世拷贝 朽木杂文随笔选》孙月沐著 2004