C语言程序设计案例教程
书号:9787113318611 套系名称:“十四五”高等职业教育电子与信息大类专业系列教材
作者:李英 申志强 向魏 出版日期:2025-07-01
定价:59.80 页码 / 开本: /16
策划编辑:徐海英 责任编辑:何红艳 彭立辉
适用专业:计算机类 适用层次:高职教育
最新印刷时间:2025-07-01
-
本书依据最新的C语言教学要求和标准,结合作者教学实践经验,精心设计了涵盖C语言核心知识点的内容体系。全书共分15个单元,内容包括:程序及C语言简介,变量、常量和数据类型,输入/输出语句,运算符与表达式,条件语句,循环语句,一维数组,函数,字符数组和字符串,指针,预处理和内存管理,结构体、枚举及共用体,位运算等。 本书采用理论结合实践、任务驱动的方式进行阐述。通过学习本书,学生可有效完成基本的实践任务。 本书适合作为高等职业教育(含职业本科)电子与信息大类专业的教材,也可作为编程爱好者的入门参考书。
-
C语言作为计算机科学领域的基础语言之一,不仅因其高效、灵活而被广泛应用于系统软件、嵌入式系统、游戏开发等多个领域,更因其语法结构清晰、控制流程直接而成为学习其他高级编程语言的桥梁。C语言摒弃了复杂的语法结构,使得初学者可以更快地理解编程的基本概念。其学习曲线平缓,适合初学者逐步建立编程思维,不需要一开始就面对复杂的抽象概念。同时,C语言提供了对硬件的底层访问能力,在嵌入式开发和物联网开发领域的应用也非常广泛。 本书由长期在职业院校从事软件开发课程教学的教师和科技公司拥有丰富软件开发经验的工程师共同编写,可帮助学生快速入门程序开发,掌握C语言的基本知识。 本书具体特色如下: 1.理论结合实践,任务驱动学习 本书每个单元分为多个知识点进行讲解,每个知识点均有配套的任务。在学习完知识点后,能够利用所学知识完成一个实践任务,在巩固所学知识的同时,也能深刻理解这些知识在开发实践中的应用。在教学过程中,教师可以根据任务完成情况评估学生对于知识点的掌握程度,也便于教师及时发现学生在学习过程中的困难和误区,从而给予个性化指导和帮助。 2.配套数字资源,教学更加高效 本书为每个知识点和任务都配有讲解视频,读者可以通过扫描对应位置的二维码进行在线观看,不受物理空间的限制。通过数字资源,读者可以根据自身学习情况选择内容,实现个性化的学习体验。此外,本书还为教师教学提供了教学课件、随堂案例等资源,使教学更加高效。 3.软件版本较新,适应发展趋势 本书以Visual Studio 2022作为C语言的编程工具进行案例讲解,不仅提供较新、实用的教学内容,还能够激发学生的学习兴趣,促进教学方法创新,加强实践能力培养,提升教材的专业度,适应教育技术的发展趋势,并满足学生对于新技术的期待。 本书由云南林业职业技术学院李英、昭阳职业技术学院申志强、重庆足下科技有限公司向魏任主编,周宝林、阮小方、远俊红任副主编,刘惠、杨博参与编写。其中:单元1、单元2、单元10、单元12 由李英编写,单元3、单元4 由周宝林编写,单元5、单元6 由申志强编写,单元7、单元9 由向魏编写,单元8、单元11 由远俊红编写,单元13 由阮小方编写,单元14 由杨博编写,单元15 由刘惠编写。全书由李英负责内容结构的设计和统稿工作。 在本书编写过程中,我们得到了许多人的帮助与支持,在此表示衷心的感谢。感谢所有参与本书编写与审校的专家、学者和同人。感谢广大读者对本书的关注与期待。我们衷心希望本书能够成为广大读者学习C 语言的好帮手,也期待在未来的日子里,能够与更多志同道合的朋友一起,共同探索计算机科学的奥秘,为推动科技进步贡献我们的力量。 限于编者水平,书中难免存在疏漏与不妥之处,恳请广大读者批评指正。 编 者 2024 年10 月
-
单元1 程序及C语言简介 / 1 1.1 程序、算法和流程图 / 2 1.1.1 程序的概念 / 2 1.1.2 算法简介 / 3 1.1.3 算法的表示方法 / 4 【任务1】绘制微信转账功能的流程图 / 6 1.2 常用的C语言开发工具 / 8 1.2.1 C-Free软件简介 / 8 1.2.2 Visual Studio软件简介 / 8 【任务2】安装Visual Studio 2022软件 / 9 1.3 C语言的程序结构 / 13 【任务3】输出自己的座右铭 / 14 智慧之光 / 17 小结 / 18 作业 / 18 单元2 变量、常量和数据类型 / 19 2.1 基本数据类型 / 20 2.1.1 数据类型概述 / 20 2.1.2 整型 / 22 2.1.3 浮点型 / 24 2.1.4 字符型 / 25 2.1.5 数组类型 / 26 【任务1】分析学生各项个人信息的数据类型 / 27 2.2 常量、变量的概念及命名规则 / 28 2.2.1 常量简介 / 28 2.2.2 变量简介 / 28 2.2.3 变量及常量的命名规范 / 29 【任务2】设计学生各项个人信息的变量或常量名称 / 29 2.3 变量、常量的定义及使用 / 30 2.3.1 变量的声明及调用 / 30 2.3.2 常量的声明 / 31 【任务3】定义变量或常量存储学生个人信息 / 33 智慧之光 / 34 小结 / 34 作业 / 34 单元3 输入/ 输出语句 / 36 3.1 printf() 函数 / 37 3.1.1 基本输出 / 37 3.1.2 格式化输出 / 38 3.1.3 C 语言中的转义字符 / 39 【任务1】输出学员管理系统的菜单 / 40 3.2 scanf() 函数 / 42 3.2.1 scanf() 函数 / 42 3.2.2 rewind() 函数 / 45 【任务2】接收输入的个人信息并输出 / 46 3.3 getchar() 与putchar() 函数 / 48 3.3.1 getchar() 函数 / 48 3.3.2 putchar() 函数 / 48 【任务3】获取用户输入的题目选项并输出 / 49 智慧之光 / 51 小结 / 52 作业 / 52 单元4 运算符与表达式 / 54 4.1 算术运算符与关系运算符 / 55 4.1.1 算术运算符 / 55 4.1.2 关系运算符 / 57 【任务1】计算学生的平均分和总分 / 58 4.2 赋值运算符及复合赋值运算符 / 60 4.2.1 赋值运算符 / 60 4.2.2 复合赋值运算符 / 61 【任务2】设计一套加密算法 / 62 4.3 自增自减运算及条件运算符 / 63 4.3.1 自增自减运算符 / 63 4.3.2 条件运算符 / 64 【任务3】获取学生成绩的最低分的科目并输出 / 65 4.4 逻辑运算符及运算符的优先级 / 67 4.4.1 逻辑运算符 / 67 4.4.2 运算符的优先级 / 67 4.4.3 类型转换 / 69 【任务4】完成学生评优 / 70 智慧之光 / 71 小结 / 72 作业 / 72 单元5 条件语句1 / 73 5.1 if 单分支语句及if...else 双分支语句 / 74 5.1.1 条件分支语句概述 / 74 5.1.2 if 语句 / 74 5.1.3 if...else 语句 / 75 【任务1】完成学生信息录入检查 / 76 5.2 if...else if...else 语句 / 77 【任务2】完成学生成绩评级 / 79 5.3 if 语句嵌套使用 / 80 【任务3】完成学生奖学金评定 / 83 智慧之光 / 85 小结 / 85 作业 / 86 单元6 条件语句2 / 88 6.1 switch 语句的基本语法及执行流程 / 89 6.1.1 switch 语句的基本语法 / 89 6.1.2 switch 语句的执行流程 / 90 【任务1】对例6.1 的程序进行调试 / 91 6.2 switch 语句的基本应用 / 94 【任务2】完成教务系统功能页面切换 / 96 6.3 if 语句与switch 语句的区别 / 98 【任务3】制作简易计算器 / 98 智慧之光 / 100 小结 / 101 作业 / 101 单元7 循环语句1 / 103 7.1 while 语句 / 104 7.1.1 while 语句的语法规则 / 104 7.1.2 while 语句的执行流程 / 104 【任务1】完成教务系统登录功能 / 105 7.2 do...while 语句 / 107 7.2.1 do...while 语句的语法规则 / 107 7.2.2 do...while 语句的执行流程 / 107 【任务2】制作猜数字游戏 / 109 7.3 break 语句和continue 语句 / 110 7.3.1 break 语句 / 110 7.3.2 continue 语句 / 113 【任务3】优化学生成绩录入功能 / 114 智慧之光 / 115 小结 / 115 作业 / 116 单元8 循环语句2 / 118 8.1 for 循环语句的基本用法 / 119 8.1.1 for 语句的语法规则 / 119 8.1.2 for 语句的执行流程 / 119 【任务1】计算班级语文成绩平均分 / 120 8.2 在for 循环语句中使用break 和continue / 121 【任务2】统计班级语文及格率 / 122 8.3 for 循环语句的嵌套使用 / 124 【任务3】计算班级学生总分的平均分 / 126 智慧之光 / 129 小结 / 129 作业 / 129 单元9 一维数组 / 131 9.1 数组的定义及初始化 / 132 9.1.1 数组简介 / 132 9.1.2 使用数组的优点 / 133 9.1.3 数组的存储机制 / 133 9.1.4 定义数组 / 133 9.1.5 初始化数组 / 134 9.1.6 引用数组元素 / 135 【任务1】统计班级满分人数 / 136 9.2 数组的应用 / 137 【任务2】获取班级成绩最高分和最低分并计算差值 / 140 9.3 数组排序算法 / 141 9.3.1 冒泡排序算法 / 141 9.3.2 选择排序算法 / 143 9.3.3 冒泡排序和选择排序的区别 / 145 【任务3】对班级学生成绩进行降序排列 / 146 智慧之光 / 147 小结 / 148 作业 / 148 单元10 函数 / 150 10.1 函数基础 / 151 10.1.1 函数的概念 / 151 10.1.2 使用函数的优点 / 152 10.1.3 函数分类 / 152 10.1.4 函数的三大特征 / 153 10.1.5 函数定义 / 153 10.1.6 函数调用 / 155 10.1.7 参数的类型 / 156 10.1.8 函数原型声明 / 157 【任务1】用函数实现成绩录入 / 158 10.2 局部变量和全局变量 / 160 10.2.1 局部变量 / 160 10.2.2 全局变量 / 161 【任务2】录入成绩后完成成绩处理 / 162 10.3 函数的递归调用 / 165 10.3.1 递归调用的基本思想 / 165 10.3.2 递归调用的特点 / 165 【任务3】计算斐波那契数列第N 项的值 / 166 智慧之光 / 167 小结 / 168 作业 / 168 单元11 字符数组和字符串 / 170 11.1 字符串的定义与初始化 / 171 11.1.1 字符数组的定义 / 171 11.1.2 字符数组的初始化 / 172 11.1.3 字符串简介 / 173 11.1.4 字符串与字符数组的区别 / 174 【任务1】完成字符串的手动拼接 / 174 11.2 字符串的输入/ 输出 / 176 11.2.1 标准输入/输出 / 176 11.2.2 fgets() 和fputs() 函数 / 176 【任务2】将大乘法口诀表输出到文件中保存 / 180 11.3 常用的字符串处理函数 / 181 【任务3】实现教务系统学生登录 / 186 智慧之光 / 187 小结 / 188 作业 / 188 单元12 指针 / 189 12.1 指针基础 / 190 12.1.1 指针的概念 / 190 12.1.2 指针变量 / 191 12.1.3 指针的使用 / 191 12.1.4 指针运算 / 192 12.1.5 空指针 / 195 【任务1】使用指针实现交换两个学生的成绩 / 195 12.2 指针在数组中的应用 / 196 12.2.1 数组指针 / 196 12.2.2 指针数组 / 198 【任务2】使用指针实现选择排序 / 199 12.3 指针在函数中的应用 / 200 12.3.1 数组传递 / 200 12.3.2 传递指针 / 201 12.3.3 指针函数 / 202 12.3.4 函数指针 / 203 【任务3】教务系统成绩管理模块功能实现 / 204 智慧之光 / 206 小结 / 206 作业 / 207 单元13 预处理和内存管理 / 208 13.1 预处理命令 / 209 13.1.1 预处理器简介 / 209 13.1.2 预处理符号 / 210 13.1.3 宏定义 / 210 13.1.4 条件编译 / 217 【任务1】封装常用输入功能函数为头文件 / 220 13.2 内存管理分区 / 223 13.2.1 内存分区简介 / 223 13.2.2 动态内存的申请和分配 / 224 13.2.3 野指针 / 227 【任务2】动态分配学生成绩数组 / 228 13.3 堆和栈 / 229 13.3.1 堆 / 229 13.3.2 栈 / 229 13.3.3 栈和堆的区别 / 230 【任务3】录入并输出班级名单 / 230 智慧之光 / 232 小结 / 233 作业 / 233 单元14 结构体、枚举及共用体 / 234 14.1 结构体 / 235 14.1.1 结构体定义 / 235 14.1.2 结构体变量 / 237 14.1.3 结构体数组 / 242 14.1.4 结构体指针 / 245 【任务1】完成教务系统成绩排名 / 247 14.2 枚举 / 249 14.2.1 枚举简介 / 249 14.2.2 枚举类型的定义 / 249 14.2.3 枚举变量的声明 / 249 14.2.4 枚举变量的使用 / 250 【任务2】学生认证考试结果状态管理 / 251 14.3 共用体 / 252 【任务3】完成教务系统教师和学生信息管理 / 254 智慧之光 / 258 小结 / 258 作业 / 258 单元15 位运算 / 259 15.1 进制与进制之间的转换 / 261 15.1.1 进制简介 / 261 15.1.2 常用的几种进制 / 261 15.1.3 进制之间的转换 / 263 15.1.4 二进制的算术运算的特点 / 264 15.1.5 原码、反码、补码 / 265 【任务1】实现十进制转换为二进制 / 266 15.2 按位与和按位或运算 / 268 15.2.1 位运算简介 / 268 15.2.2 按位与运算 / 268 15.2.3 按位或运算 / 269 【任务2】编写函数检查一个数是否是2 的次幂 / 269 15.3 按位异或和按位取反运算 / 270 15.3.1 按位异或运算 / 270 15.3.2 按位取反运算 / 271 【任务3】设计一套带密钥的加密算法 / 271 15.4 左移和右移运算 / 273 15.4.1 左移运算 / 273 15.4.2 右移运算 / 273 【任务4】计算一个整数的二进制表示中1 的个数 / 274 15.5 置位和清零 / 275 15.5.1 置位运算 / 275 15.5.2 清零运算 / 275 【任务5】完成权限管理 / 275 智慧之光 / 278 小结 / 279 作业 / 279 附录A ASCII 字符集 / 280 附录B 常用的库函数 / 282
-
李英,云南林业职业技术学院。申志强,邵阳职业技术学院。向魏,计算机科学与技术专业,足下科教集团技术总监。?
-
本书依据最新的C语言教学要求和标准,结合作者教学实践经验,精心设计了涵盖C语言核心知识点的内容体系。全书共分15个单元,内容包括:程序及C语言简介,变量、常量和数据类型,输入/输出语句,运算符与表达式,条件语句,循环语句,一维数组,函数,字符数组和字符串,指针,预处理和内存管理,结构体、枚举及共用体,位运算等。 本书采用理论结合实践、任务驱动的方式进行阐述。通过学习本书,学生可有效完成基本的实践任务。
