教育>本科研究生>计算机类
程序设计与计算思维(基于C语言)  

程序设计与计算思维(基于C语言)  "

作者:王雷,白雪飞,王嵩等
ISBN:9787121440281
定价:¥59.8
字数:448千字
页数:280
出版时间:2022-08
开本:16开
版次:01-01
装帧:
出版社:电子工业出版社
简介

作为省级基层示范教研室的教学成果,本书以面向知识、能力、素质三位一体的培养为教学目标,兼顾计算思维能力、自主学习能力与编程实践能力的培养目标,改革了传统教材以分立的语法单元为纲、侧重语法教学的内容组织方式,转为以程序设计方法为纲、遵循“迭代学习”的思想。 本书选用C语言为教学语言,主要内容包括:预备知识,程序设计入门,结构化程序设计,模块化程序设计,系统级编程初探。同时,本书附录中提供了ASCII表、枚举类型与自定义数据类型、运算符、预处理、常用库函数、外部对象与项目、系统调用等内容。 本书提供配套的教案、教学课件和教学视频等教学资源。 本书可作为高等学校理工科专业特别是计算机相关专业的教材,也可作为相关从业人员的自学用书。

前言

前 言 本书撰写之时正值人工智能火热之日。以机器学习为代表的人工智能技术在越来越多的领域得到应用,其中的关键是如何建立模型描述问题和如何通过计算解决问题。 随着理论计算方法和高性能计算的快速发展,计算已成为继实验和理论后开展科学研究的第三大重要支柱。计算科学带动的信息产业革命不仅逐渐改变了人类的生活方式,还改变了人类认识世界和改造世界的方式。计算需要依赖程序进行,掌握程序设计的思想与方法已成为各专业对人才的基本能力要求。与此同时,问题复杂度的提高使得求解问题时需要更加有效的思维方式,计算思维的概念由此诞生。而现代教育技术的引入与教学环境的改变,则使得自主学习成为当代大学生必备的能力之一。 现代教育理念强调知识、能力、素质三位一体的培养,本书为兼顾计算思维能力、自主学习能力与编程实践能力的培养目标,改革了传统教材以分立的语法单元为纲、侧重语法教学的内容组织方式,转为以程序设计方法为纲、遵循“迭代学习”的思想,从预备知识开始,入门即通过实例引入常用的语法元素,然后按照结构化程序设计、模块化程序设计、系统级编程初探的顺序,逐层展开讲解语法概念的原理和程序设计中的应用,每章后给出了明确的能力要求。在知识结构上,每章都有一套完整的体系,读者通过迭代的学习,可以对核心知识点有不断深入的认知,并能解决越来越复杂的问题,从而达到持续培养能力的目标。 本书是安徽省基层示范教研室、安徽省示范课“计算机程序设计”课程组(教研室)集体智慧的结晶。 中国科学技术大学于1984年在大部分专业开设了必修课“C语言程序设计”。2010年,该课程与“计算机文化基础”合并为“计算机程序设计”,与数学类、物理类基础课并列为通修课程,面向所有专业一年级本科生开设。10余年过去了,计算机教育的理念在不断发展,培养“计算思维”成为普遍接受的教学目标之一。与此同时,大学新生的计算机基础、学习方式与学习需求与以往相比也有很大的不同,编写一本更贴合现代教育理念、面向新时代、新人类的新教材势在必行。 本书的编写受到学校重视,被列入中国科学技术大学2020年本科质量工程“一流教材”项目。 在国家日益重视本科基础教育的背景下,在“一流本科教育质量提升行动纲领”的指引下,课程组经过充分的调研、分析和讨论,对教材的组织架构和内容侧重等方面进行了改革和创新,从语法概念的原理出发,将计算思维融入具体的编程实践,系统性地阐述了程序设计的思想与方法,并对学习者提出了明确的能力要求。 考虑到基础性、稳定性和全面性,本书仍选用C语言作为教学语言。本书仅要求读者具有基本信息技术的基础,适用群体包括所有理科专业的本科生,可以作为程序设计类基础课程教材。 除了主要编写人员王雷、白雪飞、王嵩、谭立湘,课程组其他教师也为本书的编写提供了很多帮助,包括信息学院、计算机学院、微电子学院、网络空间安全学院以及软件学院的李卫海、李玉虎、凌强、刘勇、秦琳琳、盛捷、司虎、孙广中、唐建、王百宗、吴文涛、杨坚、尹东、於俊、张普华、张四海、郑重等。 本书设定的目标颇为宏大,但由于编写团队的水平和能力有限,难免有力所不能及的情况。粗疏错漏之处,欢迎广大的专家与读者不吝指正。 本书为读者提供相关教学资料(包括MOOC视频、教学课件、示例程序和延伸阅读材料等),有需要者,请登录到http://www.hxedu.com.cn,注册后进行下载。 作 者

目录

目 录 第1章 预备知识 1 1.1 引言 2 1.2 本书的组织架构 2 1.3 计算与计算思维 4 1.3.1 计算与进制 4 1.3.2 计算机体系结构 6 1.3.3 信息与编码 7 1.3.4 文件与地址 8 1.3.5 算法与逻辑 10 1.3.6 计算思维 11 1.4 编程语言与程序设计 12 1.4.1 低级语言 12 1.4.2 高级语言 13 1.4.3 编程语言分类 14 1.4.4 编程方法 16 1.4.5 操作系统与程序 17 1.4.6 C语言程序设计 17 思考与练习1 18 第2章 程序设计入门 19 2.1 数据与运算 20 2.1.1 数据与数据类型 20 2.1.2 运算符与表达式 21 2.2 输出与输入 22 2.2.1 用printf()函数输出 23 2.2.2 C语言程序与函数 23 2.2.3 用scanf()函数输入 24 2.3 条件判断与选择 25 2.3.1 关系运算 26 2.3.2 if-else语句与流程图 26 2.3.3 逻辑运算 28 2.4 循环与数组 28 2.4.1 for循环与伪代码 28 2.4.2 数组 31 2.5 C语言程序规范 33 小结 34 思考与练习2 34 第3章 结构化程序设计 35 3.1 基本数据类型 36 3.1.1 整型数据 36 3.1.2 浮点型数据 39 3.1.3 字符型数据 41 3.1.4 幻数与宏定义 43 3.2 表达式与运算规则 44 3.2.1 运算符简介 44 3.2.2 常用表达式 45 3.2.3 隐式类型转换规则 48 3.2.4 表达式的运算次序 49 3.2.5 表达式的副作用 50 3.3 控制语句与基本算法 52 3.3.1 C语言程序语句 52 3.3.2 分支语句 53 3.3.3 循环语句 59 3.3.4 中断与跳转语句 62 3.3.5 基本算法 65 3.4 数组与批量数据处理 70 3.4.1 一维数组 70 3.4.2 多维数组 76 3.4.3 字符数组 77 3.5 结构体与复杂信息处理 81 3.5.1 结构体的基本用法 81 3.5.2 结构体数组 83 3.5.3 结构体嵌套 84 3.5.4 向文件写数据 85 3.6 结构化与计算思维实践 86 3.6.1 问题分解与抽象 86 3.6.2 编码实现 87 3.6.3 测试与完善 89 3.6.4 拓展与总结 90 小结 91 思考与练习3 91 第4章 模块化程序设计 93 4.1 模块化思想 94 4.1.1 精简程序代码 95 4.1.2 改善程序结构 95 4.1.3 增强程序的通用性 96 4.2 函数 97 4.2.1 函数定义 98 4.2.2 函数调用 100 4.2.3 函数原型声明 105 4.2.4 深入理解函数 107 4.3 模块化设计与实现 110 4.3.1 自顶向下设计 111 4.3.2 变量的作用域与生存期 114 4.3.3 文件包含 121 4.3.4 库函数 124 4.3.5 递归 130 4.4 模块化与计算思维实践 134 4.4.1 数据与操作 134 4.4.2 排序与查找 135 4.4.3 极简教务系统 140 小结 156 思考与练习4 156 第5章 系统级编程初探 159 5.1 指针的基本概念与用法 161 5.1.1 指针的基本概念 161 5.1.2 一维数组与指针 163 5.1.3 二维数组与指针 172 5.1.4 指针数组与指向指针的指针 178 5.2 函数中的指针 180 5.2.1 指针用作函数参数 181 5.2.2 指针用作函数返回值 190 5.2.3 用函数处理字符串 193 5.2.4 指向函数的指针 202 5.3 指针用于内存操作 205 5.3.1 结构体指针 205 5.3.2 文件处理 210 5.3.3 内存分配与链表 221 小结 234 思考与练习5 234 附录A ACSII表 237 附录B 枚举类型与自定义数据类型 239 B.1 枚举类型 240 B.1.1 枚举类型的定义 240 B.1.2 枚举变量的声明 240 B.1.3 枚举类型变量的使用 241 B.1.4 实例 241 B.2 自定义数据类型 242 B.2.1 类型定义的一般格式 242 B.2.2 构造数据类型的类型定义 243 附录C 运算符 244 附录D 位运算 246 附录E 预处理 251 E.1 宏替换 252 E.2 文件包含 254 E.3 条件编译 254 附录F 常用库函数 256 附录G 外部对象与项目 260 附录H 系统调用 266 参考文献 269

作者简介

编辑推荐

作者寄语

电子资料

http://www.hxedu.com.cn/hxedu/fg/book/bookinfo.html?code=G0440280

www.luweidong.cn

下一个