推荐两本C语言学习的书籍

提高学生应对未来专业实践课程的兴趣和信心。

C程序设计 | 谭浩强

由谭浩强教授著、清华大学出版社出版的《C程序设计》经过近三十年一千多万读者的实践检验,被公认为学习C语言程序设计的经典教材。根据C语言的发展和计算机教学的需要,作者在《C程序设计(第四版)》的基础上进行了修订,使内容更加完善,更易于理解,更加切合教学需要。本书按照C语言的新标准C 99进行介绍,所有程序都符合C 99的规定,使编写程序更加规范;对C语言和程序设计的基本概念和要点讲解透彻、全面而深入;按照作者提出的“提出问题—解决问题—归纳分析”三部曲进行教学和组织教材;本书的每个例题都按以下几个步骤展开:提出任务—解题思路—编写程序—运行程序—程序分析—有关说明。符合读者认知规律,容易入门与提高。

本书内容先进,体系合理,概念清晰,讲解详尽,降低台阶,分散难点,例题丰富,深入浅出,文字流畅,通俗易懂,是初学者学习C语言程序设计的理想教材,既可作为高等学校各专业的正式教材,也适合读者自学。本书还配有辅助教材《C程序设计(第五版)学习辅导》。

目录

第1章 程序设计和C语言 1

1.1 什么是计算机程序 1

1.2 什么是计算机语言 1

1.3 C语言的发展及其特点 3

1.4 简单的C语言程序 5

1.5 运行C程序的步骤与方法 11

1.6 程序设计的任务 13

习题 14

第2章 算法——程序的灵魂 15

2.1 程序=算法 数据结构 15

2.2 什么是算法 16

2.3 简单的算法举例 17

2.4 算法的特性 20

2.5 怎样表示一个算法 21

2.6 结构化程序设计方法 33

习题 35

第3章 简单的C程序设计——顺序程序设计 37

3.1 顺序程序设计举例 37

3.2 数据的表现形式及其运算 39

3.3 运算符和表达式 51

3.4 C语句 56

3.5 数据的输入输出 64

习题 80

第4章 选择结构程序设计 83

4.1 选择结构和条件判断 83

4.2 用if语句实现选择结构 85

4.3 关系运算符和关系表达式 89

4.4 逻辑运算符和逻辑表达式 90

4.5 条件运算符和条件表达式 94

4.6 选择结构的嵌套 96

4.7 用switch语句实现多分支选择结构 99

4.8 选择结构程序综合举例 102

习题 107

第5章 循环结构程序设计 110

5.1 为什么需要循环控制 110

5.2 用while语句实现循环 111

5.3 用do…while语句实现循环 113

5.4 用for 语句实现循环 116

5.5 循环的嵌套 120

5.6 几种循环的比较 121

5.7 改变循环执行的状态 121

5.8 循环程序举例 127

习题 137

第6章 利用数组处理批量数据 139

6.1 怎样定义和引用一维数组 139

6.2 怎样定义和引用二维数组 145

6.3 字符数组 151

习题 165

第7章 用函数实现模块化程序设计 167

7.1 为什么要用函数 167

7.2 怎样定义函数 169

7.3 调用函数 171

7.4 对被调用函数的声明和函数原型 176

7.5 函数的嵌套调用 179

7.6 函数的递归调用 181

7.7 数组作为函数参数 189

7.8 局部变量和全局变量 196

7.9 变量的存储方式和生存期 201

7.10 关于变量的声明和定义 211

7.11 内部函数和外部函数 212

习题 215

第8章 善于利用指针 217

8.1 指针是什么 217

8.2 指针变量 219

8.3 通过指针引用数组 229

8.4 通过指针引用字符串 254

8.5 指向函数的指针 265

8.6 返回指针值的函数 273

8.7 指针数组和多重指针 276

8.8 动态内存分配与指向它的指针变量 284

8.9 有关指针的小结 288

习题 291

第9章 用户自己建立数据类型 293

9.1 定义和使用结构体变量 293

9.2 使用结构体数组 300

9.3 结构体指针 303

9.4 用指针处理链表 309

9.5 共用体类型 317

9.6 使用枚举类型 322

9.7 用typedef声明新类型名 326

习题 330

第10章 对文件的输入输出 331

10.1 C文件的有关基本知识 331

10.2 打开与关闭文件 334

10.3 顺序读写数据文件 338

10.4 随机读写数据文件 350

10.5 文件读写的出错检测 355

习题 355

附录 357

附录A 常用字符与ASCII代码对照表 357

附录B C语言中的关键字 358

附录C 运算符和结合性 359

附录D C语言常用语法提要 361

附录E C库函数 365

机器人辅助C程序设计 | 秦志强

C程序设计课程是当前大多数工程专业的第一门专业基础课程,几乎所有的工科学生都要学习C程序设计,以便为后续的专业课程学习打下基础。这门课程学不好,后续专业课程的学习也会大打折扣,影响整个专业课程的学习。目前的现状是,每年几千万的学生在学习C程序设计,但是仍然满足不了社会对合格软件工程师的迫切需求。
传统的C程序设计教材和C语言教学方法,基本上都是围绕科学计算和算法设计展开,教学的目标是建立知识体系。这种教学方法的教学效果越来越不能满足当今工程教育的需要,尤其是对于未来希望从事嵌入式系统设计或者自动化系统设计的学生和个人而言。
学习C语言是为了用C语言去解决程序编写问题,这种程序编写能力只有从程序设计实践中才能迅速获得,理论的讲解过多,不仅对学习C程序设计无益,甚至还会让学生滋生厌烦情绪。当然,只单纯的编写程序也无法获得真正的能力,关键是如何从不断的程序设计实践中,归纳出共性程序设计知识和关键技能,建立起分析问题和解决问题的知识和技能模型,然后再将这些知识技能重新应用到新的程序设计实践中去,才能达到学习的最终目的。这也是当今的大学生要在未来的实际工作(无论是在企业研发还是在高校做研究)中所必须采取的学习和工作方法。因此,如何从一进入大学,就学习和掌握这种自我学习和提高的方法,是高等工程教育改革的根本目标。
本书的编写始终围绕典型的机器人制作项目展开,按照“任务实践-技能归纳-学习总结-项目再实践”的学习模式设计一系列循序渐进的学习实践项目,突破了传统的“课堂理论+上机实验”的传统学习模式,同时引进各种教学竞赛项目代替传统的考试,激发学习兴趣,实现“做中学、学中赛、赛中会”,最终帮助学习者建立起应用C语言进行程序设计的知识技能体系,并获得实际的程序设计技能。
通过本书的学习实践掌握了单片机C语言的编程技能后,后续的单片机课程学习就变得相对简单快捷。与本书配套的单片机后续书籍将重点介绍如何利用单片机设计编写出更高效的程序,扩展更多的外设,并讨论学习如何设计出自己的硬件系统。
本书可作为任何想学习C程序设计的入门学习用书,尤其适合希望学习嵌入式系统设计的工程师和爱好者使用。学习的过程必须配套相应的硬件器材方能达到最佳的学习效果。这些器材的清单在本书的附录里有详细的说明。

目    录

第一部分  基本技能学习和实践
第1讲  一种新的C语言学习方式    3
机器人与C语言学习平台    5
任务1  获得软件    6
任务2  安装软件    7
任务3  硬件连接    7
任务4  第一个程序    8
任务5  做完实验关断电源    16
工程素质和技能归纳    16
科学精神的培养    17
第2讲  最简单的C程序设计——机器人做算术    18
任务1  整型数据的运算和结果显示    18
任务2  浮点型数据的运算    22
任务3  字符型数据    24
工程素质和技能归纳    26
科学精神的培养    26
第3讲  循环程序设计——让机器人动起来    27
C51单片机的输入/输出接口    27
任务1  单灯闪烁控制    28
任务2  机器人伺服电动机控制信号    34
任务3  计数并控制循环次数    37
任务4  用计算机来控制机器人的运动    41
工程素质和技能归纳    44
科学精神的培养    44
第4讲  函数与机器人运动控制    45
任务1  基本巡航动作    45
任务2  匀加速/减速运动    50
任务3  用函数调用简化运动程序    53
任务4  用数组进一步简化函数调用    58
工程素质和技能归纳    60
科学精神的培养    60
 
第5讲  选择结构程序设计——机器人的触觉导航    61
任务1  安装并测试机器人胡须    62
任务2  通过胡须导航    67
任务3  机器人进入死区后的人工智能决策    72
任务4  机器人行进过程中的碰撞保护程序    77
工程素质和技能归纳    78
科学精神的培养    79
第6讲  选择结构程序设计——机器人红外导航    80
任务1  搭建并测试IR发射和探测器对    81
任务2  探测和避开障碍物    85
任务3  高性能的IR导航    90
任务4  俯视的探测器    93
工程素质和技能归纳    98
科学精神的培养    99
第7讲  多分支结构程序设计——机器人循线竞赛    100
任务1  QTI传感器及其通信接口    101
任务2  安装QTI传感器到机器人前端    102
任务3  编写QTI传感器的测试程序    103
任务4  设计算法实现机器人无接触传感器游中国    106
任务5  修改算法实现机器人游中国    112
任务6  用数组实现机器人游中国比赛    116
任务7  改进运动执行程序提升执行的可靠性    122
工程素质和技能归纳    128
科学精神的培养    129
第二部分  综合实践案例
第8讲  教育机器人智能搬运比赛    133
任务1  给机器人安装循线传感器和搬运手爪    134
任务2  根据比赛任务设计算法    136
任务3  定义运动数据结构体存储运动数据    137
任务4  将运动函数存成另外的文件包含进来    140
任务5  循线运动函数的设计与实现    145
任务6  根据算法完成搬运子函数和主程序的编写    150
工程素质和技能归纳    151
科学精神的培养    151
 
第9讲  机器人灭火比赛    153
任务1  确定完成比赛所需的传感器和灭火装置    155
任务2  确定超声波传感器连接端口,编写测距函数    157
任务3  安装火焰传感器和灭火风扇,编写寻找火源和灭火程序    159
任务4  根据超声波测距信息编写导航程序    160
任务5  完成灭火主程序的编写    170
工程素质和技能归纳    171
科学精神的培养    171
第10讲  擂台机器人程序设计    172
任务1  红外线擂台机器人的软件设计    174
任务2  优化红外线擂台机器人软件    179
任务3  超声波擂台机器人的软件设计    182
任务4  遥控擂台机器人的软件设计    183
工程素质和技能归纳    192
科学精神的培养    193
附录A  C语言概要归纳    194
附录B  C语言中的关键字索引    206
附录C  无焊锡面包板    207
附录D  中国教育机器人大赛简介    210
附录E  完成本书项目学习所需配件清单    212

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/439667.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AtCoder Beginner Contest 343(A,B,C,D,E,F)

比赛链接 CE是暴力,D是数据结构题,F是线段树。这场的E比较有意思,其他的感觉有点水。 A - Wrong Answer 题意: 给你两个数 A , B A,B A,B ( 0 ≤ A , B ≤ 9 ) (0\le A,B\le 9) (0≤A,B≤9),返回一个个位数&#…

嵌入式学习day34 网络

TCP包头: 1.序号:发送端发送数据包的编号 2.确认号:已经确认接收到的数据的编号(只有当ACK为1时,确认号才有用) TCP为什么安全可靠: 1.在通信前建立三次握手连接 SYN SYNACK ACK 2.在通信过程中通过序列号和确认号保障数据传输的完整性 本次发送序列号:上次…

vis.js network操作学习

前言 网络是显示网络以及由节点和边组成的网络的可视化。可视化易于使用,并支持自定义形状、样式、颜色、尺寸、图像等。网络可视化可以在任何现代浏览器上顺利运行,最多可显示数千个节点和边缘。为了处理大量节点,网络提供了集群支持。Netw…

南京观海微电子---PCIe协议(一)

概述 PCIe协议是一种端对端的互连协议,提供了高速传输带宽的解决方案。与传统的并行总线标准如PCI和PCI-X相比,PCIe提供了更低的延迟和更高的数据传输速率。每个连接到主板上的设备都通过独立的点对点连接与之相连,这避免了设备之间因为共享…

四信全球化拓展再启新篇!LoRa传感器与云平台领航智能感知时代

随着科技浪潮的不断推进,物联网已逐渐融入我们的生活。刚刚结束的MWC24盛会上,四信带来了一系列前沿技术成果,不仅将5G技术成功扩展至当前市场主流类型的终端,更携手联通、ASR等业界巨头,在连接、5G RedCap、AI、LoRa以…

Lim接口测试平台开展自动化的优势

一、数据对比 使用Lim接口测试平台后,相比以往采用Postman或excel关键字驱动带来的效率提升: 编写效率提升300%,原来10个步骤的用例,一个工作日调试编写只能输出6条,现在一天能输出18条。维护成本复杂度降低100%&…

webpack5零基础入门-1使用webpack打包

感谢大家的点赞和转发,欢迎大家关注本人的博客。试用期指导,项目开发,简历优化,毕业设计/论文,欢迎添加本人微信。 新人作者,欢迎关注和收藏👏🏻👏🏻 1.为什么…

基于R语言lavaan结构方程模型(SEM)技术应用

结构方程模型(Sructural Equation Modeling,SEM)是分析系统内变量间的相互关系的利器,可通过图形化方式清晰展示系统中多变量因果关系网,具有强大的数据分析功能和广泛的适用性,是近年来生态、进化、环境、…

【研究生复试】计算机软件工程人工智能研究生复试——资料整理(速记版)——计算机组成原理

1、JAVA 2、计算机网络 3、计算机体系结构 4、数据库 5、计算机组成原理 6、软件工程 7、大数据 8、英文 自我介绍 5. 组成原理 1. 计算机系统概论 1. 发展历史 早期计算器: 算盘->算筹-> 计算尺(工程师的身份象征)-> 机械计算机: 图灵:计算机世界的理论基…

(黑马出品_05)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

(黑马出品_05)SpringCloudRabbitMQDockerRedis搜索分布式 微服务技术分布式搜索 今日目标1.初识elasticsearch1.1.了解ES1.1.1.elasticsearch的作用1.1.2.ELK技术栈1.1.3.elasticsearch和lucene1.1.4.为什么不是其他搜索技…

学习Java的第四天

目录 一、if选择结构 1、基本if选择结构 语法结构: 流程图: 示例: 2、if-else 选择结构 语法结构: 流程图: 示例: 3、多重if选择结构 语法结构: 流程图: 示例&#xff1a…

防御保护IPSEC实验

要求:在FW5和FW3之间建立一条IPSEC通道,保证10.0.2.0/24网段可以正常访问到192.168.1.0/24. 因为是双机热备状态则只需要配置FW1主设备。 新建ACL待加密数据流 安全建议: IPSec参数配置 FW3配置如下与FW1类似: FW1中新建安全策略…

VS配置开发与远程调试笔记

先简单写一下,后续详细补充 场景:本地机器开发,虚拟机调试 准备工作: 由于要将生成的文件生成在虚拟机,避免反复拷贝,直接配置虚拟机共享文件夹进行写入,步骤如下: 虚拟机打开网…

Python 创建PPT

本篇为如何使用Python来创建ppt文件。 创建PPT 安装必要的库 命令如下: pip install python-pptx 安装过程: 创建ppt文件 在当前目录下创建一个test的ppt文件。其中包含两页,分别使用了不同的布局。 第一页设置了标题和内容。第二页只设…

AutoPSA里给定了弹簧刚度,为什么计算没有引用?

山东一用户问:已经给定了弹簧刚度,为什么计算没引用? 在AutoPSA里包含两种算法仿CAESARII ,仿GLIF算法。 在仿CAESARII算法里直接给定弹簧刚度与安载荷载,两个都给了相应值,也就是给定了弹簧号&#xff1b…

Python自动化测试:API接口自动化——requests、webSocket

接口自动化测试1 一、requests二、简单示例1.导入/引入库2.请求与响应示例1>简单访问百度主页-GET请求2>简单的登录请求-POST请求3>保存cookies至头信息headers4>其他接口请求时携带headers 三、webSocketwebSocket连接与数据收发示例 本文介绍了借助Python的reque…

ssGSEA -- 学习记录

文章目录 biref统计学原理其他注意事项代码实现部分 biref 前情提要链接: https://blog.csdn.net/jiangshandaiyou/article/details/136536349 https://blog.csdn.net/jiangshandaiyou/article/details/134457515 相比起GSA,GSEA不再关注于差异基因&…

【C++干货基地】面向对象核心概念 | 访问限定符 | 类域 | 实例化 | 类对象模型

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 哈喽各位铁汁们好啊,我是博主鸽芷咕《C干货基地》是由我的襄阳家乡零食基地有感而发,不知道各位的…

优思学院|拉丁方实验设计是什么?

今天,我要给大家带来一个六西格玛实验设计的小窍门——拉丁方设计。这是一种巧妙的方式,帮助我们探索不同因素(输入)对结果(输出)的影响,同时巧妙地处理那些我们不想要的“噪音因素”。 想象一…

GAMMA电源维修高压直流电源ES30P-5W ES系列

美国Gamma高压电源维修型号:D-ES30R-10N-5W/M,LXR30-1N,XRM5N-100W,ES50P-10W/DDPM,ES60P-10W/DDPM,RR20-20P/DDPM,ES30P-10W,ES60P-10W DDPM,RR60-18P/220V,…