为了帮助广大读者了解 C 语言程序设计,本教材立足企业工作岗位,涵盖岗位所需技能、知识和素养,系统讲解了 C 语言的相关知识点,并将学生信息管理系统案例进行分解,使之贯穿全教材,各项目、各任务的知识点前后衔接紧密,可提升学生实战能力,让学生能够学懂、学会、学通。本教材分为十个项目,每个项目分为基础篇、进阶篇、提高篇,内容由浅入深,循序渐进,让学生逐步深入学习,提升技能。同时,本教材注重职业素养与职业技能双指导,将岗位所需职业素养和职业技能融入教材内容中,尤其注重工匠精神、敬业精神的培养。本教材采用工作手册式的全新架构将行业发展新技术、新工艺、新理念融入其中,便于开展教学和自学活动。本教材的教学资源包括教学课件、题库、教学视频、源代码等。本教材既可用作高职院校计算机及相关专业的 C 语言基础教材,同时也可供 C 语言培训人员、计算机从业人员和计算机爱好者参考和使用。
周玫,女,副教授,省级优秀教师、省级名师、双师型教师、国家二级心理咨询师。2004年9月就职于江西工业职业技术学院,已在高职教育教学一线工作19年。
目 录
项目一 C 语言程序设计基础简介 1
【知识目标】 1
【技能目标】 1
【素质目标】 1
基础篇 1
任务 1.1 C 语言的产生和发展 1
1.1.1 C 语言的产生 1
1.1.2 C 语言的发展 2
任务 1.2 C 语言的特点 3
任务 1.3 C 语言的开发环境 3
1.3.1 编辑器、编译器与集成开发环境 3
1.3.2 Dev-C++5.11 下载与安装 4
任务 1.4 第一个 C 语言程序 7
任务 1.5 C 语言编译运行原理 9
任务 1.6 编程规范 10
进阶篇 11
任务 1.7 C 语言的其他集成开发环境 11
提高篇 13
任务 1.8 程序设计与算法 13
1.8.1 什么是算法 13
1.8.2 算法特征 13
1.8.3 算法的表示 14
思考练习 15
项目二 顺序结构程序设计 17
【知识目标】 17
【技能目标】 17
【素质目标】 17
基础篇 18
任务 2.1 基本字符、标识符、关键字 18
2.1.1 基本字符 18
2.1.2 标识符 18
2.1.3 关键字 18
任务 2.2 数据类型 19
2.2.1 基本类型 19
2.2.2 构造类型 20
2.2.3 指针类型 20
2.2.4 空类型 20
任务 2.3 常量及变量 20
2.3.1 常量 20
2.3.2 变量 24
任务 2.4 运算符及表达式 28
2.4.1 运算符和表达式概述 28
2.4.2 算术运算 30
2.4.3 关系运算 30
2.4.4 逻辑运算 31
2.4.5 赋值运算 34
2.4.6 自加和自减运算 35
任务 2.5 顺序结构程序设计 36
2.5.1 格式化输出函数 37
2.5.2 格式化输入函数 38
2.5.3 字符输出函数 38
2.5.4 字符输入函数 39
进阶篇 39
任务 2.6 变量与数据类型转换 39
任务 2.7 格式字符及作用 42
任务 2.8 其他运算符的使用 45
提高篇 50
任务 2.9 学生信息管理系统 1 50
思考练习 51
项目三 选择结构程序设计 54
【学习目标】 54
【技能目标】 54
【素质目标】 54
基础篇 54
任务 3.1 选择结构概述 54
任务 3.2 使用 if 语句实现选择结构 55
3.2.1 单分支选择结构 55
3.2.2 双分支选择结构 56
任务 3.3 选择结构的嵌套 57
任务 3.4 使用 switch 语句实现多分支选择结构 59
进阶篇 60
任务 3.5 选择结构综合举例 60
提高篇 63
任务 3.6 学生信息管理系统 2 63
思考练习 65
项目四 循环结构程序设计 66
【知识目标】 66
【技能目标】 66
【素质目标】 66
基础篇 66
任务 4.1 循环结构 66
任务 4.2 while 语句 67
任务 4.3 do…while 语句 70
任务 4.4 for 语句 73
任务 4.5 循环嵌套 77
任务 4.6 break 语句和 continue 语句 79
4.6.1 break 语句 79
4.6.2 continue 语句 80
进阶篇 81
任务 4.7 循环嵌套实例 81
提高篇 84
任务 4.8 学生信息管理系统 3 84
思考练习 87
项目五 数组 88
【学习目标】 88
【技能目标】 88
【素质目标】 88
基础篇 88
任务 5.1 数组的认知 88
任务 5.2 一维数组的定义、初始化与引用 89
5.2.1 一维数组的定义 89
5.2.2 一维数组的初始化 89
5.2.3 一维数组的引用 90
任务 5.3 二维数组的定义、初始化与引用 92
5.3.1 二维数组的定义 92
5.3.2 二维数组的初始化 93
5.3.3 二维数组的引用 95
任务 5.4 字符数组与字符串 96
5.4.1 字符数组的定义 96
5.4.2 字符数组的初始化 97
5.4.3 字符数组的引用 98
5.4.4 字符串 99
5.4.5 字符数组的输入/输出 99
5.4.6 字符串处理函数 101
进阶篇 106
任务 5.5 综合案例 106
提高篇 109
任务 5.6 学生信息管理系统 4 109
思考练习 111
项目六 函数 113
【学习目标】 113
【技能目标】 113
【素质目标】 113
基础篇 114
任务 6.1 函数的定义及调用 114
6.1.1 函数的概述 114
6.1.2 函数的定义 114
6.1.3 函数的调用 118
任务 6.2 函数的参数及变量 122
6.2.1 函数的参数 122
6.2.2 函数的返回值 124
6.2.3 局部变量和全局变量 125
任务 6.3 函数的嵌套调用 127
进阶篇 129
任务 6.4 函数嵌套特例—递归函数 129
任务 6.5 自动变量、静态局部变量及寄存器变量的使用 130
6.5.1 自动变量 131
6.5.2 静态局部变量 131
6.5.3 寄存器变量 132
任务 6.6 内部函数和外部函数的使用 133
6.6.1 内部函数 133
6.6.2 外部函数 133
提高篇 135
任务 6.7 学生信息管理系统 5 135
思考练习 137
项目七 预处理 140
【知识目标】 140
【技能目标】 140
【素质目标】 140
基础篇 140
任务 7.1 预处理简介 140
任务 7.2 宏定义简介 141
7.2.1 不带参数的宏定义 141
7.2.2 带参数的宏定义 143
任务 7.3 文件包含 144
进阶篇 147
任务 7.4 条件编译 147
7.4.1 #if /#else/ #endif 指令 148
7.4.2 #ifdef 指令 149
7.4.3 #ifndef 指令 149
提高篇 151
任务 7.5 学生信息管理系统 6 151
思考练习 152
项目八 指针 154
【学习目标】 154
【技能目标】 154
【素质目标】 154
基础篇 155
任务 8.1 指针变量 155
8.1.1 地址和指针的概念 155
8.1.2 指针变量的定义 156
8.1.3 指针变量的引用 156
8.1.4 指针变量作函数参数 158
8.1.5 指针变量的其他运算 160
任务 8.2 通过指针引用数组 160
8.2.1 指向数组的指针变量的定义与赋值 160
8.2.2 通过指针引用数组元素 161
8.2.3 函数参数 164
8.2.4 二维数组与指针 167
任务 8.3 通过指针引用字符串 169
8.3.1 字符数组与字符串 169
8.3.2 指针与字符串 170
任务 8.4 指针数组 174
8.4.1 指针数组的定义 174
8.4.2 指针数组的运用 174
进阶篇 178
任务 8.5 函数指针和指针函数 178
8.5.1 指向函数的指针 178
8.5.2 返回指针值的函数 183
任务 8.6 内存的动态分配与指向它的指针变量 186
8.6.1 什么是内存的动态分配 186
8.6.2 建立内存的动态分配 187
提高篇 189
任务 8.7 学生信息管理系统 7 189
思考练习 191
项目九 结构体和共用体 195
【学习目标】 195
【技能目标】 195
【素质目标】 195
基础篇 195
任务 9.1 定义与使用结构体变量 195
9.1.1 结构体的定义 195
9.1.2 定义结构体变量 196
9.1.3 结构体变量的初始化 198
9.1.4 结构体变量的引用 199
任务 9.2 结构体数组 201
9.2.1 结构体数组的定义 201
9.2.2 结构体数组的初始化 202
9.2.3 结构体数组元素的引用 202
任务 9.3 结构体指针变量 204
任务 9.4 指向结构体数组的指针 205
任务 9.5 共用体 205
9.5.1 共用体的定义 206
9.5.2 共用体变量的定义 206
9.5.3 共用体变量的初始化和引用 207
任务 9.6 类型定义 209
进阶篇 209
任务 9.7 综合案例 209
提高篇 210
任务 9.8 学生信息管理系统 8 210
思考练习 215
项目十 文件及其应用 219
【学习目标】 219
【技能目标】 219
【素质目标】 219
基础篇 219
任务 10.1 文件的基本知识 219
10.1.1 什么是文件 219
10.1.2 文件名 220
10.1.3 文件的分类 221
10.1.4 文件缓冲区 221
10.1.5 文件类型指针 222
任务 10.2 打开与关闭文件 222
10.2.1 用 fopen 函数打开数据文件 222
10.2.2 用 fclose 函数关闭文件 225
任务 10.3 顺序读写文件 225
10.3.1 向文件读写字符 225
10.3.2 向文件读写一个字符串 228
10.3.3 用格式化的方式读写文件 231
10.3.4 用二进制方式向文件读写一组数据 232
进阶篇 235
任务 10.4 随机读写文件 235
10.4.1 文件位置标记及其定位 236
10.4.2 随机读写 238
提高篇 239
任务 10.5 学生信息管理系统 9 239
思考练习 248
附录 A ASCII 码表 251
附录 B 运算符优先级别和结合方向 252
附录 C C 语言常用的字符串操作函数 254