《新概念C程序设计大学教程》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:张基温编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2012
  • ISBN:9787302283126
  • 页数:335 页
图书介绍:本书主要讲解了程序设计方面的基础知识,在讲解过程中,突出重点和难点,结合案例,讲解程序设计中的知识点,力求知识性和实践性相结合。

第1篇C语言程序设计初步 3

第1单元 简单的C语言程序 3

1.1两个整数相加 3

1.1.1两个整数常数相加的C语言程序 3

1.1.2 C语言程序的编译与连接 3

1.1.3带有输出操作的C程序 4

习题1.1 6

1.2变量初步 8

1.2.1使用变量的两整数相加程序 8

1.2.2从键盘给变量输入值 10

习题1.2 12

1.3用浮点数进行除运算 14

1.3.1整数相除的问题 14

1.3.2两个浮点数相除的C程序 15

习题1.3 16

第2单元 选择结构 18

2.1将从键盘输入的任意两个数按升序输出 18

2.1.1问题分析与参考代码 18

2.1.2关系运算符与关系表达式 19

2.1.3 if-else二分支选择结构 20

2.1.4程序测试 21

2.1.5程序的书写风格 22

习题2.1 23

2.2三中取大 25

2.2.1算法分析与参考代码 25

2.2.2逻辑运算符与逻辑表达式 26

2.2.3多分支选择结构中if与else的配对规则 27

2.2.4测试用例设计:语句覆盖与分支覆盖 28

2.2.5 else if结构 29

2.2.6条件运算符 30

习题2.2 31

2.3字符分类 34

2.3.1字符类型 35

2.3.2基于整型值匹配的switch结构 37

2.3.3算法分析与参考代码 37

2.3.4程序测试用例设计的等价分类法 40

2.3.5 switch结构与if-else结构的比较 41

习题2.3 42

第3单元 重复结构 46

3.1 C语言重复结构基础 46

3.1.1 C语言的三种重复结构 46

3.1.2累加器程序 47

3.1.3打印九九乘法表 53

习题3.1 56

3.2穷举 65

3.2.1求素数 65

3.2.2搬砖问题 67

3.2.3推断名次 69

习题3.2 73

3.3迭代与递推 78

3.3.1用辗转相除法求两个正整数的最大公因子 78

3.3.2 Fibonacci数列 81

3.3.3猴子吃桃子 83

3.3.4用二分迭代法求解一元二次方程 85

习题3.3 88

第4单元 用函数组织C程序 92

4.1函数基础 92

4.1.1函数定义 92

4.1.2函数调用 94

4.1.3函数原型声明 95

4.1.4局部变量与全局变量 96

4.1.5模块化程序设计 99

习题4.1 102

4.2递归 105

4.2.1阶乘的递归计算 105

4.2.2汉诺塔 106

习题4.2 109

第5单元 计算机模拟 111

5.1随机问题模拟 111

5.1.1产品随机抽样 111

5.1.2用蒙特卡洛法求的近似值 114

习题5.1 115

5.2基于步长的模拟 116

5.2.1事件步长法——中子扩散问题 116

5.2.2时间步长法——盐水池问题 118

习题5.2 122

第2篇 数据结构+算法 127

第6单元 顺序地组织同类型数据——数组类型 127

6.1数组基础 127

6.1.1扑克牌的表示与数组定义 127

6.1.2扑克牌查找:数组元素引用与数组名参数 129

6.1.3扑克洗牌的随机模拟 132

6.1.4扑克牌整理:数组元素排序 133

6.1.5扑克发牌:二维数组应用 135

习题6.1 139

6.2字符串 143

6.2.1字符串与字符数组 143

6.2.2字符串输入输出 144

6.2.3字符串的其他操作 147

习题6.2 150

第7单元 描述一类对象的属性——结构体类型和共用体类型 153

7.1结构体类型基础 153

7.1.1结构体类型的定义 153

7.1.2结构体类型的实例化 154

7.1.3结构体变量的引用 155

习题7.1 157

7.2结构体数组 159

7.2.1结构体数组的定义与初始化 159

7.2.2结构体数组元素的引用 161

习题7.2 163

7.3 union类型 165

7.3.1共用体类型的定制与共用体变量的定义 165

7.3.2共用体类型与结构体类型的比较 165

7.3.3共用体变量的应用 167

习题7.3 168

第8单元 指针类型 171

8.1指针的概念 171

8.1.1指针=基类型+地址 171

8.1.2悬空指针、空指针与void指针 173

8.1.3多级指针 174

8.1.4指针的操作 174

习题8.1 177

8.2数组的指针形式 180

8.2.1数组名与指向数组的指针 180

8.2.2二维数组的指针形式 182

8.2.3指针与C字符串 184

习题8.2 186

8.3指针参数 188

8.3.1变量地址传送 189

8.3.2数组地址传送 190

8.3.3字符指针参数 194

8.3.4带参主函数 197

习题8.3 199

第9单元 常用算法设计策略 202

9.1分治策略 202

9.1.1二分查找 202

9.1.2快速排序 204

9.1.3自行车带人问题 207

习题9.1 209

9.2回溯策略 211

9.2.1迷宫问题 211

9.2.2使用堆栈组织搜索过程 215

习题9.2 220

9.3贪心策略 221

9.3.1旅行费用问题 222

9.3.2删数问题 224

习题9.3 227

9.4动态规划 228

习题9.4 232

第3篇 深入学习C语言 237

第10单元C语言中常量的表示 237

10.1字面常量 237

10.1.1整型字面常量的表示和辨识 237

10.1.2浮点类型字面常量的表示和辨识 238

习题10.1 239

10.2宏 241

10.2.1宏定义 241

10.2.2使用宏应当注意的几点 241

10.2.3带参宏定义 243

习题10.2 245

10.3 const修饰符 248

10.3.1用const“固化”变量 248

10.3.2用const修饰指针 249

习题10.3 252

10.4枚举类型 253

10.4.1枚举类型及其定义 253

10.4.2枚举变量的定义 254

10.4.3对枚举变量和枚举元素的操作 254

习题 10.4 255

第11单元 数据类型 257

11.1基本数据类型特性 258

11.1.1整型数据类型的主要特性 258

11.1.2浮点数据类型的主要特性 260

习题11.1 261

11.2数据类型转换 262

11.2.1数据类型转换的一般规则 262

11.2.2数据类型转换的副作用与注意事项 265

习题11.2 269

11.3 typedef和sizeof操作符 270

11.3.1 typedef 270

11.3.2 sizeof运算符 272

习题11.3 272

第12单元C程序中变量的访问属性 274

12.1变量访问属性的概念 274

12.1.1变量的存储类型与生存期 274

12.1.2标识符的作用域 275

12.1.3标识符的链接属性 276

习题12.1 276

12.2 C语言程序实体的存储类型 277

12.2.1 C程序中的局部变量 277

12.2.2 C程序中的外部变量 279

习题12.2 283

12.3 C程序中的动态内存分配 287

12.3.1申请存储空间 288

12.3.2释放一个指针指向的存储空间 289

12.3.3修改一个指针指向的存储空间大小 290

习题12.3 291

第13单元 格式化输入输出函数详解 292

13.1格式化输出函数printfO 292

13.1.1格式参数结构 292

13.1.2基本格式符 292

13.1.3长度修饰符 293

13.1.4域宽与精度说明 293

13.1.5前缀修饰符 294

习题13.1 296

13.2格式化输入函数scanfO 297

13.2.1地址参数 297

13.2.2格式参数结构与工作机制 297

13.2.3数值数据的输入控制 300

13.2.4 scanfO与输入缓冲区 301

13.2.5字符型数据的输入控制 302

13.2.6 scanfO的停止与返回 306

习题13.2 306

第14单元 文件 308

14.1 C文件的基本概念 308

14.1.1 I/O流与缓冲 308

14.1.2文件及其分类 309

14.1.3 FILE类型及其指针 309

习题14.1 310

14.2 C文件操作的一般过程 310

14.2.1文件打开 311

14.2.2文件读写定位与读写操作 312

14.2.3文件关闭 313

习题14.2 314

14.3文件操作程序示例 317

14.3.1写若干行字符串到文本文件 317

14.3.2文件复制 317

习题14.3 318

第15单元 位运算与位段 320

15.1位运算 320

15.1.1按位逻辑运算 320

15.1.2移位运算 322

15.2位段 322

习题15 325

附录 327

附录A C语言的关键字及其用途 327

附录B C语言运算符的优先级和结合方向 328

附录C编译预处理命令 328

C.1宏定义 328

C.2文件包含 329

C.3条件编译 329

附录D C语言常用标准库函数 329

D.1数学函数 330

D.2字符函数和字符串函数 331

D.3输入输出函数 331

D.4动态内存分配函数 333

D.5退出程序函数 333

D.6数值转换函数 334

D.7时间和日期函数 334

参考文献 335