本书从基础性和实用性出发,较全面地介绍计算机程序设计的基本概念和计算思维方法。全书共3个部分15章:C语言基础实验,主要内容包括程序设计基础,数据类型、运算符、表达式及顺序结构,程序流程控制结构、数组,函数,指针,结构体,文件;C语言综合实验,主要内容包括公交线路查询实验和图书借阅信息链表存储管理实验;Arduino C基础实验,主要内容包括Arduino C语言基础、Arduino I/O读写基本应用、Arduino温度传感器的应用、Arduino I/O驱动显示、Arduino PWM的应用等。本书配套实例程序源代码、多媒体实验指导电子教案等。本书可作为高等学校、高职本科和高职高专计算机、人工智能及相关专业C语言程序设计实验课程的基础教材,也可供相关领域的工程技术人员学习、参考。
尉洪,男,2002年7月,进入云南大学工作,长期承担云南大学信息学院本科生的一线教学研究任务,共讲授本科生多门课程,主要包括:计算机程序设计、计算机程序设计实验、信号与系统、信号与系统实验、UNIX操作系统、计算机组成原理、计算机基础、数学实验等课程;承担了多项校级、省级和国家级科研项目任务。
目 录
C语言基础实验
第1章 程序设计基础 2
1.1 主要概念 2
1.1.1 程序设计基本概念 2
1.1.2 CodeBlocks开源跨平台
IDE介绍 2
1.1.3 C语言程序的创建
开发步骤 2
1.1.4 C语言程序的工程管理
与程序调试方法 7
1.2 典型实例 12
1.2.1 单一主函数结构
—最简单的
C语言程序 12
1.2.2 主函数附加用户
自定义函数调用 13
1.3 实验项目 13
实验一:C语言程序设计入门 13
第2章 数据类型、运算符、
表达式及顺序结构 15
2.1 主要概念 15
2.1.1 数据类型、类型转换、
变量与常量、运算符、
表达式、顺序结构 15
2.1.2 数据输入与输出 16
2.2 典型实例 16
2.2.1 顺序结构程序
(银行存款本息计算) 16
2.2.2 各类常量、
变量的使用 17
2.2.3 数据类型不匹配
及数据溢出 18
2.3 实验项目 19
实验二:顺序结构程序设计 19
第3章 程序流程控制结构 20
3.1 主要概念 20
3.1.1 关系表达式与
逻辑表达式 20
3.1.2 流程结构语句 20
3.2 典型实例 21
3.2.1 选择结构程序
(单分支、两分支、
多分支结构) 21
3.2.2 循环结构程序 26
3.3 实验项目 32
实验三:选择结构程序设计 32
实验四:循环结构程序设计 33
第4章 数组 35
4.1 主要概念 35
4.1.1 一维数组 35
4.1.2 二维数组 35
4.1.3 字符数组 36
4.2 典型实例 36
4.2.1 一维数值型数组排序 36
4.2.2 矩阵乘法 41
4.2.3 字符数组(特征字符的
统计、查找、插入、
删除算法) 42
4.3 实验项目 44
实验五:一维数组和二维数组 44
实验六:字符串及其处理 45
第5章 函数 47
5.1 主要概念 47
5.1.1 函数的概念及定义 47
5.1.2 函数的调用 47
5.2 典型实例 47
5.2.1 阶乘函数的定义调用 47
5.2.2 函数嵌套调用 48
5.2.3 函数递归调用
(数值递归) 50
5.2.4 数组名做函数参数
(数值型数组、
字符数组) 51
5.3 实验项目 53
实验七:函数的定义与调用 53
实验八:函数与数组 55
第6章 指针 56
6.1 主要概念 56
6.1.1 指针的概念与指针的
基本运算 56
6.1.2 指向变量的指针变量
及指针变量做函数参数 56
6.1.3 指向数组的指针变量
及指向数组的指针变量
做函数参数 56
6.1.4 指向字符串的指针变量
及指向字符串的指针
变量做函数参数 57
6.1.5 动态内存的申请使用 57
6.2 典型实例 57
6.2.1 指针变量做函数
参数交换变量的值 57
6.2.2 指向数组的指针变量
做函数参数实现
数组排序 58
6.2.3 指向字符串的指针变量
做函数参数实现
字符串连接 59
6.2.4 动态内存申请使用 61
6.3 实验项目 62
实验九:指针及其应用 62
第7章 结构体 64
7.1 主要概念 64
7.1.1 结构体类型、结构体
变量、结构体数组 64
7.1.2 指向结构体数据的
指针变量 64
7.1.3 结构体数据的运算符 64
7.1.4 链表 65
7.2 典型实例 65
7.2.1 复数的表达及运算 65
7.2.2 结构体数组实现选票的
统计计票程序 66
7.2.3 结构体指针变量
做函数参数
实现复数运算 67
7.2.4 学生电话簿
单向链表管理 68
7.3 实验项目 73
实验十:结构体及其应用 73
第8章 文件 74
8.1 主要概念 74
8.1.1 文本文件的读写 74
8.1.2 二进制文件的读写 74
8.2 典型实例 74
8.2.1 班级同学成绩的输入
和保存(文本文件) 74
8.2.2 班级同学成绩的输入
和保存(二进制文件) 76
8.3 实验项目 78
实验十一:文件 78
C语言综合实验
第9章 公交线路查询实验 81
第10章 图书借阅信息链表
存储管理实验 87
Arduino C基础实验
第11章 Arduino C语言基础 95
11.1 Arduino集成开发板(UNO) 95
11.2 Arduino C语言程序集成
开发环境及使用 96
11.2.1 程序开发环境的
下载与安装配置 96
11.2.2 Arduino C语言程序
基本结构 98
11.2.3 Arduino C源程序设计
调试运行 99
11.3 Arduino C库文件与对象 100
11.3.1 类和对象 100
11.3.2 Arduino C库文件中
的对象 100
第12章 Arduino I/O读写基本应用 101
12.1 跑马灯显示 101
12.1.1 实验问题 101
12.1.2 LED亮灯原理 101
12.1.3 实例设计 101
12.1.4 拓展实验 102
12.2 按键控制 103
12.2.1 实验问题 103
12.2.2 按钮按键使用原理 103
12.2.3 实例设计 103
12.2.4 拓展实验 106
12.3 硬件串口实验 106
12.3.1 实验问题 106
12.3.2 UART串行接口
的概念 106
12.3.3 实例设计 106
12.3.4 拓展实验 108
12.4 传感器灯控实验 108
12.4.1 实验问题 108
12.4.2 传感器原理 108
12.4.3 实例设计 109
12.4.4 拓展实验 111
第13章 Arduino温度传感器的应用 112
13.1 模拟温度传感器LM35
的应用 112
13.1.1 实验问题 112
13.1.2 温度传感器LM35
的原理 112
13.1.3 实例设计 113
13.1.4 拓展实验
(实时显示温度) 114
13.2 数字温湿度传感器DHT11
的应用 114
13.2.1 实验问题 114
13.2.2 温湿度传感器DHT11
的原理 114
13.2.3 实例设计 114
13.2.4 拓展实验 116
第14章 Arduino I/O驱动显示 117
14.1 数码管显示 117
14.1.1 实验问题 117
14.1.2 数码管显示原理 117
14.1.3 实例设计 120
14.1.4 拓展实验 124
14.2 液晶模块显示 124
14.2.1 实验问题 124
14.2.2 字符型液晶
显示原理 125
14.2.3 实例设计 125
14.2.4 拓展实验 128
第15章 Arduino PWM的应用 129
15.1 脉宽调制(PWM)控制
LED灯亮度 129
15.1.1 实验问题 129
15.1.2 脉宽调制(PWM)
的原理 129
15.1.3 实例设计 130
15.1.4 拓展实验 131
15.2 脉宽调制(PWM)控制
直流电机转速 131
15.2.1 实验问题 131
15.2.2 直流电机转速
控制方法 131
15.2.3 实例设计 132
15.2.4 拓展实验 133
参考文献 135