欢迎来到中国铁道出版社有限公司官网!
$itImage.title$
$itImage.title$

C语言程序设计立体化教程

书      号:9787113262822

丛  书 名:国家软件与集成电路公共服务平台信息技术紧缺人才培养工程指定教材

作      者:黑马程序员

译      者:

开      本:16开

装      帧:平装

正文语种:中文

出  版 社:中国铁道出版社有限公司

定      价:56

  • 内容简介

    本书对 C 语言知识体系进行了系统规划,对每个知识点进行了深入分析,并精心设计了相关案例。
    全书共分 12 章,第 1 章讲解了 C 语言整体概况、C 语言开发环境与 C 程序编译过程;第 2~3 章讲解了
    C 语言基础知识,包括关键字、标识符、常量、变量、数据类型、类型转换、数据溢出、C 语言编码风格、
    C 语言常用运算符及表达式等;第 4~11 章讲解了 C 语言的核心知识,包括结构化程序设计、内存与指
    针、数组、函数、字符串、结构体、预处理、文件操作等;第 12 章讲解了一个综合项目——俄罗斯方
    块,让读者对前面所学知识融会贯通,并了解实际项目开发流程。
    本书附有配套视频、源代码、题库、教学课件等资源,为帮助初学者更好地学习本书中的内容,
    还提供了在线答疑,希望得到更多读者的关注。
    本书适合作为高等院校计算机相关专业 C 语言程序设计课程教材,也可作为 C 语言技术基础培训
    教材,以及广大计算机编程爱好者的参考用书。
  • 前言

    作为一门广泛流行的编程语言,C语言因其简洁、高效、灵活、可移植性高等特点一直被
    广泛应用于多个开发领域。在所有编程语言中,C语言是zui接近底层的高级语言,可以直接操
    作系统硬件,其执行速度仅次于汇编语言;C语言既适合开发系统程序,又适合开发应用程序,
    且易于入门,因此,很多学校将C语言作为计算机编程课程的入门语言。
    为什么要学习本书
    作为一种技术的入门教程,zui重要也zui难的一件事情就是要将一些非常复杂、难以理解的
    思想和问题简单化,让初学者能够轻松理解并快速掌握。作为C语言的入门教材,本书对C语言
    知识体系进行了系统罗列与规划,对每个知识点都进行了深入分析,并精心设计了相关案例。
    真正做到了由浅入深、由易到难。
    相比于市面上的同类教材,本书具有以下亮点:
    (1)C语言知识体系涵盖内容更广泛,对每个知识点的讲解更加丰富翔实。例如,对于数
    组越界知识点,大多教材只讲解数组不能越界,但本书更深入一步,从数组内存角度分析数组
    不能越界的原理,不仅让读者学习知识,更让其理解每个知识点后面深层次的系统知识。
    (2)案例丰富。本书为每个知识点都配备了案例,这样既可提高学生的动手能力,又巩固
    了所学知识。
    (3)选择Visual Studio 2019作为开发工具,让读者接触新的开发环境,时刻紧跟技术前沿。
    (4)通过提供多种教学资源,zui大限度地满足教师教学需要和学生学习需要。从内容上来
    说,本书附有教学大纲、教学设计、教学PPT、微课视频、实验案例、测试等内容,其目的是
    zui大限度地满足教师教学需要和学生学习需要。
    如何使用本书
    本书共分12章,下面分别对每个章节进行简要介绍,具体如下:
    ◎ 第1章讲解了C语言的起源、标准、应用领域、特点、Visual Studio 2019开发环境的搭建
    及C程序编译过程。通过本章的学习,读者可掌握Visual Studio 2019的安装与使用、理解C程序
    的编译原理。
    ◎ 第2~3章讲解了C语言的基础知识,包括关键字、标识符、常量、变量、修饰变量的关
    键字、数据类型、数据类型转换、数据溢出、格式化输入/输出函数、C程序编码风格、C语言
    常用的运算符及表达式等。只有掌握这些基础知识,才能更好地学习后面的核心内容。
    ◎ 第4~11章讲解了C语言中zui核心的内容,主要包括指针、数组、函数、字符串、结构
    体、预处理、文件等。读者需要花大量的精力理解所讲解的内容。只有熟练掌握这些知识,才
    文前.indd 1
    2019-12-5 17:38:46

    II
    C 语言程序设计立体化教程
    算真正地学好C语言。
    ◎ 第12章讲解了俄罗斯方块项目,主要包括项目分析、项目设计、项目实现、项目心得
    等。通过本章的学习,初学者可以了解C语言项目的开发流程。
    如果读者在理解知识点的过程中遇到困难,建议不要纠结于某个地方,可以先往后学习,
    前面的知识或可豁然开朗。如果读者在动手练习的过程中遇到问题,建议多思考,理清思路,
    认真分析问题发生的原因,并在问题解决后多总结。
    致谢
    本书的编写和整理工作由传智播客教育科技有限公司完成,主要参与人员有高美云、薛蒙蒙、
    李卓等。全体人员在近一年的编写过程中付出了很多辛勤的汗水,在此一并表示衷心的
    感谢。
    意见反馈
    尽管我们付出了zui大的努力,但书中仍难免会有疏漏与不妥之处,欢迎各界专家和读者朋
    友提出宝贵意见,我们将不胜感激。在阅读本书时,如果发现任何问题或有不认同之处可以通
    过电子邮件与我们取得联系。
    请发送电子邮件至:itcast_book@vip.sina.com。
    黑马程序员
    2019年8月
    文前.indd 2
    2019-12-5 17:38:46

  • 目录

    第 1 章 C 语言概述 1
    1.1 认识 C 语言 1
    1.1.1 C 语言的起源 1
    1.1.2 C 语言标准 2
    1.2 C 语言应用领域 2
    1.3 C 语言的特点 4
    1.4 C 语言开发环境搭建 5
    1.5 使用 Visual Studio 编写 C 程序 8
    1.5.1 第一个 C 语言程序 8
    1.5.2 C 程序编译过程 11
    小结 13
    习题 13
    第 2 章 C 语言数据类型 15
    2.1 C 语言基础概念 15
    2.1.1 关键字 15
    2.1.2 标识符 18
    2.1.3 常量 19
    2.1.4 变量 21
    2.1.5 不同的关键字修饰变量 21
    2.2 数据类型 23
    2.2.1 基本类型 23
    2.2.2 数据溢出 27
    2.2.3 指针类型 29
    2.2.4 构造类型 29
    2.3 数据类型转换 33
    2.3.1 隐式类型转换 33
    2.3.2 显式类型转换 33
    2.4 格式化输入 / 输出 35
    2.4.1 printf() 函数 35
    2.4.2 scanf() 函数 38





    2.5 C 语言编程风格 39
    2.5.1 程序格式 39
    2.5.2 程序注释 42
    2.5.3 命名规则 43
    小结 43
    习题 44
    第 3 章 运算符与表达式45
    3.1 运算符与表达式的概念 45
    3.2 赋值运算符与赋值表达式 46
    3.3 算术运算符与算术表达式 47
    3.4 关系运算符与关系表达式 49
    3.5 逻辑运算符与逻辑表达式 50
    3.6 条件运算符与条件表达式 51
    3.7 位运算符 51
    3.8 sizeof 运算符 54
    3.9 运算优先级 54
    小结 56
    习题 56
    第 4 章 结构化程序设计58
    4.1 程序流程图 58
    4.2 顺序结构 60
    4.3 选择结构 61
    4.3.1 if 条件语句 61
    4.3.2 switch 条件语句 66
    4.4 循环结构 69
    4.4.1 while 循环 70
    4.4.2 do...while 循环 71
    4.4.3 for 循环 73
    4.4.4 循环嵌套 75
    4.5 跳转语句 76
    4.5.1 break 77
    4.5.2 continue 78
    4.5.3 goto 79
    小结 79
    习题 79

    目 录 III
    第 5 章 指针82
    5.1 认识计算机内存 82
    5.2 认识指针 84
    5.2.1 指针的概念 84
    5.2.2 指针变量的类型及大小 85
    5.3 指针的运算 86
    5.3.1 取地址运算 86
    5.3.2 指针间接访问 88
    5.3.3 指针算术运算 88
    5.4 特殊类型指针 90
    5.4.1 空指针 90
    5.4.2 野指针 91
    5.4.3 void* 指针 91
    5.5 内存操作函数 92
    5.5.1 堆内存申请函数 92
    5.5.2 堆内存释放 93
    5.5.3 其他内存操作函数 93
    5.6 指针与 const 修饰符 94
    5.6.1 常量指针 94
    5.6.2 指针常量 94
    5.6.3 常量的常指针 95
    5.7 二级指针 95
    小结 98
    习题 98
    第6章 数组 100
    6.1 一维数组的定义与初始化 100
    6.2 数组三要素 102
    6.2.1 数组索引 102
    6.2.2 数组类型 102
    6.2.3 数组大小 103
    6.3 数组内存分析 104
    6.3.1 数组的起始地址 104
    6.3.2 数组的步长 105
    6.3.3 数组边界 106
    6.4 数组遍历 108
    6.5 数组排序 109






    6.5.1 冒泡排序 109
    6.5.2 选择排序 112
    6.5.3 插入排序 114
    6.6 二维数组 117
    6.6.1 二维数组定义与初始化 118
    6.6.2 二维数组元素访问 120
    6.7 二维数组内存分析 121
    6.8 变长数组与动态数组 124
    6.8.1 变长数组 124
    6.8.2 动态数组 125
    6.9 数组和指针 128
    6.9.1 数组名和指针 128
    6.9.2 数组指针 129
    6.9.3 指针数组 132
    小结 135
    习题 135
    第 7 章 函数 137
    7.1 函数的概念 137
    7.2 函数的定义 138
    7.3 函数三要素 141
    7.3.1 函数名 141
    7.3.2 参数列表 141
    7.3.3 返回值类型 143
    7.4 函数调用 145
    7.4.1 函数调用过程 145
    7.4.2 函数调用方式 146
    7.5 函数的参数传递 148
    7.5.1 值传递 148
    7.5.2 址传递 149
    7.5.3 const 修饰参数 150
    7.5.4 可变参数函数 152
    7.6 递归函数 155
    7.6.1 递归函数的概念 155
    7.6.2 递归函数的应用 157
    7.7 内联函数 159
    7.8 变量作用域 161

    目 录 V
    7.8.1 局部变量 161
    7.8.2 全局变量 162
    7.9 多文件之间变量引用与函数调用 162
    7.9.1 多文件之间的变量引用 162
    7.9.2 多文件之间的函数调用 164
    7.10 函数与指针 167
    7.10.1 函数指针 167
    7.10.2 回调函数 168
    7.10.3 指针函数 169
    7.11 C 语言常用的标准库 171
    7.11.1 stdio.h 171
    7.11.2 stdlib.h 172
    7.11.3 stddef.h 172
    7.11.4 string.h 173
    7.11.5 math.h 173
    7.11.6 time.h 173
    7.11.7 ctype.h 173
    小结 174
    习题 174
    第 8 章 字符串 176
    8.1 字符数组与字符串 176
    8.1.1 字符数组 176
    8.1.2 字符串 177
    8.1.3 字符串与指针 178
    8.2 字符串的输入 / 输出 181
    8.2.1 gets() 函数 181
    8.2.2 puts() 函数 182
    8.3 标准库字符串操作函数 183
    8.3.1 字符串长度计算函数 183
    8.3.2 字符串比较函数 184
    8.3.3 字符串连接函数 185
    8.3.4 字符串查找函数 186
    8.3.5 字符串复制函数 187
    8.4 自定义字符串处理函数 189
    8.4.1 自定义函数计算字符串长度 189
    8.4.2 自定义函数比较字符串 190
    8.4.3 自定义函数连接字符串 191





    8.4.4 自定义字符串查找函数 193
    小结 194
    习题 194
    第 9 章 结构体197
    9.1 结构体类型的定义 197
    9.2 结构体变量的定义与初始化 198
    9.2.1 结构体变量的定义 199
    9.2.2 结构体变量的初始化 200
    9.2.3 结构体变量的存储方式 201
    9.3 结构体变量的成员访问 203
    9.3.1 直接访问结构体变量的成员 203
    9.3.2 通过指针访问结构体变量的成员 204
    9.4 结构体嵌套 205
    9.4.1 访问嵌套结构体变量成员 206
    9.4.2 嵌套结构体的内存管理 207
    9.5 结构体数组 209
    9.5.1 结构体数组的定义与初始化 209
    9.5.2 结构体数组的访问 211
    9.6 将结构体作为函数参数 212
    9.6.1 结构体变量作为函数参数 212
    9.6.2 结构体数组作为函数参数 213
    9.6.3 结构体指针作为函数参数 215
    9.7 typedef——给数据类型取别名 216
    小结 217
    习题 217
    第 10 章 预处理 220
    10.1 宏定义 220
    10.1.1 不带参数的宏定义 220
    10.1.2 带参数的宏定义 222
    10.1.3 取消宏定义 225
    10.2 条件编译 226
    10.2.1 #if...#else...#endif 226
    10.2.2 #ifdef 227
    10.2.3 #ifndef 228
    10.3 文件包含 232
    10.4 断言 233

    目 录 VII
    10.4.1 断言的作用 234
    10.4.2 断言与 debug 235
    10.5 #pragma 236
    小结 238
    习题 238
    第 11 章 文件操作 240
    11.1 文件概述 240
    11.1.1 计算机中的流 240
    11.1.2 文件的概念 241
    11.1.3 文件的分类 242
    11.1.4 文件指针 243
    11.1.5 文件位置指针 244
    11.2 文件的相关操作 245
    11.2.1 文件打开与关闭 245
    11.2.2 文件写入 247
    11.2.3 文件读取 252
    11.2.4 文件随机访问 257
    11.2.5 文件重命名与文件删除 259
    11.3 文件检测函数 261
    11.3.1 perror() 函数 261
    11.3.2 ferror() 函数 262
    11.3.3 feof() 函数 263
    11.3.4 clearerr() 函数 264
    11.4 缓冲区函数 266
    11.4.1 fflush() 函数 266
    11.4.2 setbuf() 函数 266
    11.4.3 setvbuf() 函数 267
    小结 268
    习题 268
    第 12 章 综合项目——俄罗斯方块�������������������������������������� 271
    12.1 项目分析 271
    12.1.1 项目需求分析 271
    12.1.2 项目设计 275
    12.2 项目实现 279
    12.2.1 窗口构建模块的实现 279
    12.2.2 俄罗斯方块生成模块的实现 283





    12.2.3 游戏规则制定模块的实现 287
    12.2.4 分数保存查看模块的实现 295
    12.2.5 main() 函数实现 296
    12.3 效果显示 297
    12.4 程序调试 301
    12.4.1 设置断点 301
    12.4.2 单步调试 303
    12.4.3 观察变量 305
    12.4.4 项目调试 307
    12.5 项目心得 308
    小结 309
    附录 A ASCII 码表��������������������������������������������������� 310 附录 B stdio�h 标准库常用函数���������������������������������������� 312 附录 C stdlib�h 标准库常用函数 ��������������������������������������� 315 附录 D string�h 标准库常用函数��������������������������������������� 317 附录 E math�h 标准库常用函数 ��������������������������������������� 319 附录 F time�h 标准库常用函数 ���������������������������������������� 321 附录 G ctype�h 标准库常用函数 ������������������������������������
  • 作者介绍

    :“黑马程序员”是传智播客旗下高端IT教育品牌,传智播客是一家专门致力于高素质软件开发人才培养的高科技公司,传智播客致力于为企业优选一流的人才的培训理念,经过多年的教学探索及战略布局,已向着综合型职业教育集团发展。
  • 编辑推荐

    本书通过提供多种教学资源,zui大限度地满足教师教学需要和学生学习需要。从内容上来说,本书附有教学大纲、教学设计、教学PPT、微课视频、实验案例、测试等内容,其目的是zui大限度地满足教师教学需要和学生学习需要。
  • 书评书荐

  • 附件下载

图书推荐