《C语言入门1·2·3 一个老鸟的C语言学习心得》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:周凌霄等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:9787302340539
  • 页数:348 页
图书介绍:本书共13章,前8章主要讲解C语言的基础结构和语法知识,包括变量、表达式、指针和数组等知识。并且穿插部分VC6.0的使用方法。第9-11章讲解实际编程会用到的文件、动态内存分配及调试知识。第12章节讲解编程风格,使读者理解为何要注重代码风格及如何编写优秀代码。最后通过C语言进行小型项目开发。

第1章 进入程序设计世界(教学视频:20分钟) 1

1.1计算机程序设计 1

1.1.1计算机语言 1

1.1.2机器语言 2

1.1.3汇编语言 2

1.1.4高级语言 2

1.2什么是C语言? 3

1.2.1 C语言的发展 3

1.2.2 C语言的特点 4

1.3环境搭建,初识Visual C++ 5

1.3.1安装Visual C++ 5

1.3.2认识Visual C++ 9

1.4编制第一个C语言程序 10

1.4.1简单的Hello World程序 10

1.4.2程序开发步骤 13

1.4.3 C语言的代码 15

1.5本章小结 16

1.6本章习题 16

第2章 C语言数据类型、运算符和表达式(教学视频:62分钟) 17

2.1基本数据类型 17

2.1.1简单学习存储原理 17

2.1.2整数类型 18

2.1.3浮点数类型 20

2.1.4字符类型 21

2.1.5常用基本数据类型 23

2.2标识符与关键字 23

2.2.1标识符 23

2.2.2关键字 24

2.3常量与变量 25

2.3.1常量 25

2.3.2变量 26

2.3.3字符串常量 27

2.4运算符和表达式 28

2.4.1 C语言的运算符以及表达式 28

2.4.2算术运算符和算术表达式 29

2.4.3关系运算符和关系表达式 30

2.4.4逻辑运算符和逻辑表达式 31

2.4.5位运算符和位表达式 33

2.4.6自增、自减运算符和表达式 34

2.4.7赋值运算符和赋值表达式 35

2.4.8逗号运算符和逗号表达式 37

2.4.9 sizeof()运算符 37

2.4.10条件运算符和条件表达式 38

2.5数据类型之间的转换 38

2.5.1自动类型转换 39

2.5.2强制类型转换 39

2.6本章小结 40

2.7本章习题 40

第3章 输入与输出(教学视频:28分钟) 42

3.1输入输出——让人与机器交流的窗口 42

3.2格式化的输入输出 43

3.2.1格式化输出函数printf() 43

3.2.2格式化输入函数scanf() 47

3.3常用字符输入输出函数 51

3.3.1 putchar()函数 51

3.3.2 getchar()函数 51

3.4本章小结 52

3.5本章习题 52

第4章 程序控制结构(教学视频:60分钟) 53

4.1复合语句 53

4.2条件控制语句 55

4.2.1 if语句的简单形式 55

4.2.2 if-else条件判断形式 57

4.2.3 else-if多条件判断形式 58

4.2.4 switch多条件判断语句 60

4.2.5条件运算符 62

4.2.6条件控制语句的嵌套使用 63

4.3循环控制语句 65

4.3.1 while语句 65

4.3.2 do-while语句 66

4.3.3 for语句 67

4.3.4循环语句的嵌套使用 70

4.4其他控制语句 71

4.4.1 goto语句 71

4.4.2 break语句 72

4.4.3 continue语句 72

4.5控制语句的应用举例 73

4.5.1穷举——著名的爱因斯坦阶梯问题 73

4.5.2迭代 75

4.5.3死循环 76

4.6本章小结 77

4.7本章习题 77

第5章 数组(教学视频:60分钟) 82

5.1一维数组 82

5.1.1一维数组的定义 82

5.1.2数组的存储原理 83

5.2数组的赋值 85

5.2.1初始化赋值 85

5.2.2初始化部分元素 86

5.2.3不定长度数组赋值 87

5.2.4静态数组赋值 87

5.2.5遍历数组 88

5.3一维数组的应用 88

5.3.1冒泡排序 89

5.3.2简单选择排序 91

5.4多维数组 94

5.4.1多维数组的定义 94

5.4.2多维数组的存储原理 96

5.5多维数组的赋值 98

5.5.1顺序初始化 98

5.5.2部分数组元素初始化 100

5.6字符数组和字符串 101

5.6.1字符数组与字符串 101

5.6.2字符串的初始化 102

5.6.3字符串的输入输出 103

5.7常用的字符串函数 105

5.7.1字符串输入函数gets() 105

5.7.2字符串输出函数puts() 106

5.7.3字符串连接函数strcat() 106

5.7.4字符串拷贝函数strcpy() 107

5.7.5字符串比较函数strcmp() 108

5.7.6求字符串长度函数strlen() 109

5.8中文字符的处理 109

5.9本章小结 110

5.10本章习题 111

第6章 指针(教学视频:41分钟) 114

6.1神奇的指针 114

6.1.1指针的概念 114

6.1.2指针变量的定义 115

6.1.3指针的赋值和取值 115

6.1.4指向指针的指针 118

6.1.5指针的用处 119

6.2指针数组 120

6.2.1指向一维数组的指针 120

6.2.2指向多维数组的指针 122

6.2.3指针与字符串 124

6.3易混淆的指针概念 126

6.3.1指针常量 126

6.3.2常量指针 126

6.4本章小结 127

6.5本章习题 128

第7章 函数(教学视频:50分钟) 130

7.1函数的概念 130

7.1.1 C语言程序结构 130

7.1.2函数的分类 131

7.2函数 132

7.2.1函数的定义 132

7.2.2函数的参数 134

7.2.3函数的声明 134

7.2.4函数的返回 136

7.3函数的调用 136

7.3.1传值调用 136

7.3.2传址调用 137

7.3.3嵌套调用 139

7.3.4递归调用 139

7.4变量的存储属性 141

7.4.1存储位置、作用域和生存期 141

7.4.2存储类别 142

7.4.3动态变量 142

7.4.4静态变量 145

7.5指针与函数 148

7.5.1指针作为函数的参数 148

7.5.2实参和形参均为数组名 148

7.5.3实参和形参均为指针 150

7.5.4实参和形参混合使用数组名与指针 151

7.5.5指向函数的指针 151

7.5.6返回指针的函数 152

7.6其他函数 153

7.6.1 main()函数 153

7.6.2库函数 154

7.7本章小结 154

7.8本章习题 154

第8章 其他数据类型与预编译(教学视频:41分钟) 157

8.1结构体类型变量 157

8.1.1定义结构体类型 157

8.1.2定义结构体变量 158

8.1.3结构体变量的访问 160

8.1.4结构体变量的赋值 161

8.1.5结构体数组 162

8.1.6结构体指针 163

8.2共用体 164

8.2.1定义共用体 164

8.2.2使用共用体的注意事项 165

8.3枚举类型 166

8.3.1枚举类型的定义 166

8.3.2枚举类型变量的使用 166

8.4自定义数据类型 167

8.5 void类型 168

8.6预编译 168

8.6.1文件包含 168

8.6.2条件编译 170

8.7宏 172

8.7.1不带参数的宏 172

8.7.2带参数的宏 174

8.8本章小结 175

8.9本章习题 175

第9章 文件操作(教学视频:45分钟) 178

9.1文件的概念和分类 178

9.1.1文件分类 178

9.1.2文件标识 179

9.1.3流 180

9.2文件的读写过程 180

9.2.1文件的工作原理 181

9.2.2文件类型指针 181

9.2.3打开和关闭文件 182

9.3对文件的操作 184

9.3.1面向字符的I/O 184

9.3.2面向行的I/O 185

9.3.3格式化的I/O 187

9.3.4面向记录的I/O 188

9.4文件定位与随机读写 190

9.4.1文件读写位置的定位 190

9.4.2文件的随机读写 190

9.5文件出错检测 191

9.6本章小结 192

9.7本章习题 192

第10章 C语言高级应用(教学视频:41分钟) 193

10.1内存分配策略 193

10.2 C语言动态内存分配函数 194

10.2.1申请内存 194

10.2.2释放内存 195

10.3线性表 195

10.3.1线性表的定义 196

10.3.2线性表的表示 196

10.3.3线性表的接口 197

10.3.4新建线性表 197

10.3.5插入结点 198

10.3.6删除结点 199

10.3.7删除某个线性表 199

10.4栈和队列 200

10.4.1栈 200

10.4.2队列 203

10.5栈的应用实例 207

10.5.1进制转换 208

10.5.2括号匹配检测 210

10.6本章小结 216

10.7本章习题 216

第11章 Visual C++ 6.0测试与调试(教学视频:20分钟) 217

11.1 Visual C++ 6.0的调试技巧 217

11.1.1程序测试 217

11.1.2断点设置 218

11.1.3跟踪调试 219

11.1.4调试实践 220

11.2常见的程序错误 226

11.2.1编译时常见错误 226

11.2.2连接时常见错误 227

11.2.3运行时常见错误 227

11.3本章小结 228

11.4本章习题 228

第12章 编程风格(教学视频:24分钟) 229

12.1编写风格良好的代码 229

12.1.1为什么编写风格良好的代码? 229

12.1.2编写风格良好代码的原则 230

12.2命名规则 230

12.2.1标识符命名规则 230

12.2.2函数命名规则 231

12.2.3类型的命名 232

12.2.4宏与常量的命名 232

12.3注释规则 233

12.3.1注释的原则 233

12.3.2注释的写法 233

12.4表达式和语句 234

12.4.1表达式的书写 234

12.4.2代码的排版 235

12.4.3语句的书写 236

12.5本章小结 238

12.6本章习题 238

第13章 Linux基础知识(教学视频:16分钟) 239

13.1Linux操作系统 239

13.1.1操作系统与UNIX 239

13.1.2 Linux的发展历史 240

13.1.3开源的概念 241

13.1.4 Linux内核版本 242

13.1.5 Linux的特色 242

13.2 Linux的安装 243

13.2.1安装前准备 243

13.2.2虚拟机VMware安装与配置 244

13.2.3 Linux系统的安装 246

13.2.4 Ubuntu系统界面 252

13.3如何学习Linux 254

13.3.1文件系统 254

13.3.2常用Shell指令 256

13.3.3在线求助 257

13.3.4权限控制 259

13.4 Linux环境的C语言开发 260

13.4.1在终端中开发 261

13.4.2在IDE中开发 263

13.5本章小结 265

13.6本章习题 265

第14章 算法初步入门(教学视频:37分钟) 266

14.1算法的基本概念 266

14.1.1大数A+B问题 266

14.1.2算法的基本性质 271

14.1.3算法的基本要求 272

14.2算法的复杂度分析 272

14.2.1事后统计法 272

14.2.2事前估算法 272

14.3分治法 273

14.3.1分治法的设计步骤 273

14.3.2二分法查找 274

14.3.3快速排序 276

14.4贪心法 279

14.4.1贪心算法的基本要素 279

14.4.2背包问题 279

14.4.3活动表问题 281

14.5动态规划 283

14.5.1动态规划的原理 284

14.5.2 0-1背包问题 285

14.6回溯法 287

14.6.1回溯法的原理 287

14.6.2 N皇后问题 289

14.7常见数学问题的算法实现 290

14.7.1水仙花数 290

14.7.2回文数 291

14.7.3最大公约数 292

14.7.4素数 293

14.8本章小结 295

14.9本章习题 295

第15章 案例开发——学生成绩管理系统(教学视频:32分钟) 296

15.1需求分析 296

15.2总体设计 296

15.3详细设计 297

15.3.1文件结构 298

15.3.2主函数 298

15.3.3显示 299

15.3.4菜单 300

15.4数据处理 301

15.4.1学生信息的表示 301

15.4.2学生信息的输入 302

15.4.3学生信息的查询 303

15.4.4学生信息的删除 304

15.4.5学生信息的排序 305

15.4.6学生信息的修改 306

15.4.7学生信息的保存 307

15.4.8学生信息的显示 307

15.5维护与改进 308

15.5.1增加错误检测 308

15.5.2完善数据处理功能 308

15.5.3进一步分离数据处理和程序显示 309

15.6本章小结 309

15.7本章习题 309

附录A ASCII详解 310

附录B C语言标准库函数 313

B.1标准库函数及其头文件 313

B.2数学函数 313

B.2.1求正弦值的sin()函数 314

B.2.2求反正弦值的asin()函数 314

B.2.3求余弦值的cos()函数 315

B.2.4求反余弦值的acos()函数 315

B.2.5求正切值的tan()函数 316

B.2.6求反正切值的atan()函数 316

B.2.7求幂值的exp ()函数 317

B.2.8取2为底对数的log ()函数 317

B.2.9取10为底对数的log10 ()函数 318

B.2.10求绝对值的fabs ()函数 318

B.2.11求小数上限的floor()函数 319

B.2.12求小数下限的ceil ()函数 319

B.2.13取余操作的fmod()函数 320

B.2.14求任意幂次的PoW()函数 321

B.2.15求平方根的sqrt()函数 321

B.3字符测试类函数 322

B.3.1判断字符是否为控制字符的iscntrl()函数 322

B.3.2判断字符是否为字母或数字的isalnum()函数 322

B.3.3判断字符是否为字母的isalpha()函数 323

B.3.4判断字符是否为ASCII字符的isascii ()函数 324

B.3.5判断字符是否为数字的isdigit()函数 324

B.3.6判断字符是否为制表符或空格符的isgraph()函数 325

B.3.7判断字母是否小写的islower()函数 325

B.3.8判断字母是否大写的isupper()函数 326

B.3.9将字母转换为小写的tolower ()函数 326

B.3.10将字母转换为大写的toupper()函数 327

B.4字符串函数 328

B.4.1求字符串长度的strlen()函数 328

B.4.2字符串拷贝的strcpy()函数 328

B.4.3连接两个字符串的strcat()函数 329

B.4.4比较字符串大小的strcmp()函数 329

B.4.5在字符串中查找字符的strchr()函数 330

B.4.6比较字符串大小(不区分大小写)的stricmp ()函数 331

B.4.7字符串中查找字符的strcspn()函数 331

B.4.8字符串中查找字符的stmcat()函数 332

B.4.9比较字符串大小的strcmp()函数 332

B.4.10字符串中查找字符的strstr()函数 333

B.4.11分割字符串的strtok()函数 334

B.4.12内存移动的memmove()函数 335

B.4.13字符串赋值的memcpy()函数 335

B.4.14字符串连接的memcmp()函数 335

B.4.15 字符串查找的memchr()函数 336

B.4.16字符串重置的memset()函数 336

B.5实用函数 336

B.5.1将字符串转换为小数的atof()函数 336

B.5.2将字符串转换为整数的atoi()函数 337

B.5.3将字符串转换为整数的atol()函数 337

B.5.4将字符串的前缀转换为小数的strtod()函数 338

B.5.5将字符串前缀转换为整数的strtol()函数 338

B.5.6生成随机数的rand()函数 339

B.5.7设置随机数种子的srand()函数 340

B.5.8动态内存分配的malloc()函数 340

B.5.9重新分配内存的realloc()函数 341

B.5.10释放内存的free()函数 341

B.5.11终止程序执行的abort()函数 341

B.5.12程序退出时会执行atexit()函数 341

B.5.13可以调用系统命令的system()函数 342

B.6时间函数 342

B.6.1返回处理机时间的clock()函数 343

B.6.2返回日历时间的time()函数 343

B.6.3转换时间格式为字符串的asctime ()函数 344

B.6.4将日历时间转换为标准格式的gmtime()函数 344

B.6.5将日历时间转换为本地时间的localtime ()函数 345

B.6.6将日历时间转换为字符串的ctime()函数 346

B.6.7指定时间格式的strftime()函数 346