新书推荐│程序设计基础——从问题到程序(第3版)

原标题:新书推荐│程序设计基础——从问题到程序(第3版)

《程序设计基础——从问题到程序(第3版)》

ISBN:978-7-302-56403-4

王红梅 编著

定价:59.8元

在这个人工智能高速发展的时代,程序设计正成为每个人的基本技能。然而,想学好程序设计,只会写代码是远远不够的,更重要的是在编程过程中建立起来的计算思维

程序设计是一个利用计算机进行问题求解的过程。在程序设计的过程中,人们首先需要分析问题,进行数据抽象,在形成求解问题的基本思路后,还要对求解方法进行算法抽象,然后通过编写和调试代码,最终通过运行程序求解问题,这个过程正是计算思维的运用过程。

我们今天推荐的图书《程序设计基础——从问题到程序(第3版)》就是一本锻炼学生计算思维的程序设计教程。

本书第1版2011年出版,近10年的教学实践和读者反馈证明了本书契合初学者的认知规律。作者在保留前2版知识拓扑结构及“问题→想法→算法→程序”程序设计模式的基础上精心修订本书,强化任务驱动的程序设计学习过程,并附配了实验项目、教学课件、程序源码、作业解答等学习资源。作者根据自己多年的教学经验设计了“每课一练”随堂测验,方便教师留作业,学生交作业,自学本书的读者还可以根据提供的答案随时对学习成果进行检测。

内容简介

本书以C语言为工具,以程序设计过程为主线,结合实际问题,基于计算思维,通过 “问题→想法→算法→程序”的问题求解过程,带领读者分析问题、构造算法、设计程序,在潜移默化中掌握程序设计语言的基本知识,运用程序设计的一般过程和基本方法,提高计算思维能力以及应用程序设计语言解决实际问题的能力。

本书适用于程序设计的初学者,主要面向没有任何编程知识和编程经历的读者。本书遵循初学者的认知规律和知识基础,科学安排知识单元之间的拓扑关系,概念清晰,实例丰富,深入浅出,是程序设计初学者的理想教材。

作者简介

王红梅,长春工业大学计算机科学与工程学院院长,教授,吉林省教学名师,长春工业大学卓越教师,国家级一流专业建设带头人,国家级一流课程带头人,省级优秀教学团队带头人。主编国家级规划教材5部,获省级教学成果奖5项。

本书特色

把握初学者的知识基础。本书将程序设计所需的计算机软硬件基本知识融合进来,解决了初学者的知识衔接问题。

遵循初学者的认知规律。提炼程序设计语言的基本内容,科学安排知识单元之间的拓扑关系,对于有一定难度的主题采用增量式递进,先讲授基本内容,再讲授高级内容。

站在内存的角度理解程序。强调内存对于程序设计的重要性,通过图示阐述内存在程序执行过程中的动态变化过程,降低理解程序的抽象程度。

强调程序设计的一般过程。以程序设计过程为主线,采用“问题→想法→算法→程序”的问题求解过程,正确处理算法和语言的关系,培养学生的计算思维能力,提高学生程序设计语言的应用能力。

程序示例体现学以致用。程序设计实例(包括例题)不是单纯地为了解释语言概念,而是以任务驱动的方式,带领学生分析问题、构造算法、应用程序设计语言解决实际问题,在潜移默化中学会程序设计,提高用计算机解决实际问题的能力。

目录

上下滚动查看

第1章 绪 论

1.1 程序、程序设计与程序设计语言

1.1.1 程序设计的基本概念

1.1.2 程序设计语言的发展

1.1.3 程序设计语言的分类

1.2 程序的基本构成

1.2.1 基本字符集

1.2.2 词法单位

1.2.3 语法单位

1.3 初识C程序

1.3.1 C程序示例

1.3.2 简单C程序的典型结构

1.3.3 C程序的输入/输出

1.3.4 C程序的上机过程

1.4 程序风格

1.4.1 标识符的命名规则

1.4.2 注释

1.4.3 缩进

1.4.4 行文格式

1.4.5 大括号风格

1.5 本章实验项目

1.6 本章教学资源

第2章 算法与计算思维

2.1 程序的灵魂——算法

2.1.1 什么是算法

2.1.2 如何描述算法

2.1.3 如何评价算法

2.1.4 算法的重要性

2.2 计算思维

2.2.1 程序设计的一般过程

2.2.2 程序设计与计算思维

2.2.3 程序的基本框架

2.3 本章实验项目

2.4 本章教学资源

第3章 数据的存储表示

【引例3.1】计算圆的周长

3.1 存储数据的载体

3.1.1 二进制

3.1.2 内存

3.2 基本数据类型

3.2.1 整型

3.2.2 实型

3.2.3 字符型

3.2.4 逻辑型

3.3 常量

3.3.1 字面常量

3.3.2 符号常量

3.4 变量

3.4.1 变量的概念

3.4.2 变量的定义和初始化

3.4.3 变量的赋值

3.5 程序设计实例

3.5.1 实例1——温度转换

3.5.2 实例2——计算本息和

3.6 本章实验项目

3.7 本章教学资源

第4章 数据的运算处理

4.1 算术运算

【引例4.1】计算三角形的周长

4.1.1 算术运算

4.1.2 运算符的优先级和结合性

4.1.3 程序设计实例——通用产品代码

4.2 逻辑运算

【引例4.2】判断闰年

4.2.1 关系运算

4.2.2 逻辑运算

4.2.3 程序设计实例——赛车评论

4.3 赋值运算

4.3.1 赋值运算

4.3.2 复合赋值运算

4.3.3 自增/自减运算

4.4 其他运算

4.4.1 逗号运算

4.4.2 取长度运算

4.4.3 条件运算

4.5 运算对象的类型转换

4.5.1 自动类型转换

4.5.2 强制类型转换

4.6 本章实验项目

4.7 本章教学资源

第5章 程序的基本控制结构

5.1 顺序结构

【引例5.1】四则运算

5.1.1 复合语句实现顺序结构

5.1.2 程序设计实例——整数的逆值

5.2 选择结构

【引例5.2】奇偶判定

5.2.1 逻辑值控制的选择结构

5.2.2 算术值控制的选择结构

5.2.3 程序设计实例1——水仙花数

5.2.4 程序设计实例2——某年某月的某一天

5.3 循环结构

【引例5.3】偶数和

5.3.1 当型循环

5.3.2 直到型循环

5.3.3 计数型循环

5.3.4 循环结构的嵌套

5.3.5 程序设计实例1——整数的位数

5.3.6 程序设计实例2——欧几里得算法

5.3.7 程序设计实例3——百元买百鸡问题

5.4 其他控制语句

【引例5.4】素数判定

5.4.1 break语句

5.4.2 continue语句

5.4.3 程序设计实例——歌德巴赫猜想

5.5 本章实验项目

5.6 本章教学资源

第6章 批量同类型数据的组织——数组

6.1 一维数组

【引例6.1】顺序查找

6.1.1 一维数组的定义和初始化

6.1.2 一维数组的操作

6.1.3 程序设计实例1——找最大值

6.1.4 程序设计实例2——折半查找

6.1.5 程序设计实例3——合并有序数组

6.2 二维数组

【引例6.2】矩阵转置

6.2.1 二维数组的定义和初始化

6.2.2 二维数组的操作

6.2.3 程序设计实例1——主对角线元素之和

6.2.4 程序设计实例2——哥尼斯堡七桥问题

6.2.5 程序设计实例3——幻方问题

6.3 本章实验项目

6.4 本章教学资源

第7章 程序的组装单元——函数

7.1 用户定义的函数——自定义函数

【引例7.1】打印直角实心三角形

7.1.1 函数定义

7.1.2 函数调用

7.1.3 函数声明

7.1.4 程序设计实例1——打印九九乘法表(函数版)

7.1.5 程序设计实例2——欧几里得算法(函数版)

7.2 系统定义的函数——库函数

【引例7.2】素数判定

7.2.1 头文件与文件包含

7.2.2 标准输入/输出函数

7.2.3 随机函数

7.2.5 程序设计实例1——三角形的面积

7.2.6 程序设计实例2——猜数游戏

7.3 变量的作用域

【引例7.3】鸡兔同笼问题(全局变量版)

7.3.1 局部变量

7.3.2 全局变量

7.4 变量的生存期

【引例7.4】字数统计(静态变量版)

7.4.1 自动变量

7.4.2 静态变量

7.5 本章实验项目

7.6 本章教学资源

第8章 变量的间接访问——指针

8.1 指针的概念

【引例8.1】答疑教室

8.1.1 指针变量的定义和初始化

8.1.2 指针变量的操作

8.1.3 指针所指变量的操作

8.2 指针作为函数的参数

【引例8.2】鸡兔同笼问题(函数版)

8.2.1 值传递方式——函数的输入

8.2.2 指针传递方式——函数的输出

8.2.3 指针传递方式——函数的输入/输出

8.2.4 程序设计实例1——求一元二次方程的根

8.2.5 程序设计实例2——三个整数由小到大排序

8.3 数组作为函数的参数

【引例8.3】顺序查找(函数版)

8.3.1 一维数组作为函数的参数

8.3.2 二维数组作为函数的参数

8.3.3 程序设计实例1——简单选择排序

8.3.4 程序设计实例2——鞍点

8.4 本章实验项目

8.5 本章教学资源

第9章 字符数据的组织——字符串

【引例9.1】恺撒加密

9.1 字符串变量的定义和初始化

9.1.1 字符数组

9.1.2 字符串指针

9.2 字符串的操作

9.2.1 输入/输出操作

9.2.2 赋值操作

9.2.3 字符串的比较

9.3 程序设计实例

9.3.1 实例1——字数统计

9.3.2 实例2——字符串匹配

9.4 本章实验项目

9.5 本章教学资源

第10章 自定义数据类型

10.1 可枚举数据的组织——枚举类型

【引例10.1】行走机器人

10.1.1 枚举类型的定义

10.1.2 枚举变量的定义与初始化

10.1.3 枚举变量的操作

10.1.4 程序设计实例——荷兰国旗问题

10.2 不同类型数据的组织——结构体类型

【引例10.2】统计考研成绩

10.2.1 结构体类型的定义

10.2.2 结构体变量的定义和初始化

10.2.3 结构体变量的操作

10.2.4 结构体数组

10.2.5 程序设计实例——最近对问题

10.3 为数据类型定义别名

10.4 本章实验项目

10.5 本章教学资源

第11章 再谈函数

11.1 函数的嵌套调用

【引例11.1】字符串的循环左移

11.1.1 函数——封装的小程序

11.1.2 函数的嵌套调用

11.1.3 程序设计实例1——公共子序列

11.1.4 程序设计实例2——弦截法求方程的根

11.2 函数的递归调用

【引例11.2】求n!

11.2.1 递归的基本思想

11.2.2 递归函数的定义

11.2.3 递归函数的调用过程

11.2.4 程序设计实例1——汉诺塔问题

11.2.5 程序设计实例2——折半查找

11.3 本章实验项目

11.4 本章教学资源

第12章 再谈指针

12.1 指针与数组

【引例12.1】判断回文串

12.1.1 用指针访问一维数组

12.1.2 用指针访问二维数组

12.1.3 指针数组

12.1.4 程序设计实例——解密藏头诗

12.2 指针与结构体

【引例12.2】统计考研成绩(函数版)

12.2.1 指向结构体的指针

12.2.2 结构体指针作为函数参数

12.2.3 程序设计实例——日期格式

12.3 动态存储分配

【引例12.3】动态数组求最大值

12.3.1 申请和释放存储空间

12.3.2 动态数组

12.3.3 链表

12.3.4 程序设计实例1——发纸牌

12.3.5 程序设计实例2——进制转换

12.4 本章实验项目

12.5 本章教学资源

第13章 再谈输入/输出

【引例13.1】文件复制

13.1 文件缓冲区与文件指针

13.1.1 文件缓冲区

13.1.2 文件指针

13.2 文件的当前位置指针

13.2.1 什么是文件的当前位置指针

13.2.2 跟踪文件的当前位置指针

13.2.3 定位文件的当前位置指针

13.3 文件的打开与关闭

13.3.1 文件的打开

13.3.2 文件的关闭

13.4 文件的读写操作

13.4.1 字符方式读写文件

13.4.2 字符串方式读写文件

13.4.3 格式化方式读写文件

13.4.4 二进制方式读写文件

13.5 程序设计实例

13.5.1 程序设计实例1——注册与登录

13.5.2 程序设计实例2——统计考研成绩(文件版)

13.6 本章实验项目

13.7 本章教学资源

第14章 再谈程序的基本结构

14.1 多文件程序

14.1.1 多文件程序的构成

14.1.2 将源程序文件分解为多个程序文件模块

14.2 外部变量和外部函数

14.2.1 外部变量

14.2.2 外部函数

14.3 嵌套包含

14.3.1 条件编译

14.3.2 保护头文件

14.4 程序设计实例——石头、剪子、布游戏

14.5 本章实验项目

14.6 本章教学资源

第15章 低级程序设计

【引例15.1】异或加密

15.1 数据表示

15.1.1 二进制数与八进制数和十六进制数之间的转换

15.1.2 位域

15.2 位运算

15.2.1 位逻辑运算

15.2.2 移位运算

15.2.3 位运算的应用举例

15.3 程序设计实例

15.3.1 实例1——快速欧几里得算法

15.3.2 实例2——过滤特殊字符

15.4 本章实验项目

15.5 本章教学资源

附录1 标准ASCII码

附录2 运算符的优先级和结合性

附录3 常用库函数

配套资源

为便于教学,本书配有多种教学资源。

“每课一练”习题册:本书除了在章节内穿插了练习题,还附带了独立成册的“每课一练”,设置成可撕取的形式,方便老师在教学过程中布置作业,也方便学生自学自测。

其他教学资源:教学课件、习题参考答案,以及书中全部的源代码均随书赠送,读者可扫描本书封底的防盗二维码激活权限后,扫描本书各章末尾的二维码下载。 返回搜狐,查看更多

责任编辑: