描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787522109022
☆追溯C语言的发展历史,了解常用编译软件、常量和变量、关键字、数据类型、基本语句、宏定义、枚举变量和函数等基础知识。
☆实用案例针对性讲解,带你走进C语言的核心知识,加强对指针、数组、预处理、结构体、链表、套接字、数据库等的实际应用。
☆层层深入,带你创编C语言项目,教你如何通过C语言程序实现不同功能。
☆深入浅出,语言简练易懂,内容丰富翔实,读来轻松有趣。
☆版块多样,案例生动、源码丰富。
随着互联网科技的发展,编程越来越重要。本书是一本关于 C 语言基础知识和程序设计开发的图书,本书以 C 语言案例导入为背景,对 C 语言的编译软件、关键字、数据常量和变量、运算符、基本语句、函数等基础知识进行初步讲解,着重分析数组、指针、结构体、预处理等在实际编程中的具体应用,为读者提供了编写 C 语言自定义函数的经验与方法,并以实战项目的应用培养读者程序设计的思维和独立掌握完整项目的能力。本书结构完整、内容全面、语言精简、强调实战,适合编程初学者、编程爱好者、程序开发人员、程序测试人员以及其他互联网从业人员使用。通过阅读,相信你一定可以提升 C语言编程能力,丰富编程思维,有所收获。
基础篇 了解C语言的魅力
第1章 走进职场实战:了解 C语言
1.1 编程语言
1.1.1 机器语言
1.1.2 汇编语言
1.1.3 高级语言
1.2 C语言的基本情况
1.2.1 C语言大事记
1.2.2 不要再搞混 “C”家族语言,它们各不相同
1.2.3 C语言在实际运用中的优势
1.2.4 C语言的书写 “特立独行”
1.3 搭建 C语言的开发环境
1.3.1 安装 VisualStudioCode
1.3.2 安装 VSCode小插件
1.3.3 修改环境变量,让 C语言 “畅行无阻”
1.4 编写个 C语言程序———HelloWorld.c
第2章 走近 “数据元素”,了解数据类型与运算符
2.1 关键字
2.1.1 案例导入———会员卡次数计算
2.1.2 关键字在案例中的运用
2.2 数据类型
2.2.1 基本类型
2.2.2 结构类型
2.2.3 指针类型
2.2.4 空类型
2.3 常量与变量
2.3.1 案例导入——素数计算
2.3.2 变量在素数计算时的用法
2.4 数据的输入与输出
2.4.1 案例导入——大小写转换
2.4.2 输入/输出函数的应用
2.5 运算符
2.5.1 运算符的种类
2.5.2 运算符的优先级
2.6 为重构和调用做准备——代码注释
2.7 没有规矩,不成方圆——编码也要注意规范
2.7.1 编码的常见错误
2.7.2 编码规范的注意事项
第3章 走向基本语句,为变量增加关联
3.1 循环语句
3.1.1 案例导入——数学计算
3.1.2 数学计算中如何使用 while循环
3.1.3 while循环语句
3.1.4 do-while循环语句
3.1.5 while语句和do-while语句的区别
3.1.6 for语句
3.2 判断语句
3.2.1 案例导入——排序问题
3.2.2 排序问题中if判断的应用
3.2.3 if语句
3.2.4 ifelse语句
3.2.5 if???elseif???else语句
3.2.6 switch???case语句
3.2.7 if???elseif???else语句和switch???case语句的区别
3.3 将关系转移的方式、
3.3.1 goto语句与if伴生,遇真就失效
3.3.2 continue语句
3.3.3 break语句
第4章 巧用宏和枚举实现自由赋值
4.1 宏
4.1.1 案例导入——宏定义
4.1.2 宏对象在函数中的应用
4.1.3 宏对象在函数中的意义
4.1.4 使用宏创建一个缺项
4.1.5 宏保护变量
4.1.6 定义宏时的 “坑”
4.2 枚举变量
4.2.1 案例导入——拨钟问题
4.2.2 枚举在拨钟问题中的应用
4.3 枚举变量的基本操作
4.3.1 声明一个枚举变量
4.3.2 给一个枚举变量进行赋值
4.3.3 调用枚举变量中的数值
第5章 巧用函数整合零散语句,使语句更加模块化
5.1 函数
5.1.1 案例导入——利用递归求阶乘
5.1.2 递归函数在求阶乘的案例中的应用
5.1.3 如何增加函数被调用的概率
5.2 函数与零散语句相辅相成
5.2.1 函数的构成
5.2.2 函数的定义
5.2.3 函数的功能
5.2.4 函数的分类
5.2.5 函数的调用
5.3 函数的形参与实参
5.3.1 函数里不能缺的元素——形参
5.3.2 函数执行结果的 “掌舵人”——实参
5.3.3 有哪些方法传入实参
拓展篇 掌握C语言的核心知识
第6章 巧用预处理,让并行变成可能
6.1 用好预处理,并发能力将大大提高
6.1.1 提高程序并发能力——文件包含
6.1.2 文件包含命令的应用
6.2 低调而隐性的预处理
6.2.1 案例导入——改写字符
6.2.2 条件编译
6.2.3 宏定义
6.2.4 预处理的优点
6.2.5 预处理命令使用注意事项
第7章 巧用函数库,实现代码 “变薄”
7.1 函数库增强复用性,减少重复代码
7.1.1 案例导入——引用函数库
7.1.2 函数库的应用
7.2 写好头文件,弊病远离你
7.2.1 程序桥梁——头文件
7.2.2 头文件的应用
7.2.3 头文件的编写
7.2.4 头文件的注意事项
7.3 重构代码,让功能更直观
第8章 巧用数组技巧,让程序变得饱满
8.1 数组令人惊叹的承载能力
8.1.1 案例导入——求和计算
8.1.2 数组的应用
8.2 一维数组行天下,精简的数组类型
8.2.1 一维数组精简
8.2.2 一维数组的初始化
8.2.3 一维数组的天然优势
8.3 二维数组增承载,适合复杂数据使用
8.3.1 案例导入——矩阵相加
8.3.2 二维数组承载多个数据
8.3.3 二维数组的初始化
8.3.4 二维数组——矩阵运算中的高手
8.4 字符串的 “进化型”,字符串之库——字符数组
8.4.1 案例导入——字符的判断
8.4.2 字符数组——字符串的救星
8.4.3 别再弄混字符数组和字符串
8.5 一秒学会使用字符数组
8.6 索引越界常见,索引细则很关键
第9章 C语言的特色——指针操作技巧
9.1 数据有 “上”又有 “下”,交流全靠它
9.1.1 案例导入——指针
9.1.2 指针变量——另类的 “数据”传递
9.2 指针的移动规则
9.2.1 指针的 “前后移动”
9.2.2 指针的关系运算规则
9.2.3 指针的赋值规则
9.3 指针能解决的实际问题
9.3.1 指针——有参函数的 “王炸”
9.3.2 指针——一维数组的 “王者”
9.3.3 指针——字符串隐藏的 “奇兵”
9.3.4 指针——指向函数不常见
第10章 让数据产生关联性——链表操作技巧
10.1 让数据产生关联,链表有序生成
10.2 链表的S型形态
10.2.1 内存管理函数——为链表 “量身定制”
10.2.2 定义功能函数——让链表使用简单化
10.2.3 链表和数组的比较
第11章 让变量存储更自由——结构体与联合体
11.1 跨类型存储新宠——结构体
11.1.1 结构体——整合不同数据类型
11.1.2 使用超方便的结构体变量
11.2 如何操作一个结构体
11.3 内存不够就找联合体解决
11.4 谈谈联合体的 “克星”
第12章 巧用代码解决文件读写需求
12.1 如何定义 C语言中的文件
12.2 文件读取状态怎么获取
12.3 文件的读写操作——fopen()
12.4 将文件关闭的操作——fclose()
12.5 文件读写函数——fgetc()和fputc()
12.6 成块读写文件——fread()和fwrite()
12.7 其他能操作文件的函数
第13章 项目前瞻1——网络基础知识
13.1 网络通信包含哪些内容
13.2 将网络按连接范围进行分类
13.3 常用服务占用的端口号
13.4 常用套接字
13.5 TCP和 UDP协议
13.6 C语言代码是如何接入互联网的
第14章 项目前瞻2——数据库基础知识
14.1 大数据时代的数据库
14.1.1 数据库的变迁
14.1.2 数据库的两大类别
14.1.3 大数据时代数据库的应用
14.2 mysql数据库
14.3 redis数据库
14.4 C语言和数据库如何实现互联互通
实战篇 挑战C语言项目
第15章 C语言函数专场
15.1 项目1——函数小剧场
15.2 项目2——指针的妙用
第16章 C语言赋予软件功能与生命力
16.1 项目1——工资管理系统
16.2 项目2——电影票订票管理系统
参考文献
互联网时代,网络、数据、应用软件构成了它的主旋律。应用软件编写、网页设计、数据库开发等,都离不开IT人员的开发与维护,编程的重要性 不 言 而 喻,因 此 程 序 员、软 件 工 程 师 更 是 成 为 互 联 网 时 代 的“宠儿”。
现在,越来越多的人想要从事IT 行业,潮流不可阻挡。我们怎样才能从事这个行业?都需要我们做哪些准备? 答案就在这本书中。
无论是编程初学者还是有编程基础的人员,相信在程序开发问题上都存在着这样或那样的困惑:
编程语言有多种类型,为何初学者都倾向选择 C语言?
C语言和其他语言本质上是否有区别,它的特色是什么?
C语言在这个多种开发语言并存的时代是否已经过时?
C语言凭借什么从众多高级语言中杀出重围,独占鳌头?
学会 C语言是否就能轻松掌握其他高级语言?
本书拨开迷雾,直指本质,用简单明确的语句告诉你什么是 C 语言、C语言的特点以及应用范围,帮助你在编程道路上越走越远,实现编程梦想。
本书由三大部分组成,由易到难、由浅入深地系统介绍了 C语言这个编程王国。
基础篇,了解 C语言的魅力,追溯 C语言的发展历史,了解常用编译软件、常量和变量、关键字、数据类型、基本语句、宏定义、枚举变量和函数等基础知识,包括 C语言书写规范和命名规则等内容;认识一个完整C语言程序所具有的成分,从结构上理解 C语言的组成部分。
拓展篇,带你走进 C语言的核心知识,如指针、数组的使用,预处理的巧妙应用,结构体、链表的应用以及有关文件、套接字、数据库的基础知识,通过一些案例针对性地进行讲解,和你一起探讨 C 语言的升级内容,加强 C语言核心知识的应用。
实战篇,探寻 C语言究竟如何为我们的生活提供便利,如何利用 C语言编写项目;计算器如何制作,它的各种功能如何通过 C 语言程序来实现;票务系统如何搭建和完善,订票、查询等功能又是如何借助 C语言来运行的。不同项目中,函数、结构体、指针是如何发挥作用的……在项目的实战中体会、探索与感受 C语言的魅力,培养和提高独立编程能力。
另外,本书创造性地设计了5个版块,帮你快速走入 C 语言进阶通道。“技巧集锦”助你快速掌握核心知识点,有效记忆章节重点;“新手误区”帮你避开 “雷区”,减少错误发生概率;“技能升级”帮你了解相关知识,拓展思维,进一步提高编程技能; “实力检测”助你测试掌握水平,有效增强编程实力;“剑指offer初级挑战”助你打通职场赛道,快速拿到offer。这些版块内容的设计,层层递进,加深知识点记忆,并在提高编程技能的同时引发思考。
全书结构清晰,内容丰富,语言通俗易懂,启发性强。全书以入门到实操的逻辑线索,按照 C 语言基础知识、进阶知识和项目实际应用的顺序,对 C语言程序中出现的知识点进行详细讲解,逻辑严谨,层次分明。通过阅读本书,相信你一定可以掌握 C语言基础知识,提升编程技能,并有所收获。
本书在编撰过程中,参考了不少学者、有识之士的观点与相关资料,在此深表感谢! 同时,欢迎读者和我们一起探讨 C 语言,提出意见和建议,以交流和不断 完 善 本 书,让 我 们 一 起 在 探 索 C 语 言 的 道 路 上 砥 砺前行!
第1章
走进职场实战:了解C语言
随着互联网技术逐渐走进日常生活,编程能力开始被视作一种新读写能力,受到越来越多人的关注。C语言作为计算机高级语言的鼻祖和底层功能的实现者,起着 “承前启后”的作用,十分重要。
现阶段,国内外互联网公司对操作系统和各类软件程序开发的需求日益提高,了解并能熟练使用 C语言逐渐成为对程序员进行水平测试的评判标准。
C语言作为开发操作系统的语言,在未来的一段时间里热度还会进一步上升。接下来就与我们一起走近 C语言,了解 C语言的特点,学习C语言的知识,掌握 C语言的运用。
1.1 编程语言
在现在这个信息大爆炸的时代,相信编程这个名词很多人都听说过,但是你真的了解什么是编程吗?
举例来说,如果你去国外旅游,但是你又不懂当地的语言,只能找个翻译来当你的向导。其实,编程所做的事情跟翻译类似,只不过它所连接的两端是开发人员和计算机设备,当开发人员编写好代码以后,编程语言就会把代码转化成设备所能明白的0和1的电信号,这就是编程。
1946年,台计算机出现,随后各种编程语言应运而生 (图1-1)。
图1-1 编程语言的关系
1.1.1 机器语言
机器语言,机器可以直接识别,并不需要经过人工的再次翻译。机器语言的操作码仅须识别计算机内部电路的开和闭信号,即可读取到设定好的指令信息。
由于机器语言使用了地址与操作码相结合的信息传递方式,因此每个计算机都有自己的指令系统。从用户使用的角度来说,机器语言在编程语言当中属于级别的一类语言,其可移植性和通用性较差,因此较少使用它。 1.1.2 汇编语言
汇编语言,是由电子计算机、微型处理器、微型控制器以及其他一些可以编程的内容共同组成的一类低级语言。
汇编语言可以通过汇编过程转换成机器指令来实现 “交流”。由于每种汇编语言所对应的机器语言指令集不同,因此常会导致无法在不同平台间实现直接移植代码的操作。
汇编语言更加适合对速度要求较高且代码长度有限的程序,或者是那种直接读取并控制硬件系统的程序。而高级语言更加注重难易程度以及人机理解的平衡点。
1.1.3 高级语言
高级语言并不单独指代某一种语言,而是具有相同特征的一类语言的总称,C、C 、C#、Java等都属于高级语言。
1.2 C语言的基本情况
1.2.1 C语言大事记
C语言是怎样一步步演化为我们今天熟知的形式的呢? 相信很多人都对此充满好奇。接下来我们一起走进 C语言,了解它的成长历程 (图1-2)。
1.C语言的出现
C语言的出现早可以追溯到 1972 年,当时,贝尔实验室的 C 语言之父丹尼斯·里奇为了用更简便的方式开发 Unix系统,在 B语言的基础上编写出 C语言,同时将 C语言应用到 Unix系统的迭代当中。
2.C语言的问世
虽然早在1972年丹尼斯·里奇就创造了 C语言,但是 C语言一直只是在贝尔实验室内使用。
图1-2 C语言的发展历史
C语言次正式出现在大家的视野是通过1978年出版的 《TheCProgrammingLanguage》一书。
3.C语言的首个标准性文件
个 C语言的通用标准,于1989年正式出炉,1990年初被正式认定为 C语言的标准型文件,被称为 C89或 C90标准。
正是由于 C语言的通用标准的出现,才使得 C 语言得到普遍应用,成为各种高级语言的基础。
4.C语言经历的两次迭代
1999年,美国国家标准协会对 C 语言的标准进行了次大规模修订,修订后的标准被称为 C99标准,C语言迎来了2.0时代。
2011年,C语言又一次被修订,也就是现在常用的的 C11标准,C 语言进入了3.0时代。
技巧集锦
C89标准和 C90标准巧分辨
对于 C语言个试行版本的界定,有人使用 C89标准的表述,有人使用 C90标准。你可能会疑惑到底这个标准应该叫 C89还是 C90呢?
其实,C89和 C90标准是同一个标准,只是因为标准初稿发布的时间是1989年,正式确定开始使用是在1990年初,所以产生了 C89和 C90两种不同的叫法。 1.2.2 不要再搞混 “C”家族语言,它们各不相同
在C、C 、C#三种语言中,C语言是早被开发出来的一门语言,其他两门语言都比它新,而且它们也存在很大不同,不能将它们混为一谈。让我们通过图1-3来更直观地了解这三门语言的不同。
图1-3 “C”家族语言的早期开发背景
C语言注重降低机器语言代码,并确保运行效率不会出现非常大的变化。
C 比 C#更靠近 C语言一点,但是它的开发目的本身是给 C语言增加一些功能,同时将 C语言的面向过程编程改造成面向对象编程。C 还融合了其他编程语言的内容。
C#早是微软公司为了解决内部 CLR设备创造出来的语言,“C”正是 CLR 的首字母,所以它跟 C语言之间的关系并没有那么紧密,它是一门吸收了多种编程语言特点,为解决当时的问题而 “量身定制”的语言。
这三种语言虽然都以 C 开头,但实际上它们并没有很 “亲近”的关系,所以不要再搞混它们了。
1.2.3 C语言在实际运用中的优势
C语言受到了很多人的关注并成为程序员的 “新宠”,它的优势是什么呢? 接下来我们就一起去寻找答案吧。
1.C语言的适应能力强
C语言可以满足不同操作系统位数的电脑进行开发工作 (图1-4)。
图1-4 C语言适应能力详解
2.C语言的结构性强
C语言以函数为切分点,一个函数就是一个小的模块,具有程序间复用的便捷性,可以以模块为单位进行复用,进而减少不必要的代码。同时,它还提供了9种不同的控制性语句,使得程序更容易被理解,也便于后期的代码维护 (图1-5)。 3.C语言的运算符丰富
C语言共提供了32种不同的运算符,既有基础的加减乘除,也有独特的位移、指针、求字节等运算符,这使得 C语言可以完成的操作比其他语言更多。
4.C语言的运算速度快
由于 C语言融合了汇编语言和高级语言的特点,是现在流行的编程语言的 “鼻祖”,因此也有中级语言的美誉。
此外,C语言在基本满足使用需求的前提下,能保持几乎等同于汇编语言水平的运行速度,因此它也常被用作其他语言编译器的开发语言。
5.C语言可以进行预处理操作
在众多编程语言中,C语言配备了两个预处理的命令,实现了对外部文件添加宏定义的操作,让程序在确定执行前就完成一部分工作,从而提高软件开发的工作效率。
6.C语言的移植性好
C语言在移植性上表现优异,这是因为系统库函数和预处理程序跟源程序是隔开的,这就使得 C语言程序容易在不同的 C编译系统之间重新定义有关内容。
技能升级
C语言的不足之处有哪些呢?
C语言虽然有很多明显的优势,但也会有不足之处,比如它太过灵活的设计思想。当我们编写的程序有歧义时往往只会警告不会报错,也就是说只要语法上没有问题,程序就能编译成功,但容易出现很多漏洞,安全系数不高。所以,我们在编写程序时要养成规范编写程序的习惯。
评论
还没有评论。