C语言是应用范围最广、最为基础的一门程序设计语言,也是一门实践性很强的课程,作为计算机相关专业的必修专业基础课程,为后续Java面向对象程序设计、数据结构与算法、嵌入式开发等课程的学习奠定坚实基础。本书共分为11个项目,项目1介绍C语言程序及程序编辑环境的应用;项目2讲解C语言的数据类型与运算符;项目3讲解选择结构的设计方法和应用程序;项目4讲解循环结构化程序设计;项目5讲解数组与应用;项目6讲解函数;项目7讲解指针;项目8讲解结构体与共用体;项目9讲解位运算;项目10讲解C语言中的文件;项目11讲解综合应用。本书可作为高职高专院校和应用型本科院校计算机相关专业 C语言程序设计课程的教材或教学参考书。
赵秀芝,主持省双高专业群建设、浙江省产教融合"五一一批”工程项目、温州市教师教学创新团队、温州市物联网高技能基地。曾获浙江省高职院校教学能力比赛二等奖、浙江省高校第七届青年教师教学技能竞赛优秀奖、杭钢集团第九届员工技术比武运动会说课比赛一等奖、浙江工贸职业技术学院第二届说课比赛一等奖、首届工贸"我最喜欢的老师”、首届工贸"教学名师”、温州市尊重教育、尊重人才突出个人奖等。科研方面,主持浙江省"十三五”第二批教学改革研究项目改革"高职电子信息类专业"1+X”模式的创新与实践”、主持浙江省2022年度教育科学规划课题"基于"两系一线”人工智能专业群思政课程体系研究与实践”、主持浙江省2022年度高等教育研究课题"双高背景下"课程思政”同向同行协同育人实践研究”、主持工信行指委2022-2023年度科研课题"职业院校具有专业特色的学生思想政治教育的创新实践”;主持企业横向委托项目《AI人工智能的视力筛查云平台系统》,到账经费10万;在计算机应用、东华大学学报、中国教育报等期刊和杂志发表多篇学术论文;主持2022年省级课程思政教学项目中课程思政示范课程《单片机技术及应用》,参与(第二)省级精品在线开放课程《单片机技术及应用》;参编"十二五”国家规划教材《单片机技术应用》等;授权发明专利6项。
项目1 初识C语言 1
任务描述:打印欢迎词 1
1.1 C语言发展简史及特点 2
1.1.1 C语言的起源与发展 2
1.1.2 C语言的特点 2
1.2 开发环境介绍 3
1.2.1 主流开发工具介绍 3
1.2.2 Dev-C++的下载和安装 4
1.2.3 创建第一个C语言程序Hello world 6
1.3 C语言程序的结构和编译运行步骤 7
1.3.1 C语言程序的结构 7
1.3.2 C语言程序编译运行步骤 8
1.4 程序算法基础 9
1.4.1 算法的概念 9
1.4.2 流程图 9
知识拓展:编码规范 11
综合练习 11
拓展案例 11
项目2 显示系统时间—数据类型与运算符 13
任务描述:显示系统时间 13
2.1 基本字符、关键字和标识符 14
2.1.1 基本字符 14
2.1.2 关键字 14
2.1.3 标识符 15
2.2 常量和变量 15
2.2.1 常量 16
2.2.2 变量 17
2.3 基本数据类型 19
2.3.1 整型 19
2.3.2 浮点型 22
2.3.3 字符型 23
2.3.4 类型转换 25
2.4 基本输入和输出 27
2.4.1 格式化输出函数 27
2.4.2 格式化输入函数 30
2.4.3 字符的输入和输出 33
2.5 运算符与表达式 33
2.5.1 算术运算符和算术表达式 34
2.5.2 赋值运算符和赋值表达式 37
2.5.3 逗号运算符和逗号表达式 40
2.5.4 sizeof运算符及表达式 40
知识拓展:简单代码调试 41
综合练习 44
拓展案例 45
项目3 身份证号码归属地查询—选择结构与应用 46
任务描述:浙江省身份证号码归属地查询 46
3.1 判定条件 47
3.1.1 关系运算符和关系表达式 47
3.1.2 逻辑运算符和逻辑表达式 49
3.2 单分支和双分支选择结构 53
3.2.1 单分支if语句 53
3.2.2 双分支if-else语句 56
3.2.3 条件运算符和条件表达式 60
3.3 多分支选择结构 62
3.3.1 嵌套使用if语句和if-else语句 62
3.3.2 switch语句 65
知识拓展:分支结构设计规范 68
综合练习 69
拓展案例 69
项目4 计算圆周率—循环结构与应用 71
任务描述:计算圆周率 71
4.1 简单循环语句 72
4.1.1 while语句 72
4.1.2 do-while语句 76
4.1.3 for语句 78
4.1.4 break语句和continue语句 81
4.2 嵌套循环及应用 86
知识拓展:使用goto语句跳出多重循环 90
综合练习 91
拓展案例 92
项目5 国际标准书号检验—数组与应用 93
任务描述:国际标准书号检验 93
5.1 一维数组及应用 94
5.1.1 一维数组的定义和引用 94
5.1.2 一维数组的初始化 97
5.1.3 一维数组的应用 98
5.1.4 一维数组元素排序 99
5.2 二维数组及应用 102
5.2.1 二维数组的定义和引用 103
5.2.2 二维数组的初始化 104
5.2.3 二维数组的应用 104
5.3 字符数组与字符串 107
5.3.1 字符数组 107
5.3.2 字符串 107
5.3.3 字符串输入和输出函数 108
5.3.4 字符串处理函数 109
知识拓展:选择排序和插入排序 113
综合练习 117
拓展案例 117
项目6 实现一个简易计算器—函数 118
任务描述:实现一个简易计算器 118
6.1 函数及简单应用 119
6.1.1 函数的作用 119
6.1.2 函数的定义、调用和声明 120
6.1.3 函数的简单应用 123
6.1.4 单向按值传递参数 127
6.2 数组作为函数参数 129
6.2.1 数组名作为参数的语法 129
6.2.2 传递数组首地址 130
6.2.3 数组作为参数的应用 131
6.3 递归函数及应用 134
6.4 函数的嵌套调用 138
6.5 变量的作用域及生命期 139
6.5.1 作用域 140
6.5.2 生命期 142
6.6 编译预处理 144
知识拓展:C语言内存分配 146
综合练习 147
拓展案例 148
项目7 拆分实数—指针 150
任务描述:拆分实数 150
7.1 指针的基础知识 151
7.1.1 地址和指针 151
7.1.2 指针变量的定义和初始化 152
7.1.3 指针的基本运算 153
7.2 指针的进阶应用 157
7.2.1 指针与函数 157
7.2.2 指针与数组 160
7.3 安全地使用指针 164
知识拓展:动态分配堆区内存 165
综合练习 167
拓展案例 167
项目8 统计一组学生成绩的最高分、最低分和平均分—结构体与共同体 169
任务描述:统计一组学生成绩的最高分、最低分和平均分 170
8.1 结构体类型 170
8.1.1 结构体类型的定义 170
8.1.2 结构体类型变量的定义 172
8.1.3 结构体成员的引用 173
8.1.4 结构体在函数中的应用 173
8.2 类型定义typedef 177
8.3 共同体类型 179
8.3.1 共同体的概念、定义及变量 179
8.3.2 共同体的应用 179
8.4 枚举类型 181
8.5 链表※ 183
8.5.1 链表的概念 183
8.5.2 链表的创建和销毁 183
8.5.3 链表的插入和删除操作 186
知识拓展:线性表 190
综合练习 191
拓展案例 191
项目9 不使用第三个变量交换两个变量—位运算 192
任务描述:不使用第三个变量交换两个变量 193
9.1 位运算符 193
9.2 位运算的应用 196
9.3 位段及其应用 199
9.3.1 位段结构体的定义 199
9.3.2 位段的应用 200
知识拓展:使用位运算为字符串加密 201
综合练习 203
拓展案例 203
项目10 存取学生信息—文件 205
任务描述:存取学生信息 205
10.1 文件的概念 206
10.2 文本文件和二进制文件 207
10.3 文件的操作函数 207
10.3.1 文件的打开和关闭 208
10.3.2 文件的读写 209
知识拓展:文件类型与编码方式 217
综合练习 218
拓展案例 219
项目11 最近邻算法的实现与验证—综合应用案例 221
任务描述:最近邻算法的实现与验证 221
11.1 开发背景 222
11.2 开发需求 224
11.3 整体设计 225
11.4 程序实现 226
11.5 程序拓展 233
综合练习 236
拓展案例 236
附录A ASCII码对照表 237
附录B 运算符优先级和结合性 238
附录C 配套PTA题目集 239