《C语言自学视频教程 实例版》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:软件开发技术联盟编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:9787302371113
  • 页数:560 页
图书介绍:书从初学者角度出发,通过通俗易懂的语言,丰富多彩的实例,详细介绍了使用Visual C++6.0(以及部分Turbo C)进行C语言应用程序开发应该掌握的各方面技术。全书共分14章,包括初见C语言,数据类型,顺序与选择结构程序设计,循环控制,数组,函数,指针,结构体和公用体,算法等。

第1篇 入门篇 2

第1章 初识C语言 2

1.1 编程语言发展史 3

1.1.1 机器语言 3

1.1.2 汇编语言 3

1.1.3 高级语言 4

1.2 C语言的发展 5

1.2.1 C语言的产生 5

1.2.2 C程序的特点 6

1.2.3 C语言发展趋势 7

1.2.4 C语言的应用领域 8

1.2.5 如何学好C语言 8

实例1 输出“Hello World!” 9

实例2 计算10+20 9

1.3 本章小结 10

第2章 编写一个简单的C程序 11

2.1 C程序结构 12

2.2 C语言基础知识 15

2.2.1 介绍两种C程序开发工具 15

2.2.2 设定标识符 25

2.2.3 认识关键字 26

2.2.4 添加注释 28

2.2.5 定义变量 28

实例1 求一个数的平方根 29

实例2 猴子吃桃 29

2.3 分析错误提示信息 30

2.3.1 出现严重错误 30

2.3.2 提示一般错误信息 30

2.3.3 警告信息 37

实例3 求圆面积 38

实例4 十进制数转八进制 39

2.4 提高程序的可读性 40

2.5 综合应用 41

2.5.1 输出三角形 41

2.5.2 交换两个数 41

2.6 本章常见错误 42

2.6.1 定义的标识符不是一个整体 42

2.6.2 语句结束没有结束符 42

2.7 本章小结 43

2.8 跟我上机 43

第3章 掌握C语言算法 44

3.1 算法概述 45

3.1.1 什么是算法 45

3.1.2 算法的特性 45

3.1.3 算法的优缺点 46

实例1 求圆的周长 46

实例2 求一元二次方程ax2+bx+c=0的根 47

3.2 描述算法 48

3.2.1 用自然语言描述 48

3.2.2 用流程图描述 48

3.2.3 三种基本结构 50

3.2.4 绘制N-S流程图 52

3.2.5 用伪代码描述算法 54

实例3 任意输入三个数,求这三个数中的最大数 54

实例4 判断2000~2500年中每一年是否为闰年 55

实例5 用伪代码描述n! 56

3.3 综合应用 56

3.3.1 判断三角形的类型 56

3.3.2 计算某日是该年第几天 57

3.3.3 婚礼上的谎言 58

3.3.4 百钱百鸡问题 59

3.4 本章常见错误 59

3.4.1 合理安排基本结构 59

3.4.2 全面考虑 60

3.5 本章小结 60

3.6 跟我上机 60

第4章 C语言基础——数据类型 64

4.1 数据类型概述 65

4.1.1 数据类型的概念 65

4.1.2 数据类型的分类 65

实例1 复制字符串 66

实例2 一分钟倒计时 67

4.2 常量 67

4.2.1 整型常量 68

4.2.2 实型常量 70

4.2.3 字符型常量 70

4.2.4 符号常量 76

实例3 进制转换 77

实例4 以不同格式输出数据 77

4.3 变量 78

4.3.1 整型变量 78

4.3.2 实型变量 81

4.3.3 字符型变量 84

4.3.4 转换数据类型 85

实例5 求100~200之间的素数 86

实例6 字符型数据进行算术运算 87

4.4 综合应用 88

4.4.1 小球下落问题 88

4.4.2 老师分糖果 89

4.5 本章常见错误 89

4.5.1 scanf()输入数据要用地址 89

4.5.2 指针无法访问register变量 90

4.5.3 变量先定义后使用 90

4.6 本章小结 90

4.7 跟我上机 90

第5章 运算符与表达式的使用 92

5.1 表达式概述 93

5.2 赋值运算 93

5.2.1 为变量赋值 94

5.2.2 自动类型转换 94

5.2.3 强制类型转换 95

实例1 模拟钟点工的计费 96

实例2 显示类型转化的结果 96

5.3 算术运算 97

5.3.1 算术运算符 97

5.3.2 算术表达式 98

5.3.3 算术运算符的优先级与结合性 98

5.3.4 自增自减运算符 99

实例3 温度转换 99

实例4 算术运算符的优先级和结合性 100

实例5 比较自增自减运算符前缀与后缀的不同 101

实例6 自增运算的结合性 102

5.4 关系运算 103

5.4.1 关系运算符 103

5.4.2 关系表达式 104

实例7 关系运算符的使用 104

实例8 输入密码 104

5.5 逻辑运算 106

5.5.1 逻辑运算符 106

5.5.2 逻辑表达式 106

实例9 判断闰年 107

实例10 黑纸与白纸 108

5.6 逗号运算 109

5.7 条件运算符与表达式 110

5.8 复合赋值运算符 111

5.9 综合应用 112

5.9.1 阿姆斯特朗数 112

5.9.2 求1~10的累加和 113

5.9.3 求解二元一次不定方程 113

5.9.4.可逆素数 115

5.10 本章常见错误 116

5.10.1 表达式“a=b”和“a=b” 116

5.10.2 对浮点数求余 117

5.10.3 逻辑运算部分被执行 117

5.11 本章小结 117

5.12 跟我上机 118

第6章 输入输出数据 120

6.1 语句概述 121

6.1.1 表达式语句 121

6.1.2 函数调用语句 121

6.1.3 空语句 122

6.1.4 控制语句 122

6.1.5 复合语句 123

实例1 判断回文数 123

实例2 求最小数 124

6.2 输入输出字符数据 125

6.2.1 输出字符数据 125

6.2.2 字符数据的输入 126

实例3 使用putchar函数实现字符数据输出 126

实例4 使用getchar函数实现字符数据输入 127

实例5 使用getchar函数取消获取回车 128

6.3 字符串的输入输出 128

6.3.1 字符串输出函数 128

6.3.2 字符串输入函数 129

实例6 使用字符串输出函数进行显示信息提示 129

实例7 使用字符串输入函数gets()获取输入信息 130

6.4 按指定格式输出 131

6.5 按指定格式输入 135

6.6 顺序程序设计应用 138

6.7 综合应用 140

6.7.1 输出一个字符的前驱字符 140

6.7.2 求学生总成绩和平均成绩 140

6.7.3 将输入的小写字符转化为大写字符 141

6.8 本章常见错误 141

6.8.1 用scanf输入字符串不能接受空格 141

6.8.2 scanf格式控制用逗号问题 142

6.9 本章小结 142

6.10 跟我上机 142

第7章 分支结构程序设计 143

7.1 if语句的基本形式 144

7.1.1 if语句形式 144

7.1.2 if...else语句形式 147

7.1.3 else if语句形式 150

实例1 判断偶数 153

实例2 判断字母是否大写 154

7.2 if的嵌套形式 154

7.3 switch语句 157

7.3.1 switch语句的基本形式 157

7.3.2 多路开关模式的switch语句 160

实例3 使用switch语句输出分数段 160

实例4 使用多路开关模式编写日程安排程序 162

7.4 if else语句和switch语句的区别 163

7.5 选择结构程序应用 165

7.6 综合应用 167

7.6.1 检查字符类型 167

7.6.2 求学生的最低分和最高分 168

7.6.3 模拟自动售货机 168

7.7 本章常见错误 169

7.7.1 if else的匹配问题 169

7.7.2 注意case后不要跟变量 170

7.7.3 if判断表达式的比较问题 170

7.8 本章小结 170

7.9 跟我上机 171

第8章 循环结构程序设计 173

8.1 循环结构概述 174

8.2 while型循环 174

8.2.1 while语句的一般形式 174

8.2.2 while语句的空循环体 175

8.2.3 注意while循环语句常见错误 176

实例1 使用while语句求n! 177

实例2 使用while为用户提供菜单显示 177

8.3 do-while语句 179

8.4 for型循环语句 180

8.4.1 for循环语句的一般形式 181

8.4.2 灵活多变的for循环语句 184

8.4.3 应用for语句中的逗号 186

实例3 一元钱的兑换方案 187

实例4 特殊等式 188

8.5 比较三种循环 188

8.6 嵌套多个循环 189

8.7 转移语句 192

8.7.1 goto语句 193

8.7.2 break语句 195

8.7.3 continue语句 196

8.7.4 区别三种跳转语句 197

实例5 求解从键盘中输入字符的个数 197

实例6 平方和运算的问题 198

8.8 综合应用 199

8.8.1 求总数问题 199

8.8.2 灯塔数量 200

8.9 本章常见错误 201

8.9.1 在循环中注意清0 201

8.9.2 注意循环条件 201

8.10 本章小结 201

8.11 跟我上机 202

第2篇 提高篇 204

第9章 C语言数组的应用 204

9.1 数组概述 205

9.2 一维数组 205

9.2.1 定义一维数组 206

9.2.2 引用一维数组 206

9.2.3 初始化一维数组 207

实例1 使用数组保存学生资料 210

实例2 输出20个整数中最大的数值 211

9.3 二维数组 211

9.3.1 定义二维数组 211

9.3.2 二维数组的引用 212

9.3.3 初始化二维数组 213

9.3.4 二维数组应用 215

实例3 求二维数组各元素之和 216

实例4 使用二维数组保存数据 217

9.4 多维数组 218

9.5 字符数组 219

9.5.1 字符数组的定义 219

9.5.2 字符数组的引用 219

9.5.3 字符数组初始化 219

9.5.4 字符数组的结束标志 222

9.5.5 字符数组的输出 223

9.5.6 字符数组的输入 224

9.5.7 字符数组应用 225

实例5 计算字符串中有多少个单词 226

实例6 不使用strcpy()函数实现字符串复制功能 227

9.6 字符串处理函数 228

9.6.1 字符串复制 228

9.6.2 字符串连接 230

9.6.3 字符串比较 231

9.6.4 获得字符串长度 232

实例7 实现字符匹配 233

实例8 反转输出字符串 234

9.7 综合应用 235

9.7.1 逆序存放数据 235

9.7.2 相邻元素之和 235

9.8 本章常见错误 236

9.8.1 输出数组内容时后面出现乱码 236

9.8.2 sizeof(a)和sizeof(a+1) 236

9.9 本章小结 237

9.10 跟我上机 237

第10章 封装函数 239

10.1 函数概述 240

10.2 定义函数 240

10.2.1 函数定义形式 240

10.2.2 定义与声明 242

实例1 输出两个数中的最大值 243

实例2 判断素数 244

10.3 返回语句 245

10.3.1 终止一个函数 245

10.3.2 返回值 246

实例3 函数执行完毕自动返回 246

实例4 分数计算器程序 247

实例5 计算下面函数的值 249

实例6 返回值类型与return值类型 249

10.4 传递函数参数 250

10.4.1 形式参数与实际参数 250

10.4.2 数组做函数参数 252

10.4.3 main()函数传参 253

实例7 求学生的平均身高 254

实例8 数组作为函数参数 254

10.5 调用函数 255

10.5.1 函数调用方式 257

10.5.2 嵌套调用 260

10.5.3 递归调用 261

实例9 递归解决年龄问题 263

实例10 递归解决分鱼问题 264

10.6 内部函数和外部函数 265

10.6.1 内部函数 265

10.6.2 外部函数 266

实例11 内部函数的使用 266

实例12 外部函数的使用 267

10.7 综合应用 268

10.7.1 小数分离 268

10.7.2 固定格式输出当前时间 269

10.8 本章常见错误 269

10.8.1 函数定义时容易犯的错误 269

10.8.2 函数中返回的数组地址无效 270

10.8.3 声明函数时不要忘记加分号 270

10.9 本章小结 271

10.10 跟我上机 271

第11章 灵活应用指针 272

11.1 指针概述 273

11.1.1 地址与指针 273

11.1.2 保存变量的地址 274

11.1.3 使用指针变量 275

11.1.4 指针自加自减运算 279

实例1 使用指针实现整数排序 280

实例2 输出学生信息 281

11.2 使用指针引用数组元素 282

11.2.1 引用一维数组元素 282

11.2.2 引用二维数组元素 287

11.2.3 字符型指针的应用 290

实例3 使用指针输出数组元素 291

实例4 使用指针查找数列中最大值和最小值 292

11.3 指向指针的指针 292

11.4 指针在函数中的应用 294

11.4.1 指针做函数参数 294

11.4.2 指针做函数返回值 296

11.4.3 通过指针调用函数 297

实例5 求奇数之和 298

实例6 使用指针实现冒泡排序 299

11.5 指针数组做main()函数的参数 300

11.6 综合应用 302

11.6.1 用指针实现逆序存放数组元素 302

11.6.2 显示星期 303

11.7 本章常见错误 304

11.7.1 通过指针修改字符串出错 304

11.7.2 释放内存提示错误 304

11.7.3 释放空间以后,记得给指针赋空 304

11.8 本章小结 305

11.9 跟我上机 305

第12章 构造数据类型 307

12.1 结构体的定义和使用 308

12.1.1 结构体类型的概念 308

12.1.2 定义结构体变量 309

12.1.3 引用结构体成员 311

12.1.4 初始化结构体变量 312

实例1 输出商品信息 313

实例2 显示学生信息 314

12.2 结构体数组概述 315

12.2.1 定义结构体数组 316

12.2.2 初始化结构体数组 317

实例3 比较计数 318

实例4 找出最高分 319

12.3 包含结构的结构 320

12.4 共用体的应用 322

12.4.1 共用体的概念 322

12.4.2 引用共用体成员 322

12.4.3 初始化共用体变量 323

12.4.4 共用体类型的数据特点 324

实例5 共用体处理不同类型数据 325

实例6 取出整型数据的高字节数据 326

12.5 声明枚举类型 327

12.6 综合应用 328

12.6.1 候选人选票程序 328

12.6.2 使用共用体存放学生和老师信息 329

12.6.3 输出今天是星期几 330

12.7 本章常见错误 331

12.7.1 结构体字节对齐问题 331

12.7.2 用指针动态申请结构体内存时失败 332

12.7.3 忘记分号 332

12.8 本章小结 332

12.9 跟我上机 332

第13章 建立链表 334

13.1 结构体指针 335

13.1.1 指向结构体变量的指针 335

13.1.2 指向结构体数组的指针 338

13.1.3 结构体做函数参数 339

实例1 使用结构体变量作为函数参数 340

实例2 使用结构体指针作为函数参数 341

13.2 链表概述 342

13.3 链表的相关操作 344

13.3.1 创建链表 344

13.3.2 遍历链表 346

13.3.3 向链表中插入节点 347

13.3.4 从链表中删除节点 347

13.3.5 释放链表 349

实例3 创建链表并将数据输出 349

实例4 插入和删除学生信息 351

13.4 综合应用 354

13.4.1 查看学生成绩 354

13.4.2 修改日程安排 356

13.5 本章常见错误 358

13.5.1 头指针的保护 358

13.5.2 注意判断链表是否为空 358

13.6 本章小结 358

13.7 跟我上机 359

第14章 掌握位运算 361

14.1 位与字节的关系 362

14.2 位运算操作符 362

14.2.1 “与”运算符 363

14.2.2 “或”运算符 365

14.2.3 “取反”运算符 366

14.2.4 “异或”运算符 367

14.2.5 “左移”运算符 370

14.2.6 “右移”运算符 371

14.2.7 位运算复合赋值运算符 373

14.2.8 长度不同的数据进行位运算 373

实例1 使二进制数特定位翻转 373

实例2 将输入的数左移两位并输出 374

14.3 循环移位 375

14.4 位段概述 377

14.5 综合应用 380

14.5.1 取一个整数的后4位 380

14.5.2 整数与0异或 380

14.6 本章常见错误 381

14.6.1 区分&&和‖与&和| 381

14.6.2 注意位运算的数据类型 381

14.7 本章小结 381

14.8 跟我上机 382

第15章 内存管理 383

15.1 内存组织方式 384

15.1.1 内存组织方式 384

15.1.2 堆与栈 384

实例1 在堆中分配内存并释放 385

实例2 栈在函数调用时的操作 386

15.2 动态管理 387

15.2.1 malloc()函数 387

15.2.2 calloc()函数 388

15.2.3 realloc()函数 389

15.2.4 free()函数 390

实例3 使用malloc()函数分配内存 391

实例4 调用calloc()函数动态分配内存 391

15.3 内存丢失 392

15.4 变量的存储类别 393

15.4.1 动态存储与静态存储 393

15.4.2 定义auto变量 394

15.4.3 static静态变量 395

15.4.4 设为register变量 396

15.4.5 使用extem变量 396

实例5 auto变量的应用 396

实例6 使用static变量 397

实例7 计算1~5的阶层值 398

实例8 定义extem变量 398

15.5 综合应用 399

15.5.1 商品信息动态存放 399

15.5.2 为二维数组动态分配内存 400

15.6 本章常见错误 401

15.6.1 分配了一块内存空间,但没有初始化 401

15.6.2 释放内存空间后继续引用其内容 401

15.6.3 没有保存内存地址,造成此内存不可用 401

15.6.4 指针无法访问register变量 402

15.7 本章小结 402

15.8 跟我上机 402

第16章 编译预处理 404

16.1 宏定义 405

16.1.1 不带参数的宏定义 405

16.1.2 带参数的宏定义 407

实例1 不带参数的宏定义求平行四边形面积 408

实例2 使用宏定义实现数组值的互换 409

16.2 ≠include指令 410

16.3 条件编译 411

16.3.1 #if命令 411

16.3.2 #ifdef及#ifndef命令 414

16.3.3 #undef命令 415

16.3.4 #line命令 416

16.3.5 #pragma命令 416

实例3 使用条件编译隐藏密码 417

实例4 防止头文件重复包含 418

16.4 综合应用 418

16.4.1 编写头文件包含圆面积的计算公式 418

16.4.2 利用宏定义求偶数的和 419

16.5 本章常见错误 419

16.5.1 带参数的宏最好加括号 419

16.5.2 使用宏时注意事项 420

16.5.3 文件包含的嵌套 420

16.6 本章小结 420

16.7 跟我上机 421

第17章 使用文件处理数据 422

17.1 文件概述 423

17.2 文件基本操作 424

17.2.1 文件指针的概念 424

17.2.2 文件的打开 425

17.2.3 文件的关闭 427

实例1 打开文件 427

实例2 关闭文件 428

17.3 读写文件 429

17.3.1 写字符函数fputc() 429

17.3.2 读字符函数fgetc() 430

17.3.3 写字符串函数fputs() 431

17.3.4 读字符串函数fgets() 433

17.3.5 格式化写入函数fprintf() 434

17.3.6 格式化读取函数fscanf() 436

17.3.7 数据块读写函数fread()和fwrite() 438

实例3 关闭打开的所有文件 441

实例4 同时显示两个文件的内容 442

17.4 定位文件中的位置 443

17.4.1 随机读写操作 444

17.4.2 返回位置指针 444

17.4.3 得到文件当前位置 445

实例5 从字符串的指定位置输出 445

实例6 rewind()函数应用 446

实例7 求字符串的长度 448

实例8 复制文件内容 449

17.5 综合应用 450

17.5.1 创建文件 450

17.5.2 创建临时文件 451

17.6 本章常见错误 451

17.6.1 以a或a+的方式打开文件,指针却不在文件末尾 451

17.6.2 忘记调回指针,读不到内容 452

17.6.3 绝对路径要用双斜线\\ 452

17.7 本章小结 452

17.8 跟我上机 452

第18章 制作图形图像 454

18.1 制作文本窗口 455

18.1.1 定义文本窗口 455

18.1.2 设置窗口颜色 455

18.1.3 文本的输入和输出 456

18.1.4 掌握屏幕操作函数 457

实例1 输出hello world 458

实例2 以阶梯状输出文本,要求绿底黄字 459

实例3 movetext()函数应用 460

18.2 显示图形 461

18.2.1 初始化图形模式 461

18.2.2 设置屏幕颜色 464

18.2.3 基本图形函数 465

18.2.4 填充封闭图形 474

实例4 绘制圆 475

实例5 黄色网格填充的椭圆 476

18.3 图形屏幕的操作 476

18.4 图形模式下输出文本 479

18.4.1 文本输出函数 479

18.4.2 设置文本属性 480

实例6 输出字符串“welcome to our school” 481

实例7 按指定格式在指定位置输出字符串 481

18.5 综合应用 482

18.5.1 填充八边形 482

18.5.2 以不同的字体输出当前时间 483

18.6 本章常见错误 484

18.6.1 头文件和返回值 484

18.6.2 图形模式的初始化 484

18.7 本章小结 484

18.8 跟我上机 484

第3篇 实战篇 488

第19章 C语言游戏开发 488

19.1 推箱子游戏 489

19.1.1 概述 489

19.1.2 设计思路 489

19.1.3 技术要点 489

19.1.4 实现过程 490

19.2 贪吃蛇游戏 499

19.2.1 概述 499

19.2.2 设计思路 500

19.2.3 技术要点 500

19.2.4 实现过程 503

19.3 俄罗斯方块游戏 508

19.3.1 概述 508

19.3.2 设计思路 509

19.3.3 技术要点 510

19.3.4 实现过程 510

19.4 本章小结 518

第20章 图书管理系统 519

20.1 概述 520

20.1.1 需求分析 520

20.1.2 开发工具选择 520

20.2 系统设计 520

20.2.1 系统目标 520

20.2.2 系统功能结构 521

20.2.3 系统预览 521

20.2.4 开发及运行环境 522

20.3 数据库设计 522

20.3.1 安装MySQL数据库 523

20.3.2 启动MySQL数据库 526

20.3.3 创建数据库 527

20.3.4 数据表结构 528

20.4 C语言开发数据库程序的流程 528

20.5 C语言操作MySQL数据库 530

20.5.1 MySQL常用数据库操作函数 530

20.5.2 连接MySQL数据 532

20.5.3 查询图书表记录 533

20.5.4 插入图书表记录 535

20.5.5 修改图书表记录 536

20.5.6 删除图书表记录 538

20.6 文件引用 538

20.7 变量和函数定义 539

20.8 主要功能模块设计 540

20.8.1 显示主菜单信息 540

20.8.2 显示所有图书信息 541

20.8.3 添加图书信息 544

20.8.4 修改图书信息 549

20.8.5 删除图书信息 554

20.8.6 查询图书信息 558

20.9 本章小结 560